dev
Dependencies: MTS-Serial libmDot-mbed5
Fork of Dot-AT-Firmware by
Diff: CommandTerminal/CmdSendString.cpp
- Revision:
- 14:f9a77400b622
- Parent:
- 9:ff62b20f7000
diff -r b0f5ae12dc05 -r f9a77400b622 CommandTerminal/CmdSendString.cpp --- a/CommandTerminal/CmdSendString.cpp Fri Nov 04 19:10:24 2016 +0000 +++ b/CommandTerminal/CmdSendString.cpp Fri Nov 04 14:25:43 2016 -0500 @@ -1,17 +1,13 @@ #include "CmdSendString.h" #include "CommandTerminal.h" -CmdSendString::CmdSendString(mDot* dot, mts::MTSSerial& serial) -: - Command(dot, "Send Once", "AT+SEND", "Sends supplied packet data one time and return response, (max:242 bytes)"), - _serial(serial) { - _help = std::string(text()) + ": " + std::string(desc()); - _usage = "(string:242)"; +CmdSendString::CmdSendString() +: Command("Send Once", "AT+SEND", "Sends supplied packet data one time and return response, (max:242 bytes)", "(string:242)") { } uint32_t CmdSendString::action(std::vector<std::string> args) { // Argument had been split on each comma, rebuild payload - int32_t code; + std::string text; for (size_t i = 1; i < args.size(); i++) { text.append(args[i]); @@ -20,17 +16,22 @@ } std::vector<uint8_t> data(text.begin(), text.end()); - if ((code = _dot->send(data, _dot->getTxWait())) != mDot::MDOT_OK) { - setErrorMessage(_dot->getLastError()); + if (CommandTerminal::Dot()->send(data, CommandTerminal::Dot()->getTxWait()) != mDot::MDOT_OK) { + CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError()); return 1; - } else if (_dot->getTxWait()) { + } else if (CommandTerminal::Dot()->getTxWait()) { data.clear(); - if (_dot->recv(data) == mDot::MDOT_OK) { + if (CommandTerminal::Dot()->recv(data) == mDot::MDOT_OK) { if (!data.empty()) { - if (_dot->getVerbose()) - _serial.writef("Packet data:\r\n"); - _serial.writef("%s\r\n", CommandTerminal::formatPacketData(data, _dot->getRxOutput()).c_str()); + if (CommandTerminal::Dot()->getRxOutput() == mDot::HEXADECIMAL) { + for (size_t i = 0; i < data.size(); i++) { + CommandTerminal::Serial()->writef("%02x", data[i]); + } + CommandTerminal::Serial()->writef("\r\n"); + } else { + CommandTerminal::Serial()->writef("%s\r\n", CommandTerminal::formatPacketData(data, CommandTerminal::Dot()->getRxOutput()).c_str()); + } } } } @@ -50,13 +51,13 @@ for (size_t i = 1; i < args.size() - 1; i++) size += args[i].size() + 1; if (size > 242) { - setErrorMessage("Invalid packet, expects (string:242)"); + CommandTerminal::setErrorMessage("Invalid packet, expects (string:242)"); return false; } return true; } - setErrorMessage("Invalid arguments"); + CommandTerminal::setErrorMessage("Invalid arguments"); return false; }