This program simply connects to a HTS221 I2C device to proximity sensor

Dependencies:   FXOS8700CQ mbed

Revision:
37:ee01f752524a
Parent:
36:f8d96ff1dd1b
Child:
38:532a0d929756
diff -r f8d96ff1dd1b -r ee01f752524a main.cpp
--- a/main.cpp	Wed Sep 21 15:42:01 2016 +0000
+++ b/main.cpp	Wed Sep 21 18:03:43 2016 +0000
@@ -200,6 +200,7 @@
             cin = mdm.getc();
             if (isprint(cin)) {
                 buff[len++] = (char)cin;
+                
                 continue;
             } else if (('\r' == cin_last) && ('\n' == cin)) {
                 break;
@@ -664,6 +665,7 @@
 int main() {
 
     int i;
+    int sendAttemps = 0;
 
     HTS221 hts221;
     pc.baud(115200);
@@ -765,13 +767,10 @@
                 proximityData[i][0] = readings[0];  
                 proximityData[i][1] = readings[1];
                 proximityData[i][2] = readings[2];  
-                if(abs(proximityData[i][0] - lastProximityData[i][0]) > 5)
+                if(abs(proximityData[i][0] - lastProximityData[i][0]) > 50)
                 {
                     proximityChange = true;
-                }  
-                lastProximityData[i][0] =  proximityData[i][0]; 
-                  
-                     
+                }                     
             }
            
                 
@@ -791,8 +790,14 @@
                 // If any non-zero response from server, make it GREEN one-time
                 //  then the actual FLOW responses will set the color.
                 if (MySocketData.length() > 0)
-                {                   
+                {   
+                                
                     SetLedColor(0x2); // green
+                    //only copy on sucessful send
+                    for(int i = 0;i<NUM_PROXIMIY_SENSORS;i++)
+                    { 
+                        lastProximityData[i][0] =  proximityData[i][0];
+                    }
                     printf(BLU "Read back : %s" DEF "\r\n", &MySocketData[0]);
                     char myJsonResponse[512];
                     if (extract_JSON(&MySocketData[0], &myJsonResponse[0]))
@@ -810,7 +815,17 @@
                 else
                 {
                    SetLedColor(0x1); //red
-                   system_reset();
+                   // reset socket if read fails
+                   if(sendAttemps < 2)
+                   {
+                        sendAttemps++;
+                        sockclose_mdm();
+                        sockopen_mdm();
+                    }
+                    else // give up and do full reset
+                    {
+                        system_reset();
+                    }
                    
                 }