MultiTech / Mbed OS mDot_AT_firmware_CUSTOM

Dependencies:   libmDot-Custom MTS-Serial

Fork of mDot_AT_firmware_CUSTOM by Jason Reiss

To change channel plans replace AS923 with AU915, EU868, KR920 or US915 on line 15

#define CHANNEL_PLAN CP_AS923

See Supported Channel Plans

Committer:
Jason Reiss
Date:
Wed Aug 31 11:57:27 2016 -0500
Revision:
15:36db31c18231
Parent:
14:e80ace5a6834
Use DYNAMIC or FIXED channel plan instead of US915 or EU868
Add US915 and EU868 examples

Who changed what in which revision?

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