MicroLabo / Mbed OS mbed-Dot-AT-Firmware

Dependencies:   MTS-Serial libmDot-mbed5

Fork of Dot-AT-Firmware by MultiTech

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdAntennaGain.cpp Source File

CmdAntennaGain.cpp

00001 #include "CmdAntennaGain.h"
00002 
00003 CmdAntennaGain::CmdAntennaGain() :
00004         Command("Antenna Gain", "AT+ANT", "Gain in dBi of installed antenna (-128-127)", "(-128-127)")
00005 {
00006     _queryable = true;
00007 }
00008 
00009 uint32_t CmdAntennaGain::action(std::vector<std::string> args)
00010 {
00011     if (args.size() == 1)
00012     {
00013         CommandTerminal::Serial()->writef("%d\r\n", CommandTerminal::Dot()->getAntennaGain());
00014     }
00015     else if (args.size() == 2)
00016     {
00017         
00018         int gain;
00019         sscanf(args[1].c_str(), "%d", &gain);
00020 
00021         if (CommandTerminal::Dot()->setAntennaGain(gain) != mDot::MDOT_OK)
00022         {
00023             CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());
00024             return 1;
00025         }
00026     }
00027 
00028     return 0;
00029 }
00030 
00031 bool CmdAntennaGain::verify(std::vector<std::string> args)
00032 {
00033     if (args.size() == 1)
00034         return true;
00035 
00036     if (args.size() == 2)
00037     {
00038         int gain;
00039         if (sscanf(args[1].c_str(), "%d", &gain) != 1) {
00040             CommandTerminal::setErrorMessage("Invalid argument");
00041             return false;
00042         }
00043 
00044         if (gain < -128 || gain > 127) {
00045             CommandTerminal::setErrorMessage("Invalid gain, expects (-127-128)");
00046             return false;
00047         }
00048 
00049         return true;
00050     }
00051 
00052     CommandTerminal::setErrorMessage("Invalid arguments");
00053     return false;
00054 }