X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_log.c;h=ba01999275745d806e2c220bf81381c03414400e;hp=47f24f0195151b95289e3729af64f589d13e40d0;hb=52ac83fedbfd380d14d4df2e79992bbdfba3552a;hpb=2722703bd848b07a02d3ce0c83a502eca52a9f1d diff --git a/src/ao_log.c b/src/ao_log.c index 47f24f01..ba019992 100644 --- a/src/ao_log.c +++ b/src/ao_log.c @@ -170,6 +170,7 @@ ao_log_write_erase(uint8_t pos) erase.unused = 0x00; erase.flight = ao_flight_number; ao_storage_write(ao_log_erase_pos(pos), &erase, sizeof (erase)); + ao_storage_flush(); } static void @@ -314,6 +315,12 @@ ao_log_present(void) return ao_log_max_flight() != 0; } +uint8_t +ao_log_full(void) +{ + return ao_log_current_pos == ao_log_end_pos; +} + static __xdata struct ao_task ao_log_task; void @@ -328,8 +335,10 @@ ao_log_list(void) __reentrant { flight = ao_log_flight(slot); if (flight) - printf ("flight %d start %ld end %ld\n", - flight, ao_log_pos(slot), ao_log_pos(slot+1)); + printf ("flight %d start %x end %x\n", + flight, + (uint16_t) (ao_log_pos(slot) >> 8), + (uint16_t) (ao_log_pos(slot+1) >> 8)); } printf ("done\n"); } @@ -348,6 +357,7 @@ ao_log_delete(void) __reentrant /* Look for the flight log matching the requested flight */ for (slot = 0; slot < slots; slot++) { if (ao_log_flight(slot) == ao_cmd_lex_i) { + ao_log_erase_mark(); ao_log_current_pos = ao_log_pos(slot); ao_log_end_pos = ao_log_current_pos + ao_config.flight_log_max; while (ao_log_current_pos < ao_log_end_pos) { @@ -372,7 +382,6 @@ ao_log_delete(void) __reentrant return; } } - ao_log_erase_mark(); printf("No such flight: %d\n", ao_cmd_lex_i); }