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:
jreiss
Date:
Thu Mar 23 20:40:54 2017 +0000
Revision:
29:15b59b827ac7
Parent:
15:36db31c18231
update libmDot-Custom

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jason Reiss 14:e80ace5a6834 1 #include "CmdJoinRx2Datarate.h"
Jason Reiss 14:e80ace5a6834 2 #include "CommandTerminal.h"
Jason Reiss 14:e80ace5a6834 3
Jason Reiss 14:e80ace5a6834 4 CmdJoinRx2Datarate::CmdJoinRx2Datarate()
Jason Reiss 14:e80ace5a6834 5 :
Jason Reiss 14:e80ace5a6834 6 Command("Join Rx2 Datarate", "AT+JR2D", "Join Rx2 datarate", "(US:DR8-DR13,AU:DR8-DR13,EU:DR0-DR7)") {
Jason Reiss 14:e80ace5a6834 7
Jason Reiss 14:e80ace5a6834 8 }
Jason Reiss 14:e80ace5a6834 9
Jason Reiss 14:e80ace5a6834 10 uint32_t CmdJoinRx2Datarate::action(std::vector<std::string> args) {
Jason Reiss 14:e80ace5a6834 11
Jason Reiss 14:e80ace5a6834 12 if (args.size() == 1) {
Jason Reiss 14:e80ace5a6834 13 CommandTerminal::Serial()->writef("%s\r\n", mDot::DataRateStr(CommandTerminal::Dot()->getJoinRx2DataRate()).c_str());
Jason Reiss 14:e80ace5a6834 14 }
Jason Reiss 14:e80ace5a6834 15 else if (args.size() == 2) {
Jason Reiss 14:e80ace5a6834 16 std::string dr = mts::Text::toUpper(args[1]);
Jason Reiss 14:e80ace5a6834 17
Jason Reiss 14:e80ace5a6834 18 int datarate = 0;
Jason Reiss 14:e80ace5a6834 19 uint8_t i;
Jason Reiss 14:e80ace5a6834 20
Jason Reiss 14:e80ace5a6834 21 int res = sscanf(dr.c_str(), "%d", &datarate);
Jason Reiss 14:e80ace5a6834 22
Jason Reiss 14:e80ace5a6834 23 if (res == 0) {
Jason Reiss 14:e80ace5a6834 24 for (i = 0; i < 16; i++) {
Jason Reiss 14:e80ace5a6834 25 if (mDot::DataRateStr(i).find(dr) != std::string::npos) {
Jason Reiss 14:e80ace5a6834 26 datarate = i;
Jason Reiss 14:e80ace5a6834 27 break;
Jason Reiss 14:e80ace5a6834 28 }
Jason Reiss 14:e80ace5a6834 29 }
Jason Reiss 14:e80ace5a6834 30 }
Jason Reiss 14:e80ace5a6834 31
Jason Reiss 14:e80ace5a6834 32 if (CommandTerminal::Dot()->setJoinRx2DataRate(datarate) != mDot::MDOT_OK) {
Jason Reiss 15:36db31c18231 33 CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());
Jason Reiss 14:e80ace5a6834 34 return 1;
Jason Reiss 14:e80ace5a6834 35 }
Jason Reiss 14:e80ace5a6834 36 }
Jason Reiss 14:e80ace5a6834 37
Jason Reiss 14:e80ace5a6834 38 return 0;
Jason Reiss 14:e80ace5a6834 39 }
Jason Reiss 14:e80ace5a6834 40
Jason Reiss 14:e80ace5a6834 41 bool CmdJoinRx2Datarate::verify(std::vector<std::string> args) {
Jason Reiss 14:e80ace5a6834 42 if (args.size() == 1)
Jason Reiss 14:e80ace5a6834 43 return true;
Jason Reiss 14:e80ace5a6834 44
Jason Reiss 14:e80ace5a6834 45 if (args.size() == 2) {
Jason Reiss 14:e80ace5a6834 46 return true;
Jason Reiss 14:e80ace5a6834 47 }
Jason Reiss 14:e80ace5a6834 48
Jason Reiss 14:e80ace5a6834 49 CommandTerminal::setErrorMessage("Invalid arguments");
Jason Reiss 14:e80ace5a6834 50 return false;
Jason Reiss 14:e80ace5a6834 51 }