diff options
| author | Keith Packard <keithp@keithp.com> | 2017-10-22 15:44:32 -0500 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-10-28 08:42:18 -0700 | 
| commit | 83929cd290279963b01b2ccd52c70d61bdeff6b0 (patch) | |
| tree | 1e76700f3322f9db686c661cbec036d8000510a9 /src/kernel/ao_gps_report.c | |
| parent | 256ddea8c430b4b5dcb8bb95c19ad26032129e1b (diff) | |
altos: Share common logging code. Deal with corrupt initial flight records
Move common logging APIs from per-format files into ao_log.c. Then,
change that code to check the first log record in a slot (containing
the flight number) to see if it's invalid and deal with it. That
involves not re-using that slot, and allowing it to be erased.
Corrupted log blocks are reported with a negative flight number.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_gps_report.c')
| -rw-r--r-- | src/kernel/ao_gps_report.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/src/kernel/ao_gps_report.c b/src/kernel/ao_gps_report.c index 39688fea..75c2f367 100644 --- a/src/kernel/ao_gps_report.c +++ b/src/kernel/ao_gps_report.c @@ -45,13 +45,13 @@ ao_gps_report(void)  			gps_log.u.gps_time.minute = gps_data.minute;  			gps_log.u.gps_time.second = gps_data.second;  			gps_log.u.gps_time.flags = gps_data.flags; -			ao_log_data(&gps_log); +			ao_log_write(&gps_log);  			gps_log.type = AO_LOG_GPS_LAT;  			gps_log.u.gps_latitude = gps_data.latitude; -			ao_log_data(&gps_log); +			ao_log_write(&gps_log);  			gps_log.type = AO_LOG_GPS_LON;  			gps_log.u.gps_longitude = gps_data.longitude; -			ao_log_data(&gps_log); +			ao_log_write(&gps_log);  			gps_log.type = AO_LOG_GPS_ALT;  			gps_log.u.gps_altitude.altitude_low = gps_data.altitude_low;  #if HAS_WIDE_GPS @@ -59,14 +59,14 @@ ao_gps_report(void)  #else  			gps_log.u.gps_altitude.altitude_high = 0xffff;  #endif -			ao_log_data(&gps_log); +			ao_log_write(&gps_log);  			if (!date_reported && (gps_data.flags & AO_GPS_DATE_VALID)) {  				gps_log.type = AO_LOG_GPS_DATE;  				gps_log.u.gps_date.year = gps_data.year;  				gps_log.u.gps_date.month = gps_data.month;  				gps_log.u.gps_date.day = gps_data.day;  				gps_log.u.gps_date.extra = 0; -				date_reported = ao_log_data(&gps_log); +				date_reported = ao_log_write(&gps_log);  			}  		}  		if (new & AO_GPS_NEW_TRACKING) { @@ -78,7 +78,7 @@ ao_gps_report(void)  					if ((gps_log.u.gps_sat.svid = gps_tracking_data.sats[c].svid))  					{  						gps_log.u.gps_sat.c_n = gps_tracking_data.sats[c].c_n_1; -						ao_log_data(&gps_log); +						ao_log_write(&gps_log);  					}  			}  		} | 
