log->csum = 0;
log->csum = ao_log_csum((__xdata uint8_t *) log);
ao_mutex_get(&ao_log_mutex); {
- if (ao_log_current_pos >= ao_log_end_pos)
- ao_log_running = 0;
+ 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.type = AO_LOG_FLIGHT;
log.tick = ao_flight_tick;
+#if HAS_ACCEL
log.u.flight.ground_accel = ao_ground_accel;
+#endif
log.u.flight.flight = ao_flight_number;
ao_log_data(&log);
/* Write the whole contents of the ring to the log
* when starting up.
*/
- ao_log_adc_pos = ao_adc_ring_next(ao_adc_head);
+ ao_log_adc_pos = ao_adc_ring_next(ao_flight_adc);
for (;;) {
/* Write samples to EEPROM */
- while (ao_log_adc_pos != ao_adc_head) {
+ while (ao_log_adc_pos != ao_flight_adc) {
log.type = AO_LOG_SENSOR;
log.tick = ao_adc_ring[ao_log_adc_pos].tick;
log.u.sensor.accel = ao_adc_ring[ao_log_adc_pos].accel;
__code struct ao_cmds ao_log_cmds[] = {
- { 'l', ao_log_list, "l List stored flight logs" },
- { 'd', ao_log_delete, "d <flight-number> Delete stored flight" },
- { 0, ao_log_delete, NULL },
+ { ao_log_list, "l\0List stored flight logs" },
+ { ao_log_delete, "d <flight-number>\0Delete stored flight" },
+ { 0, NULL },
};
void