XRPi Home Documentation Index Alphabetic Index |
XRPi Documentation - InterfacesWA8DED Emulation InterfaceIntroductionXRPi can emulate a WA8DED TNC, in both normal mode and "host" mode. This can be used for both manual operations and application support, just like a real TNC. Many applications are capable of using WA8DED host mode. .------. .-------------. | XRPi |------RS232-------| Application | '------' '-------------' (e.g. BBS or Hyperterm) The application may be located on the same machine as XRPi, connected to it either via a pair of "virtual" COM ports, or via a pair of "real" COM ports interconnected with a null-modem cable. Alternatively, the application may be located on a separate machine, using an RS232 null-modem cable to interconnect the machines. In "normal" TNC mode, the "user" (usually a sysop) interacts with XRPi via the application, which is usually a dumb terminal such as HyperTerm. .------. .-----------. | XRPi |------RS232-------| HyperTerm |<--User '------' '-----------' But in "host" mode, the user interacts with the APPLICATION, which is usually a BBS, via XRPi: .------. .-----. User -->| XRPi |------RS232-------| BBS | '------' '-----' Configuring XRPi To Support Applications Using WA8DED Hostmode
Default ModeThe default mode (host mode / terminal mode) is controlled by the FLOW parameter in the INTERFACE definition block. With FLOW=0, XRPi's WA8DED emulation starts in non-host ("terminal") mode because most applications expect it that way, therefore it allows them to sync up quickly. However, some applications may expect the TNC to be in host mode, and may fail to sync if FLOW=0. In this case, setting FLOW=4 forces the WA8DED "TNC" to start in host mode. This control is not a panacea. For example, If XRPi is stopped and restarted while an application is running in hostmode, everything should quickly sync up again if FLOW=4. But this setting may prevent the application from syncing up from cold.
Starting / Stopping ApplicationsWhere possible, XRPi should be started before the application, and stopped after it, because some applications malfunction if they don't see the expected responses when they start up and shut down. If an application doesn't close down "cleanly", it may take a while to resync when it restarts. This is normal.
Hidden ApplicationsIf you have an application that only makes outgoing connections, you can omit the APPL block altogether. The application will still work, but it won't accept incoming connects.
Known Issues
Breaking out of host modeIf the emulator is inadvertently switched into, or left in, host mode it can be easily be returned to terminal mode using Hyperterm as follows:
TROUBLESHOOTING
MiscellanyRandom factoids...
Using WA8DED TNC Emulation in Terminal ModeXRPi's WA8DED emulator starts up in "terminal" mode (i.e. not host mode) and may be therefore tested or used in this mode using Hyperterm or any other dumb terminal. Wherever possible, the emulator behaves the same as a "real" WA8DED TNC, as detailed below: In normal mode, commands and information are sent from the terminal to the emulator in the form of lines. Lines may be up to 256 characters long, including the terminating CARRIAGE RETURN. If the 256th character entered is not a CARRIAGE RETURN, it will be discarded and a BELL character will be output to the terminal. BACKSPACE and DELETE may be used to remove single characters from the line. The entire line may be permanently backspaced out by entering a CONTROL-U or CONTROL-X. Lines which begin with an ESCAPE character (echoed as '* ') are interpreted as commands. Lines without a leading ESCAPE character are sent as information. Most commands consist of a single letter. Some commands have an optional parameter. The number of spaces (if any) between the command and any parameter is not important. If a command is issued with no parameter, the current value of that command's parameter is displayed. Unless a parameter is returned, commands do not normally return any acknowledgement. By default, XRPi's WA8DED emulator provides the operator with five virtual TNC channels, numbered 0 to 4 (The actual number may be altered between 1 and 32using the CHANNELS= keyword in the supporting INTERFACE). The terminal is logically attached to only one of these channels at a time, selected by the 'S' command. Channel 0 is reserved for unproto transmissions and monitoring. This channel does not support connections. Information sent on channel 0 is always unproto. The unproto path may be set by issuing a 'C' command when channel 0 is selected. Channels other than 0 support connections, but are unproto if they are not currently connected. Outgoing connect requests may be issued on any unconnected channel (other than channel 0), while incoming connect requests will use the first available channel (provided the maximum number of connections set by the 'Y' command will not be exceeded). Information received on a connected channel that is not currently selected will remain queued there until that channel is selected. The 'L' command may be used to determine the channel(s) where stored information is located. Information for transmission is sent only to the currently selected channel. When a connection is ended, received information will remain queued until it has been displayed. Frame monitoring is controlled by the 'M' command. The command parameter determines the types of frames monitored, and is a list of desired frames chosen from the letters in the following table: LTR FRAME --- ----- N None I I frames U UI frames S Supervisory frames C Monitor while connected + Call signs to be included (maximum of 8) - Call signs to be excluded (maximum of 8) The '+' and '-' parameters may not be used together. If either is used, it must be the last parameter (followed by one to eight callsigns, if applicable). If no list of callsigns is specified to be included or excluded, all callsigns will be candidates for monitoring. Entering a '+' or '-' with no callsigns will empty the list. An asterisk displayed after a callsign in the digipeater list indicates the frame was transmitted by that station. The control field displayed will be one of the following: NAME DESCRIPTION ---- ----------- RRa - Receive Ready RNRa - Receive Not Ready REJa - Reject UI - Unnumbered Information DM - Disconnected Mode SABM - Connect Request DISC - Disconnect Request UA - Unnumbered Acknowledge FRMR - Frame Reject Iab - Information ?ccH - Unknown a = Next expected frame number (0 - 7) b = Frame number of this frame (0 - 7) cc = Hexadecimal value In addition, one of the following characters will be displayed, reflecting the protocol version, command/response bits, and the poll/final bit: (blank) = version 1 frame without poll/final bit ! = version 1 frame with poll/final bit ^ = version 2 command frame without poll bit + = version 2 command frame with poll bit - = version 2 response frame with final bit v = version 2 response frame without final bit The protocol identifier field is displayed in hexadecimal An unattended mode, controlled by the 'U' command, provides for sending user supplied text to a connecting station, and then allows that station to leave a brief message. This mode can operate on all channels simultaneously, but in no way limits the operator's ability to interact with one of the connected channels or the ability to make outgoing connect requests. When unattended mode is enabled, link status messages are queued to the associated channel and not output to the terminal unless that channel is currently selected. Link status messages will therefore be displayed in chronological order with the information from that channel. In addition, text supplied by the user with the 'U' command will be sent to any station that connects. If channel 0 is left selected, stations may then connect and leave messages on channels 1 - 4
(limited by the 'Y' parameter, of course). The 'L' command may be used to determine if messages have been left on any channel. Selecting a channel containing messages will cause all link status and information from that channel to be displayed. If xon/xoff handshaking is enabled, CONTROL-S and CONTROL-Q may be used to regulate the output to the terminal to allow comfortable reading.
COMMAND SUMMARY(In terminal mode all commands are preceded by ESCAPE character) COMMAND PARAMETER DESCRIPTION ------- --------- ----------- A (1) 0 Auto linefeed disabled 1 Auto linefeed enabled * C Cs1 [Cs2 ... Cs9] Connect path (0=unproto path) * D Disconnect E (1) 0 Echo input disabled 1 Echo input enabled * I Cs Tnc source callsign JHOST (0) 0 Terminal mode enabled 1 Host mode enabled K (0) 0 Timestamp disabled 1 Timestamp status messages 2 Timestamp monitoring & status L [0-n] Display channel status M (IU) NIUSC+- Monitor mode S (0) 0-n Select channel (0=unproto) U (0) 0 [text] Unattended mode disabled 1 [text] Unattended mode enabled V (0) Displays the software version Y (4) 0-n Maximum incoming connections Z (3) 0 Flow disabled, xon/off disabled 1 Flow enabled, xon/off disabled 2 Flow disabled, xon/off enabled 3 Flow enabled, xon/off enabled (0) Default values are shown in parentheses n Number of channels, as specified by CHANNELS keyword * These commands are applicable to each connection channel COMMAND DESCRIPTIONThe 'A' (AutoLF) command is used to enable or disable the automatic insertion of LINEFEED characters after CARRIAGE RETURN characters to the terminal. The 'C' (Connect) command is used on channels other than 0 to initiate a link connection. A 'C' command issued when channel 0 is selected sets the unproto path. If digipeaters are specified, 'v' or 'via' is not required (but is allowed) between the destination callsign and the digipeater callsigns, and callsigns must be seperated by spaces. Note that on channels > 0 this command ignores the destination path and only allows connect to the node. The default unproto address for channel 0 is "CQ". The 'D' (Disconnect) command is used to initiate a link disconnection. If there is unsent or unacknowledged information remaining, the disconnect request frame will not be sent until all information has been transmitted and acknowledged. No additional information will be received after the 'D' command has been issued. A second 'D' command may be entered to force the transmission of the disconnect request frame before all information has been sent and acknowledged. A 'D' command issued during the establishment of a link or after a disconnect request frame has been transmitted will cause an immediate return to the disconnected state. The 'E' (Echo) command is used to enable or disable the echoing of input (commands and information) to the terminal. The 'I' (Ident) command is used to set and display the TNC source callsign. The initial value is the APPLCALL. If no APPL block was defined, the initial value is all blanks. Changing the TNC source callsign on a connected channel is not permitted. If the tnc source callsign is left blank, the tnc will not allow connect commands or unproto transmissions. The callsign stored in channel 0 is used to initialize each connection channel upon power up or disconnection. The 'JHOST' command is used to switch between terminal and host modes. A later section is devoted to host mode operation. The 'K' command controls the time stamping of status messages and monitored frames. The 'L' (LinkStatus) command is used to display the link status of one or all channels. Information displayed includes the connection path and the number of receive frames not yet displayed, number of send frames not yet transmitted, number of transmitted frames not yet acknowledged, and the current retry count. A '+' character preceeding the channel number indicates the currently selected channel. Operation of this command when host mode is enabled is somewhat different, and is described in a later section. The 'M' (Monitor) command is used to set the frame monitoring mode. The command parameter determines the types of frames monitored, and is a list of desired frames chosen from the letters in the following table: LTR FRAME --- ----- N None I I frames U UI frames S Supervisory frames C Monitor while connected + Call signs to be included (maximum of 8) - Call signs to be excluded (maximum of 8) The '+' and '-' parameters may not be used together. If either is used, it must be the last parameter (followed by one to eight callsigns, if applicable). If no list of callsigns is specified to be included or excluded, all callsigns will be candidates for monitoring. Entering a '+' or '-' with no callsigns will clear the list. The 'U' (Unattended) command is used to enable or disable unattended modes. The 'V' (Version) command just displays the software version. In this respect it behaves like TheFirmware instead of WA8DED. The 'Y' command is used to set the maximum number of connections that may established by incoming requests. This command has no effect on the operators ability to initiate outgoing connection requests. The 'Z' command is used to enable or disable flow control and xon/xoff handshaking to the terminal. If flow control is enabled, output to the terminal will be inhibited while entering commands or information. If flow control is disabled, output to the terminal will not be restricted. Flow control and xon/xoff handshaking should be disabled during periods in which the tnc is operated without a terminal, to avoid suspending output which will consume buffers. If xon/xoff handshaking is enabled, terminal scrolling may be stopped and started using CONTROL-S and CONTROL-Q characters. Flow control and xon/xoff handshaking are not performed when host mode is enabled. The '@' command is a software maintenance command. A parameter of 'B' will display the number of free buffers. |