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

CmdTxFrequencyOffset.cpp

00001 #include "CmdTxFrequencyOffset.h"
00002 
00003 CmdTxFrequencyOffset::CmdTxFrequencyOffset() :
00004 #if MTS_CMD_TERM_VERBOSE
00005     Command("Tx Frequency Offset", "AT+FO", "Transmit frequency offset in Hz", "(-32768-32768)")
00006 #else
00007     Command("AT+FO")
00008 #endif
00009 {
00010     _queryable = true;
00011 }
00012 
00013 uint32_t CmdTxFrequencyOffset::action(const std::vector<std::string>& args)
00014 {
00015     if (args.size() == 1)
00016     {
00017         CommandTerminal::Serial()->writef("%d\r\n", CommandTerminal::Dot()->getFrequencyOffset());
00018     }
00019     else if (args.size() == 2)
00020     {
00021         int offset;
00022         sscanf(args[1].c_str(), "%d", &offset);
00023 
00024         CommandTerminal::Dot()->setFrequencyOffset(offset);
00025     }
00026 
00027     return 0;
00028 }
00029 
00030 bool CmdTxFrequencyOffset::verify(const std::vector<std::string>& args)
00031 {
00032     if (args.size() == 1)
00033         return true;
00034 
00035     if (args.size() == 2)
00036     {
00037         int offset;
00038         if (sscanf(args[1].c_str(), "%d", &offset) != 1) {
00039 #if MTS_CMD_TERM_VERBOSE
00040             CommandTerminal::setErrorMessage("Invalid argument");
00041 #endif
00042             return false;
00043         }
00044 
00045         if (offset < -32768 || offset > 32768) {
00046 #if MTS_CMD_TERM_VERBOSE
00047             CommandTerminal::setErrorMessage("Invalid offset, expects (-32768-32768)");
00048 #endif
00049             return false;
00050         }
00051 
00052         return true;
00053     }
00054 
00055 #if MTS_CMD_TERM_VERBOSE
00056     CommandTerminal::setErrorMessage("Invalid arguments");
00057 #endif
00058     return false;
00059 }