summaryrefslogtreecommitdiff
path: root/ao-tools
diff options
context:
space:
mode:
Diffstat (limited to 'ao-tools')
-rw-r--r--ao-tools/ao-view/aoview_state.c4
-rw-r--r--ao-tools/lib/cc-telem.c12
-rw-r--r--ao-tools/lib/cc.h3
3 files changed, 19 insertions, 0 deletions
diff --git a/ao-tools/ao-view/aoview_state.c b/ao-tools/ao-view/aoview_state.c
index 2f613d44..21cea99a 100644
--- a/ao-tools/ao-view/aoview_state.c
+++ b/ao-tools/ao-view/aoview_state.c
@@ -315,6 +315,10 @@ aoview_state_notify(struct cc_telem *data)
aoview_state_add_deg(1, "Longitude", state->gps.lon, 'E', 'W');
aoview_table_add_row(1, "GPS altitude", "%d", state->gps.alt);
aoview_table_add_row(1, "GPS height", "%d", state->gps_height);
+ aoview_table_add_row(1, "GPS date", "%04d-%02d-%02d",
+ state->gps.gps_time.year,
+ state->gps.gps_time.month,
+ state->gps.gps_time.day);
aoview_table_add_row(1, "GPS time", "%02d:%02d:%02d",
state->gps.gps_time.hour,
state->gps.gps_time.minute,
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;