firm newest

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

Committer:
nguyenhoang9x5555
Date:
Mon Oct 22 01:56:09 2018 +0000
Revision:
1:c1c6549b9333
Parent:
0:3c869a8cb8f8
hey

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nguyenhoang9x5555 0:3c869a8cb8f8 1 #include "CmdTxDataRate.h"
nguyenhoang9x5555 0:3c869a8cb8f8 2 #include "MTSText.h"
nguyenhoang9x5555 0:3c869a8cb8f8 3 #include "MTSLog.h"
nguyenhoang9x5555 0:3c869a8cb8f8 4
nguyenhoang9x5555 0:3c869a8cb8f8 5
nguyenhoang9x5555 0:3c869a8cb8f8 6 CmdTxDataRate::CmdTxDataRate()
nguyenhoang9x5555 0:3c869a8cb8f8 7 : Command("Tx Data Rate", "AT+TXDR", "Set the Tx data rate for all channels", "7-10|DR0-DR15, Depends on Channel Plan") {
nguyenhoang9x5555 0:3c869a8cb8f8 8 _queryable = true;
nguyenhoang9x5555 0:3c869a8cb8f8 9 }
nguyenhoang9x5555 0:3c869a8cb8f8 10
nguyenhoang9x5555 0:3c869a8cb8f8 11 uint32_t CmdTxDataRate::action(std::vector<std::string> args) {
nguyenhoang9x5555 0:3c869a8cb8f8 12 if (args.size() == 1)
nguyenhoang9x5555 0:3c869a8cb8f8 13 {
nguyenhoang9x5555 0:3c869a8cb8f8 14 CommandTerminal::Serial()->writef("DR%d - %s\r\n", CommandTerminal::Dot()->getTxDataRate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getTxDataRate()).c_str());
nguyenhoang9x5555 0:3c869a8cb8f8 15 } else if (args.size() == 2) {
nguyenhoang9x5555 0:3c869a8cb8f8 16 std::string dr = mts::Text::toUpper(args[1]);
nguyenhoang9x5555 0:3c869a8cb8f8 17
nguyenhoang9x5555 0:3c869a8cb8f8 18 int datarate = -1;
nguyenhoang9x5555 0:3c869a8cb8f8 19 uint8_t i;
nguyenhoang9x5555 0:3c869a8cb8f8 20
nguyenhoang9x5555 0:3c869a8cb8f8 21 int res = sscanf(dr.c_str(), "%d", &datarate);
nguyenhoang9x5555 0:3c869a8cb8f8 22
nguyenhoang9x5555 0:3c869a8cb8f8 23 if (res == 0) {
nguyenhoang9x5555 0:3c869a8cb8f8 24 for (i = 0; i < 24; i++) {
nguyenhoang9x5555 0:3c869a8cb8f8 25 if (mDot::DataRateStr(i).find(dr) != std::string::npos) {
nguyenhoang9x5555 0:3c869a8cb8f8 26 datarate = i;
nguyenhoang9x5555 0:3c869a8cb8f8 27 break;
nguyenhoang9x5555 0:3c869a8cb8f8 28 }
nguyenhoang9x5555 0:3c869a8cb8f8 29 }
nguyenhoang9x5555 0:3c869a8cb8f8 30 }
nguyenhoang9x5555 0:3c869a8cb8f8 31
nguyenhoang9x5555 0:3c869a8cb8f8 32 if (CommandTerminal::Dot()->setTxDataRate(datarate) != mDot::MDOT_OK) {
nguyenhoang9x5555 0:3c869a8cb8f8 33 CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());
nguyenhoang9x5555 0:3c869a8cb8f8 34 return 1;
nguyenhoang9x5555 0:3c869a8cb8f8 35 }
nguyenhoang9x5555 0:3c869a8cb8f8 36 }
nguyenhoang9x5555 0:3c869a8cb8f8 37
nguyenhoang9x5555 0:3c869a8cb8f8 38 return 0;
nguyenhoang9x5555 0:3c869a8cb8f8 39 }
nguyenhoang9x5555 0:3c869a8cb8f8 40
nguyenhoang9x5555 0:3c869a8cb8f8 41 bool CmdTxDataRate::verify(std::vector<std::string> args) {
nguyenhoang9x5555 0:3c869a8cb8f8 42 if (args.size() == 1)
nguyenhoang9x5555 0:3c869a8cb8f8 43 return true;
nguyenhoang9x5555 0:3c869a8cb8f8 44
nguyenhoang9x5555 0:3c869a8cb8f8 45 if (args.size() == 2) {
nguyenhoang9x5555 0:3c869a8cb8f8 46 return true;
nguyenhoang9x5555 0:3c869a8cb8f8 47 }
nguyenhoang9x5555 0:3c869a8cb8f8 48
nguyenhoang9x5555 0:3c869a8cb8f8 49 CommandTerminal::setErrorMessage("Invalid arguments");
nguyenhoang9x5555 0:3c869a8cb8f8 50 return false;
nguyenhoang9x5555 0:3c869a8cb8f8 51 }