X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fkernel%2Fao_log_gps.c;h=96f8140fdf04a171107eaef814599aed6e918611;hb=HEAD;hp=7284932cf6f2c98d2558931ff3895964258179d2;hpb=2f61ef9a5046c39f4eeaaf741031bb6a9607b8a6;p=fw%2Faltos diff --git a/src/kernel/ao_log_gps.c b/src/kernel/ao_log_gps.c index 7284932c..96f8140f 100644 --- a/src/kernel/ao_log_gps.c +++ b/src/kernel/ao_log_gps.c @@ -28,15 +28,15 @@ void ao_log_gps_flight(void) { ao_log_data.type = AO_LOG_FLIGHT; - ao_log_data.tick = ao_time(); + ao_log_data.tick = (uint16_t) ao_time(); ao_log_data.u.flight.flight = ao_flight_number; ao_log_write(&ao_log_data); } void -ao_log_gps_data(uint16_t tick, struct ao_telemetry_location *gps_data) +ao_log_gps_data(AO_TICK_TYPE tick, struct ao_telemetry_location *gps_data) { - ao_log_data.tick = tick; + ao_log_data.tick = (uint16_t) tick; ao_log_data.type = AO_LOG_GPS_TIME; ao_log_data.u.gps.latitude = gps_data->latitude; ao_log_data.u.gps.longitude = gps_data->longitude; @@ -61,11 +61,11 @@ ao_log_gps_data(uint16_t tick, struct ao_telemetry_location *gps_data) } void -ao_log_gps_tracking(uint16_t tick, struct ao_telemetry_satellite *gps_tracking_data) +ao_log_gps_tracking(AO_TICK_TYPE tick, struct ao_telemetry_satellite *gps_tracking_data) { uint8_t c, n, i; - ao_log_data.tick = tick; + ao_log_data.tick = (uint16_t) tick; ao_log_data.type = AO_LOG_GPS_SAT; i = 0; n = gps_tracking_data->channels; @@ -81,6 +81,18 @@ ao_log_gps_tracking(uint16_t tick, struct ao_telemetry_satellite *gps_tracking_d ao_log_write(&ao_log_data); } +static uint8_t +ao_log_check_empty(void) +{ + uint8_t *b = (void *) &ao_log_data; + unsigned i; + + for (i = 0; i < sizeof (ao_log_type); i++) + if (*b++ != AO_STORAGE_ERASED_BYTE) + return 0; + return 1; +} + int8_t ao_log_check(uint32_t pos) { @@ -89,10 +101,11 @@ ao_log_check(uint32_t pos) sizeof (struct ao_log_gps))) return AO_LOG_INVALID; - if (ao_log_check_clear()) + if (ao_log_check_empty()) return AO_LOG_EMPTY; if (!ao_log_check_data()) return AO_LOG_INVALID; + return AO_LOG_VALID; }