AT command firmware for MultiTech Dot devices.
Fork of mDot_AT_firmware by
CmdDisplayConfig.cpp
00001 #include "CmdDisplayConfig.h" 00002 00003 #if MTS_CMD_TERM_VERBOSE 00004 CmdDisplayConfig::CmdDisplayConfig() : 00005 Command("Display Settings", "AT&V", "Displays current settings and status", "TABLE") 00006 { 00007 00008 } 00009 00010 uint32_t CmdDisplayConfig::action(const std::vector<std::string>& args) { 00011 CommandTerminal::Serial()->writef("Device ID:\t\t"); 00012 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getDeviceId(), ":").c_str()); 00013 00014 CommandTerminal::Serial()->writef("Default Frequency Band:\t%s\r\n", CommandTerminal::Dot()->FrequencyBandStr(CommandTerminal::Dot()->getDefaultFrequencyBand()).c_str()); 00015 // using getChannelPlanName here instead of mDot::FrequencyBandStr allows AT firmware to properly display custom channel plan names 00016 CommandTerminal::Serial()->writef("Current Frequency Band:\t%s\r\n", CommandTerminal::Dot()->getChannelPlanName().c_str()); 00017 CommandTerminal::Serial()->writef("Frequency Sub Band:\t%u\r\n", CommandTerminal::Dot()->getFrequencySubBand()); 00018 00019 int32_t ret = CommandTerminal::Dot()->getPublicNetwork(); 00020 string network_mode = "Not defined"; 00021 switch(ret) { 00022 case 0: network_mode = "Private MTS"; 00023 break; 00024 case 1: network_mode = "Public LoRaWAN"; 00025 break; 00026 case 2: network_mode = "Private LoRaWAN"; 00027 break; 00028 } 00029 CommandTerminal::Serial()->writef("Network Mode:\t\t%s\r\n", network_mode.c_str()); 00030 00031 CommandTerminal::Serial()->writef("Start Up Mode:\t\t%s\r\n", mDot::ModeStr(CommandTerminal::Dot()->getStartUpMode()).c_str()); 00032 00033 CommandTerminal::Serial()->writef("Network Address:\t%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getNetworkAddress()).c_str()); 00034 00035 CommandTerminal::Serial()->writef("Network ID:\t\t"); 00036 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getNetworkId(), ":").c_str()); 00037 00038 CommandTerminal::Serial()->writef("Network ID Passphrase:\t%s\r\n", CommandTerminal::Dot()->getNetworkName().c_str()); 00039 00040 CommandTerminal::Serial()->writef("Network Key:\t\t"); 00041 00042 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getNetworkKey(), ".").c_str()); 00043 CommandTerminal::Serial()->writef("Network Key Passphrase:\t%s\r\n", CommandTerminal::Dot()->getNetworkPassphrase().c_str()); 00044 00045 00046 CommandTerminal::Serial()->writef("Gen App Key:\t\t"); 00047 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getGenAppKey(), ".").c_str()); 00048 00049 CommandTerminal::Serial()->writef("Network Session Key:\t"); 00050 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getNetworkSessionKey(), ".").c_str()); 00051 00052 CommandTerminal::Serial()->writef("Data Session Key:\t"); 00053 CommandTerminal::Serial()->writef("%s\r\n", mts::Text::bin2hexString(CommandTerminal::Dot()->getDataSessionKey(), ".").c_str()); 00054 00055 CommandTerminal::Serial()->writef("Network Join Mode:\t%s\r\n", mDot::JoinModeStr(CommandTerminal::Dot()->getJoinMode()).c_str()); 00056 00057 CommandTerminal::Serial()->writef("Network Join Retries:\t%u\r\n", CommandTerminal::Dot()->getJoinRetries()); 00058 00059 CommandTerminal::Serial()->writef("Preserve Session:\t%s\r\n", CommandTerminal::Dot()->getPreserveSession() ? "on" : "off"); 00060 00061 CommandTerminal::Serial()->writef("Dev Nonce:\t\t%d\r\n", CommandTerminal::Dot()->getDevNonce()); 00062 CommandTerminal::Serial()->writef("Join Nonce:\t\t%d\r\n", CommandTerminal::Dot()->getAppNonce()); 00063 CommandTerminal::Serial()->writef("Join Delay:\t\t%d\r\n", CommandTerminal::Dot()->getJoinDelay()); 00064 00065 CommandTerminal::Serial()->writef("Join Rx1 DR Offset:\t%d\r\n", CommandTerminal::Dot()->getJoinRx1DataRateOffset()); 00066 00067 CommandTerminal::Serial()->writef("Join Rx2 Datarate:\tDR%d - %s\r\n", CommandTerminal::Dot()->getJoinRx2DataRate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getJoinRx2DataRate()).c_str()); 00068 00069 CommandTerminal::Serial()->writef("Join Rx2 Frequency:\t%lu\r\n", CommandTerminal::Dot()->getJoinRx2Frequency()); 00070 00071 CommandTerminal::Serial()->writef("Device Class:\t\t%s\r\n", CommandTerminal::Dot()->getClass().c_str()); 00072 CommandTerminal::Serial()->writef("Class B Timeout:\t%d s\r\n", CommandTerminal::Dot()->getClassCTimeout()); 00073 CommandTerminal::Serial()->writef("Class C Timeout:\t%d s\r\n", CommandTerminal::Dot()->getClassBTimeout()); 00074 00075 CommandTerminal::Serial()->writef("App Port:\t\t%d\r\n", CommandTerminal::Dot()->getAppPort()); 00076 00077 CommandTerminal::Serial()->writef("Listen Before Talk:\t"); 00078 if (CommandTerminal::Dot()->getLbtTimeUs() == 0 && CommandTerminal::Dot()->getLbtThreshold() == 0) { 00079 CommandTerminal::Serial()->writef("off\r\n"); 00080 } else { 00081 CommandTerminal::Serial()->writef("%u us, %d dBm\r\n", CommandTerminal::Dot()->getLbtTimeUs(), CommandTerminal::Dot()->getLbtThreshold()); 00082 } 00083 00084 CommandTerminal::Serial()->writef("Link Check Threshold:\t"); 00085 if (CommandTerminal::Dot()->getLinkCheckThreshold() == 0) { 00086 CommandTerminal::Serial()->writef("off\r\n"); 00087 } else { 00088 CommandTerminal::Serial()->writef("%lu\r\n", CommandTerminal::Dot()->getLinkCheckThreshold()); 00089 } 00090 00091 CommandTerminal::Serial()->writef("Link Check Count:\t"); 00092 if (CommandTerminal::Dot()->getLinkCheckCount() == 0) { 00093 CommandTerminal::Serial()->writef("off\r\n"); 00094 } else { 00095 CommandTerminal::Serial()->writef("%lu packets\r\n", CommandTerminal::Dot()->getLinkCheckCount()); 00096 } 00097 00098 CommandTerminal::Serial()->writef("ACK Retries:\t\t"); 00099 if (CommandTerminal::Dot()->getAck() == 0) { 00100 CommandTerminal::Serial()->writef("off\r\n"); 00101 } else { 00102 CommandTerminal::Serial()->writef("%u\r\n", CommandTerminal::Dot()->getAck()); 00103 } 00104 00105 CommandTerminal::Serial()->writef("Packet Repeat:\t\t%d\r\n", CommandTerminal::Dot()->getRepeat()); 00106 00107 CommandTerminal::Serial()->writef("Adaptive Data Rate:\t%s\r\n", CommandTerminal::Dot()->getAdr() ? "on" : "off"); 00108 CommandTerminal::Serial()->writef("Command Echo:\t\t%s\r\n", CommandTerminal::Dot()->getEcho() ? "on" : "off"); 00109 CommandTerminal::Serial()->writef("Verbose Response:\t%s\r\n", CommandTerminal::Dot()->getVerbose() ? "on" : "off"); 00110 00111 CommandTerminal::Serial()->writef("Tx Frequency:\t\t%lu\r\n", CommandTerminal::Dot()->getTxFrequency()); 00112 00113 CommandTerminal::Serial()->writef("Tx Data Rate:\t\tDR%d - %s\r\n", CommandTerminal::Dot()->getTxDataRate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getTxDataRate()).c_str()); 00114 CommandTerminal::Serial()->writef("Min/Max Tx Data Rate:\tMin: DR%d - %s\r\n\t\t\tMax: DR%d - %s\r\n", CommandTerminal::Dot()->getMinDatarate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getMinDatarate()).c_str(), CommandTerminal::Dot()->getMaxDatarate(), CommandTerminal::Dot()->getDataRateDetails(CommandTerminal::Dot()->getMaxDatarate()).c_str()); 00115 CommandTerminal::Serial()->writef("Tx Power:\t\t%u\r\n", CommandTerminal::Dot()->getTxPower()); 00116 CommandTerminal::Serial()->writef("Min/Max Tx Power:\tMin: %u\r\n\t\t\tMax: %u\r\n", CommandTerminal::Dot()->getMinTxPower(), CommandTerminal::Dot()->getMaxTxPower()); 00117 CommandTerminal::Serial()->writef("Tx Antenna Gain:\t%d\r\n", CommandTerminal::Dot()->getAntennaGain()); 00118 CommandTerminal::Serial()->writef("Tx Wait:\t\t%s\r\n", CommandTerminal::Dot()->getTxWait() ? "on" : "off"); 00119 00120 bool hasChannels = false; 00121 for (size_t i = 0; i < 16; i++) { 00122 if (CommandTerminal::Dot()->getConfigChannels()[i] != 0) { 00123 hasChannels = true; 00124 break; 00125 } 00126 } 00127 00128 if (hasChannels) { 00129 CommandTerminal::Serial()->writef("Tx Channels --------------------------------------\r\n"); 00130 CommandTerminal::Serial()->writef("\tIndex\tFrequency\tDR Range\r\n"); 00131 for (size_t i = 0; i < 16; i++) { 00132 if (CommandTerminal::Dot()->getConfigChannels()[i] != 0) 00133 CommandTerminal::Serial()->writef("\t%d:\t%09lu\t%02x\r\n", i, CommandTerminal::Dot()->getConfigChannels()[i], CommandTerminal::Dot()->getConfigChannelRanges()[i]); 00134 } 00135 CommandTerminal::Serial()->writef("--------------------------------------------------\r\n"); 00136 } 00137 00138 CommandTerminal::Serial()->writef("Rx Delay:\t\t%d s\r\n", CommandTerminal::Dot()->getRxDelay()); 00139 // CommandTerminal::Serial()->writef("Rx Frequency:\t\t%lu\r\n", CommandTerminal::Dot()->getRxFrequency()); 00140 // CommandTerminal::Serial()->writef("Rx Data Rate:\t\t%s\r\n", mDot::DataRateStr(CommandTerminal::Dot()->getRxDataRate()).c_str()); 00141 00142 CommandTerminal::Serial()->writef("Rx Output Style:\t%s\r\n", mDot::RxOutputStr(CommandTerminal::Dot()->getRxOutput()).c_str()); 00143 00144 CommandTerminal::Serial()->writef("Debug Baud Rate:\t%lu\r\n", CommandTerminal::Dot()->getDebugBaud()); 00145 CommandTerminal::Serial()->writef("Serial Baud Rate:\t%lu\r\n", CommandTerminal::Dot()->getBaud()); 00146 CommandTerminal::Serial()->writef("Serial Flow Control:\t%s\r\n", CommandTerminal::Dot()->getFlowControl() == 0 ? "off" : "on"); 00147 CommandTerminal::Serial()->writef("Serial Clear On Error:\t%s\r\n", CommandTerminal::Dot()->getSerialClearOnError() == 0 ? "off" : "on"); 00148 00149 uint8_t mode = CommandTerminal::Dot()->getWakeMode(); 00150 CommandTerminal::Serial()->writef("Wake Mode:\t\t%s\r\n", mode == 0 ? "INTERVAL" : ( mode == 1 ? "INTERRUPT" : "BOTH")); 00151 CommandTerminal::Serial()->writef("Wake Interval:\t\t%lu s\r\n", CommandTerminal::Dot()->getWakeInterval()); 00152 CommandTerminal::Serial()->writef("Wake Delay:\t\t%lu ms\r\n", CommandTerminal::Dot()->getWakeDelay()); 00153 CommandTerminal::Serial()->writef("Wake Timeout:\t\t%u ms\r\n", CommandTerminal::Dot()->getWakeTimeout()); 00154 CommandTerminal::Serial()->writef("Wake Pin:\t\t%s\r\n", mDot::pinName2Str(CommandTerminal::Dot()->getWakePin()).c_str()); 00155 00156 CommandTerminal::Serial()->writef("Log Level:\t\t%ld\r\n", CommandTerminal::Dot()->getLogLevel()); 00157 00158 return 0; 00159 } 00160 00161 #endif // MTS_CMD_TERM_VERBOSE
Generated on Wed Dec 6 2023 19:34:05 by 1.7.2