AT command firmware for MultiTech Dot devices.
Fork of mDot_AT_firmware by
CmdTxPower.cpp
00001 #include "CmdTxPower.h" 00002 00003 CmdTxPower::CmdTxPower() : 00004 #if MTS_CMD_TERM_VERBOSE 00005 Command("Tx Power", "AT+TXP", "Set the radio TX power before antenna gain in dBm", "(Depends on Channel Plan)") 00006 #else 00007 Command("AT+TXP") 00008 #endif 00009 { 00010 _queryable = true; 00011 } 00012 00013 uint32_t CmdTxPower::action(const std::vector<std::string>& args) 00014 { 00015 if (args.size() == 1) 00016 { 00017 CommandTerminal::Serial()->writef("%lu\r\n", CommandTerminal::Dot()->getTxPower()); 00018 } 00019 else if (args.size() == 2) 00020 { 00021 int power = 0; 00022 sscanf(args[1].c_str(), "%d", &power); 00023 00024 if (CommandTerminal::Dot()->setTxPower(power) != mDot::MDOT_OK) 00025 { 00026 return 1; 00027 } 00028 } 00029 00030 return 0; 00031 } 00032 00033 bool CmdTxPower::verify(const std::vector<std::string>& args) 00034 { 00035 if (args.size() == 1) 00036 return true; 00037 00038 if (args.size() == 2) 00039 { 00040 int power = 0; 00041 if (sscanf(args[1].c_str(), "%d", &power) != 1) { 00042 #if MTS_CMD_TERM_VERBOSE 00043 CommandTerminal::setErrorMessage("Invalid argument"); 00044 #endif 00045 return false; 00046 } 00047 00048 if (power < CommandTerminal::Dot()->getMinTxPower() || power > CommandTerminal::Dot()->getMaxTxPower()) 00049 { 00050 #if MTS_CMD_TERM_VERBOSE 00051 char buf[12]; 00052 std::string error = "Invalid power, expects "; 00053 snprintf(buf, sizeof(buf), "(%d-%d)", CommandTerminal::Dot()->getMinTxPower(), CommandTerminal::Dot()->getMaxTxPower()); 00054 error.append(buf); 00055 CommandTerminal::setErrorMessage(error); 00056 #endif 00057 return false; 00058 } 00059 00060 return true; 00061 } 00062 00063 #if MTS_CMD_TERM_VERBOSE 00064 CommandTerminal::setErrorMessage("Invalid arguments"); 00065 #endif 00066 return false; 00067 } 00068
Generated on Wed Dec 6 2023 19:34:05 by 1.7.2