Federico Andrades / Mbed OS Dot-AT-Firmware

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

Fork of Dot-AT-Firmware by MultiTech

Files at this revision

API Documentation at this revision

Comitter:
jenkins@jenkinsdm1
Date:
Mon Jun 19 15:54:03 2017 -0500
Parent:
16:d5cf2af81a6d
Child:
18:75cd82d6298c
Commit message:
mdot-firmware revision 3.0.0-rc7

Changed in this revision

CommandTerminal/CmdDefaultFrequencyBand.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdDefaultFrequencyBand.h Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdLBTRSSI.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdLBTRSSI.h Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdLbt.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdLbt.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdDefaultFrequencyBand.cpp	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,83 @@
+#include "CmdDefaultFrequencyBand.h"
+#include "ChannelPlans.h"
+
+CmdDefaultFrequencyBand::CmdDefaultFrequencyBand() :
+        Command("Default Frequency Band", "AT+DFREQ", "Frequency Band Device Was Manufactured For 'US915', 'AU915', 'EU868', 'AS923', 'KR920', 'AS923-JAPAN', or 'NONE'", "(NONE,US915,AU915,EU868,AS923,KR920,AS923-JAPAN)")
+{
+    _queryable = true;
+}
+
+uint32_t CmdDefaultFrequencyBand::action(std::vector<std::string> args)
+                                  {
+    if (args.size() == 1)
+    {
+        CommandTerminal::Serial()->writef("%s\r\n", CommandTerminal::Dot()->FrequencyBandStr(CommandTerminal::Dot()->getDefaultFrequencyBand()).c_str());
+    }
+
+#ifdef DEBUG_MAC
+    else if (args.size() == 2)
+    {
+        uint8_t band = lora::ChannelPlan::US915;
+        std::string band_str = mts::Text::toUpper(args[1]);
+
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::NONE) == band_str) {
+            band = lora::ChannelPlan::NONE;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::US915) == band_str) {
+            band = lora::ChannelPlan::US915;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::AU915) == band_str) {
+            band = lora::ChannelPlan::AU915;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::EU868) == band_str) {
+            band = lora::ChannelPlan::EU868;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::AS923) == band_str) {
+            band = lora::ChannelPlan::AS923;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::KR920) == band_str) {
+            band = lora::ChannelPlan::KR920;
+        }
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::AS923_JAPAN) == band_str) {
+            band = lora::ChannelPlan::AS923_JAPAN;
+        }
+
+        if (CommandTerminal::Dot()->setDefaultFrequencyBand(band) != mDot::MDOT_OK) {
+            CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
+            return 1;
+        }
+    }
+#endif
+
+    return 0;
+}
+
+bool CmdDefaultFrequencyBand::verify(std::vector<std::string> args)
+                              {
+    if (args.size() == 1)
+        return true;
+
+#ifdef DEBUG_MAC
+    if (args.size() == 2)
+    {
+        std::string band = mts::Text::toUpper(args[1]);
+
+        if (mDot::FrequencyBandStr(lora::ChannelPlan::NONE) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::US915) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::AU915) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::EU868) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::AS923) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::KR920) != band &&
+            mDot::FrequencyBandStr(lora::ChannelPlan::AS923_JAPAN) != band)
+        {
+            CommandTerminal::setErrorMessage("Invalid parameter, expects (NONE,US915,AU915,EU868,AS923,KR920,AS923-JAPAN)");
+            return false;
+        }
+
+        return true;
+    }
+#endif
+
+    CommandTerminal::setErrorMessage("Invalid arguments");
+    return false;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdDefaultFrequencyBand.h	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,21 @@
+#ifndef __CMDDEFAULTFREQUENCYBAND_H__
+#define __CMDDEFAULTFREQUENCYBAND_H__
+
+#include "Command.h"
+
+class CommandTerminal;
+
+class CmdDefaultFrequencyBand : public Command {
+
+public:
+
+    CmdDefaultFrequencyBand();
+    static uint32_t action(std::vector<std::string> args);
+    static bool verify(std::vector<std::string> args);
+    
+private:   
+
+    
+};
+
+#endif // __CMDDEFAULTFREQUENCYBAND_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdLBTRSSI.cpp	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,22 @@
+#include "CmdLBTRSSI.h"
+
+CmdLBTRSSI::CmdLBTRSSI()
+:
+  Command("LBT RSSI", "AT+LBTRSSI", "READ LBT RSSI", "(-128-0)")
+{
+    _queryable = true;
+}
+
+uint32_t CmdLBTRSSI::action(std::vector<std::string> args)
+{
+#ifdef DEBUG_MAC
+    CommandTerminal::Serial()->writef("%d\r\n", CommandTerminal::Dot()->lbtRssi());
+#endif
+    return 0;
+}
+
+bool CmdLBTRSSI::verify(std::vector<std::string> args)
+{
+
+    return true;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdLBTRSSI.h	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,20 @@
+#ifndef __CmdLBTRSSI_H__
+#define __CmdLBTRSSI_H__
+
+#include "Command.h"
+
+class CommandTerminal;
+
+class CmdLBTRSSI : public Command {
+
+public:
+
+    CmdLBTRSSI();
+    static uint32_t action(std::vector<std::string> args);
+    static bool verify(std::vector<std::string> args);
+    
+private:   
+    
+};
+
+#endif // __CmdLBTRSSI_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdLbt.cpp	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,54 @@
+#include "CmdLbt.h"
+
+CmdLbt::CmdLbt() :
+    Command("Listen Before Talk", "AT+LBT", "Enable/Disable listen before talk (0,0: disable, time,threshold: enable)", "time(0-65535 us),threshold(-127-128 dBm) (0,0: disable, time,threshold: enable)")
+{
+    _queryable = true;
+}
+
+uint32_t CmdLbt::action(std::vector<std::string> args)
+{
+    if (args.size() == 1)
+    {
+        CommandTerminal::Serial()->writef("%u,%d\r\n", CommandTerminal::Dot()->getLbtTimeUs(), CommandTerminal::Dot()->getLbtThreshold());
+    }
+    else
+    {
+        uint32_t us;
+        int32_t rssi;
+
+        sscanf(args[1].c_str(), "%lu", &us);
+        sscanf(args[2].c_str(), "%ld", &rssi);
+
+        CommandTerminal::Dot()->setLbtTimeUs((uint16_t)us);
+        CommandTerminal::Dot()->setLbtThreshold((int8_t)rssi);
+    }
+
+    return 0;
+}
+
+bool CmdLbt::verify(std::vector<std::string> args)
+{
+    if (args.size() == 1)
+        return true;
+
+    if (args.size() == 3) {
+        uint32_t us;
+        int32_t rssi;
+
+        if (args[1].find("-") != std::string::npos || sscanf(args[1].c_str(), "%lu", &us) != 1 || us > 65535) {
+            CommandTerminal::setErrorMessage("Invalid LBT time, expects 0-65535 us");
+            return false;
+        }
+
+        if (sscanf(args[2].c_str(), "%ld", &rssi) != 1 || rssi < -127 || rssi > 128) {
+            CommandTerminal::setErrorMessage("Invalid LBT threshold, expects -127-128 dBm");
+            return false;
+        }
+
+        return true;
+    }
+
+    CommandTerminal::setErrorMessage("Invalid arguments");
+    return false;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CommandTerminal/CmdLbt.h	Mon Jun 19 15:54:03 2017 -0500
@@ -0,0 +1,20 @@
+#ifndef __CMDLBT_H_
+#define __CMDLBT_H_
+
+#include "Command.h"
+
+class CommandTerminal;
+
+class CmdLbt : public Command {
+
+public:
+
+    CmdLbt();
+    static uint32_t action(std::vector<std::string> args);
+    static bool verify(std::vector<std::string> args);
+    
+private:   
+    
+};
+
+#endif // __CMDLBT_H_