]> git.tnoah.ca Git - lora-radio.git/commitdiff
TNC mode checks
authorMark Qvist <mark@adepta.io>
Wed, 20 Jun 2018 15:45:22 +0000 (17:45 +0200)
committerMark Qvist <mark@adepta.io>
Wed, 20 Jun 2018 15:45:22 +0000 (17:45 +0200)
Config.h
RNode_Firmware.ino

index ecdafcc743b45ca2682678ef29478ccb8d4936d8..73f4717040bfb6aeea110d207d008574aa987ddf 100644 (file)
--- a/Config.h
+++ b/Config.h
@@ -9,6 +9,9 @@
        #define MCU_328P  0x90
        #define MCU_1284P 0x91
 
+       #define MODE_HOST 0x11
+       #define MODE_TNC  0x12
+
        #if defined(__AVR_ATmega328P__)
                #define MCU_VARIANT MCU_328P
                #warning "Firmware is being compiled for atmega328p based boards"
@@ -72,6 +75,7 @@
        bool radio_locked = true;
        bool radio_online = false;
        bool hw_ready     = false;
+       uint8_t op_mode   = MODE_HOST;
        uint8_t model     = 0x00;
        uint8_t hwrev     = 0x00;
        
index cc8cdee65d787255c2e8f30701c3af63e0c540e4..8aada72b6e066e8c93e1d497b9687f9e5fc67c02 100644 (file)
@@ -232,7 +232,7 @@ void serialCallback(uint8_t sbyte) {
             kiss_indicate_frequency();
           } else {
             lora_freq = freq;
-            setFrequency();
+            if (op_mode == MODE_HOST) setFrequency();
             kiss_indicate_frequency();
           }
         }
@@ -255,7 +255,7 @@ void serialCallback(uint8_t sbyte) {
             kiss_indicate_bandwidth();
           } else {
             lora_bw = bw;
-            setBandwidth();
+            if (op_mode == MODE_HOST) setBandwidth();
             kiss_indicate_bandwidth();
           }
         }
@@ -267,7 +267,7 @@ void serialCallback(uint8_t sbyte) {
         if (txp > 17) txp = 17;
 
         lora_txp = txp;
-        setTXPower();
+        if (op_mode == MODE_HOST) setTXPower();
         kiss_indicate_txpower();
       }
     } else if (command == CMD_SF) {
@@ -279,7 +279,7 @@ void serialCallback(uint8_t sbyte) {
         if (sf > 12) sf = 12;
 
         lora_sf = sf;
-        setSpreadingFactor();
+        if (op_mode == MODE_HOST) setSpreadingFactor();
         kiss_indicate_spreadingfactor();
       }
     } else if (command == CMD_CR) {
@@ -291,7 +291,7 @@ void serialCallback(uint8_t sbyte) {
         if (cr > 8) cr = 8;
 
         lora_cr = cr;
-        setCodingRate();
+        if (op_mode == MODE_HOST) setCodingRate();
         kiss_indicate_codingrate();
       }
     } else if (command == CMD_RADIO_STATE) {
@@ -397,6 +397,7 @@ void validateStatus() {
 
         if (eeprom_have_conf()) {
           eeprom_conf_load();
+          op_mode = MODE_TNC;
           startRadio();
         }
       }