summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_ubx.c28
-rw-r--r--test/daemon/ublox-aek-4t.log.chk8
-rw-r--r--test/daemon/ublox-lea-4t.log.chk4
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