AT command firmware for MultiTech Dot devices.
Fork of mDot_AT_firmware by
CmdNetworkJoinMode.cpp
00001 #include "CmdNetworkJoinMode.h" 00002 00003 CmdNetworkJoinMode::CmdNetworkJoinMode() : 00004 #if MTS_CMD_TERM_VERBOSE 00005 Command("Network Join Mode", "AT+NJM", "0: Manual configuration, 1: OTA Network Join, 2: Auto OTA Network Join on start up, 3: Peer-to-Peer (default: 1)", "(0-3)") 00006 #else 00007 Command("AT+NJM") 00008 #endif 00009 { 00010 _queryable = true; 00011 } 00012 00013 uint32_t CmdNetworkJoinMode::action(const std::vector<std::string>& args) 00014 { 00015 if (args.size() == 1) { 00016 CommandTerminal::Serial()->writef("%u\r\n", CommandTerminal::Dot()->getJoinMode()); 00017 } 00018 else if (args.size() == 2) 00019 { 00020 uint8_t mode = (args[1] == "1") ? 1 : 0; 00021 mode = (args[1] == "2" ? 2 : mode); 00022 mode = (args[1] == "3" ? 3 : mode); 00023 00024 if (CommandTerminal::Dot()->setJoinMode(mode) != mDot::MDOT_OK) 00025 { 00026 return 1; 00027 } 00028 00029 if (mode == 3) { 00030 Fota::getInstance()->enable(false); 00031 CommandTerminal::Dot()->clearMacCommands(); 00032 CommandTerminal::Dot()->setTxDataRate(CommandTerminal::Dot()->getTxDataRate()); 00033 } 00034 00035 } 00036 00037 return 0; 00038 } 00039 00040 bool CmdNetworkJoinMode::verify(const std::vector<std::string>& args) 00041 { 00042 if (args.size() == 1) 00043 return true; 00044 00045 if (args.size() == 2) 00046 { 00047 if (!(args[1] == "0" || args[1] == "1" || args[1] == "2" || args[1] == "3")) 00048 { 00049 #if MTS_CMD_TERM_VERBOSE 00050 CommandTerminal::setErrorMessage("Invalid parameter, expects (0: Manual, 1: OTA, 2: Auto OTA, 3:Peer-to-Peer)"); 00051 #endif 00052 return false; 00053 } 00054 00055 return true; 00056 } 00057 00058 #if MTS_CMD_TERM_VERBOSE 00059 CommandTerminal::setErrorMessage("Invalid arguments"); 00060 #endif 00061 return false; 00062 }
Generated on Wed Dec 6 2023 19:34:05 by 1.7.2