AT Command Set mDot firmware with updated libmDot, to fix endian problem with joining LoRaWAN network
Dependencies: MTS-Serial libmDot mbed-rtos mbed-src
Fork of mDot_AT_firmware by
Revision 2:e5eebd74d36d, committed 2015-07-10
- Comitter:
- Mike Fiore
- Date:
- Fri Jul 10 09:43:56 2015 -0500
- Parent:
- 1:e52ae6584f1c
- Child:
- 3:321cf5e5b89b
- Commit message:
- update from rev 6d77074fdfa315ba86bedecc44515b11bfa6e9a0 - add support for commas in payloads of +SEND and +SENDI
Changed in this revision
--- a/CommandTerminal/CmdSendString.cpp Thu Jun 25 10:23:41 2015 -0500
+++ b/CommandTerminal/CmdSendString.cpp Fri Jul 10 09:43:56 2015 -0500
@@ -52,8 +52,11 @@
return true;
}
- if (args.size() == 2) {
- if (args[1].size() > 242) {
+ if (args.size() >= 2) {
+ size_t size = 0;
+ for (int i = 1; i < args.size(); i++)
+ size += args[i].size();
+ if (size > 242) {
setErrorMessage("Invalid packet, expects (string:242)");
return false;
}
--- a/CommandTerminal/CmdSendStringOnInterval.cpp Thu Jun 25 10:23:41 2015 -0500
+++ b/CommandTerminal/CmdSendStringOnInterval.cpp Fri Jul 10 09:43:56 2015 -0500
@@ -12,10 +12,17 @@
uint32_t CmdSendStringOnInterval::action(std::vector<std::string> args) {
int32_t code;
uint32_t interval;
- std::vector<uint8_t> data(args[2].begin(), args[2].end());
+ std::string text;
sscanf(args[1].c_str(), "%lu", &interval);
+ for (size_t i = 2; i < args.size(); i++) {
+ text.append(args[i]);
+ if (i != args.size() - 1)
+ text.append(",");
+ }
+ std::vector<uint8_t> data(text.begin(), text.end());
+
while (true) {
if (_dot->getJoinMode() == mDot::AUTO_OTA) {
Timer timer;
@@ -83,8 +90,10 @@
}
bool CmdSendStringOnInterval::verify(std::vector<std::string> args) {
- if (args.size() == 3) {
+ if (args.size() >= 3) {
uint32_t interval;
+ size_t size = 0;
+
if (sscanf(args[1].c_str(), "%lu", &interval) != 1) {
setErrorMessage("Invalid argument");
return false;
@@ -95,7 +104,9 @@
return false;
}
- if (args[2].size() > 242) {
+ for (int i = 2; i < args.size(); i++)
+ size += args[i].size();
+ if (size > 242) {
setErrorMessage("Invalid packet, expects (string:242)");
return false;
}
--- a/CommandTerminal/CmdTxNextMs.cpp Thu Jun 25 10:23:41 2015 -0500
+++ b/CommandTerminal/CmdTxNextMs.cpp Fri Jul 10 09:43:56 2015 -0500
@@ -3,7 +3,7 @@
CmdTxNextMs::CmdTxNextMs(mDot* dot, mts::MTSSerial& serial)
: Command(dot, "Tx Next", "AT+TXN", "Get time in ms until next free channel"), _serial(serial) {
_help = std::string(text()) + ": " + std::string(desc());
- _usage = "(0-)";
+ _usage = "(0-2793000)";
_queryable = true;
}
--- a/CommandTerminal/CommandTerminal.cpp Thu Jun 25 10:23:41 2015 -0500
+++ b/CommandTerminal/CommandTerminal.cpp Fri Jul 10 09:43:56 2015 -0500
@@ -558,14 +558,10 @@
}
std::string CommandTerminal::formatPacketData(const std::vector<uint8_t>& data, const uint8_t& format) {
- if (format == mDot::HEXADECIMAL) {
+ if (format == mDot::HEXADECIMAL)
return mts::Text::bin2hexString(data);
- } else {
- std::string data_str;
- for (int i = 0; i < data.size(); i++)
- data_str.append((const char*)data[i], 1);
- return data_str;
- }
+ else
+ return std::string(data.begin(), data.end());
}
void CommandTerminal::sleep(bool standby) {
--- a/version.h Thu Jun 25 10:23:41 2015 -0500 +++ b/version.h Fri Jul 10 09:43:56 2015 -0500 @@ -1,6 +1,6 @@ #ifndef __VERSION_H__ #define __VERSION_H__ -#define AT_APPLICATION_VERSION "060215_mbed-19-gdadc7ac" +#define AT_APPLICATION_VERSION "060215_mbed-23-g6d77074" #endif
