X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_config.c;h=e5f8efba95c1255b5606e7d4212931bceaa12302;hb=1894b51daceaf9fb6b49a0625e09a366985d15b6;hp=4482f673f59c0fdbbe132f0c52bcd89d1095a762;hpb=24167015705ae831692b95735968b04a876f935e;p=fw%2Faltos diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index 4482f673..e5f8efba 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -22,6 +22,12 @@ #include #include #endif +#if HAS_BEEP +#include +#endif +#if HAS_TRACKER +#include +#endif __xdata struct ao_config ao_config; __pdata uint8_t ao_config_loaded; @@ -170,6 +176,16 @@ _ao_config_get(void) ao_config.accel_plus_g = 0; ao_config.accel_minus_g = 0; } +#endif +#if HAS_BEEP_CONFIG + if (minor < 16) + ao_config.mid_beep = AO_BEEP_MID_DEFAULT; +#endif +#if HAS_TRACKER + if (minor < 17) { + ao_config.tracker_start_horiz = AO_CONFIG_DEFAULT_TRACKER_START_HORIZ; + ao_config.tracker_start_vert = AO_CONFIG_DEFAULT_TRACKER_START_VERT; + } #endif ao_config.minor = AO_CONFIG_MINOR; ao_config_dirty = 1; @@ -357,7 +373,7 @@ ao_config_accel_calibrate_set(void) __reentrant int16_t accel_across_up = 0, accel_across_down = 0; int16_t accel_through_up = 0, accel_through_down = 0; #endif - + ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; @@ -555,7 +571,7 @@ ao_config_radio_enable_set(void) __reentrant _ao_config_edit_finish(); } #endif /* HAS_RADIO */ - + #if HAS_AES __xdata uint8_t ao_config_aes_seq = 1; @@ -650,6 +666,53 @@ ao_config_radio_power_set(void) #endif +#if HAS_BEEP_CONFIG +void +ao_config_beep_show(void) +{ + printf ("Beeper setting: %d\n", ao_config.mid_beep); +} + +void +ao_config_beep_set(void) +{ + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + _ao_config_edit_start(); + ao_config.mid_beep = ao_cmd_lex_i; + _ao_config_edit_finish(); +} +#endif + +#if HAS_TRACKER +void +ao_config_tracker_show(void) +{ + printf ("Tracker setting: %d %d\n", + ao_config.tracker_start_horiz, + ao_config.tracker_start_vert); +} + +void +ao_config_tracker_set(void) +{ + uint16_t h, v; + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + h = ao_cmd_lex_i; + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + v = ao_cmd_lex_i; + _ao_config_edit_start(); + ao_config.tracker_start_horiz = h; + ao_config.tracker_start_vert = v; + _ao_config_edit_finish(); +} +#endif /* HAS_TRACKER */ + struct ao_config_var { __code char *str; void (*set)(void) __reentrant; @@ -697,7 +760,7 @@ __code struct ao_config_var ao_config_vars[] = { #if HAS_ACCEL { "a <+g> <-g>\0Accel calib (0 for auto)", ao_config_accel_calibrate_set,ao_config_accel_calibrate_show }, - { "o <0 antenna up, 1 antenna down>\0Set pad orientation", + { "o <0 antenna up, 1 antenna down>\0Pad orientation", ao_config_pad_orientation_set,ao_config_pad_orientation_show }, #endif /* HAS_ACCEL */ #if HAS_LOG @@ -705,20 +768,28 @@ __code struct ao_config_var ao_config_vars[] = { ao_config_log_set, ao_config_log_show }, #endif #if HAS_IGNITE - { "i <0 dual, 1 apogee, 2 main>\0Set igniter mode", + { "i <0 dual, 1 apogee, 2 main>\0Igniter mode", ao_config_ignite_mode_set, ao_config_ignite_mode_show }, #endif #if HAS_AES - { "k <32 hex digits>\0Set AES encryption key", + { "k <32 hex digits>\0AES encryption key", ao_config_key_set, ao_config_key_show }, #endif #if AO_PYRO_NUM - { "P \0Configure pyro channels", + { "P \0Pyro channels", ao_pyro_set, ao_pyro_show }, #endif #if HAS_APRS { "A \0APRS packet interval (0 disable)", ao_config_aprs_set, ao_config_aprs_show }, +#endif +#if HAS_BEEP_CONFIG + { "b \0Beeper tone (freq = 1/2 (24e6/32) / beep", + ao_config_beep_set, ao_config_beep_show }, +#endif +#if HAS_TRACKER + { "t \0Tracker start trigger distances", + ao_config_tracker_set, ao_config_tracker_show }, #endif { "s\0Show", ao_config_show, 0 },