checks http://wedgefest.wind.ttu.edu/obs/TTU_LBBW.html every 5 minutes and records the temperature and humidity values located in the webpage's text

Dependencies:   EthernetNetIf mbed

Files at this revision

API Documentation at this revision

Comitter:
elliotb
Date:
Mon Aug 09 14:12:07 2010 +0000
Child:
1:35888a9f0a48
Commit message:

Changed in this revision

EthernetNetIf.lib Show annotated file Show diff for this revision Revisions of this file
HTTPClient.lib Show annotated file Show diff for this revision Revisions of this file
getweather.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetNetIf.lib	Mon Aug 09 14:12:07 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/EthernetNetIf/#bc7df6da7589
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPClient.lib	Mon Aug 09 14:12:07 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/HTTPClient/#d97a4fc01c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getweather.cpp	Mon Aug 09 14:12:07 2010 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+#include "EthernetNetIf.h"
+#include "HTTPClient.h"
+
+EthernetNetIf eth;
+HTTPClient http;
+
+HTTPResult result;
+bool completed = false;
+void request_callback(HTTPResult r) {
+    result = r;
+    completed = true;
+}
+
+void checkweather(HTTPStream &stream);
+
+char * location;
+char temperature[3];
+char humidity[3];
+char BigBuf[512 + 1] = {0};
+
+int main() {
+    printf("Start\n");
+    printf("Setting up...\n");
+    EthernetErr ethErr = eth.setup();
+    if (ethErr) {
+        printf("Error %d in setup.\n", ethErr);
+        return -1;
+    }
+    printf("Setup OK\n");
+    HTTPStream stream;
+    stream.readNext((byte*)BigBuf, 512);
+
+    checkweather(stream);
+
+
+    while (1) {
+
+    }
+    return 0;
+}
+
+void checkweather(HTTPStream &stream) {
+    HTTPResult r = http.get("http://mobile.weather.gov/port_mp_ns.php?select=3&CityName=Lubbock&site=LUB&State=TX&warnzone=TXZ035", &stream, request_callback); //Load a very large page
+    while (!completed) {
+        Net::poll(); //Polls the Networking stack
+        if (stream.readable()) {
+            BigBuf[stream.readLen()] = 0; //Transform this buffer in a zero-terminated char* string
+
+            // look for key words in the html text
+            location = strstr(BigBuf,"Temperature");
+            if (location != NULL) {
+                strncpy(temperature,location+13,2);
+                location = NULL;
+            }
+
+            location = strstr(BigBuf,"Humidity");
+            if (location != NULL) {
+                strncpy(humidity,location+10,2);
+                location = NULL;
+            }
+
+            stream.readNext((byte*)BigBuf, 512); //Buffer has been read, now we can put more data in it
+        }
+    }
+    printf("\n--------------\n");
+    if (result == HTTP_OK) {
+        printf("Read completely\n");
+        printf("Temperature: %s deg F \n",temperature);
+        printf("Humidity: %s percent \n",humidity);
+
+    } else {
+        printf("Error %d\n", result);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Aug 09 14:12:07 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9114680c05da