AT command firmware for MultiTech Dot devices.
Fork of mDot_AT_firmware by
CommandFactory.cpp
00001 #include "CommandFactory.h" 00002 00003 #if MTS_CMD_TERM_VERBOSE 00004 #define CMD_DUMMY(n,t,d,u) CmdDummy(n,t,d,u) 00005 #else 00006 #define CMD_DUMMY(n,t,d,u) CmdDummy(t) 00007 #endif 00008 00009 Command* CommandFactory::Create(CmdId_t cmd) 00010 { 00011 switch (cmd) { 00012 case eAT: 00013 return new CMD_DUMMY("Attention", "AT", "Attention", ""); 00014 case eATI: 00015 return new CmdIdentification(); 00016 case eLW: 00017 return new CMD_DUMMY("LoRaWAN MAC Version", "AT+LW", "Show support LoRaWAN MAC Version", ""); 00018 case eATZ: 00019 return new CmdResetCpu(); 00020 case eATE: 00021 return new CMD_DUMMY("Enable/Disable Echo", "ATE", "ATE0: disable, ATE1: enable", "(0,1)"); 00022 case eATVERBOSE: 00023 return new CMD_DUMMY("Enable/Disable Verbose", "ATV", "ATV0: disable, ATV1: enable", "(0,1)"); 00024 case eATK: 00025 return new CMD_DUMMY("Hardware Flow Control", "AT&K", "AT&K0: disable, AT&K3: enable", "(0,3)"); 00026 case eATF: 00027 return new CmdFactoryDefault(); 00028 case eATW: 00029 return new CMD_DUMMY("Save Configuration", "AT&W", "Save configuration to flash memory", "NONE"); 00030 #if MTS_CMD_TERM_VERBOSE 00031 case eATV: 00032 return new CmdDisplayConfig(); 00033 case eATS: 00034 return new CmdDisplayStats(); 00035 #endif 00036 case eATR: 00037 return new CmdResetStats(); 00038 case eIPR: 00039 return new CmdSerialBaudRate(); 00040 case eDIPR: 00041 return new CmdDebugBaudRate(); 00042 case eSMODE: 00043 return new CmdStartUpMode(); 00044 case eDFREQ: 00045 return new CmdDefaultFrequencyBand(); 00046 case eFREQ: 00047 return new CmdFrequencyBand(); 00048 case eFSB: 00049 return new CmdFrequencySubBand(); 00050 case ePN: 00051 return new CmdPublicNetwork(); 00052 case eDI: 00053 return new CmdDeviceId(); 00054 case eDC: 00055 return new CmdDeviceClass(); 00056 case eLBT: 00057 return new CmdLbt(); 00058 case eAP: 00059 return new CmdAppPort(); 00060 case eNA: 00061 return new CmdNetworkAddress(); 00062 case eNSK: 00063 return new CmdNetworkSessionKey(); 00064 case eDSK: 00065 return new CmdDataSessionKey(); 00066 case eULC: 00067 return new CmdUplinkCounter(); 00068 case eDLC: 00069 return new CmdDownlinkCounter(); 00070 case eSS: 00071 return new CMD_DUMMY("Save Network Session", "AT+SS", "Save network session info to flash", "NONE"); 00072 case eRS: 00073 return new CmdRestoreSession(); 00074 case eCDI: 00075 return new CmdCustomDeviceID(); 00076 case eCSN: 00077 return new CmdCustomSerialNumber(); 00078 case eNK: 00079 return new CmdNetworkKey(); 00080 case eGK: 00081 return new CmdGenAppKey(); 00082 case eNI: 00083 return new CmdNetworkId(); 00084 case eJD: 00085 return new CmdJoinDelay(); 00086 case eJOIN: 00087 return new CmdJoinRequest(); 00088 case eJR: 00089 return new CmdJoinRetries(); 00090 case eJN: 00091 return new CmdJoinNonce(); 00092 case eJNV: 00093 return new CmdJoinNonceValidation(); 00094 case eNJM: 00095 return new CmdNetworkJoinMode(); 00096 case ePS: 00097 return new CmdPreserveSession(); 00098 case eNJS: 00099 return new CmdNetworkJoinStatus(); 00100 case eNLC: 00101 return new CmdNetworkLinkCheck(); 00102 case eLCC: 00103 return new CmdLinkCheckCount(); 00104 case eLCT: 00105 return new CmdLinkCheckThreshold(); 00106 case eRSSI: 00107 return new CmdRssi(); 00108 case eSNR: 00109 return new CmdSnr(); 00110 case eDP: 00111 return new CMD_DUMMY("Data Pending", "AT+DP", "Indicator of data in queue on server", "(0,1)"); 00112 case eSDR: 00113 return new CmdSessionDataRate(); 00114 case eCHM: 00115 return new CmdChannelMask(); 00116 case eTXDR: 00117 return new CmdTxDataRate(); 00118 case eTXP: 00119 return new CmdTxPower(); 00120 case eANT: 00121 return new CmdAntennaGain(); 00122 case eTXF: 00123 return new CmdTxFrequency(); 00124 case eFO: 00125 return new CmdTxFrequencyOffset(); 00126 case eTXW: 00127 return new CmdTxWait(); 00128 case eTXCH: 00129 return new CmdTxChannel(); 00130 case eTXN: 00131 return new CmdTxNextMs(); 00132 case eTXS: 00133 return new CmdTxNextSize(); 00134 case eTOA: 00135 return new CmdTimeOnAir(); 00136 case eMCRX: 00137 return new CmdMulticastRx(); 00138 case eRXD: 00139 return new CmdRxDelay(); 00140 case eRXO: 00141 return new CmdRxOutput(); 00142 case eADR: 00143 return new CmdAdaptiveDataRate(); 00144 case eACK: 00145 return new CmdACKAttempts(); 00146 case eBTO: 00147 return new CmdClassBTimeout(); 00148 case eCTO: 00149 return new CmdClassCTimeout(); 00150 case eREP: 00151 return new CmdRepeat(); 00152 case ePP: 00153 return new CmdPingPeriod(); 00154 case eMAC: 00155 return new CmdMacCmd(); 00156 case eSEND: 00157 return new CmdSendString(); 00158 case eSENDB: 00159 return new CmdSendBinary(); 00160 case eRECV: 00161 return new CmdReceiveOnce(); 00162 case eURC: 00163 return new CMD_DUMMY("Unsolicited Response Code", "AT+URC", "Output packets to terminal when received", "(0,1)"); 00164 case eSD: 00165 return new CMD_DUMMY("Serial Data Mode", "AT+SD", "Enter serial data mode, exit with '+++'", "NONE"); 00166 case eSLEEP: 00167 return new CMD_DUMMY("Sleep Mode", "AT+SLEEP", "Enter sleep mode (0:deepsleep,1:sleep)", "(0,1)"); 00168 case eSDCE: 00169 return new CmdSerialClearOnError(); 00170 case eWM: 00171 return new CmdWakeMode(); 00172 case eWI: 00173 return new CmdWakeInterval(); 00174 case eWP: 00175 return new CmdWakePin(); 00176 case eWD: 00177 return new CmdWakeDelay(); 00178 case eWTO: 00179 return new CmdWakeTimeout(); 00180 case ePING: 00181 return new CmdPing(); 00182 case eRTC: 00183 return new CmdRtc(); 00184 case eLOG: 00185 return new CmdLogLevel(); 00186 case eFOTA: 00187 return new CmdFota(); 00188 case eGPSTIME: 00189 return new CmdGpsTime(); 00190 case eBLS: 00191 return new CmdBeaconLockStatus(); 00192 case eLBTRSSI: 00193 return new CmdLBTRSSI(); 00194 case eBAT: 00195 return new CmdBatteryLevel(); 00196 case eATWP: 00197 return new CMD_DUMMY("Write Protected Config", "AT&WP", "Write protected config to flash (DevEUI, AppEUI, AppKey, Frequency Band)", "NONE"); 00198 case eMEM: 00199 return new CMD_DUMMY("Free Memory", "AT+MEM", "Show amount of free RAM available", ""); 00200 #if defined(TARGET_MTS_MDOT_F411RE) 00201 case eREPAIR: 00202 return new CmdRepairFlash(); 00203 case eWOTP: 00204 return new CmdWriteOtp(); 00205 #endif 00206 case eDUTY: 00207 return new CmdDutyCycle(); 00208 case eDD: 00209 return new CmdDisableDutyCycle(); 00210 #if MTS_CMD_TERM_TEST_COMMANDS 00211 case ePRINT_TEST: 00212 return new CMD_DUMMY("** Test Commands **", "", "", ""); 00213 case eSENDI: 00214 return new CmdSendStringOnInterval(); 00215 case eSENDC: 00216 return new CmdSendContinuous(); 00217 case eSW: 00218 return new CmdSweep(); 00219 #endif 00220 #ifdef MTS_RADIO_DEBUG_COMMANDS 00221 case ePRINT_DEBUG: 00222 return new CMD_DUMMY("** Debug Commands **", "", "", ""); 00223 case eDREGS: 00224 return new CmdDumpRegisters(); 00225 case eERASE: 00226 return new CmdEraseFlash(); 00227 case eRECVC: 00228 return new CmdReceiveContinuous(); 00229 #endif 00230 #if defined(TARGET_XDOT_MAX32670) 00231 case eVDDMIN: 00232 return new CmdVddMin(); 00233 #ifdef MTS_RADIO_CTRL_COMMANDS 00234 case ePRINT_RADIO_CTRL: 00235 return new CMD_DUMMY("** Radio Control Commmands **", "", "", ""); 00236 case ePADUTYCONF: 00237 return new CmdPaDutyConf(); 00238 case eHPMAXCONF: 00239 return new CmdHpMaxConf(); 00240 case eLNACONF: 00241 return new CmdLnaConf(); 00242 case eXTATRIM: 00243 return new CmdXTATrim(); 00244 case eXTBTRIM: 00245 return new CmdXTBTrim(); 00246 case eSWT: 00247 return new CmdSetSW(); 00248 case eRAMP: 00249 return new CmdRamp(); 00250 case eINF: 00251 return new CmdInfPreamble(); 00252 case eRADSLEEP: 00253 return new CmdRadioSleep(); 00254 case eSENDDI: 00255 return new CmdSendDI(); 00256 case eRXF: 00257 return new CmdRxFrequency(); 00258 case eRXDR: 00259 return new CmdRxDataRate(); 00260 #endif 00261 #endif 00262 default: 00263 return NULL; 00264 } 00265 }
Generated on Wed Dec 6 2023 19:34:05 by 1.7.2