FRDM-K64F, Avnet M14A2A, Grove Shield, to create smart home system. In use with AT&Ts M2x & Flow.
Dependencies: mbed FXOS8700CQ MODSERIAL
Diff: sensors.cpp
- Revision:
- 71:45a5e426df81
- Parent:
- 70:24d5800f27be
- Child:
- 72:b500e1507b5f
diff -r 24d5800f27be -r 45a5e426df81 sensors.cpp --- 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()