MicroLabo / Mbed OS mbed-Dot-AT-Firmware

Dependencies:   MTS-Serial libmDot-mbed5

Fork of Dot-AT-Firmware by MultiTech

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers CmdNetworkJoinMode.cpp Source File

CmdNetworkJoinMode.cpp

00001 #include "CmdNetworkJoinMode.h"
00002 
00003 CmdNetworkJoinMode::CmdNetworkJoinMode() :
00004         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)")
00005 {
00006     _queryable = true;
00007 }
00008 
00009 uint32_t CmdNetworkJoinMode::action(std::vector<std::string> args)
00010 {
00011     if (args.size() == 1) {
00012         CommandTerminal::Serial()->writef("%u\r\n", CommandTerminal::Dot()->getJoinMode());
00013     }
00014     else if (args.size() == 2)
00015     {
00016         uint8_t mode = (args[1] == "1") ? 1 : 0;
00017         mode = (args[1] == "2" ? 2 : mode);
00018         mode = (args[1] == "3" ? 3 : mode);
00019         
00020         if (CommandTerminal::Dot()->setJoinMode(mode) != mDot::MDOT_OK)
00021         {
00022             CommandTerminal::setErrorMessage(CommandTerminal::Dot()->getLastError());;
00023             return 1;
00024         }
00025 
00026     }
00027 
00028     return 0;
00029 }
00030 
00031 bool CmdNetworkJoinMode::verify(std::vector<std::string> args)
00032 {
00033     if (args.size() == 1)
00034         return true;
00035 
00036     if (args.size() == 2)
00037     {
00038         if (!(args[1] == "0" || args[1] == "1" || args[1] == "2" || args[1] == "3"))
00039         {
00040             CommandTerminal::setErrorMessage("Invalid parameter, expects (0: Manual, 1: OTA, 2: Auto OTA, 3:Peer-to-Peer)");
00041             return false;
00042         }
00043 
00044         return true;
00045     }
00046 
00047     CommandTerminal::setErrorMessage("Invalid arguments");
00048     return false;
00049 }