Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MTS-Serial libxDot-dev-mbed5-deprecated
Fork of Dot-AT-Firmware by
Revision 17:95c9eb69329a, committed 2017-06-19
- 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
--- /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_
