Multitech xDot AT Firmware

Dependencies:   MTS-Serial libxDot-mbed5

Committer:
Mike Fiore
Date:
Fri Nov 04 14:25:43 2016 -0500
Revision:
14:f9a77400b622
Child:
16:d5cf2af81a6d
update from git revision 2.0.16

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 14:f9a77400b622 1 #include "CmdJoinRx2Frequency.h"
Mike Fiore 14:f9a77400b622 2 #include "CommandTerminal.h"
Mike Fiore 14:f9a77400b622 3
Mike Fiore 14:f9a77400b622 4 CmdJoinRx2Frequency::CmdJoinRx2Frequency()
Mike Fiore 14:f9a77400b622 5 :
Mike Fiore 14:f9a77400b622 6 Command("Join Rx2 Frequency", "AT+JR2F", "Join Rx2 frequency", "(US:902000000-928000000,AU:915000000-928000000,EU:863000000-870000000)") {
Mike Fiore 14:f9a77400b622 7
Mike Fiore 14:f9a77400b622 8 }
Mike Fiore 14:f9a77400b622 9
Mike Fiore 14:f9a77400b622 10 uint32_t CmdJoinRx2Frequency::action(std::vector<std::string> args) {
Mike Fiore 14:f9a77400b622 11
Mike Fiore 14:f9a77400b622 12 if (args.size() == 1)
Mike Fiore 14:f9a77400b622 13 {
Mike Fiore 14:f9a77400b622 14 CommandTerminal::Serial()->writef("%lu\r\n", CommandTerminal::Dot()->getJoinRx2Frequency());
Mike Fiore 14:f9a77400b622 15 }
Mike Fiore 14:f9a77400b622 16 else if (args.size() == 2)
Mike Fiore 14:f9a77400b622 17 {
Mike Fiore 14:f9a77400b622 18 int frequency = 0;
Mike Fiore 14:f9a77400b622 19
Mike Fiore 14:f9a77400b622 20 sscanf(args[1].c_str(), "%d", &frequency);
Mike Fiore 14:f9a77400b622 21 if (CommandTerminal::Dot()->setJoinRx2Frequency(frequency) != mDot::MDOT_OK)
Mike Fiore 14:f9a77400b622 22 {
Mike Fiore 14:f9a77400b622 23 CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
Mike Fiore 14:f9a77400b622 24 return 1;
Mike Fiore 14:f9a77400b622 25 }
Mike Fiore 14:f9a77400b622 26 }
Mike Fiore 14:f9a77400b622 27
Mike Fiore 14:f9a77400b622 28 return 0;
Mike Fiore 14:f9a77400b622 29 }
Mike Fiore 14:f9a77400b622 30
Mike Fiore 14:f9a77400b622 31 bool CmdJoinRx2Frequency::verify(std::vector<std::string> args) {
Mike Fiore 14:f9a77400b622 32 if (args.size() == 1)
Mike Fiore 14:f9a77400b622 33 return true;
Mike Fiore 14:f9a77400b622 34
Mike Fiore 14:f9a77400b622 35 if (args.size() == 2)
Mike Fiore 14:f9a77400b622 36 {
Mike Fiore 14:f9a77400b622 37 int frequency = ULONG_MAX;
Mike Fiore 14:f9a77400b622 38 if (sscanf(args[1].c_str(), "%d", &frequency) != 1) {
Mike Fiore 14:f9a77400b622 39 CommandTerminal::setErrorMessage("Invalid argument");
Mike Fiore 14:f9a77400b622 40 return false;
Mike Fiore 14:f9a77400b622 41 }
Mike Fiore 14:f9a77400b622 42
Mike Fiore 14:f9a77400b622 43 if (frequency != 0 && (frequency < int(CommandTerminal::Dot()->getMinFrequency()) || frequency > int(CommandTerminal::Dot()->getMaxFrequency()))) {
Mike Fiore 14:f9a77400b622 44 if (CommandTerminal::Dot()->getFrequencyBand() == mDot::FB_EU868)
Mike Fiore 14:f9a77400b622 45 CommandTerminal::setErrorMessage("Invalid frequency, expects (0,863000000-870000000)");
Mike Fiore 14:f9a77400b622 46 else if (CommandTerminal::Dot()->getFrequencyBand() == mDot::FB_AU915)
Mike Fiore 14:f9a77400b622 47 CommandTerminal::setErrorMessage("Invalid frequency, expects (0,915000000-928000000)");
Mike Fiore 14:f9a77400b622 48 else
Mike Fiore 14:f9a77400b622 49 CommandTerminal::setErrorMessage("Invalid frequency, expects (0,902000000-928000000)");
Mike Fiore 14:f9a77400b622 50
Mike Fiore 14:f9a77400b622 51 return false;
Mike Fiore 14:f9a77400b622 52 }
Mike Fiore 14:f9a77400b622 53
Mike Fiore 14:f9a77400b622 54 return true;
Mike Fiore 14:f9a77400b622 55 }
Mike Fiore 14:f9a77400b622 56
Mike Fiore 14:f9a77400b622 57 CommandTerminal::setErrorMessage("Invalid arguments");
Mike Fiore 14:f9a77400b622 58 return false;
Mike Fiore 14:f9a77400b622 59 }