summaryrefslogtreecommitdiff
path: root/Libraries/WiShield/examples/SimpleClient
diff options
context:
space:
mode:
Diffstat (limited to 'Libraries/WiShield/examples/SimpleClient')
-rw-r--r--Libraries/WiShield/examples/SimpleClient/SimpleClient.pde88
1 files changed, 88 insertions, 0 deletions
diff --git a/Libraries/WiShield/examples/SimpleClient/SimpleClient.pde b/Libraries/WiShield/examples/SimpleClient/SimpleClient.pde
new file mode 100644
index 0000000..52c9e56
--- /dev/null
+++ b/Libraries/WiShield/examples/SimpleClient/SimpleClient.pde
@@ -0,0 +1,88 @@
+/*
+ * A simple sketch that uses WiServer to get the hourly weather data from LAX and prints
+ * it via the Serial API
+ */
+
+#include <WiServer.h>
+
+#define WIRELESS_MODE_INFRA 1
+#define WIRELESS_MODE_ADHOC 2
+
+// Wireless configuration parameters ----------------------------------------
+unsigned char local_ip[] = {192,168,1,2}; // IP address of WiShield
+unsigned char gateway_ip[] = {192,168,1,1}; // router or gateway IP address
+unsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local network
+const prog_char ssid[] PROGMEM = {"ASYNCLABS"}; // max 32 bytes
+
+unsigned char security_type = 0; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2
+
+// WPA/WPA2 passphrase
+const prog_char security_passphrase[] PROGMEM = {"12345678"}; // max 64 characters
+
+// WEP 128-bit keys
+// sample HEX keys
+prog_uchar wep_keys[] PROGMEM = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3
+ };
+
+// setup the wireless mode
+// infrastructure - connect to AP
+// adhoc - connect to another WiFi device
+unsigned char wireless_mode = WIRELESS_MODE_INFRA;
+
+unsigned char ssid_len;
+unsigned char security_passphrase_len;
+// End of wireless configuration parameters ----------------------------------------
+
+
+// Function that prints data from the server
+void printData(char* data, int len) {
+
+ // Print the data returned by the server
+ // Note that the data is not null-terminated, may be broken up into smaller packets, and
+ // includes the HTTP header.
+ while (len-- > 0) {
+ Serial.print(*(data++));
+ }
+}
+
+
+// IP Address for www.weather.gov
+uint8 ip[] = {140,90,113,200};
+
+// A request that gets the latest METAR weather data for LAX
+GETrequest getWeather(ip, 80, "www.weather.gov", "/data/METAR/KLAX.1.txt");
+
+
+void setup() {
+ // Initialize WiServer (we'll pass NULL for the page serving function since we don't need to serve web pages)
+ WiServer.init(NULL);
+
+ // Enable Serial output and ask WiServer to generate log messages (optional)
+ Serial.begin(57600);
+ WiServer.enableVerboseMode(true);
+
+ // Have the processData function called when data is returned by the server
+ getWeather.setReturnFunc(printData);
+}
+
+
+// Time (in millis) when the data should be retrieved
+long updateTime = 0;
+
+void loop(){
+
+ // Check if it's time to get an update
+ if (millis() >= updateTime) {
+ getWeather.submit();
+ // Get another update one hour from now
+ updateTime += 1000 * 60 * 60;
+ }
+
+ // Run WiServer
+ WiServer.server_task();
+
+ delay(10);
+}