ao_config_setup();
ao_config_erase();
ao_config_write(0, &ao_config, sizeof (ao_config));
-#if HAS_FLIGHT
+#if HAS_FLIGHT && HAS_LOG
ao_log_write_erase(0);
#endif
ao_config_flush();
#if HAS_FLIGHT
+#if HAS_BARO
+
static void
ao_config_main_deploy_show(void)
{
_ao_config_edit_finish();
}
+#endif
+
#if HAS_ACCEL
static void
ao_config_accel_calibrate_show(void)
}
#endif /* HAS_ACCEL */
+#if HAS_BARO
static void
ao_config_apogee_delay_show(void)
{
ao_config.apogee_lockout = r;
_ao_config_edit_finish();
}
+#endif
#endif /* HAS_FLIGHT */
ao_config_log_set(void)
{
#if FLIGHT_LOG_APPEND
- printf("Flight log fixed size %d kB\n", ao_storage_log_max >> 10);
+ printf("Flight log fixed size %u kB\n", (unsigned) (ao_storage_log_max >> 10));
#else
- uint16_t block = (uint16_t) (ao_storage_block >> 10);
- uint16_t log_max = (uint16_t) (ao_storage_log_max >> 10);
uint32_t r;
r = 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 (block > 1024 && (r & (block - 1)))
- printf("Flight log size must be multiple of %d kB\n", block);
- else if (r > log_max)
- printf("Flight log max %d kB\n", log_max);
- else {
- _ao_config_edit_start();
- ao_config.flight_log_max = r << 10;
- _ao_config_edit_finish();
+ r = r << 10;
+ if (ao_log_present()) {
+ if (r != ao_config.flight_log_max)
+ printf("Storage must be empty before changing log size\n");
+ return;
}
+ if (r > ao_storage_log_max) {
+ printf("Flight log max %u kB\n", (unsigned) (ao_storage_log_max >> 10));
+ return;
+ }
+ _ao_config_edit_start();
+ ao_config.flight_log_max = r & ~(ao_storage_block - 1);
+ _ao_config_edit_finish();
#endif
}
#endif /* HAS_LOG */
#endif
const struct ao_config_var ao_config_vars[] = {
-#if HAS_FLIGHT
+#if HAS_FLIGHT && HAS_BARO
{ "m <meters>\0Main deploy (m)",
ao_config_main_deploy_set, ao_config_main_deploy_show, },
{ "d <delay>\0Apogee delay (s)",
ao_config_log_set, ao_config_log_show },
#endif
#if HAS_IGNITE
- { "i <0 dual, 1 apogee, 2 main>\0Igniter mode",
+ { "i <0 dual, 1 apogee, 2 main, 3 booster>\0Igniter mode",
ao_config_ignite_mode_set, ao_config_ignite_mode_show },
#endif
#if HAS_AES