Csr location class shows location and satellite information, which supports H13467 + ST F103RB/NXP LCP1549 boards now.
Dependents: CsrLocationDemo CsrLocationDemo
Fork of CsrLocation by
Diff: CsrLocation.cpp
- Revision:
- 18:5d72465991f5
- Parent:
- 17:05033198f8f3
- Child:
- 20:88db82cf3f0f
diff -r 05033198f8f3 -r 5d72465991f5 CsrLocation.cpp
--- 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;

GPS mbed Shield