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 CmdRxDataRate.cpp Source File

CmdRxDataRate.cpp

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