altos: Support pad/lco boxes with fixed box numbers
authorKeith Packard <keithp@keithp.com>
Tue, 22 Dec 2015 05:48:37 +0000 (21:48 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 20 Apr 2016 03:21:30 +0000 (23:21 -0400)
This allows for a configuration without adjustable box numbers on
either end of the link, simplifying the UI.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/Makefile
src/kernel/ao_config.c
src/kernel/ao_config.h
src/telefiretwo-v0.1/ao_pins.h
src/telefiretwo-v0.1/flash-loader/ao_pins.h

index 98607031a8c0a871b5e2d2b7dd3232a11ac285b9..ecba2fbd7740e5b67f8935b4ec4b38d183c4ef64 100644 (file)
@@ -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 \
index b0d3e5417533ccf32e79e8fd905fc5b386d1d7b7..d51fbb415a8fe4bb83ce03a68e83f55219ebaa38 100644 (file)
@@ -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 <box>\0Set pad box (1-99)",
+         ao_config_pad_box_set, ao_config_pad_box_show },
 #endif
        { "s\0Show",
          ao_config_show,               0 },
index cfe8555c0387af784c747f9b57dd0df499f76294..f4e9af441d1567309dc70a3e274ab3c6d158c3e5 100644 (file)
@@ -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
index e98b7dc714bc9603e31daf268b63ce96c21ae0ab..fd840f476378ea3dee4e68b079e7b4f8a4fe2b3c 100644 (file)
@@ -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
index f6311267c7f685d1345b6dcd7ef6a8336c9f50f0..daa9048d22ab923595a639c9108728abecaaf285 100644 (file)
 
 #include <ao_flash_stm_pins.h>
 
-#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_ */