with 36errors

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

Fork of Dot-AT-Firmware by MultiTech

Committer:
faendder
Date:
Sun Jul 09 23:37:23 2017 +0000
Revision:
18:75cd82d6298c
Parent:
14:f9a77400b622
i have 36 errors but i dont now how fixit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:e52ae6584f1c 1 #include "CmdSendStringOnInterval.h"
Mike Fiore 1:e52ae6584f1c 2 #include "CommandTerminal.h"
Mike Fiore 1:e52ae6584f1c 3
Mike Fiore 14:f9a77400b622 4 CmdSendStringOnInterval::CmdSendStringOnInterval()
Mike Fiore 14:f9a77400b622 5 : Command("Send On Interval", "AT+SENDI", "Sends supplied packet data on interval between sends, output any received packets (escape sequence: +++)", "(1-2147483647) ms,(string:242)") {
Mike Fiore 14:f9a77400b622 6
Mike Fiore 1:e52ae6584f1c 7 }
Mike Fiore 1:e52ae6584f1c 8
Mike Fiore 1:e52ae6584f1c 9 uint32_t CmdSendStringOnInterval::action(std::vector<std::string> args) {
Mike Fiore 14:f9a77400b622 10
Mike Fiore 1:e52ae6584f1c 11 int32_t code;
Mike Fiore 9:ff62b20f7000 12 int interval;
Mike Fiore 2:e5eebd74d36d 13 std::string text;
Mike Fiore 1:e52ae6584f1c 14
Mike Fiore 9:ff62b20f7000 15 sscanf(args[1].c_str(), "%d", &interval);
Mike Fiore 1:e52ae6584f1c 16
Mike Fiore 2:e5eebd74d36d 17 for (size_t i = 2; i < args.size(); i++) {
Mike Fiore 2:e5eebd74d36d 18 text.append(args[i]);
Mike Fiore 2:e5eebd74d36d 19 if (i != args.size() - 1)
Mike Fiore 2:e5eebd74d36d 20 text.append(",");
Mike Fiore 2:e5eebd74d36d 21 }
Mike Fiore 2:e5eebd74d36d 22 std::vector<uint8_t> data(text.begin(), text.end());
Mike Fiore 2:e5eebd74d36d 23
Mike Fiore 1:e52ae6584f1c 24 while (true) {
Mike Fiore 14:f9a77400b622 25 if (CommandTerminal::Dot()->getJoinMode() == mDot::AUTO_OTA) {
Mike Fiore 1:e52ae6584f1c 26 Timer timer;
Mike Fiore 1:e52ae6584f1c 27 timer.start();
Mike Fiore 14:f9a77400b622 28 while (!CommandTerminal::Dot()->getNetworkJoinStatus()) {
Mike Fiore 14:f9a77400b622 29 CommandTerminal::Serial()->writef("Joining network... ");
Mike Fiore 14:f9a77400b622 30 if (CommandTerminal::Dot()->joinNetworkOnce() == mDot::MDOT_OK) {
Mike Fiore 14:f9a77400b622 31 CommandTerminal::Serial()->writef("Network Joined\r\n");
Mike Fiore 1:e52ae6584f1c 32 } else {
Mike Fiore 14:f9a77400b622 33 CommandTerminal::Serial()->writef("%s\r\n", CommandTerminal::Dot()->getLastError().c_str());
Mike Fiore 1:e52ae6584f1c 34 }
Mike Fiore 1:e52ae6584f1c 35
Mike Fiore 14:f9a77400b622 36 if (CommandTerminal::waitForEscape(CommandTerminal::Dot()->getNextTxMs())) {
Mike Fiore 1:e52ae6584f1c 37 return 0;
Mike Fiore 1:e52ae6584f1c 38 }
Mike Fiore 1:e52ae6584f1c 39 }
Mike Fiore 14:f9a77400b622 40 } else if (!CommandTerminal::Dot()->getNetworkJoinStatus()) {
Mike Fiore 14:f9a77400b622 41 CommandTerminal::setErrorMessage(mDot::getReturnCodeString(mDot::MDOT_NOT_JOINED));
Mike Fiore 1:e52ae6584f1c 42 return 1;
Mike Fiore 1:e52ae6584f1c 43 }
Mike Fiore 1:e52ae6584f1c 44
Mike Fiore 14:f9a77400b622 45 if ((code = CommandTerminal::Dot()->send(data, CommandTerminal::Dot()->getTxWait())) != mDot::MDOT_OK) {
Mike Fiore 14:f9a77400b622 46 std::string error = CommandTerminal::Dot()->getLastError();
Mike Fiore 1:e52ae6584f1c 47
Mike Fiore 1:e52ae6584f1c 48 if (code == mDot::MDOT_INVALID_PARAM) {
Mike Fiore 14:f9a77400b622 49 CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
Mike Fiore 1:e52ae6584f1c 50 return 1;
Mike Fiore 1:e52ae6584f1c 51 } else {
Mike Fiore 14:f9a77400b622 52 CommandTerminal::Serial()->writef("%s\r\n", error.c_str());
Mike Fiore 1:e52ae6584f1c 53 }
Mike Fiore 1:e52ae6584f1c 54 }
Mike Fiore 1:e52ae6584f1c 55
Mike Fiore 1:e52ae6584f1c 56 if (code == mDot::MDOT_OK) {
Mike Fiore 14:f9a77400b622 57 if (CommandTerminal::waitForEscape(3000, CommandTerminal::Dot(), CommandTerminal::WAIT_SEND)) {
Mike Fiore 1:e52ae6584f1c 58 return 0;
Mike Fiore 1:e52ae6584f1c 59 }
Mike Fiore 1:e52ae6584f1c 60
Mike Fiore 14:f9a77400b622 61 if (CommandTerminal::Dot()->getTxWait() || CommandTerminal::Dot()->getAck() > 0) {
Mike Fiore 1:e52ae6584f1c 62 std::vector<uint8_t> rx_data;
Mike Fiore 1:e52ae6584f1c 63
Mike Fiore 14:f9a77400b622 64 if (CommandTerminal::Dot()->recv(rx_data) == mDot::MDOT_OK) {
Mike Fiore 1:e52ae6584f1c 65 if (!rx_data.empty()) {
Mike Fiore 14:f9a77400b622 66 if (CommandTerminal::Dot()->getRxOutput() == mDot::HEXADECIMAL) {
Mike Fiore 14:f9a77400b622 67 for (size_t i = 0; i < data.size(); i++) {
Mike Fiore 14:f9a77400b622 68 CommandTerminal::Serial()->writef("%02x", data[i]);
Mike Fiore 14:f9a77400b622 69 }
Mike Fiore 14:f9a77400b622 70 CommandTerminal::Serial()->writef("\r\n");
Mike Fiore 14:f9a77400b622 71 } else {
Mike Fiore 14:f9a77400b622 72 CommandTerminal::Serial()->writef("%s\r\n", CommandTerminal::formatPacketData(data, CommandTerminal::Dot()->getRxOutput()).c_str());
Mike Fiore 14:f9a77400b622 73 }
Mike Fiore 1:e52ae6584f1c 74 }
Mike Fiore 1:e52ae6584f1c 75 }
Mike Fiore 14:f9a77400b622 76 } else if (!CommandTerminal::Dot()->getTxWait()) {
Mike Fiore 14:f9a77400b622 77 CommandTerminal::Dot()->cancelRxWindow();
Mike Fiore 1:e52ae6584f1c 78 }
Mike Fiore 1:e52ae6584f1c 79 }
Mike Fiore 1:e52ae6584f1c 80
Mike Fiore 1:e52ae6584f1c 81 if (CommandTerminal::waitForEscape(interval)) {
Mike Fiore 1:e52ae6584f1c 82 return 0;
Mike Fiore 1:e52ae6584f1c 83 }
Mike Fiore 1:e52ae6584f1c 84 }
Mike Fiore 1:e52ae6584f1c 85
Mike Fiore 1:e52ae6584f1c 86 return 0;
Mike Fiore 1:e52ae6584f1c 87 }
Mike Fiore 1:e52ae6584f1c 88
Mike Fiore 1:e52ae6584f1c 89 bool CmdSendStringOnInterval::verify(std::vector<std::string> args) {
Mike Fiore 2:e5eebd74d36d 90 if (args.size() >= 3) {
Mike Fiore 9:ff62b20f7000 91 int interval;
Mike Fiore 2:e5eebd74d36d 92 size_t size = 0;
Mike Fiore 2:e5eebd74d36d 93
Mike Fiore 9:ff62b20f7000 94 if (sscanf(args[1].c_str(), "%d", &interval) != 1) {
Mike Fiore 14:f9a77400b622 95 CommandTerminal::setErrorMessage("Invalid argument");
Mike Fiore 1:e52ae6584f1c 96 return false;
Mike Fiore 1:e52ae6584f1c 97 }
Mike Fiore 1:e52ae6584f1c 98
Mike Fiore 14:f9a77400b622 99 if (interval < 1 || interval > INT_MAX-1) {
Mike Fiore 14:f9a77400b622 100 CommandTerminal::setErrorMessage("Invalid interval, expects (1-2147483646) ms");
Mike Fiore 1:e52ae6584f1c 101 return false;
Mike Fiore 1:e52ae6584f1c 102 }
Mike Fiore 1:e52ae6584f1c 103
Mike Fiore 9:ff62b20f7000 104 for (size_t i = 2; i < args.size() - 1; i++)
Mike Fiore 4:666017851052 105 size += args[i].size() + 1;
Mike Fiore 2:e5eebd74d36d 106 if (size > 242) {
Mike Fiore 14:f9a77400b622 107 CommandTerminal::setErrorMessage("Invalid packet, expects (string:242)");
Mike Fiore 1:e52ae6584f1c 108 return false;
Mike Fiore 1:e52ae6584f1c 109 }
Mike Fiore 1:e52ae6584f1c 110
Mike Fiore 1:e52ae6584f1c 111 return true;
Mike Fiore 1:e52ae6584f1c 112 }
Mike Fiore 1:e52ae6584f1c 113
Mike Fiore 14:f9a77400b622 114 CommandTerminal::setErrorMessage("Invalid arguments");
Mike Fiore 1:e52ae6584f1c 115 return false;
Mike Fiore 1:e52ae6584f1c 116 }