AT command firmware for MultiTech Dot devices.

Fork of mDot_AT_firmware by MultiTech

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdTxDataRate.cpp Source File

CmdTxDataRate.cpp

00001 #include "CmdTxDataRate.h"
00002 #include "MTSText.h"
00003 #include "MTSLog.h"
00004 
00005 
00006 CmdTxDataRate::CmdTxDataRate() :
00007 #if MTS_CMD_TERM_VERBOSE
00008     Command("Tx Data Rate", "AT+TXDR", "Set the Tx data rate for all channels", "DR0-DR15, Depends on Channel Plan")
00009 #else
00010     Command("AT+TXDR")
00011 #endif
00012 {
00013     _queryable = true;
00014 }
00015 
00016 
00017 uint32_t CmdTxDataRate::action(const std::vector<std::string>& args) {
00018     if (args.size() == 1) {
00019         CommandTerminal::Serial()->writef("DR%d - %s\r\n", CommandTerminal::Dot()->getTxDataRate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getTxDataRate()).c_str());
00020     } else if (args.size() == 2) {
00021         if (CommandTerminal::Dot()->setTxDataRate(strToDataRate(args[1])) != mDot::MDOT_OK) {
00022             return 1;
00023         }
00024     }
00025 
00026     return 0;
00027 }
00028 
00029 bool CmdTxDataRate::verify(const std::vector<std::string>& args) {
00030     if (args.size() == 1)
00031         return true;
00032 
00033     if (args.size() == 2) {
00034         int dr = strToDataRate(args[1]);
00035         if ((dr == -1) || !CommandTerminal::Dot()->validateDataRate(dr)) {
00036 #if MTS_CMD_TERM_VERBOSE
00037             CommandTerminal::setErrorMessage("TX data rate invalid");
00038 #endif
00039             return false;
00040         }
00041         return true;
00042     }
00043 
00044 #if MTS_CMD_TERM_VERBOSE
00045     CommandTerminal::setErrorMessage("Invalid arguments");
00046 #endif
00047     return false;
00048 }