summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--driver_skytraq.c18
-rw-r--r--test/daemon/skytraq-bin.log.chk2
2 files changed, 12 insertions, 8 deletions
diff --git a/driver_skytraq.c b/driver_skytraq.c
index 2861d39b..0f23d4fd 100644
--- a/driver_skytraq.c
+++ b/driver_skytraq.c
@@ -293,13 +293,17 @@ static gps_mask_t sky_msg_DF(struct gps_device_t *session,
f_tow = getbed64((const char *)buf, 5);
/* position/velocity is bytes 13-48, meters and m/s */
+ session->newdata.ecef.x = (double)getbed64((const char *)buf, 13),
+ session->newdata.ecef.y = (double)getbed64((const char *)buf, 21),
+ session->newdata.ecef.z = (double)getbed64((const char *)buf, 29),
+ session->newdata.ecef.vx = (double)getbef32((const char *)buf, 37),
+ session->newdata.ecef.vy = (double)getbef32((const char *)buf, 41),
+ session->newdata.ecef.vz = (double)getbef32((const char *)buf, 46);
+
ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
- (double)getbed64((const char *)buf, 13),
- (double)getbed64((const char *)buf, 21),
- (double)getbed64((const char *)buf, 29),
- (double)getbef32((const char *)buf, 37),
- (double)getbef32((const char *)buf, 41),
- (double)getbef32((const char *)buf, 46));
+ session->newdata.ecef.x, session->newdata.ecef.y,
+ session->newdata.ecef.z, session->newdata.ecef.vx,
+ session->newdata.ecef.vy, session->newdata.ecef.vz);
clock_bias = getbed64((const char *)buf, 49);
clock_drift = getbes32(buf, 57);
@@ -325,7 +329,7 @@ static gps_mask_t sky_msg_DF(struct gps_device_t *session,
session->gpsdata.dop.vdop,
session->gpsdata.dop.tdop);
- mask |= TIME_SET | LATLON_SET | TRACK_SET |
+ mask |= TIME_SET | LATLON_SET | TRACK_SET | ECEF_SET | VECEF_SET |
SPEED_SET | STATUS_SET | MODE_SET | DOP_SET | CLEAR_IS | REPORT_IS;
return mask;
}
diff --git a/test/daemon/skytraq-bin.log.chk b/test/daemon/skytraq-bin.log.chk
index ab08b4ea..d22e6460 100644
--- a/test/daemon/skytraq-bin.log.chk
+++ b/test/daemon/skytraq-bin.log.chk
@@ -7,7 +7,7 @@
{"class":"SKY","time":"2016-04-01T03:35:39.000Z","xdop":1.88,"ydop":1.91,"vdop":0.96,"tdop":0.94,"hdop":1.53,"gdop":2.04,"pdop":1.81,"satellites":[{"PRN":2,"el":45,"az":180,"ss":32,"used":true},{"PRN":28,"el":9,"az":112,"ss":27,"used":true},{"PRN":12,"el":48,"az":308,"ss":19,"used":false},{"PRN":24,"el":54,"az":246,"ss":22,"used":true},{"PRN":17,"el":30,"az":60,"ss":22,"used":true},{"PRN":19,"el":58,"az":50,"ss":22,"used":false},{"PRN":211,"el":77,"az":31,"ss":0,"used":false}]}
{"class":"TPV","mode":2,"time":"2016-04-01T03:35:40.999Z","ept":0.005,"lat":44.068732537,"lon":-121.314145097,"epx":28.270,"epy":28.598,"track":360.0000,"speed":5.259,"eps":57.20}
{"class":"SKY","time":"2016-04-01T03:35:39.000Z","xdop":1.88,"ydop":1.91,"vdop":0.98,"tdop":0.96,"hdop":1.66,"gdop":2.16,"pdop":1.93,"satellites":[{"PRN":2,"el":45,"az":180,"ss":32,"used":true},{"PRN":28,"el":9,"az":112,"ss":26,"used":true},{"PRN":12,"el":48,"az":308,"ss":18,"used":false},{"PRN":24,"el":54,"az":246,"ss":22,"used":true},{"PRN":17,"el":30,"az":60,"ss":21,"used":true},{"PRN":19,"el":58,"az":50,"ss":21,"used":true},{"PRN":211,"el":77,"az":31,"ss":0,"used":false}]}
-{"class":"TPV","mode":3,"time":"2016-04-01T03:35:41.999Z","ept":0.005,"lat":44.068876943,"lon":-121.314390414,"alt":1087.648,"epx":28.270,"epy":28.598,"epv":84.515,"track":296.7515,"speed":0.163,"climb":-0.064,"eps":57.20}
+{"class":"TPV","mode":3,"time":"2016-04-01T03:35:41.999Z","ept":0.005,"lat":44.068876943,"lon":-121.314390414,"alt":1087.648,"epx":28.270,"epy":28.598,"epv":84.515,"track":296.7515,"speed":0.163,"climb":-0.064,"eps":57.20,"ecefx":-2386057.80,"ecefy":-3922156.18,"ecefz":4414336.08,"ecefvx":-0.07,"ecefvy":0.16,"ecefvz":0.01}
{"class":"SUBFRAME","tSV":2,"TOW17":74160,"frame":5,"scaled":false,"ALMANAC":{"ID":7,"Health":0,"e":19297,"toa":144,"deltai":4043,"Omegad":-687,"sqrtA":10554601,"Omega0":5340006,"omega":-7160232,"M0":-7566383,"af0":485,"af1":-1}}
{"class":"SUBFRAME","tSV":28,"TOW17":74160,"frame":5,"scaled":false,"ALMANAC":{"ID":7,"Health":0,"e":19308,"toa":15,"deltai":4038,"Omegad":-694,"sqrtA":10554595,"Omega0":5016824,"omega":-7160038,"M0":5417976,"af0":484,"af1":-1}}
{"class":"SKY","time":"2016-04-01T03:35:39.000Z","xdop":1.88,"ydop":1.91,"vdop":3.67,"tdop":2.90,"hdop":2.44,"gdop":5.28,"pdop":4.41,"satellites":[{"PRN":2,"el":45,"az":180,"ss":32,"used":true},{"PRN":28,"el":9,"az":112,"ss":27,"used":true},{"PRN":12,"el":48,"az":308,"ss":17,"used":false},{"PRN":24,"el":54,"az":246,"ss":21,"used":true},{"PRN":17,"el":30,"az":60,"ss":22,"used":false},{"PRN":19,"el":58,"az":50,"ss":21,"used":true},{"PRN":211,"el":77,"az":31,"ss":0,"used":false}]}