diff options
-rw-r--r-- | driver_ubx.c | 28 | ||||
-rw-r--r-- | test/daemon/ublox-aek-4t.log.chk | 8 | ||||
-rw-r--r-- | test/daemon/ublox-lea-4t.log.chk | 4 |
3 files changed, 23 insertions, 17 deletions
diff --git a/driver_ubx.c b/driver_ubx.c index d9791c30..76ed6cea 100644 --- a/driver_ubx.c +++ b/driver_ubx.c @@ -291,14 +291,13 @@ ubx_msg_nav_pvt(struct gps_device_t *session, unsigned char *buf, } /** - * Navigation solution message + * Navigation solution message: UBX-NAV-SOL */ static gps_mask_t ubx_msg_nav_sol(struct gps_device_t *session, unsigned char *buf, size_t data_len) { unsigned int flags; - double epx, epy, epz, evx, evy, evz; unsigned char navmode; gps_mask_t mask; @@ -318,18 +317,25 @@ ubx_msg_nav_sol(struct gps_device_t *session, unsigned char *buf, } #undef DATE_VALID - epx = (double)(getles32(buf, 12) / 100.0); - epy = (double)(getles32(buf, 16) / 100.0); - epz = (double)(getles32(buf, 20) / 100.0); - evx = (double)(getles32(buf, 28) / 100.0); - evy = (double)(getles32(buf, 32) / 100.0); - evz = (double)(getles32(buf, 36) / 100.0); + session->newdata.ecef.x = getles32(buf, 12) / 100.0; + session->newdata.ecef.y = getles32(buf, 16) / 100.0; + session->newdata.ecef.z = getles32(buf, 20) / 100.0; + session->newdata.ecef.pAcc = getleu32(buf, 24) / 100.0; + session->newdata.ecef.vx = getles32(buf, 28) / 100.0; + session->newdata.ecef.vy = getles32(buf, 32) / 100.0; + session->newdata.ecef.vz = getles32(buf, 36) / 100.0; + session->newdata.ecef.vAcc = getleu32(buf, 40) / 100.0; ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation, - epx, epy, epz, evx, evy, evz); - mask |= LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET; + session->newdata.ecef.x, session->newdata.ecef.y, + session->newdata.ecef.z, session->newdata.ecef.vx, + session->newdata.ecef.vy, session->newdata.ecef.vz); + + mask |= LATLON_SET | ALTITUDE_SET | SPEED_SET | TRACK_SET | CLIMB_SET \ + | ECEF_SET | VECEF_SET; if (session->driver.ubx.last_herr > 0.0) { - session->newdata.epx = session->newdata.epy = session->driver.ubx.last_herr; + session->newdata.epx = session->newdata.epy \ + = session->driver.ubx.last_herr; mask |= HERR_SET; session->driver.ubx.last_herr = 0.0; } diff --git a/test/daemon/ublox-aek-4t.log.chk b/test/daemon/ublox-aek-4t.log.chk index 2a24bbd1..28703802 100644 --- a/test/daemon/ublox-aek-4t.log.chk +++ b/test/daemon/ublox-aek-4t.log.chk @@ -2,7 +2,7 @@ $GPZDA,231119.00,23,12,2007,00,00*68 $GPGGA,231118,2037.7569,N,08704.0845,W,2,07,,75.78,M,-13.865,M,,*52
$GPRMC,231118,A,2037.7569,N,08704.0845,W,0.0000,0.000,231207,,*3B
$GPGSA,A,3,,,,,,,,,,,,,,,*1C
-{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:18.999Z","ept":0.005,"lat":20.629282026,"lon":-87.068075525,"alt":75.777,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17}
+{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:18.999Z","ept":0.005,"lat":20.629282026,"lon":-87.068075525,"alt":75.777,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"ecefx":305449.31,"ecefy":-5963890.99,"ecefz":2233051.73,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":2.80,"ecefvAcc":0.17}
$GPGSV,2,1,08,15,67,141,32,02,21,089,31,30,21,234,50,05,18,217,40*7C
$GPGSV,2,2,08,12,16,201,41,18,25,255,41,135,33,251,45,06,54,308,24*40
{"class":"SKY","xdop":0.79,"ydop":1.64,"vdop":2.00,"tdop":1.33,"hdop":1.67,"gdop":2.92,"pdop":2.60,"satellites":[{"PRN":15,"el":67,"az":141,"ss":32,"used":true},{"PRN":2,"el":21,"az":89,"ss":31,"used":true},{"PRN":30,"el":21,"az":234,"ss":50,"used":true},{"PRN":5,"el":18,"az":217,"ss":40,"used":true},{"PRN":12,"el":16,"az":201,"ss":41,"used":true},{"PRN":18,"el":25,"az":255,"ss":41,"used":true},{"PRN":135,"el":33,"az":251,"ss":45,"used":true},{"PRN":6,"el":54,"az":308,"ss":24,"used":false}]}
@@ -10,7 +10,7 @@ $GPZDA,231125.00,23,12,2007,00,00*67 $GPGGA,231124,2037.7569,N,08704.0845,W,2,07,1.67,75.76,M,-13.865,M,,*4D
$GPRMC,231124,A,2037.7569,N,08704.0845,W,0.0000,0.000,231207,,*34
$GPGSA,A,3,15,2,30,5,12,18,135,,,,,,2.6,1.7,2.0*0F
-{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:24.999Z","ept":0.005,"lat":20.629281973,"lon":-87.068075520,"alt":75.764,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60}
+{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:24.999Z","ept":0.005,"lat":20.629281973,"lon":-87.068075520,"alt":75.764,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60,"ecefx":305449.31,"ecefy":-5963890.98,"ecefz":2233051.72,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":2.80,"ecefvAcc":0.17}
$GPGSV,2,1,08,15,67,141,32,02,21,089,32,30,21,234,50,05,18,217,40*7F
$GPGSV,2,2,08,12,16,201,41,18,25,255,41,135,33,251,45,06,54,308,25*41
{"class":"SKY","xdop":0.79,"ydop":1.64,"vdop":1.99,"tdop":1.33,"hdop":1.67,"gdop":2.92,"pdop":2.60,"satellites":[{"PRN":15,"el":67,"az":141,"ss":32,"used":true},{"PRN":2,"el":21,"az":89,"ss":32,"used":true},{"PRN":30,"el":21,"az":234,"ss":50,"used":true},{"PRN":5,"el":18,"az":217,"ss":40,"used":true},{"PRN":12,"el":16,"az":201,"ss":41,"used":true},{"PRN":18,"el":25,"az":255,"ss":41,"used":true},{"PRN":135,"el":33,"az":251,"ss":45,"used":true},{"PRN":6,"el":54,"az":308,"ss":25,"used":false}]}
@@ -18,7 +18,7 @@ $GPZDA,231126.00,23,12,2007,00,00*64 $GPGGA,231125,2037.7569,N,08704.0845,W,2,07,1.67,75.76,M,-13.865,M,,*4C
$GPRMC,231125,A,2037.7569,N,08704.0845,W,0.0000,0.000,231207,,*35
$GPGSA,A,3,15,2,30,5,12,18,135,,,,,,2.6,1.7,2.0*0F
-{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:25.999Z","ept":0.005,"lat":20.629281802,"lon":-87.068075424,"alt":75.757,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60}
+{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:25.999Z","ept":0.005,"lat":20.629281802,"lon":-87.068075424,"alt":75.757,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60,"ecefx":305449.32,"ecefy":-5963890.98,"ecefz":2233051.70,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":2.80,"ecefvAcc":0.17}
$GPGSV,2,1,08,15,67,141,33,02,21,089,33,30,21,234,50,05,18,217,40*7F
$GPGSV,2,2,08,12,16,201,41,18,25,255,41,135,33,251,45,06,54,308,24*40
{"class":"SKY","xdop":0.79,"ydop":1.64,"vdop":1.99,"tdop":1.33,"hdop":1.67,"gdop":2.92,"pdop":2.60,"satellites":[{"PRN":15,"el":67,"az":141,"ss":33,"used":true},{"PRN":2,"el":21,"az":89,"ss":33,"used":true},{"PRN":30,"el":21,"az":234,"ss":50,"used":true},{"PRN":5,"el":18,"az":217,"ss":40,"used":true},{"PRN":12,"el":16,"az":201,"ss":41,"used":true},{"PRN":18,"el":25,"az":255,"ss":41,"used":true},{"PRN":135,"el":33,"az":251,"ss":45,"used":true},{"PRN":6,"el":54,"az":308,"ss":24,"used":false}]}
@@ -26,4 +26,4 @@ $GPZDA,231127.00,23,12,2007,00,00*65 $GPGGA,231126,2037.7569,N,08704.0845,W,2,07,1.67,75.75,M,-13.865,M,,*4C
$GPRMC,231126,A,2037.7569,N,08704.0845,W,0.0000,0.000,231207,,*36
$GPGSA,A,3,15,2,30,5,12,18,135,,,,,,2.6,1.7,2.0*0F
-{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:26.999Z","ept":0.005,"lat":20.629281718,"lon":-87.068075424,"alt":75.754,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60}
+{"class":"TPV","status":2,"mode":3,"time":"2007-12-23T23:11:26.999Z","ept":0.005,"lat":20.629281718,"lon":-87.068075424,"alt":75.754,"epx":2.973,"epy":6.138,"epv":11.500,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.17,"epc":4.60,"ecefx":305449.32,"ecefy":-5963890.98,"ecefz":2233051.69,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":2.80,"ecefvAcc":0.17}
diff --git a/test/daemon/ublox-lea-4t.log.chk b/test/daemon/ublox-lea-4t.log.chk index d1e85f21..5a21baac 100644 --- a/test/daemon/ublox-lea-4t.log.chk +++ b/test/daemon/ublox-lea-4t.log.chk @@ -2,7 +2,7 @@ $GPZDA,203539.00,28,01,2009,00,00*68 $GPGGA,203539,5333.7954,N,11326.3727,W,1,08,,655.33,M,-19.872,M,,*69
$GPRMC,203539,A,5333.7954,N,11326.3727,W,0.0000,0.000,280109,,*3C
$GPGSA,A,3,,,,,,,,,,,,,,,*1C
-{"class":"TPV","mode":3,"time":"2009-01-28T20:35:39.001Z","ept":0.005,"lat":53.563256268,"lon":-113.439544853,"alt":655.331,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.18}
+{"class":"TPV","mode":3,"time":"2009-01-28T20:35:39.001Z","ept":0.005,"lat":53.563256268,"lon":-113.439544853,"alt":655.331,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.18,"ecefx":-1510299.52,"ecefy":-3483497.94,"ecefz":5108533.23,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":5.52,"ecefvAcc":0.18}
$GPGSV,3,1,11,21,73,276,33,24,56,094,46,15,40,113,30,18,40,217,43*7B
$GPGSV,3,2,11,26,40,087,45,29,40,164,34,16,28,280,33,10,21,056,38*70
$GPGSV,3,3,11,22,09,225,29,27,06,055,24,07,05,000,25*4E
@@ -12,7 +12,7 @@ $GPGGA,203544,5333.7952,N,11326.3727,W,1,08,1.15,655.35,M,-19.872,M,,*78 $GPRMC,203544,A,5333.7952,N,11326.3727,W,0.0000,0.000,280109,,*30
$GPGSA,A,3,21,24,15,18,26,29,16,10,,,,,2.4,1.1,2.1*36
$GPGBS,203544,9.05,M,14.66,M,48.99,M*3F
-{"class":"TPV","mode":3,"time":"2009-01-28T20:35:44.001Z","ept":0.005,"lat":53.563254093,"lon":-113.439545157,"alt":655.348,"epx":9.054,"epy":14.659,"epv":48.990,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.18,"epc":24.49}
+{"class":"TPV","mode":3,"time":"2009-01-28T20:35:44.001Z","ept":0.005,"lat":53.563254093,"lon":-113.439545157,"alt":655.348,"epx":9.054,"epy":14.659,"epv":48.990,"track":0.0000,"speed":0.000,"climb":0.000,"eps":0.18,"epc":24.49,"ecefx":-1510299.62,"ecefy":-3483498.12,"ecefz":5108533.10,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":5.44,"ecefvAcc":0.18}
$GPGSV,3,1,11,21,73,276,32,24,56,094,46,15,40,113,30,18,40,217,43*7A
$GPGSV,3,2,11,26,40,087,45,29,40,164,34,16,28,280,33,10,21,056,39*71
$GPGSV,3,3,11,22,09,225,29,27,06,055,24,07,05,000,26*4D
|