diff options
Diffstat (limited to 'ao-tools/lib/cc-telem.c')
| -rw-r--r-- | ao-tools/lib/cc-telem.c | 12 | 
1 files changed, 12 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;  | 
