SmartSDR Status Responses - flexradio/smartsdr-api-docs GitHub Wiki

Slice Receiver Status

Slice receiver responses always start with the standard status header and are followed by the word 'slice' and the slice number that corresponds to the update. Each status line will only contain updates for a single slice. Here is the format for a slice update:

S<client>|slice <slice_rx> <field_value_pair> ...

<client>            = the hexadecimal client that precipitated the change to the value
<slice_rx>          = the slice receiver being updated
<field_value_pair>  = a field name and its new value, may occur one or more times

Not all field-value-pairs are required in an update and in many situations only one field will be provided. For example, when tuning only the frequency is likely to be emitted. The field-value-pairs are available in this list:

Field Name Value Type Example Field Description
in_use 0 or 1 in_use=0 A boolean (0=False) indicating if the slice receiver is in use. If no clients are using the slice, this value will be false
RF_frequency double RF_frequency=14.2012 The current carrier frequency of the slice receiver in MHz
antenna_id unsigned int antenna_id=1 The current antenna in use by the slice receiver. A list of antenna ports vs. the numbers provided here is available ***here***
mode string mode=USB The demodulation mode for the slice receiver.
wide 0 or 1 wide=1 Indicates if the underlying SCU is in wideband mode (no preselectors, wide=1) or narrowband mode (preselectors on, wide=0)
filter_lo double filter_lo=0.0003 Lower frequency of final filter in the demodulator in MHz (in this example 300Hz)
filter_hi double filter_hi=0.0024 Upper frequency of final filter in the demodulator in MHz (in this example 2.4kHz)

Example slice status response:

SA4E3D1C9|slice 2 in_use=1 RF_frequency=1.44 antenna_id=5 mode=USB wide=1 filter_lo=0.0003 filter_hi=0.0024

Supported Modes

Mode Name Mode Description
USB Upper Sideband
LSB Lower Sideband
CW CW (sideband)
AM Amplitude Modulation

Panadapter Status

Panadapter responses always start with the standard status header and are followed by the words 'display pan' and the output stream that corresponds to the panadapter. This stream identification number is provided on creation of the panadapter and is the unique handle for manipulating and receiving status on the panadapter. Each status line will only contain updates for a single panadapter. Here is the format for a panadapter update:

S<client>|display pan <stream_id> <field_value_pair> ...

<client>            = the hexadecimal client that precipitated the change to the value
<stream_id>         = the 32-bit hexadecimal stream ID for the panadapter, such as 0x11223344
<field_value_pair>  = a field name and its new value, may occur one or more times

Not all field-value-pairs are required in an update and in many situations only one field will be provided. The field-value-pairs are available in this list:

Field Name Value Type Example Field Description
center double center=14.2051 A double precision frequency that is the center of the panadapter in MHz
bandwidth double bandwidth=0.200 The bandwidth to be displayed in MHz
x-pixels unsigned int x-pixels=500 Width of the panadapter display in pixels
y-pixels unsigned int y-pixels=200 Height of the panadapter display in pixels
fps unsigned int fps=20 Frame rate in frames per second

Example slice status response:

SA4E3D1C9|display pan 0x40000000 center=1.3 bandwidth=0.384 x_pixels=300 y_pixels=200 fps=20

Interlock / PTT Status

The FLEX-6000 uses an interlock model that prevents the transmitter from keying unless interlock conditions are met. The status of the interlock and the transmitter are sent to the client to assist in displaying the status and helping the operator troubleshoot the interlock status. Here is the format for a interlock update:

S0|interlock state=<state> [reason=<reason>] [source=<source>] [timeout=<timeout_ms>]
            [acc_txreq_enable=<T|F>] [rca_txreq_enable=<T|F>] [acc_txreq_polarity=<T|F>] [rca_txreq_polarity=<T|F>]

<state>         = the current interlock state. Always shown
<reason>        = if the radio is unable to transmit, a reason why it cannot.  Only shown when there is an interlock problem
<source>        = if the radio is transmitting, the source of the PTT.  Only shown when the radio is transmitting
<T|F>           = 'T' for TRUE or 'F' for FALSE when used with enables.  For TXREQ line polarity, 'T' indicates that it is OK to transmit when this line is +V and 'F' when 0 V.
Interlock State Meaning
RECEIVE The radio is either receive only or no slice has been designated as the transmitter
READY The radio is ready to transmit
NOT_READY The radio has an assigned transmitter, but cannot transmit because of an interlock problem
PTT_REQUESTED PTT has been pressed and the radio has engaged the transmitter, but waiting on hardware interlocks before sending RF
TRANSMITTING The radio transmitter is engaged
TX_FAULT An interlock condition occurred during transmit and the transmitter has been shut off
TIMEOUT The transmitter was running, but stopped because the timeout timer was exceeded
STUCK_INPUT An input is stuck in the "on" position and the transmitter has been disabled

See the Interlock State Transition Diagram for details on state transitions

PTT Source Meaning
SW Software PTT such as a MOX button on a client or CAT
MIC The front-panel microphone connector (foster)
ACC The PTT pin on the accessory connector on the rear of the radio
RCA The PTT foot-switch connector on the read of the radio
Interlock Reasons Meaning
RCA_TXREQ The TXREQ line on the rear of the radio (RCA connector) is asserted. Check the polarity and enabled state
ACC_TXREQ The TXREQ line on the accessory connector (DB15 connector) is asserted. Check the polarity and enabled state
BAD_MODE The transmit antenna, receive antenna and SCU combination is invalid for transmit
TOO_FAR While using the PA, the transmitter was tuned outside of the current PA filter range
PA_RANGE The PA cannot transmit on this frequency

Example slice status response:

S0|interlock state=TRANSMITTING source=RCA
⚠️ **GitHub.com Fallback** ⚠️