ISIS TRXVU Radio API¶
Telemetry Conversion Functions
Convert raw ADC values into human-readable units
-
float
get_voltage(uint16_t raw)¶ - Return
- Voltage in volts
- Parameters
raw: Raw ADC value
-
float
get_current(uint16_t raw)¶ - Return
- Current in milliamps
- Parameters
raw: Raw ADC value
-
float
get_temperature(uint16_t raw)¶ - Return
- Temperature in degrees Celsius
- Parameters
raw: Raw ADC value
-
float
get_doppler_offset(uint16_t raw)¶ - Return
- Doppler shift in hertz
- Parameters
raw: Raw ADC value
-
float
get_signal_strength(uint16_t raw)¶ - Return
- Received signal strength power in decibel-milliwatts
- Parameters
raw: Raw ADC value
-
float
get_rf_power_dbm(uint16_t raw)¶ - Return
- RF reflected power in decibel-milliwatts
- Parameters
raw: Raw ADC value
-
float
get_rf_power_mw(uint16_t raw)¶ - Return
- RF reflected power in milliwatts
- Parameters
raw: Raw ADC value
Typedefs
-
typedef uint32_t
trxvu_uptime¶ Transmitter or receiver uptime value (in seconds)
Enums
-
enum
KRadioStatus¶ Radio function return values.
Values:
-
RADIO_OK= 0¶ Function call completed successfully.
-
RADIO_RX_EMPTY¶ Radio receive buffer is empty.
-
RADIO_ERROR¶ Generic radio error.
-
RADIO_ERROR_CONFIG¶ Function input parameter is invalid.
-
-
enum
KRadioReset¶ Radio reset types.
Values:
-
RADIO_HARD_RESET¶ Perform hardware-level radio reset.
-
RADIO_SOFT_RESET¶ Perform software radio reset.
-
-
enum
RadioTXRate¶ Flags used to set radio transmission data rate.
Values:
-
RADIO_TX_RATE_1200= 0x01¶ Transmitter data rate 1200bps.
-
RADIO_TX_RATE_2400= 0x02¶ Transmitter data rate 2400bps.
-
RADIO_TX_RATE_4800= 0x04¶ Transmitter data rate 4800bps.
Transmitter data rate 9600bps.
-
-
enum
RadioIdleState¶ Flags used to set transmitter’s idle state.
Values:
-
RADIO_IDLE_UNKNOWN= 0¶ Dummy value to indicate no change should be made.
-
RADIO_IDLE_OFF¶ Transmitter should turn off while idle.
-
RADIO_IDLE_ON¶ Transmitter should remain on while idle.
-
-
enum
RadioTelemType¶ Telemetry request types.
Values:
-
RADIO_TX_TELEM_ALL¶ Returns the current measurements of all the transmitter’s telemetry channels.
-
RADIO_TX_TELEM_LAST¶ Returns the telemetry channels that were sampled during the last frame transmission.
-
RADIO_TX_UPTIME¶ Returns the amount of time, in seconds, that the transmitter portion of the radio has been active.
-
RADIO_TX_STATE¶ Returns the current state of the transmitter.
-
RADIO_RX_TELEM_ALL¶ Returns the current measurements of all the receiver’s telemetry channels.
-
RADIO_RX_UPTIME¶ Returns the amount of time, in seconds, that the receiver portion of the radio has been active.
-
-
enum
RadioTXState¶ Radio TX state flags returned by RADIO_TX_STATE request.
Values:
-
RADIO_STATE_IDLE_OFF= 0x00¶ Transmitter will turn off when idle.
-
RADIO_STATE_IDLE_ON= 0x01¶ Transmitter will remain on when idle.
-
RADIO_STATE_BEACON_ACTIVE= 0x02¶ Transmitter’s beacon is enabled.
-
RADIO_STATE_RATE_1200= 0x00¶ Transmitter sending at 1200bps.
-
RADIO_STATE_RATE_2400= 0x01¶ Transmitter sending at 2400bps.
-
RADIO_STATE_RATE_4800= 0x02¶ Transmitter sending at 4800bps.
-
RADIO_STATE_RATE_9600= 0x03¶ Transmitter sending at 9600bps.
-
Functions
-
KRadioStatus
k_radio_watchdog_kick(void)¶ Kick the radio’s watchdogs once.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
k_radio_watchdog_start(void)¶ Start a thread to kick the radio’s watchdogs at an interval of (timeout/3) seconds.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
k_radio_watchdog_stop(void)¶ Stop the watchdog thread.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
k_radio_send_override(ax25_callsign to, ax25_callsign from, char *buffer, int len, uint8_t *response)¶ Send a message to the transmit buffer, but use the specified call-signs instead of the defaults.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
to: AX.25 call-sign for message senderfrom: AX.25 call-sign for message destinationbuffer: Pointer to message to sendlen: Length of message to sendresponse: Pointer to storage area for response byte
-
KRadioStatus
k_radio_set_beacon_override(ax25_callsign to, ax25_callsign from, radio_tx_beacon beacon)¶ Set the automatic periodic beacon, but use the specified call-signs instead of the defaults.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
to: AX.25 call-sign for message senderfrom: AX.25 call-sign for message destinationbeacon: radio_tx_beacon to send
-
KRadioStatus
k_radio_clear_beacon(void)¶ Clear/deactivate the automatic periodic beacon.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error
-
KRadioStatus
k_radio_init(char *bus, trx_prop tx, trx_prop rx, uint16_t timeout)¶ Initialize the radio interface.
- Return
- KRadioStatus RADIO_OK if OK, error otherwise
- Parameters
bus: The I2C bus device the radio is connected totx: The transmitter’s propertiesrx: The receiver’s propertiestimeout: The radio’s watchdog timeout (in seconds)
-
void
k_radio_terminate(void)¶ Terminate the radio interface.
-
KRadioStatus
k_radio_configure(radio_config *config)¶ Configure the radio.
- Note
- This function might not be implemented for all radios. See specific radio API documentation for configuration availability and structure
- Return
- KRadioStatus RADIO_OK if OK, error otherwise
- Parameters
config: Pointer to the radio configuration structure
-
KRadioStatus
k_radio_reset(KRadioReset type)¶ Reset the radio.
- Note
- This function might not be implemented for all radios
- Return
- KRadioStatus RADIO_OK if OK, error otherwise
- Parameters
type: Type of reset to perform (hard, soft, etc)
-
KRadioStatus
k_radio_send(char *buffer, int len, uint8_t *response)¶ Send a message to the radio’s transmit buffer.
- Return
- KRadioStatus RADIO_OK if OK, error otherwise
- Parameters
buffer: Pointer to the message to sendlen: Length of the message to sendresponse: Response value from radio (if supported)
-
KRadioStatus
k_radio_recv(radio_rx_header *frame, uint8_t *message, uint8_t *len)¶ Receive a message from the radio’s receive buffer.
- Return
- KRadioStatus RADIO_OK if a message was received successfully, RADIO_RX_EMPTY if there are no messages to receive, error otherwise
- Parameters
frame: Pointer where the header properties should be storedmessage: Pointer to where the message payload should be storedlen: Length of the received message
-
KRadioStatus
k_radio_get_telemetry(radio_telem *buffer, RadioTelemType type)¶ Read radio telemetry values.
- Note
- See specific radio API documentation for available telemetry types
- Return
- KRadioStatus RADIO_OK if OK, error otherwise
- Parameters
buffer: Pointer to structure which data should be copied totype: Telemetry packet to read
-
void *
kprv_radio_watchdog_thread(void *args)¶ Thread which kicks the radio’s watchdogs every (timeout/3) seconds.
-
KRadioStatus
kprv_radio_tx_set_beacon(uint16_t rate, char *buffer, int len)¶ Set the transmitter beacon’s interval and message.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
rate: Interval (in seconds) at which to send beacon messagebuffer: Pointer to beacon payload messagelen: Length of beacon payload message
-
KRadioStatus
kprv_radio_tx_set_default_to(ax25_callsign to)¶ Set the transmitter’s default AX.25 sender call-sign.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
to: Pointer to AX.25 call-sign structure
-
KRadioStatus
kprv_radio_tx_set_default_from(ax25_callsign from)¶ Set the transmitter’s default AX.25 destination call-sign.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
from: Pointer to AX.25 call-sign structure
-
KRadioStatus
kprv_radio_tx_set_idle(RadioIdleState state)¶ Set the transmitter’s idle state.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
state: Idle state. Should be RADIO_IDLE_ON or RADIO_IDLE_OFF
-
KRadioStatus
kprv_radio_tx_set_rate(RadioTXRate rate)¶ Set the transmitter’s data rate.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
rate: Data rate. Should beRADIO_TX_RATE_1200,RADIO_TX_RATE_2400,RADIO_TX_RATE_4800, orRADIO_TX_RATE_9600
-
KRadioStatus
kprv_radio_tx_get_telemetry(radio_telem *buffer, RadioTelemType type)¶ Get telemetry from transmitter.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
buffer: Pointer to storage area. Should point to a trxvu_tx_telem_raw structure if RADIO_TX_TELEM_ALL or RADIO_TX_TELEM_LAST is being requestedtype: Telemetry type to fetch. Should be RADIO_TX_TELEM_ALL, RADIO_TX_TELEM_LAST, RADIO_TX_UPTIME, or RADIO_TX_STATE
-
KRadioStatus
kprv_radio_tx_watchdog_kick(void)¶ Kick the transmitter’s watchdog.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
kprv_radio_tx_reset(KRadioReset type)¶ Reset the transmitter.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise - Parameters
type: Type of reset to be performed. Should beRADIO_RESET_SOFTorRADIO_RESET_HARD
-
KRadioStatus
kprv_radio_rx_get_count(uint8_t *count)¶ Get number of frames in receive buffer.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise - Parameters
count: Pointer to storage area for count value
-
KRadioStatus
kprv_radio_rx_remove_frame(void)¶ Delete oldest frame from receive buffer.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
kprv_radio_rx_get_frame(radio_rx_header *frame, uint8_t *message, uint8_t *len)¶ Retrieve oldest frame from receive buffer.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise - Parameters
frame: Pointer where the header properties should be storedmessage: Pointer to where the message payload should be storedlen: Pointer to storage are for length of frame payload
-
KRadioStatus
kprv_radio_rx_get_telemetry(radio_telem *buffer, RadioTelemType type)¶ Get telemetry from receiver.
- Return
- KRadioStatus
RADIO_OKon success, otherwise error - Parameters
buffer: Pointer to storage area. Should point to a trxvu_rx_telem_raw structure if RADIO_RX_TELEM_ALL is being requestedtype: Telemetry type to fetch. Should be RADIO_RX_TELEM_ALL or RADIO_RX_UPTIME
-
KRadioStatus
kprv_radio_rx_watchdog_kick(void)¶ Kick the receiver’s watchdog.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise
-
KRadioStatus
kprv_radio_rx_reset(KRadioReset type)¶ Reset the receiver.
- Return
- KRadioStatus
RADIO_OKif OK, error otherwise - Parameters
type: Type of reset to be performed. Should beRADIO_RESET_SOFTorRADIO_RESET_HARD
Variables
-
int
radio_bus¶ File descriptor for the radio’s I2C bus.
-
struct
trx_prop¶ - #include <trxvu.h>
TX/RX properties.
-
struct
trxvu_tx_telem_raw¶ - #include <trxvu.h>
Transmitter raw telemetry fields returned from RADIO_TX_TELEM_ALL and RADIO_TX_TELEM_LAST requests.
Public Members
-
uint16_t
inst_RF_reflected¶ Instantaneous RF reflected power at transmitter port.
-
uint16_t
inst_RF_forward¶ Instantaneous RF forward power at transmitter port.
-
uint16_t
supply_voltage¶ Power bus voltage.
-
uint16_t
supply_current¶ Total supply current.
-
uint16_t
temp_power_amp¶ Power amplifier temperature.
-
uint16_t
temp_oscillator¶ Local oscillator temperature.
-
uint16_t
-
struct
ax25_callsign¶ - #include <trxvu.h>
AX.25 call-sign structure.
-
struct
trxvu_rx_telem_raw¶ - #include <trxvu.h>
Receiver raw telemetry fields returned from RADIO_RX_TELEM_ALL telemetry request.
Public Members
-
uint16_t
inst_doppler_offset¶ Instantaneous Doppler offset of signal at receiver port.
-
uint16_t
supply_current¶ Total supply current.
-
uint16_t
supply_voltage¶ Power bus voltage.
-
uint16_t
temp_oscillator¶ Local oscillator temperature.
-
uint16_t
temp_power_amp¶ Power amplifier temperature.
-
uint16_t
inst_signal_strength¶ Instantaneous signal strength of the signal at the receiver.
-
uint16_t
-
union
radio_telem¶ - #include <trxvu.h>
High-level Unifying Radio Telemetry Structure.
Public Members
-
uint8_t
tx_state¶ Returned by RADIO_TX_STATE.
-
trxvu_uptime
uptime¶ Returned by RADIO_TX_UPTIME and RADIO_RX_UPTIME.
-
trxvu_tx_telem_raw
tx_telem¶ Returned by RADIO_TX_TELEM_ALL and RADIO_TX_TELEM_LAST.
-
trxvu_rx_telem_raw
rx_telem¶ Returned by RADIO_RX_TELEM_ALL.
-
uint8_t
-
struct
radio_tx_beacon¶ - #include <trxvu.h>
Transmitter automatic periodic beacon configuration.
-
struct
radio_config¶ - #include <trxvu.h>
Radio transmitter configuration options.
Public Members
-
RadioTXRate
data_rate¶ Transmission data rate flag.
-
RadioIdleState
idle¶ Transmitter’s state when idle.
-
radio_tx_beacon
beacon¶ Transmitter beacon configuration.
-
ax25_callsign
to¶ Transmitter AX.25 sender call-sign.
-
ax25_callsign
from¶ Transmitter AX.25 destination call-sign.
-
RadioTXRate
-
struct
radio_rx_header¶ - #include <trxvu.h>
Radio receive frame structure.
Public Members
-
uint16_t
msg_size¶ Size of the frame payload.
-
uint16_t
doppler_offset¶ ADC value of doppler shift at receive time (convert with get_doppler_offset)
-
uint16_t
signal_strength¶ ADC value of signal strength at receive time (convert with get_signal_strength)
-
uint16_t