Csr location class shows location and satellite information, which supports H13467 + ST F103RB/NXP LCP1549 boards now.

Dependents:   CsrLocationDemo CsrLocationDemo

Fork of CsrLocation by jie zhao

Revision:
18:5d72465991f5
Parent:
17:05033198f8f3
Child:
20:88db82cf3f0f
--- a/CsrLocation.cpp	Tue Nov 18 02:43:19 2014 +0000
+++ b/CsrLocation.cpp	Tue Nov 18 09:03:17 2014 +0000
@@ -74,15 +74,15 @@
 {
     switch (msgId) {
         case LOC_OUTPUT_LOCATION: {
-            const tLocPosResp *pPosRsp  = (const tLocPosResp *)pMsgData;
-            lastLocation.version  = 1;
-            lastLocation.valid    = true;
-            lastLocation.gpsTime.gps_week  = pPosRsp->gpsTime.gps_week;
-            lastLocation.gpsTime.tow  = pPosRsp->gpsTime.tow;
-            lastLocation.utcTime  = pPosRsp->utcTime;
-            lastLocation.lat      = pPosRsp->lat;
-            lastLocation.lon      = pPosRsp->lon;
-            lastLocation.altitude = pPosRsp->alt;
+            const tLocPosResp *pPosRsp      = (const tLocPosResp *)pMsgData;
+            lastLocation.version            = 1;
+            lastLocation.valid              = true;
+            lastLocation.gpsTime.gps_week   = pPosRsp->gpsTime.gps_week;
+            lastLocation.gpsTime.tow        = pPosRsp->gpsTime.tow;
+            lastLocation.utcTime            = pPosRsp->utcTime;
+            lastLocation.lat                = pPosRsp->lat;
+            lastLocation.lon                = pPosRsp->lon;
+            lastLocation.altitude           = pPosRsp->alt;
 
             if (locationCallback) {
                 locationCallback(&lastLocation);
@@ -90,7 +90,7 @@
             break;
         }
         case LOC_OUTPUT_SV_STATUS: {
-            const tLocSvStatus *pSvStatus = (const tLocSvStatus *)pMsgData;
+            const tLocSvStatus *pSvStatus   = (const tLocSvStatus *)pMsgData;
             lastLocation.version            = 1;
             lastLocation.valid              = true;
             lastLocation.numGPSSVs          = pSvStatus->numOfSVs;
@@ -748,7 +748,7 @@
                 ptr                     += 2;
                 pPos->gpsTime.gps_week   = BINARY_IMPORT_UINT16(ptr);
                 pPos->gpsTime.tow        = BINARY_IMPORT_UINT32(ptr);
-                pPos->utcTime            = (float)CSR_ULOC_UTC_GPS_OFFSET_MS + (float)pPos->gpsTime.gps_week * CSR_ULOC_SEC_IN_WEEK_MS + pPos->gpsTime.tow - CSR_ULOC_UTC_LEAP_OFFSET_MS;
+                pPos->utcTime            = CSR_ULOC_UTC_GPS_OFFSET_MS + (uint64_t)pPos->gpsTime.gps_week * (uint64_t)CSR_ULOC_SEC_IN_WEEK_MS + (uint64_t)pPos->gpsTime.tow - (uint64_t)CSR_ULOC_UTC_LEAP_OFFSET_MS;
                 ptr                     += 12;
                 pPos->lat                = (double)BINARY_IMPORT_SINT32(ptr);
                 pPos->lat               *= 1e-7;