From e6bad553009704af69b08b4a22fb5eb8ac6921f8 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 21 Dec 2015 21:48:37 -0800 Subject: [PATCH] altos: Support pad/lco boxes with fixed box numbers This allows for a configuration without adjustable box numbers on either end of the link, simplifying the UI. Signed-off-by: Keith Packard --- src/Makefile | 4 ++- src/kernel/ao_config.c | 27 +++++++++++++++++++++ src/kernel/ao_config.h | 3 +++ src/telefiretwo-v0.1/ao_pins.h | 1 + src/telefiretwo-v0.1/flash-loader/ao_pins.h | 6 ++++- 5 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 98607031..ecba2fbd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -39,7 +39,9 @@ ARMM3DIRS=\ telescience-v0.2 telescience-v0.2/flash-loader \ teledongle-v3.0 teledongle-v3.0/flash-loader \ teleballoon-v2.0 \ - telebt-v3.0 telebt-v3.0/flash-loader + telebt-v3.0 telebt-v3.0/flash-loader \ + telelcotwo-v0.1 telelcotwo-v0.1/flash-loader \ + telefiretwo-v0.1 telefiretwo-v0.1/flash-loader \ ARMM0DIRS=\ easymini-v1.0 easymini-v1.0/flash-loader \ diff --git a/src/kernel/ao_config.c b/src/kernel/ao_config.c index b0d3e541..d51fbb41 100644 --- a/src/kernel/ao_config.c +++ b/src/kernel/ao_config.c @@ -223,6 +223,10 @@ _ao_config_get(void) #if HAS_APRS if (minor < 22) ao_config.aprs_format = AO_CONFIG_DEFAULT_APRS_FORMAT; +#endif +#if HAS_FIXED_PAD_BOX + if (minor < 22) + ao_config.pad_box = 1; #endif ao_config.minor = AO_CONFIG_MINOR; ao_config_dirty = 1; @@ -899,6 +903,25 @@ ao_config_aprs_format_show(void) } #endif /* HAS_APRS */ +#if HAS_FIXED_PAD_BOX +void +ao_config_pad_box_show(void) +{ + printf ("Pad box: %d\n", ao_config.pad_box); +} + +void +ao_config_pad_box_set(void) +{ + ao_cmd_decimal(); + if (ao_cmd_status != ao_cmd_success) + return; + _ao_config_edit_start(); + ao_config.pad_box = ao_cmd_lex_i; + _ao_config_edit_finish(); +} +#endif + struct ao_config_var { __code char *str; void (*set)(void) __reentrant; @@ -992,6 +1015,10 @@ __code struct ao_config_var ao_config_vars[] = { ao_config_aprs_ssid_set, ao_config_aprs_ssid_show }, { "C <0 compressed, 1 uncompressed>\0APRS format", ao_config_aprs_format_set, ao_config_aprs_format_show }, +#endif +#if HAS_FIXED_PAD_BOX + { "B \0Set pad box (1-99)", + ao_config_pad_box_set, ao_config_pad_box_show }, #endif { "s\0Show", ao_config_show, 0 }, diff --git a/src/kernel/ao_config.h b/src/kernel/ao_config.h index cfe8555c..f4e9af44 100644 --- a/src/kernel/ao_config.h +++ b/src/kernel/ao_config.h @@ -118,6 +118,9 @@ struct ao_config { #if HAS_APRS uint8_t aprs_format; /* minor version 22 */ #endif +#if HAS_FIXED_PAD_BOX + uint8_t pad_box; /* minor version 22 */ +#endif }; #define AO_APRS_FORMAT_COMPRESSED 0 diff --git a/src/telefiretwo-v0.1/ao_pins.h b/src/telefiretwo-v0.1/ao_pins.h index e98b7dc7..fd840f47 100644 --- a/src/telefiretwo-v0.1/ao_pins.h +++ b/src/telefiretwo-v0.1/ao_pins.h @@ -37,6 +37,7 @@ #define PACKET_HAS_MASTER 0 #define PACKET_HAS_SLAVE 0 #define AO_DATA_RING 32 +#define HAS_FIXED_PAD_BOX 1 /* 8MHz High speed external crystal */ #define AO_HSE 8000000 diff --git a/src/telefiretwo-v0.1/flash-loader/ao_pins.h b/src/telefiretwo-v0.1/flash-loader/ao_pins.h index f6311267..daa9048d 100644 --- a/src/telefiretwo-v0.1/flash-loader/ao_pins.h +++ b/src/telefiretwo-v0.1/flash-loader/ao_pins.h @@ -23,6 +23,10 @@ #include -#define AO_BOOT_PIN 0 +#define AO_BOOT_PIN 1 +#define AO_BOOT_APPLICATION_GPIO stm_gpiob +#define AO_BOOT_APPLICATION_PIN 6 +#define AO_BOOT_APPLICATION_VALUE 1 +#define AO_BOOT_APPLICATION_MODE AO_EXTI_MODE_PULL_UP #endif /* _AO_PINS_H_ */ -- 2.30.2