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 libmDot-mbed5
Fork of Dot-AT-Firmware by
CmdNetworkAddress.cpp
00001 #include "CmdNetworkAddress.h" 00002 #include <algorithm> 00003 00004 CmdNetworkAddress::CmdNetworkAddress() : 00005 Command("Network Address", "AT+NA", "Network address (devAddr in LoraMac) (4 bytes)", "(hex:4)") 00006 { 00007 _queryable = true; 00008 } 00009 00010 uint32_t CmdNetworkAddress::action(std::vector<std::string> args) 00011 { 00012 std::vector<uint8_t> addr; 00013 00014 if (args.size() == 1) 00015 { 00016 addr = CommandTerminal::Dot()->getNetworkAddress(); 00017 CommandTerminal::Serial()->writef("%02x:%02x:%02x:%02x\r\n", addr[0], addr[1], addr[2], addr[3]); 00018 } 00019 else if (args.size() == 2) 00020 { 00021 00022 int temp; 00023 uint32_t step = 2; 00024 00025 if (args[1].find(":") != std::string::npos || args[1].find(".") != std::string::npos || args[1].find("-") != std::string::npos) 00026 step = 3; 00027 00028 // Convert the ASCII hex data to binary... 00029 for (size_t i = 0; i < args[1].size(); i += step) 00030 { 00031 sscanf(&args[1][i], "%02x", &temp); 00032 addr.push_back(temp); 00033 } 00034 00035 if (CommandTerminal::Dot()->setNetworkAddress(addr) == mDot::MDOT_OK) { 00036 CommandTerminal::Serial()->writef("Set Network Address: "); 00037 CommandTerminal::Serial()->writef("%02x:%02x:%02x:%02x\r\n", addr[0], addr[1], addr[2], addr[3]); 00038 } else { 00039 CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());; 00040 return 1; 00041 } 00042 } 00043 00044 return 0; 00045 } 00046 00047 bool CmdNetworkAddress::verify(std::vector<std::string> args) 00048 { 00049 if (args.size() == 1) { 00050 return true; 00051 } 00052 00053 if (args.size() == 2) { 00054 if (!isHexString(args[1], 4)) 00055 { 00056 CommandTerminal::setErrorMessage("Invalid address, expects (hex:4)"); 00057 return false; 00058 } 00059 00060 return true; 00061 } 00062 00063 CommandTerminal::setErrorMessage("Invalid arguments"); 00064 return false; 00065 }
Generated on Tue Jul 12 2022 20:40:04 by
