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 MultiTech

Files at this revision

API Documentation at this revision

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

CommandTerminal/CmdSendString.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdSendStringOnInterval.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CmdTxNextMs.cpp Show annotated file Show diff for this revision Revisions of this file
CommandTerminal/CommandTerminal.cpp Show annotated file Show diff for this revision Revisions of this file
version.h Show annotated file Show diff for this revision Revisions of this file
--- 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