summaryrefslogtreecommitdiff
path: root/src/kernel/ao_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/ao_config.c')
-rw-r--r--src/kernel/ao_config.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c
index 4482f673..411399d7 100644
--- a/src/kernel/ao_config.c
+++ b/src/kernel/ao_config.c
@@ -22,6 +22,9 @@
#include <ao_sample.h>
#include <ao_data.h>
#endif
+#if HAS_BEEP
+#include <ao_beep.h>
+#endif
__xdata struct ao_config ao_config;
__pdata uint8_t ao_config_loaded;
@@ -171,6 +174,10 @@ _ao_config_get(void)
ao_config.accel_minus_g = 0;
}
#endif
+#if HAS_BEEP_CONFIG
+ if (minor < 16)
+ ao_config.mid_beep = AO_BEEP_MID_DEFAULT;
+#endif
ao_config.minor = AO_CONFIG_MINOR;
ao_config_dirty = 1;
}
@@ -357,7 +364,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 +562,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 +657,26 @@ 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
+
+
struct ao_config_var {
__code char *str;
void (*set)(void) __reentrant;
@@ -720,6 +747,10 @@ __code struct ao_config_var ao_config_vars[] = {
{ "A <secs>\0APRS packet interval (0 disable)",
ao_config_aprs_set, ao_config_aprs_show },
#endif
+#if HAS_BEEP_CONFIG
+ { "b <val>\0Configure beeper tone (freq = 1/2 (24e6/32) / beep",
+ ao_config_beep_set, ao_config_beep_show },
+#endif
{ "s\0Show",
ao_config_show, 0 },
#if HAS_EEPROM