summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/ao.h7
-rw-r--r--src/core/ao_config.c14
2 files changed, 18 insertions, 3 deletions
diff --git a/src/core/ao.h b/src/core/ao.h
index 0ad3e4aa..731b43c8 100644
--- a/src/core/ao.h
+++ b/src/core/ao.h
@@ -749,7 +749,8 @@ struct ao_config {
#if AO_PYRO_NUM
struct ao_pyro pyro[AO_PYRO_NUM]; /* minor version 12 */
#endif
- uint16_t aprs_interval; /* minor version 13 */
+ uint8_t aprs_interval; /* minor version 13 */
+ uint8_t aprs_width; /* minor version 13 */
#if HAS_RADIO_POWER
uint8_t radio_power; /* minor version 14 */
#endif
@@ -769,6 +770,10 @@ struct ao_config {
#define AO_PAD_ORIENTATION_ANTENNA_UP 0
#define AO_PAD_ORIENTATION_ANTENNA_DOWN 1
+#define AO_APRS_WIDTH_NARROW 0
+#define AO_APRS_WIDTH_MEDIUM 1
+#define AO_APRS_WIDTH_WIDE 2
+
extern __xdata struct ao_config ao_config;
#define AO_CONFIG_MAX_SIZE 128
diff --git a/src/core/ao_config.c b/src/core/ao_config.c
index 73608a55..eea1f832 100644
--- a/src/core/ao_config.c
+++ b/src/core/ao_config.c
@@ -141,8 +141,10 @@ _ao_config_get(void)
if (minor < 12)
memset(&ao_config.pyro, '\0', sizeof (ao_config.pyro));
#endif
- if (minor < 13)
+ if (minor < 13) {
ao_config.aprs_interval = 0;
+ ao_config.aprs_width = AO_APRS_WIDTH_MEDIUM;
+ }
#if HAS_RADIO_POWER
if (minor < 14)
ao_config.radio_power = AO_CONFIG_DEFAULT_RADIO_POWER;
@@ -518,7 +520,7 @@ ao_config_key_set(void) __reentrant
void
ao_config_aprs_show(void)
{
- printf ("APRS interval: %d\n", ao_config.aprs_interval);
+ printf ("APRS interval: %d width %d\n", ao_config.aprs_interval, ao_config.aprs_width);
}
void
@@ -529,6 +531,14 @@ ao_config_aprs_set(void)
return;
_ao_config_edit_start();
ao_config.aprs_interval = ao_cmd_lex_i;
+ ao_cmd_decimal();
+ if (ao_cmd_status == ao_cmd_success &&
+ AO_APRS_WIDTH_NARROW <= ao_cmd_lex_i &&
+ ao_cmd_lex_i <= AO_APRS_WIDTH_WIDE)
+ {
+ ao_config.aprs_width = ao_cmd_lex_i;
+ } else
+ ao_config.aprs_width = AO_APRS_WIDTH_MEDIUM;
_ao_config_edit_finish();
}