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

Files at this revision

API Documentation at this revision

Comitter:
zhjcpi
Date:
Tue Nov 18 09:03:17 2014 +0000
Parent:
17:05033198f8f3
Child:
19:27aa296d2ea1
Child:
20:88db82cf3f0f
Commit message:
define utcTime as uint_64_t instead of float.

Changed in this revision

CsrLocation.cpp Show annotated file Show diff for this revision Revisions of this file
CsrLocation.h Show annotated file Show diff for this revision Revisions of this file
createCSRGPS.cpp Show annotated file Show diff for this revision Revisions of this file
--- 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;
--- a/CsrLocation.h	Tue Nov 18 02:43:19 2014 +0000
+++ b/CsrLocation.h	Tue Nov 18 09:03:17 2014 +0000
@@ -14,7 +14,7 @@
 #define CSR_RESULT_FAILURE  ((CsrResult) 0xFFFF)
 
 /* Time related definitions */
-#define CSR_ULOC_UTC_GPS_OFFSET_MS      ((315964800000LL))
+#define CSR_ULOC_UTC_GPS_OFFSET_MS      ((uint64_t)(315964800000LL))
 #define CSR_ULOC_SEC_IN_WEEK_MS         (604800000)
 #define CSR_ULOC_UTC_LEAP_OFFSET_MS     (15000)
 
@@ -196,7 +196,7 @@
 /** Structure to hold Position Response Message Information. */
 typedef struct LocPosResp {
     tGpsTime gpsTime;
-    float    utcTime;
+    uint64_t utcTime;
     /** Latitude */
     double lat;
     /** Longitude */
--- a/createCSRGPS.cpp	Tue Nov 18 02:43:19 2014 +0000
+++ b/createCSRGPS.cpp	Tue Nov 18 09:03:17 2014 +0000
@@ -56,7 +56,7 @@
     switch (msgId) {
         case LOC_OUTPUT_LOCATION: {
             tLocPosResp *pPosRsp = (tLocPosResp *)pMsgData;
-            CSR_APP_LOG_INFO("Loc: lat=%f, lon=%f, alt=%f, utctime=%f, gps week=%d, gps tow=%d\r\n", pPosRsp->lat, pPosRsp->lon, pPosRsp->alt, pPosRsp->utcTime, pPosRsp->gpsTime.gps_week, pPosRsp->gpsTime.tow);
+            CSR_APP_LOG_INFO("Loc: lat=%f, lon=%f, alt=%f, utctime=%llu, gps week=%d, gps tow=%d\r\n", pPosRsp->lat, pPosRsp->lon, pPosRsp->alt, pPosRsp->utcTime, pPosRsp->gpsTime.gps_week, pPosRsp->gpsTime.tow);
             break;
         }
         case LOC_OUTPUT_SV_STATUS: {