Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "application.h"
- #include <string.h>
- TCPClient client;
- // Define Constants
- // Max string length may have to be adjusted depending on data to be extracted
- #define MAX_STRING_LEN 50
- // Setup vars
- String tagStr = "";
- String dataStr = "";
- String tmpStr = "";
- int len;
- // Flags to differentiate XML tags from document elements (ie. data)
- boolean tagFlag = false;
- boolean dataFlag = false;
- /* This function is called once at start up ----------------------------------*/
- void setup()
- {
- tagStr.reserve(MAX_STRING_LEN);
- tmpStr.reserve(MAX_STRING_LEN);
- dataStr.reserve(300);
- Serial.begin(115200);
- while(!Serial.available());
- if (client.connect("www.google.com", 80))
- {
- Serial.println("connected");
- client.print("GET /calendar/feeds/somePrivateGoogleCalendarAddress/full");
- client.print("?futureevents=true&fields=entry(title,gd:when)&max-results=5&orderby=starttime&sortorder=a");
- client.println("HTTP/1.0");
- client.println();
- }
- else
- {
- Serial.println("connection failed");
- }
- delay(100);
- }
- /* This function loops forever --------------------------------------------*/
- void loop()
- {
- if (client.available())
- {
- char c = client.read();
- if(dataFlag) dataStr += c;
- if (c != '>') {
- tmpStr += c;
- tagFlag = true;
- } else if (c == '>') {
- tmpStr += c;
- if (tagFlag) {
- tagStr = tmpStr;
- }
- if (tagStr == "<entry>"){
- dataFlag = true;
- } else if (tagStr == "</entry>"){
- dataStr[dataStr.length()-8] = '\0';
- Serial.println(dataStr);
- dataFlag = false;
- dataStr[0] = '\0';
- }
- // Clear tmp
- tmpStr[0] = '\0';
- tagFlag = false;
- }
- }
- if (!client.connected()) {
- Serial.println();
- Serial.println("disconnecting.");
- client.stop();
- // do nothing forevermore:
- while(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment