+
+void
+ao_config_accel_calibrate_set(void) __reentrant
+{
+ int16_t up, down;
+ ao_cmd_decimal();
+ if (ao_cmd_status != ao_cmd_success)
+ return;
+ if (ao_cmd_lex_i == 0) {
+ up = ao_config_accel_calibrate_auto("antenna up");
+ down = ao_config_accel_calibrate_auto("antenna down");
+ } else {
+ up = ao_cmd_lex_i;
+ ao_cmd_decimal();
+ if (ao_cmd_status != ao_cmd_success)
+ return;
+ down = ao_cmd_lex_i;
+ }
+ if (up >= down) {
+ printf("Invalid accel calibration: antenna up (%d) should be less than antenna down (%d)\n",
+ up, down);
+ return;
+ }
+ ao_mutex_get(&ao_config_mutex);
+ _ao_config_get();
+ ao_config.accel_plus_g = up;
+ ao_config.accel_minus_g = down;
+ ao_config_dirty = 1;
+ ao_mutex_put(&ao_config_mutex);
+ ao_config_accel_calibrate_show();
+}
+
+void
+ao_config_apogee_delay_show(void) __reentrant
+{
+ printf("Apogee delay: %d seconds\n",
+ ao_config.apogee_delay);
+}
+