Jason Reiss / Mbed OS Dot-AT-Firmware-XDOT

Dependencies:   MTS-Serial libxDot-mbed5

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdTxFrequency.cpp Source File

CmdTxFrequency.cpp

00001 #include "CmdTxFrequency.h"
00002 #include <climits>
00003 
00004 
00005 CmdTxFrequency::CmdTxFrequency() :
00006     Command("Tx Frequency", "AT+TXF", "Set Tx frequency", "SEE PLAN") {
00007     _queryable = true;
00008 }
00009 
00010 uint32_t CmdTxFrequency::action(std::vector<std::string> args)
00011 {
00012     if (args.size() == 1)
00013     {
00014         CommandTerminal::Serial()->writef("%lu\r\n", CommandTerminal::Dot()->getTxFrequency());
00015     }
00016     else if (args.size() == 2)
00017     {
00018         int frequency = 0;
00019 
00020         sscanf(args[1].c_str(), "%d", &frequency);
00021         if (CommandTerminal::Dot()->setTxFrequency(frequency) != mDot::MDOT_OK)
00022         {
00023             CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
00024             return 1;
00025         }
00026     }
00027 
00028     return 0;
00029 }
00030 
00031 bool CmdTxFrequency::verify(std::vector<std::string> args)
00032 {
00033     if (args.size() == 1)
00034         return true;
00035 
00036     if (args.size() == 2)
00037     {
00038         int frequency = ULONG_MAX;
00039         if (sscanf(args[1].c_str(), "%d", &frequency) != 1) {
00040             CommandTerminal::setErrorMessage("Invalid argument");
00041             return false;
00042         }
00043 
00044         if (frequency != 0 && (frequency < int(CommandTerminal::Dot()->getMinFrequency()) || frequency > int(CommandTerminal::Dot()->getMaxFrequency()))) {
00045             char tmp[256];
00046             sprintf(tmp, "Invalid frequency, expects (0,%lu-%lu)", CommandTerminal::Dot()->getMinFrequency(), CommandTerminal::Dot()->getMaxFrequency());
00047             CommandTerminal::setErrorMessage(tmp);
00048             return false;
00049         }
00050 
00051         return true;
00052     }
00053 
00054     CommandTerminal::setErrorMessage("Invalid arguments");
00055     return false;
00056 }
00057