summaryrefslogtreecommitdiff
path: root/ao-tools/lib
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2009-11-15 16:04:41 -0800
committerKeith Packard <keithp@keithp.com>2009-11-15 16:19:52 -0800
commit524665fc221b0d483453c67b7211e282cebc8980 (patch)
treec65642da7284f8f184382acb785e51e5fe7a08af /ao-tools/lib
parent3ee279ba76c2a79d142c466f19ef758cf4c01d70 (diff)
Add date to GPS data, captured from GPRMC packet.
Pull the date out of the GPS stream and send it over the telemetry link and write it to the eeprom. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/lib')
-rw-r--r--ao-tools/lib/cc-telem.c12
-rw-r--r--ao-tools/lib/cc.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/ao-tools/lib/cc-telem.c b/ao-tools/lib/cc-telem.c
index 0e1483f7..9a2f6155 100644
--- a/ao-tools/lib/cc-telem.c
+++ b/ao-tools/lib/cc-telem.c
@@ -127,6 +127,7 @@ cc_telem_parse(const char *input_line, struct cc_telem *telem)
if (strcmp (words[36], "unlocked") == 0) {
telem->gps.gps_connected = 1;
telem->gps.gps_locked = 0;
+ telem->gps.gps_time.year = telem->gps.gps_time.month = telem->gps.gps_time.day = 0;
telem->gps.gps_time.hour = telem->gps.gps_time.minute = telem->gps.gps_time.second = 0;
telem->gps.lat = telem->gps.lon = 0;
telem->gps.alt = 0;
@@ -134,6 +135,16 @@ cc_telem_parse(const char *input_line, struct cc_telem *telem)
} else if (nword >= 40) {
telem->gps.gps_locked = 1;
telem->gps.gps_connected = 1;
+ if (version >= 2) {
+ sscanf(words[36], "%d-%d-%d",
+ &telem->gps.gps_time.year,
+ &telem->gps.gps_time.month,
+ &telem->gps.gps_time.day);
+ words += 1;
+ nword -= 1;
+ } else {
+ telem->gps.gps_time.year = telem->gps.gps_time.month = telem->gps.gps_time.day = 0;
+ }
sscanf(words[36], "%d:%d:%d", &telem->gps.gps_time.hour, &telem->gps.gps_time.minute, &telem->gps.gps_time.second);
cc_parse_pos(&telem->gps.lat, words[37]);
cc_parse_pos(&telem->gps.lon, words[38]);
@@ -142,6 +153,7 @@ cc_telem_parse(const char *input_line, struct cc_telem *telem)
} else {
telem->gps.gps_connected = 0;
telem->gps.gps_locked = 0;
+ telem->gps.gps_time.year = telem->gps.gps_time.month = telem->gps.gps_time.day = 0;
telem->gps.gps_time.hour = telem->gps.gps_time.minute = telem->gps.gps_time.second = 0;
telem->gps.lat = telem->gps.lon = 0;
telem->gps.alt = 0;
diff --git a/ao-tools/lib/cc.h b/ao-tools/lib/cc.h
index b8e3c061..ebc0db7d 100644
--- a/ao-tools/lib/cc.h
+++ b/ao-tools/lib/cc.h
@@ -192,6 +192,9 @@ struct cc_flightcooked {
struct cc_gps_time {
+ int year;
+ int month;
+ int day;
int hour;
int minute;
int second;