diff options
Diffstat (limited to 'Libraries/WiShield/examples/SimpleClient/SimpleClient.pde')
| -rw-r--r-- | Libraries/WiShield/examples/SimpleClient/SimpleClient.pde | 88 |
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); +} |
