Remote I/O Sensor bus with AT&T flow and M2X cloud

Dependencies:   DHT11 FXOS8700CQ MODSERIAL mbed

Fork of Avnet_ATT_Cellular_IOT by Avnet

Revision:
71:45a5e426df81
Parent:
70:24d5800f27be
Child:
72:b500e1507b5f
--- a/sensors.cpp	Thu Aug 11 07:40:45 2016 +0000
+++ b/sensors.cpp	Thu Aug 11 17:04:09 2016 +0000
@@ -425,7 +425,7 @@
 void Init_GPS(void)
 {
     char scan_id[GPS_SCAN_SIZE+2]; //The first two bytes are the response length (0x00, 0x04)
-    I2C_WriteSingleByte(GPS_DEVICE_ADDR, GPS_SCAN_ID, false); //no hold, must do read
+    I2C_WriteSingleByte(GPS_DEVICE_ADDR, GPS_SCAN_ID, true); //no hold, must do read
 
     unsigned char i;
     for(i=0;i<(GPS_SCAN_SIZE+2);i++)
@@ -475,38 +475,45 @@
 
 void Read_GPS()
 {
-    unsigned char gps_quality = 0; //default
-    char sign;
+    unsigned char gps_valid = 0; //default
+    int lat_sign;
+    int long_sign;
     if (bGPS_present)
     {
         if ((gps_get_status() == 'A') && (gps_get_mode2() != '1'))
         {
-            gps_quality = 1;
+            gps_valid = 1;
         }
-        PRINTF("gps_quality           : %d\r\n", gps_quality);
         if (gps_get_ns() == 'S')
         {
-            sign = '-'; //negative number
+            lat_sign = -1; //negative number
+        }
+        else
+        {
+            lat_sign = 1;
+        }    
+        if (gps_get_ew() == 'W')
+        {
+            long_sign = -1; //negative number
         }
         else
         {
-            sign = '\0'; //empty character
+            long_sign = 1;
         }    
-        PRINTF("gps_get_latitude      : %c%f\r\n", sign, gps_get_latitude());
-        if (gps_get_ew() == 'W')
-        {
-            sign = '-'; //negative number
-        }
-        else
-        {
-            sign = '\0'; //empty character
-        }    
-        PRINTF("gps_get_longitude     : %c%f\r\n", sign, gps_get_longitude());
+#if (0)
+        PRINTF("gps_valid             : %d\r\n", gps_valid);
+        PRINTF("gps_get_latitude      : %f\r\n", (lat_sign * gps_get_latitude()));
+        PRINTF("gps_get_longitude     : %f\r\n", (long_sign * gps_get_longitude()));
         PRINTF("gps_get_altitude      : %f meters\r\n", gps_get_altitude());
         PRINTF("gps_get_speed         : %f knots\r\n", gps_get_speed());
         PRINTF("gps_get_course        : %f degrees\r\n", gps_get_course());
-        //sprintf(SENSOR_DATA.Temperature, "%0.2f", CTOF(hts221.readTemperature()));
-        //sprintf(SENSOR_DATA.Humidity, "%02d", hts221.readHumidity());
+#endif
+        sprintf(SENSOR_DATA.GPS_Valid, "%d", gps_valid);
+        sprintf(SENSOR_DATA.GPS_Latitude, "%f", (lat_sign * gps_get_latitude()));
+        sprintf(SENSOR_DATA.GPS_Longitude, "%f", (long_sign * gps_get_longitude()));
+        sprintf(SENSOR_DATA.GPS_Altitude, "%f", gps_get_altitude());
+        sprintf(SENSOR_DATA.GPS_Speed, "%f", gps_get_speed());
+        sprintf(SENSOR_DATA.GPS_Course, "%f", gps_get_course());
     } //bGPS_present
 } //Read_GPS()