Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MTS-Serial libxDot-mbed5
Diff: CommandTerminal/CmdTxChannel.cpp
- Revision:
- 9:ff62b20f7000
- Parent:
- 1:e52ae6584f1c
- Child:
- 14:f9a77400b622
diff -r a8be708e0e56 -r ff62b20f7000 CommandTerminal/CmdTxChannel.cpp
--- a/CommandTerminal/CmdTxChannel.cpp Mon Apr 04 13:17:44 2016 +0000
+++ b/CommandTerminal/CmdTxChannel.cpp Mon Apr 04 09:00:31 2016 -0500
@@ -5,7 +5,7 @@
Command(dot, "Tx Channels", "AT+TXCH", "List Tx channel frequencies for sub-band"),
_serial(serial) {
_help = std::string(text()) + ": " + std::string(desc());
- _usage = "TABLE";
+ _usage = "<INDEX>,<FREQUENCY>,<DR_RANGE>";
_queryable = true;
}
@@ -13,21 +13,71 @@
if (args.size() == 1) {
std::vector<uint32_t> channels = _dot->getChannels();
- for (int i = 0; i < 8; i++) {
- _serial.writef("%d: %d 125k\r\n", i, channels[i]);
- }
+ if (_dot->getFrequencyBand() == mDot::FB_868) {
+ for (int i = 0; i < 16; i++) {
+ _serial.writef("%d: %d 125k\r\n", i, channels[i]);
+ }
+ _serial.writef("D: %d 125k\r\n", channels[8]);
- if (_dot->getFrequencyBand() == mDot::FB_868) {
- _serial.writef("D: %d 125k\r\n", channels[8]);
} else {
- if (_dot->getVerbose())
- _serial.writef("Tx Channels: \r\n");
+
+ for (int i = 0; i < 8; i++) {
+ _serial.writef("%d: %d 125k\r\n", i, channels[i]);
+ }
_serial.writef("U: %d 500k\r\n", channels[8]);
_serial.writef("D: %d 500k\r\n", channels[9]);
}
}
+ if (args.size() == 4) {
+ int index;
+ int frequency;
+ int datarateRange;
+
+ sscanf(args[1].c_str(), "%d", &index);
+ sscanf(args[2].c_str(), "%d", &frequency);
+ sscanf(args[3].c_str(), "%02x", &datarateRange);
+
+ _dot->addChannel(index, frequency, datarateRange);
+ }
+
return 0;
}
+bool CmdTxChannel::verify(std::vector<std::string> args) {
+ if (args.size() == 1)
+ return true;
+
+ if (args.size() == 4) {
+
+ int index;
+ int frequency;
+ int datarateRange;
+
+ sscanf(args[1].c_str(), "%d", &index);
+ sscanf(args[2].c_str(), "%d", &frequency);
+ sscanf(args[3].c_str(), "%02x", &datarateRange);
+
+ if (_dot->getFrequencyBand() == mDot::FB_868) {
+ if (index < 3 || index > 15) {
+ setErrorMessage("Invalid index, expects (3-15)");
+ return false;
+ }
+
+ if (frequency != 0 && (frequency < 863000000 || frequency > 870000000)) {
+ setErrorMessage("Invalid frequency, expects (863000000-870000000)");
+ return false;
+ }
+ } else {
+ setErrorMessage("US915 Channels cannot be changed, use AT+FSB to limit");
+ return false;
+ }
+
+ return true;
+ } else {
+ setErrorMessage("Invalid arguments");
+ return false;
+ }
+
+}