X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_log_fireone.c;h=853761c04de0d72c1ec1d873a1282833f1593b17;hb=f9f1776f61cf365e3c8862f9f93cd2773391da16;hp=3dd52a1651d8580de39ded647f35d6501b8a7d6a;hpb=0686a7b8aec524d81bda4c572549a3a068ce0eed;p=fw%2Faltos diff --git a/src/kernel/ao_log_fireone.c b/src/kernel/ao_log_fireone.c index 3dd52a16..853761c0 100644 --- a/src/kernel/ao_log_fireone.c +++ b/src/kernel/ao_log_fireone.c @@ -36,20 +36,20 @@ ao_log_csum(uint8_t *b) return -sum; } -uint8_t -ao_log_firetwo(struct ao_log_firetwo *log) +static uint8_t +ao_log_firetwo(void) { uint8_t wrote = 0; /* set checksum */ - log->csum = 0; - log->csum = ao_log_csum((uint8_t *) log); + log.csum = 0; + log.csum = ao_log_csum((uint8_t *) &log); ao_mutex_get(&ao_log_mutex); { if (ao_log_current_pos >= ao_log_end_pos && ao_log_running) ao_log_stop(); if (ao_log_running) { wrote = 1; ao_storage_write(ao_log_current_pos, - log, + &log, sizeof (struct ao_log_firetwo)); ao_log_current_pos += sizeof (struct ao_log_firetwo); } @@ -57,14 +57,6 @@ ao_log_firetwo(struct ao_log_firetwo *log) return wrote; } -static uint8_t -ao_log_dump_check_data(void) -{ - if (ao_log_csum((uint8_t *) &log) != 0) - return 0; - return 1; -} - #if HAS_ADC static uint8_t ao_log_data_pos; @@ -75,8 +67,6 @@ typedef uint8_t check_log_size[1-(256 % sizeof(struct ao_log_firetwo))] ; void ao_log(void) { - uint16_t ao_flight_state = ao_flight_startup; - ao_storage_setup(); do { @@ -88,13 +78,12 @@ ao_log(void) log.type = AO_LOG_FLIGHT; log.tick = ao_time(); log.u.flight.flight = ao_flight_number; - ao_log_firetwo(&log); + ao_log_firetwo(); /* Write the whole contents of the ring to the log * when starting up. */ ao_log_data_pos = ao_data_ring_next(ao_data_head); - ao_log_state = ao_flight_startup; for (;;) { /* Write samples to EEPROM */ while (ao_log_data_pos != ao_data_head) { @@ -105,22 +94,10 @@ ao_log(void) // for (i = 0; i < 4; i++) { // log.u.sensor.thermistor[i] = ao_data_ring[ao_log_data_pos].sensor.thermistor[i]; // } - ao_log_firetwo(&log); + ao_log_firetwo(); ao_log_data_pos = ao_data_ring_next(ao_log_data_pos); } - /* Write state change to EEPROM */ - if (ao_flight_state != ao_log_state) { - ao_log_state = ao_flight_state; - log.type = AO_LOG_STATE; - log.tick = ao_time(); - log.u.state.state = ao_log_state; - log.u.state.reason = 0; - ao_log_firetwo(&log); - - if (ao_log_state == ao_flight_landed) - ao_log_stop(); - } - + ao_log_flush(); if (!ao_log_running) break; @@ -131,15 +108,3 @@ ao_log(void) } while (ao_log_running); } -uint16_t -ao_log_flight(uint8_t slot) -{ - if (!ao_storage_read(ao_log_pos(slot), - &log, - sizeof (struct ao_log_firetwo))) - return 0; - - if (ao_log_dump_check_data() && log.type == AO_LOG_FLIGHT) - return log.u.flight.flight; - return 0; -}