Csr location class shows location and satellite information, which supports H13467 + ST F103RB/NXP LCP1549 boards now.
Dependents: CsrLocationDemo CsrLocationDemo
Fork of CsrLocation by
Revision 18:5d72465991f5, committed 2014-11-18
- 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
--- 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: {

GPS mbed Shield