with 36errors

Dependencies:   MTS-Serial libxDot-dev-mbed5-deprecated

Fork of Dot-AT-Firmware by MultiTech

Revision:
16:d5cf2af81a6d
Parent:
14:f9a77400b622
--- a/CommandTerminal/CmdTxChannel.cpp	Fri Nov 04 17:04:54 2016 -0500
+++ b/CommandTerminal/CmdTxChannel.cpp	Mon Jun 19 14:33:21 2017 -0500
@@ -1,4 +1,5 @@
 #include "CmdTxChannel.h"
+#include "ChannelPlan.h"
 
 CmdTxChannel::CmdTxChannel()
 : Command("Tx Channels", "AT+TXCH", "List Tx channel frequencies for sub-band", "<INDEX>,<FREQUENCY>,<DR_RANGE>") {
@@ -14,7 +15,7 @@
 
         CommandTerminal::Serial()->writef("Index\tFrequency  DR Max Min  On\r\n");
 
-        if (CommandTerminal::Dot()->getFrequencyBand() == mDot::FB_EU868) {
+        if (lora::ChannelPlan::IsPlanDynamic(CommandTerminal::Dot()->getFrequencyBand())) {
             for (int8_t i = 0; i < 16; i++) {
                 if (channels[i] != 0)
                     CommandTerminal::Serial()->writef("  %d\t%d      %X   %X    %d\r\n", i, channels[i], ranges[i] >> 4, ranges[i] & 0xF, (mask[0] & (0x1 << i)) ? 1 : 0);
@@ -60,7 +61,10 @@
         sscanf(args[2].c_str(), "%d", &frequency);
         sscanf(args[3].c_str(), "%02x", &datarateRange);
 
-        CommandTerminal::Dot()->addChannel(index, frequency, datarateRange);
+        if (CommandTerminal::Dot()->addChannel(index, frequency, datarateRange) != mDot::MDOT_OK) {
+            CommandTerminal::setErrorMessage("Failed to add channel");
+            return 1;
+        }
     }
 
     return 0;
@@ -80,18 +84,15 @@
         sscanf(args[2].c_str(), "%d", &frequency);
         sscanf(args[3].c_str(), "%02x", &datarateRange);
 
-        if (CommandTerminal::Dot()->getFrequencyBand() == mDot::FB_EU868) {
-            if (index < 3 || index > 15) {
-                CommandTerminal::setErrorMessage("Invalid index, expects (3-15)");
-                return false;
-            }
-
-            if (frequency != 0 && (frequency < 863000000 || frequency > 870000000)) {
-                CommandTerminal::setErrorMessage("Invalid frequency, expects (863000000-870000000)");
+        if (lora::ChannelPlan::IsPlanDynamic(CommandTerminal::Dot()->getFrequencyBand())) {
+            if (frequency != 0 && (frequency < int(CommandTerminal::Dot()->getMinFrequency()) || frequency > int(CommandTerminal::Dot()->getMaxFrequency()))) {
+                char tmp[256];
+                sprintf(tmp, "Invalid frequency, expects (0,%lu-%lu)", CommandTerminal::Dot()->getMinFrequency(), CommandTerminal::Dot()->getMaxFrequency());
+                CommandTerminal::setErrorMessage(tmp);
                 return false;
             }
         } else {
-            CommandTerminal::setErrorMessage("US915|AU915 Channels cannot be changed, use AT+FSB or AT+CHM to limit");
+            CommandTerminal::setErrorMessage("Fixed channel plans cannot be changed, use AT+FSB or AT+CHM to limit");
             return false;
         }