Guest User

Untitled

a guest
Mar 5th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include "application.h"
  2. #include <string.h>
  3.  
  4. TCPClient client;
  5.  
  6.  
  7. // Define Constants
  8. // Max string length may have to be adjusted depending on data to be extracted
  9. #define MAX_STRING_LEN  50
  10.  
  11. // Setup vars
  12. String tagStr = "";
  13. String dataStr = "";
  14. String tmpStr = "";
  15. int len;
  16.  
  17. // Flags to differentiate XML tags from document elements (ie. data)
  18. boolean tagFlag = false;
  19. boolean dataFlag = false;
  20.  
  21.  
  22. /* This function is called once at start up ----------------------------------*/
  23. void setup()
  24. {
  25.     tagStr.reserve(MAX_STRING_LEN);
  26.     tmpStr.reserve(MAX_STRING_LEN);
  27.     dataStr.reserve(300);
  28.     Serial.begin(115200);
  29.     while(!Serial.available());
  30.  
  31.     if (client.connect("www.google.com", 80))
  32.     {
  33.         Serial.println("connected");
  34.         client.print("GET /calendar/feeds/somePrivateGoogleCalendarAddress/full");
  35.         client.print("?futureevents=true&fields=entry(title,gd:when)&max-results=5&orderby=starttime&sortorder=a");
  36.         client.println("HTTP/1.0");
  37.         client.println();
  38.     }
  39.     else
  40.     {
  41.         Serial.println("connection failed");
  42.     }
  43.     delay(100);
  44. }
  45.  
  46. /* This function loops forever --------------------------------------------*/
  47. void loop()
  48. {
  49.     if (client.available())
  50.     {
  51.         char c = client.read();
  52.         if(dataFlag) dataStr += c;
  53.  
  54.         if (c != '>') {
  55.             tmpStr += c;
  56.             tagFlag = true;
  57.         } else if (c == '>') {
  58.             tmpStr += c;
  59.  
  60.             if (tagFlag) {
  61.                 tagStr = tmpStr;
  62.             }
  63.  
  64.             if (tagStr == "<entry>"){
  65.                 dataFlag = true;
  66.             } else if (tagStr == "</entry>"){
  67.                 dataStr[dataStr.length()-8] = '\0';
  68.                 Serial.println(dataStr);
  69.                 dataFlag = false;
  70.                 dataStr[0] = '\0';
  71.             }
  72.  
  73.             // Clear tmp
  74.             tmpStr[0] = '\0';
  75.             tagFlag = false;
  76.         }
  77.     }
  78.     if (!client.connected()) {
  79.         Serial.println();
  80.         Serial.println("disconnecting.");
  81.         client.stop();
  82.  
  83.         // do nothing forevermore:
  84.         while(true);
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment