AT command firmware for MultiTech Dot devices.
Fork of mDot_AT_firmware by
CmdTxFrequency.cpp
00001 #include "CmdTxFrequency.h" 00002 #include <climits> 00003 00004 00005 CmdTxFrequency::CmdTxFrequency() : 00006 #if MTS_CMD_TERM_VERBOSE 00007 Command("Tx Frequency", "AT+TXF", "Set Tx frequency", "SEE PLAN") 00008 #else 00009 Command("AT+TXF") 00010 #endif 00011 { 00012 _queryable = true; 00013 } 00014 00015 uint32_t CmdTxFrequency::action(const std::vector<std::string>& args) 00016 { 00017 if (args.size() == 1) 00018 { 00019 CommandTerminal::Serial()->writef("%lu\r\n", CommandTerminal::Dot()->getTxFrequency()); 00020 } 00021 else if (args.size() == 2) 00022 { 00023 int frequency = 0; 00024 00025 sscanf(args[1].c_str(), "%d", &frequency); 00026 if (CommandTerminal::Dot()->setTxFrequency(frequency) != mDot::MDOT_OK) 00027 { 00028 return 1; 00029 } 00030 } 00031 00032 return 0; 00033 } 00034 00035 bool CmdTxFrequency::verify(const std::vector<std::string>& args) 00036 { 00037 if (args.size() == 1) 00038 return true; 00039 00040 if (args.size() == 2) 00041 { 00042 int frequency = ULONG_MAX; 00043 if (sscanf(args[1].c_str(), "%d", &frequency) != 1) { 00044 #if MTS_CMD_TERM_VERBOSE 00045 CommandTerminal::setErrorMessage("Invalid argument"); 00046 #endif 00047 return false; 00048 } 00049 00050 if (frequency != 0 && (frequency < int(CommandTerminal::Dot()->getMinFrequency()) || frequency > int(CommandTerminal::Dot()->getMaxFrequency()))) { 00051 #if MTS_CMD_TERM_VERBOSE 00052 char tmp[256]; 00053 sprintf(tmp, "Invalid frequency, expects (0,%" SCNu32 "-%" SCNu32 ")", CommandTerminal::Dot()->getMinFrequency(), CommandTerminal::Dot()->getMaxFrequency()); 00054 CommandTerminal::setErrorMessage(tmp); 00055 #endif 00056 return false; 00057 } 00058 00059 return true; 00060 } 00061 00062 #if MTS_CMD_TERM_VERBOSE 00063 CommandTerminal::setErrorMessage("Invalid arguments"); 00064 #endif 00065 return false; 00066 } 00067
Generated on Wed Dec 6 2023 19:34:05 by 1.7.2