dev

Dependencies:   MTS-Serial libmDot-mbed5

Fork of Dot-AT-Firmware by MultiTech

Committer:
Mike Fiore
Date:
Mon Apr 04 09:00:31 2016 -0500
Revision:
9:ff62b20f7000
Child:
14:f9a77400b622
update to version 1.0.8 of AT firmware

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 9:ff62b20f7000 1 #include "CmdAntennaGain.h"
Mike Fiore 9:ff62b20f7000 2
Mike Fiore 9:ff62b20f7000 3 CmdAntennaGain::CmdAntennaGain(mDot* dot, mts::MTSSerial& serial) :
Mike Fiore 9:ff62b20f7000 4 Command(dot, "Antenna Gain", "AT+ANT", "Gain in dBi of installed antenna (-128-127)"), _serial(serial)
Mike Fiore 9:ff62b20f7000 5 {
Mike Fiore 9:ff62b20f7000 6 _help = std::string(text()) + ": " + std::string(desc());
Mike Fiore 9:ff62b20f7000 7 _usage = "(-128-127)";
Mike Fiore 9:ff62b20f7000 8 _queryable = true;
Mike Fiore 9:ff62b20f7000 9 }
Mike Fiore 9:ff62b20f7000 10
Mike Fiore 9:ff62b20f7000 11 uint32_t CmdAntennaGain::action(std::vector<std::string> args)
Mike Fiore 9:ff62b20f7000 12 {
Mike Fiore 9:ff62b20f7000 13 if (args.size() == 1)
Mike Fiore 9:ff62b20f7000 14 {
Mike Fiore 9:ff62b20f7000 15 if (_dot->getVerbose())
Mike Fiore 9:ff62b20f7000 16 _serial.writef("Antenna Gain: ");
Mike Fiore 9:ff62b20f7000 17
Mike Fiore 9:ff62b20f7000 18 _serial.writef("%d\r\n", _dot->getAntennaGain());
Mike Fiore 9:ff62b20f7000 19 }
Mike Fiore 9:ff62b20f7000 20 else if (args.size() == 2)
Mike Fiore 9:ff62b20f7000 21 {
Mike Fiore 9:ff62b20f7000 22 int32_t code;
Mike Fiore 9:ff62b20f7000 23 int gain;
Mike Fiore 9:ff62b20f7000 24 sscanf(args[1].c_str(), "%d", &gain);
Mike Fiore 9:ff62b20f7000 25
Mike Fiore 9:ff62b20f7000 26 if ((code = _dot->setAntennaGain(gain)) != mDot::MDOT_OK)
Mike Fiore 9:ff62b20f7000 27 {
Mike Fiore 9:ff62b20f7000 28 setErrorMessage(_dot->getLastError());
Mike Fiore 9:ff62b20f7000 29 return 1;
Mike Fiore 9:ff62b20f7000 30 }
Mike Fiore 9:ff62b20f7000 31 }
Mike Fiore 9:ff62b20f7000 32
Mike Fiore 9:ff62b20f7000 33 return 0;
Mike Fiore 9:ff62b20f7000 34 }
Mike Fiore 9:ff62b20f7000 35
Mike Fiore 9:ff62b20f7000 36 bool CmdAntennaGain::verify(std::vector<std::string> args)
Mike Fiore 9:ff62b20f7000 37 {
Mike Fiore 9:ff62b20f7000 38 if (args.size() == 1)
Mike Fiore 9:ff62b20f7000 39 return true;
Mike Fiore 9:ff62b20f7000 40
Mike Fiore 9:ff62b20f7000 41 if (args.size() == 2)
Mike Fiore 9:ff62b20f7000 42 {
Mike Fiore 9:ff62b20f7000 43 int gain;
Mike Fiore 9:ff62b20f7000 44 if (sscanf(args[1].c_str(), "%d", &gain) != 1) {
Mike Fiore 9:ff62b20f7000 45 setErrorMessage("Invalid argument");
Mike Fiore 9:ff62b20f7000 46 return false;
Mike Fiore 9:ff62b20f7000 47 }
Mike Fiore 9:ff62b20f7000 48
Mike Fiore 9:ff62b20f7000 49 if (gain < -128 || gain > 127) {
Mike Fiore 9:ff62b20f7000 50 setErrorMessage("Invalid gain, expects (-127-128)");
Mike Fiore 9:ff62b20f7000 51 return false;
Mike Fiore 9:ff62b20f7000 52 }
Mike Fiore 9:ff62b20f7000 53
Mike Fiore 9:ff62b20f7000 54 return true;
Mike Fiore 9:ff62b20f7000 55 }
Mike Fiore 9:ff62b20f7000 56
Mike Fiore 9:ff62b20f7000 57 setErrorMessage("Invalid arguments");
Mike Fiore 9:ff62b20f7000 58 return false;
Mike Fiore 9:ff62b20f7000 59 }