X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fao_config.c;h=c6d36247f1b5504f6e034cd879bdbe2df23834ab;hb=02611efea0c485d78fad08c696c1f56e868d36b8;hp=a3e0a64f3451e2d76bd01c1ef58767b2f2c8b29b;hpb=2722703bd848b07a02d3ce0c83a502eca52a9f1d;p=fw%2Faltos diff --git a/src/ao_config.c b/src/ao_config.c index a3e0a64f..c6d36247 100644 --- a/src/ao_config.c +++ b/src/ao_config.c @@ -70,6 +70,7 @@ _ao_config_get(void) sizeof(AO_CONFIG_DEFAULT_CALLSIGN) - 1); ao_config.apogee_delay = AO_CONFIG_DEFAULT_APOGEE_DELAY; ao_config.radio_cal = ao_radio_cal; + ao_config.flight_log_max = AO_CONFIG_DEFAULT_FLIGHT_LOG_MAX; ao_config_dirty = 1; } if (ao_config.minor < AO_CONFIG_MINOR) { @@ -209,10 +210,10 @@ ao_config_accel_calibrate_auto(char *orientation) __reentrant puts("Calibrating..."); flush(); i = ACCEL_CALIBRATE_SAMPLES; accel_total = 0; - cal_adc_ring = ao_adc_head; + cal_adc_ring = ao_flight_adc; while (i) { - ao_sleep(&ao_adc_ring); - while (i && cal_adc_ring != ao_adc_head) { + ao_sleep(DATA_TO_XDATA(&ao_flight_adc)); + while (i && cal_adc_ring != ao_flight_adc) { accel_total += (int32_t) ao_adc_ring[cal_adc_ring].accel; cal_adc_ring = ao_adc_ring_next(cal_adc_ring); i--; @@ -305,17 +306,22 @@ ao_config_log_show(void) __reentrant void ao_config_log_set(void) __reentrant { + uint16_t block = (uint16_t) (ao_storage_block >> 10); + uint16_t config = (uint16_t) (ao_storage_config >> 10); + ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; if (ao_log_present()) printf("Storage must be empty before changing log size\n"); - else if (ao_storage_block > 1024 && (ao_cmd_lex_u32 & ((ao_storage_block >> 10) - 1))) - printf("Flight log size must be multiple of %ld\n", ao_storage_block >> 10); + else if (block > 1024 && (ao_cmd_lex_i & (block - 1))) + printf("Flight log size must be multiple of %d kB\n", block); + else if (ao_cmd_lex_i > config) + printf("Flight log max %d kB\n", config); else { ao_mutex_get(&ao_config_mutex); _ao_config_get(); - ao_config.flight_log_max = ao_cmd_lex_u32 << 10; + ao_config.flight_log_max = (uint32_t) ao_cmd_lex_i << 10; ao_config_dirty = 1; ao_mutex_put(&ao_config_mutex); ao_config_log_show(); @@ -433,8 +439,8 @@ ao_config_write(void) __reentrant #endif __code struct ao_cmds ao_config_cmds[] = { - { 'c', ao_config_set, "c Set config variable (? for help, s to show)" }, - { '\0', ao_config_set, NULL }, + { ao_config_set, "c \0Set config variable (? for help, s to show)" }, + { 0, NULL }, }; void