diff options
| -rw-r--r-- | src/ao.h | 4 | ||||
| -rw-r--r-- | src/ao_log.c | 6 | ||||
| -rw-r--r-- | src/ao_report.c | 10 | ||||
| -rw-r--r-- | src/ao_telemetry.c | 2 | 
4 files changed, 21 insertions, 1 deletions
| @@ -628,6 +628,10 @@ ao_log_write_erase(uint8_t pos);  uint8_t  ao_log_present(void); +/* Returns true if there is no more storage space available */ +uint8_t +ao_log_full(void); +  /*   * ao_flight.c   */ diff --git a/src/ao_log.c b/src/ao_log.c index 55b9dfff..ba019992 100644 --- a/src/ao_log.c +++ b/src/ao_log.c @@ -315,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 diff --git a/src/ao_report.c b/src/ao_report.c index 511b4f16..cc8b512b 100644 --- a/src/ao_report.c +++ b/src/ao_report.c @@ -128,6 +128,16 @@ ao_report_continuity(void) __reentrant  			ao_beep_for(AO_BEEP_LOW, AO_MS_TO_TICKS(20));  		}  	} +	if (ao_log_full()) { +		pause(AO_MS_TO_TICKS(100)); +		c = 2; +		while (c--) { +			ao_beep_for(AO_BEEP_LOW, AO_MS_TO_TICKS(100)); +			ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(100)); +			ao_beep_for(AO_BEEP_HIGH, AO_MS_TO_TICKS(100)); +			ao_beep_for(AO_BEEP_MID, AO_MS_TO_TICKS(100)); +		} +	}  	c = 50;  	while (c-- && ao_flight_state == ao_flight_pad)  		pause(AO_MS_TO_TICKS(100)); diff --git a/src/ao_telemetry.c b/src/ao_telemetry.c index 277c3ce0..22ab1d67 100644 --- a/src/ao_telemetry.c +++ b/src/ao_telemetry.c @@ -34,7 +34,7 @@ ao_telemetry(void)  		ao_sleep(&ao_flight_number);  	memcpy(telemetry.callsign, ao_config.callsign, AO_MAX_CALLSIGN);  	telemetry.addr = ao_serial_number; -	telemetry.flight = ao_flight_number; +	telemetry.flight = ao_log_full() ? 0 : ao_flight_number;  	telemetry.accel_plus_g = ao_config.accel_plus_g;  	telemetry.accel_minus_g = ao_config.accel_minus_g;  	ao_rdf_time = ao_time(); | 
