@@ -87,7 +87,7 @@ bool commandAT(const char * commandString)
8787 case (' B' ): // ATB - Break the link
8888
8989 // Compute the time delay
90- delayMillis = (VC_LINK_BREAK_MULTIPLIER + 2 ) * settings.heartbeatTimeout ;
90+ delayMillis = (LINK_BREAK_MULTIPLIER + 2 ) * settings.heartbeatTimeout ;
9191
9292 // Warn the user of the delay
9393 systemPrint (" Delaying " );
@@ -111,7 +111,7 @@ bool commandAT(const char * commandString)
111111 // Idle the system to break the link
112112 // This is required on the server system which does not request an VC number assignment
113113 timer = millis ();
114- while ((millis () - timer) < ((VC_LINK_BREAK_MULTIPLIER + 2 ) * settings.heartbeatTimeout ))
114+ while ((millis () - timer) < ((LINK_BREAK_MULTIPLIER + 2 ) * settings.heartbeatTimeout ))
115115 petWDT ();
116116 changeState (RADIO_RESET);
117117
@@ -224,11 +224,11 @@ bool commandAT(const char * commandString)
224224 systemPrintln (" ATI8 - Display system unique ID" );
225225 systemPrintln (" ATI9 - Display the maximum datagram size" );
226226 systemPrintln (" ATI10 - Display radio metrics" );
227- systemPrintln ( " ATI11 - Return myVc value " );
228- systemPrintln ( " ATI12 - Display the VC details " );
229- systemPrintln (" ATI13 - Display the SX1276 registers " );
230- systemPrintln (" ATI14 - Dump the radioTxBuffer " );
231- systemPrintln (" ATI15 - Dump the NVM unique ID table" );
227+
228+ // Virtual circuit information commands
229+ systemPrintln (" ATI30 - Return myVc value " );
230+ systemPrintln (" ATI31 - Display the VC details " );
231+ systemPrintln (" ATI32 - Dump the NVM unique ID table" );
232232 return true ;
233233
234234 case (' 0' ): // ATI0 - Show user settable parameters
@@ -601,14 +601,22 @@ bool commandAT(const char * commandString)
601601 systemPrintln (" State History" );
602602 displayRadioStateHistory ();
603603 return true ;
604+ }
605+ }
606+ if ((commandString[2 ] == ' I' ) && (commandString[3 ] == ' 3' ) && (commandLength == 5 ))
607+ {
608+ switch (commandString[4 ])
609+ {
610+ default :
611+ return false ;
604612
605- case (' 1 ' ): // ATI11 - Return myVc value
613+ case (' 0 ' ): // ATI30 - Return myVc value
606614 systemPrintln ();
607615 systemPrint (" myVc: " );
608616 systemPrintln (myVc);
609617 return true ;
610618
611- case (' 2 ' ): // ATI12 - Display the VC details
619+ case (' 1 ' ): // ATI31 - Display the VC details
612620 systemPrintTimestamp ();
613621 systemPrint (" VC " );
614622 systemPrint (cmdVc);
@@ -706,16 +714,7 @@ bool commandAT(const char * commandString)
706714 }
707715 return true ;
708716
709- case (' 3' ): // ATI13 - Display the SX1276 registers
710- printSX1276Registers ();
711- return true ;
712-
713- case (' 4' ): // ATI14 - Dump the radioTxBuffer
714- systemPrintln (" radioTxBuffer:" );
715- dumpCircularBuffer (radioTxBuffer, radioTxTail, sizeof (radioTxBuffer), availableRadioTXBytes ());
716- return true ;
717-
718- case (' 5' ): // ATI15 - Dump the NVM unique ID table
717+ case (' 2' ): // ATI32 - Dump the NVM unique ID table
719718 systemPrintln (" NVM Unique ID Table" );
720719 for (vcIndex = 0 ; vcIndex < MAX_VC; vcIndex++)
721720 {
@@ -736,6 +735,33 @@ bool commandAT(const char * commandString)
736735 return true ;
737736 }
738737 }
738+ if ((commandString[2 ] == ' I' ) && (commandString[3 ] == ' 5' ) && (commandLength == 5 ))
739+ {
740+ switch (commandString[4 ])
741+ {
742+ default :
743+ return false ;
744+
745+ case (' 0' ): // ATI50 - Output 80000 bytes, stop when serial is full
746+ for (uint16_t line = 0 ; line < 1000 ; line++)
747+ {
748+ const char * text = " ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUV" ;
749+
750+ if (line < 100 )
751+ systemWrite (' 0' );
752+ if (line < 10 )
753+ systemWrite (' 0' );
754+ systemPrint (line);
755+ systemWrite (' :' );
756+ systemPrintln (text);
757+ }
758+ return true ;
759+
760+ case (' 1' ): // ATI51 - Display the SX1276 registers
761+ printSX1276Registers ();
762+ return true ;
763+ }
764+ }
739765
740766 // Invalid command
741767 return false ;
@@ -1165,6 +1191,8 @@ const COMMAND_ENTRY commands[] =
11651191 {' S' , 0 , 0 , 0 , 1 , 0 , TYPE_BOOL, valInt, " FlowControl" , &tempSettings.flowControl },
11661192 {' S' , 0 , 0 , 0 , 1 , 0 , TYPE_BOOL, valInt, " InvertCts" , &tempSettings.invertCts },
11671193 {' S' , 0 , 0 , 0 , 1 , 0 , TYPE_BOOL, valInt, " InvertRts" , &tempSettings.invertRts },
1194+ {' S' , 0 , 0 , 0 , SERIAL_RX_BUFFER_SIZE, 0 , TYPE_U16, valInt, " RTSOffBytes" , &tempSettings.rtsOffBytes },
1195+ {' S' , 0 , 0 , 0 , SERIAL_RX_BUFFER_SIZE, 0 , TYPE_U16, valInt, " RTSOnBytes" , &tempSettings.rtsOnBytes },
11681196 {' S' , 0 , 0 , 10 , 2000 , 0 , TYPE_U16, valInt, " SerialDelay" , &tempSettings.serialTimeoutBeforeSendingFrame_ms },
11691197 {' S' , 0 , 0 , 0 , 0 , 0 , TYPE_SPEED_SERIAL, valSpeedSerial, " SerialSpeed" , &tempSettings.serialSpeed },
11701198 {' S' , 0 , 0 , 0 , 1 , 0 , TYPE_BOOL, valInt, " UsbSerialWait" , &tempSettings.usbSerialWait },
0 commit comments