/**
\page kiss_command_page FLDIGI KISS Hardware Commands
\tableofcontents
Custom Frame Extensions
These commands are NON-STANDARD extension(s) to the KISS interface
specifications and designed to control/configure aspects of FLDIGI not
normally found in Hardware TNC's. Undefined kiss frame types 6 and 7 are used
to identify these custom frames.
Definition | Kiss frame ID
:---------: | :-----------------:
HARDWARE | 6
RAW | 7
External program which conform to the official KISS I/O specifications are
expected to operate normally.
UDP/IP Connectionless communications are used to transfer information between
FLDIGI and the host program. See \ref config_io_page and
\ref command_line_switches_page for specific address and port number
assignments.
\section sSetCommands Set Commands
Command \ | Use
:------------------------------- | :----------------------------
BCHN:\ | Busy Channel On/Off
BCHNS:\<0-999\> | Busy Channel Wait Duration (seconds)
CSMA:\ | Enable/Disable CSMA. Used on a shared frequency
IBCHN:\ | Set Inhibit busy channel duration to N seconds
IBCHN:0 | Resets temporary duration to default setting.
IBCHN:S | Inhibit busy channel temporarily. 'S' (character) (default 5 seconds)
KISSRAW:\ | Pass non HDLC encoded data to the transmitter.
\verbatim
ON = HDLC and Unaltered data.
OFF = HDLC data only.
ONLY = Unaltered data only.
\endverbatim
Command | Use
:------------------------------- |:-------------------------------------------------
KISSCRCM:\ | Enable KISS frame checksum type
KPSATT:\ | Set the fractional ratio gain value (1/value)
KPSQL:\ | OFF=Histogram Mode, ON=User set level
KPSQLS:\<0-100\> | Set squelch level (percent)
MODEM:\ | Set modem type. Example MODEM:PSK63RC32
RSIDBCAST:\ | Enable/disable RSID broadcast state change (default: OFF)
RSIDRX:\ | Enable/disable RX RSID
RSIDTX:\ | Enable/disable TX RSID
SQL:\ | SQL On/Off
SQLS:\<0-100\> | Set SQL Level (percent)
TRXSBCAST:\ | Enable/disable TX/RX state change broadcast (default: OFF)
TXBEBCAST:\ | Enable/disable TX buffer empty broadcast (default: OFF)
TXLOCK:\ | Enable/disable TX waterfall position lock.
WFF:\ | Move TXRX cursor to frequency on waterfall.
\verbatim
NONE = No CRC used
SMACK = Enable CRC use for Host <-> TNC ASYNC links
CCITT = Enable CCITT CRC
FCS = Enable FCS CRC
XOR = Enable BPQ's XOR CRC
\endverbatim
Command \ | Use
:---------------------|:-------------------------------------------------
RSIDM:\,\ | Set the RSID mode to,...
\verbatim
BANDPASS = Search entire bandpass for RSID signals
MODEM = Search Modem bandpass (+/- 200HZ) for RSID signals
ACTIVE = When RSID received, move frequency transmit/receive cursor to location.
NOTIFY = Report RSID when detected (Notify only).
\endverbatim
\section sQueryCommands Query Commands
Command / Return Status | Use
:-------------------------------------------------------- | :-------------------------------------------------
BCHN: FLDIGI returns BCHN:\ | Busy Channel State On/Off Query
BCHNS: FLDIGI returns BCHNS:\<0-999\> | Busy Channel Wait Duration Query (seconds)
BUSY: FLDIGI returns BUSY:\ | Return the state of the squelch, if there is a signal present
CSMA: FLDIGI returns CSMA:\ | CSMA State ON/OFF
FLSTAT: FLDIGI returns FLSTAT:\,\ | Start up State and runtime. Returns OK and after initial Query
IBCHN: FLDIGI returns IBCHN:\ | Inhibit busy channel durations in seconds.
KISSCRCM: FLDIGI returns CRCMODE:\,\ | Host <-> TNC KISS CRC Types
KPSATT: FLDIGI returns KPSATT:\ | Fractional value of KPSQL ratio gain figure (1/value)
KPSQL: FLDIGI returns KPSQL:\ | OFF=Histogram Mode, ON=User set level
KPSQLP: FLDIGI returns KPSQLP \<0-100\> | Current Power Level
KPSQLS: FLDIGI returns KPSQLS:\<0-100\> | Squelch set level Query (percent)
MODEM: FLDIGI returns MODEM:\ | Current Modem
MODEMBW: FLDIGI returns MODEMBW:\ | Current Modem Bandwidth
MODEML: FLDIGI returns MODEML:Modem1,Modem2,... | A List of comma delimited modem ID strings.
RSIDM: FLDIGI returns RSIDM:\,\ | Return current RSID Mode
RSIDRX: FLDIGI returns RSIDRX:\ | RX RSID ON?
RSIDTX: FLDIGI returns RSIDTX:\ | TX RSID ON?
SQL: FLDIGI returns SQL:\ | SQL On/Off
SQLP: FLDIGI returns SQLP:\<0-100\> | Current Symbol Quality Level (Currently Not returning valid data)
SQLS: FLDIGI returns SQLS:\<0-100\> | Set SQL Level Query (percent)
TNC: FLDIGI returns TNC:FLDIGI \ | Returns the version number of FLDIGI
TRXS: FLDIGI returns TRXS:\ | Return the current RX/TX state of FLDIGI
TXBUF: FLDIGI returns TXBUF:\ | Return the number of byte in the transmit queue
TXLOCK: FLDIGI returns TXLOCK:\ | Return TX waterfall position lock state.
WFBW: FLDIGI returns WFBW:\,\ | Return the active waterfall bandwidth
WFF: FLDIGI returns WFF:\ | Current modem position on waterfall (center)
\subsection ssQueryCommand Query Commands (FLDIGI to HOST)
Command | Use
:------------ |:-------------------------------------------------
HOST: | Host returns HOST:\ \
\par Note:
Not required
\section sBroadcastCommands Broadcast Status Messages (FLDIGI to HOST)
Status \ | Use
:-------------------------- |:-------------------------------------------------
RSIDN:NEW_WF_OFFSET,NEW_MODEM,OLD_WF_OFFSET,OLD_MODEM,\ | RSID NOTICE
TRXS:\ | Transmitted during a state change between RX/TX or TX/RX.
TXBE: | Broadcast on emptied transmit buffer.
\verbatim
NEW_WF_OFFSET = 0-4000
NEW_MODEM = Modem ID string of newly switched modem.
OLD_WF_OFFSET = 0-4000
OLD_MODEM = Modem ID string of modem prior to switching.
ACTIVE = Indicating TXRX cursor changed.
NOTIFY = Notice only.
USER = Report User or commanded via KISS interface modem change.
\endverbatim
\section sCommandFormat Format of Hardware Commands
FLDIGI will only except KISS frames with a PORT ID of '0' (zero). The hardware
frame is a kiss frame type 6.
\verbatim
MODEM:PSK125RC16
FEND,PORT(0)|HRDW(6),'M','O',D','E','M',':','P','S','K','1',2','5','R','C','1','6',FEND
KISS HARDWARE FRAME="MODEM:PSK63RC32"
KISS HARDWARE FRAME="RSIDTX:ON"
KISS HARDWARE FRAME="RSIDRX:OFF"
\endverbatim
\section sRawDataFormat Format of RAW Data
To enable RAW use, issue hardware command KISSRAW:. The
encode of the raw data is the same as the encoding of normal kiss data. The
host program is responsible for the proper protocol data syntax.
Format:
Dn=8 bit data (byte)
\verbatim
KISS RAW FRAME=D1,D2,D3,...
FEND,PORT(0)|RAW(7),D1,D2,D3,...,FEND
\endverbatim
---
Notes:
- The transmit buffer has a ten minute timer association. In the
event data has been retained in the transmit buffer for more then 10
minutes without being transmitted in part or whole the buffer is
cleared. This will prevent a build up of data and a subsequent
transmit for an extended period once the frequency is clear.
Consider all packets in the transmit queue lost. If enabled,
TXBE will be issued when this occurs.
- Both ARQ and KISS IO ports are active for the reception of data.
However, only the selected port will pass data to the higher functions
and the other port will not buffer the data for later use. Reason: see
note 1.
- By keeping a complete ARQ (RAW) packet in one KISS frame both
HDLC and ARQ (RAW) data can coexist. This allows for sequential data
transmission without interleaving data at the byte level.
*/