The Hiking Pal tracking device firmware. See full description on the detail page: https://www.hackster.io/bowenfeng/hiking-pal-v1-07c02d

Dependencies:   FXOS8700CQ MODSERIAL mbed

Fork of Avnet_ATT_Cellular_IOT by Avnet

Revision:
48:93a4ab6ac177
Parent:
47:c07656706ca1
Parent:
41:9b14c40eebf6
Child:
49:97f823273dc0
--- a/main.cpp	Sun Jul 24 19:54:06 2016 +0000
+++ b/main.cpp	Sun Jul 24 20:18:33 2016 +0000
@@ -353,10 +353,10 @@
     char* endquote;
     beginquote = strchr(search_field, '{'); //start of JSON
     endquote = strchr(search_field, '}'); //end of JSON
-    if (beginquote != 0)
+    if (beginquote)
     {
         uint16_t ifoundlen;
-        if (endquote != 0)
+        if (endquote)
         {
             ifoundlen = (uint16_t) (endquote - beginquote) + 1;
             strncpy(found_string, beginquote, ifoundlen );
@@ -504,32 +504,32 @@
             read_sensors(); //read available external sensors from a PMOD and the on-board motion sensor
             char modem_string[512];
             GenerateModemString(&modem_string[0]);
-            printf(BLU "Sending to modem : %s" DEF "\n", modem_string); 
+            printf(BLU "\r\nSending to modem : %s" DEF "\r\n", modem_string); 
             sockwrite_mdm(modem_string);
             sockread_mdm(&MySocketData, 1024, 20);
-            printf("DONE with READ!\r\n");
-            
-            // If any non-zero response from server, make it GREEN one-time
-            //  then the actual FLOW responses will set the color. 
-            if ((!ledOnce) && (MySocketData.length() > 0))
+         
+            if (sockread_mdm(&MySocketData, 1024, 20))
             {
-                ledOnce = 1;
-                SetLedColor(0x2);
-            }
-            
-            printf(BLU "Read back : %s" DEF "\n", MySocketData.c_str());
-            char myJsonResponse[512];
-            char stringToCharBuf[1501]; // 1500 is the max length WNC can return
-            strcpy(stringToCharBuf, MySocketData.c_str());
-            if (extract_JSON(stringToCharBuf, &myJsonResponse[0]))
-            {
-                printf(GRN "JSON : %s" DEF "\n", &myJsonResponse[0]);
-                parse_JSON(&myJsonResponse[0]);
+                // If any non-zero response from server, make it GREEN one-time
+                //  then the actual FLOW responses will set the color.
+                if (!ledOnce)
+                {
+                    ledOnce = 1;
+                    SetLedColor(0x2);
+                }
+                printf(YEL "Read back : %s" DEF "\r\n", &MySocketData[0]);
+                char myJsonResponse[512];
+                char stringToCharBuf[1501]; // WNC can return max of 1500
+                strcpy(stringToCharBuf, MySocketData.c_str());
+                if (extract_JSON(stringToCharBuf, &myJsonResponse[0]))
+                {
+                    printf(GRN "JSON : %s" DEF "\n", &myJsonResponse[0]);
+                    parse_JSON(&myJsonResponse[0]);
+                }
             }
             else
             {
-                printf(RED "JSON : %s" DEF "\n", &myJsonResponse[0]); //most likely an incomplete JSON string
-                parse_JSON(&myJsonResponse[0]); //This is risky, as the string may be corrupted
+                printf(RED "No response..." DEF "\r\n");
             }
         } //bTimerExpiredFlag
     } //forever loop