10.1 Kombiniert die Übung 6.4 Wenn sich jemand nähert, Lauflicht einschalten mit dem Yahoo Weather Dienst, dass bei Unterwarnungen das Lauflicht eingeschaltet wird.
Dependencies: EthernetInterface mbed-rtos mbed spxml
Fork of YahooWeather by
main.cpp
- Committer:
- stefan1691
- Date:
- 2015-05-27
- Revision:
- 5:f81113cbe930
- Parent:
- 3:aad64a4b6ff6
- Child:
- 6:735d5412de0d
File content as of revision 5:f81113cbe930:
/** Beispiel Abfrage Yahoo Weather fuer Zuerich */ #include "mbed.h" #include "HTTPClient.h" #include "HTTPText.h" #include "EthernetInterface.h" #include "spdomparser.hpp" #include "spxmlnode.hpp" #include "spxmlhandle.hpp" EthernetInterface eth; // HTTPClient Hilfsklasse HTTPClient http; // I/O Buffer char message[6000]; DigitalOut myled(LED1); int main() { printf("\tYahoo Weather\n"); eth.init(); eth.connect(); while(1) { myled = 1; // Yahoo Weather fuer Zuerich int ret = http.get("http://weather.yahooapis.com/forecastrss?w=784794&u=c", message, sizeof(message)); if ( !ret ) { // XML Parser SP_XmlDomParser parser; // char[] bzw. XML parsen parser.append( message, strlen( message ) ); SP_XmlHandle rootHandle( parser.getDocument()->getRootElement() ); SP_XmlElementNode * node = rootHandle.getChild( "channel" ).toElement(); SP_XmlHandle handle(node); SP_XmlElementNode * condition = handle.getChild( "item" ).getChild("yweather:condition").toElement(); // Allgemeine Lage, Sonnig, Bewoelkt etc. printf( "%s, ", condition->getAttrValue("text") ); // Temperatur in Celsius printf( "%sC, ", condition->getAttrValue("temp") ); // Datum und Zeit letzte Aktualisierung printf( "%s\n", condition->getAttrValue("date") ); } else printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); myled = 0; wait(10); } //eth.disconnect(); }