Text menu driven ANSI/VT100 console test utility for LoRa transceivers

radio chip selection

Radio chip driver is not included, allowing choice of radio device.
If you're using SX1272 or SX1276, then import sx127x driver into your program.
if you're using SX1261 or SX1262, then import sx126x driver into your program.
if you're using SX1280, then import sx1280 driver into your program.
if you're using LR1110, then import LR1110 driver into your program.
If you're using NAmote72 or Murata discovery, then you must import only sx127x driver.
If you're using Type1SJ select target DISCO_L072CZ_LRWAN1 and import sx126x driver into your program.

This is VT100 text-based menu driven test program for SX12xx transceiver devices.
Serial console is divided into horizontally into top half and bottom half.
The bottom half serves as scrolling area to log activity.
The top half serves as menu, to configure the radio.
For all devices, the serial console operates at 115200 8N1, and requires terminal with ANSI-VT100 capability, such as putty/teraterm/minicom etc.
Use program only with keyboard up/down/left/right keys. Enter to change an item, or number for value item. Some items are single bit, requiring only enter key to toggle. Others with fixed choices give a drop-down menu.

Revision:
2:ea9245bb1c53
Parent:
1:0817a150122b
Child:
3:56fc764dee0a
--- a/radio_sx126x_private.h	Mon Aug 20 18:13:09 2018 -0700
+++ b/radio_sx126x_private.h	Wed Aug 22 09:50:32 2018 -0700
@@ -1,6 +1,8 @@
         static uint8_t pktType;
         static uint8_t bw_idx;
 
+        static void cadDone(bool);
+
         static void chipModeChange(void);
         static uint8_t tx_param_buf[2];
         static uint8_t pa_config_buf[4];
@@ -57,6 +59,33 @@
         static bool lora_inviq_push(void);
         static const toggle_item_t lora_inviq_item;
 
+        static void cad_push(void);
+        static const button_item_t lora_cad_item;
+
+        static uint8_t cadParams[7];
+
+        static unsigned lora_cadsymbs_read(bool);
+        static menuMode_e lora_cadsymbs_write(unsigned sidx);
+        static const dropdown_item_t lora_cadsymbs_item;
+
+        static void lora_cadpnratio_print(void);
+        static bool lora_cadpnratio_write(const char*);
+        static const value_item_t lora_cadpnratio_item;
+
+        static void lora_cadmin_print(void);
+        static bool lora_cadmin_write(const char*);
+        static const value_item_t lora_cadmin_item;
+
+        static bool lora_cadexit_read(void);
+        static bool lora_cadexit_push(void);
+        static const toggle_item_t lora_cadexit_item;
+
+        static void lora_cadtimeout_print(void);
+        static bool lora_cadtimeout_write(const char*);
+        static const value_item_t lora_cadtimeout_item;
+
+        /*************************************************/
+
         static void gfsk_bitrate_print(void);
         static bool gfsk_bitrate_write(const char*);
         static const value_item_t gfsk_bitrate_item;
@@ -124,3 +153,4 @@
         static void gfsk_whiteInit_print(void);
         static bool gfsk_whiteInit_write(const char*);
         static const value_item_t gfsk_whiteInit_item;
+