Mercury Modem
Mercury ARQ/Broadcast modem
Loading...
Searching...
No Matches
Data Fields
arq_fsm_callbacks_t Struct Reference

#include <arq_fsm.h>

Data Fields

void(* send_tx_frame )(int packet_type, int mode, size_t frame_size, const uint8_t *frame, int burst_remaining)
 Enqueue a complete TX frame to the modem action queue.
 
void(* notify_connected )(const char *remote_call, const char *local_call)
 Notify TCP interface that a connection is established.
 
void(* notify_pending )(const char *remote_call, const char *local_call)
 Notify TCP interface of an incoming call that is pending acceptance.
 
void(* notify_cancelpending )(void)
 Notify TCP interface that a pending incoming call did not complete.
 
void(* notify_disconnected )(bool to_no_client)
 Notify TCP interface of disconnection.
 
void(* deliver_rx_data )(const uint8_t *data, size_t len)
 Deliver received data bytes to the TCP data stream.
 
int(* tx_backlog )(void)
 Return bytes available in the TX buffer.
 
int(* tx_read )(uint8_t *buf, size_t len)
 Read up to len bytes from the TX buffer; returns bytes actually read.
 
void(* send_buffer_status )(int backlog_bytes)
 Send BUFFER status (bytes remaining) to TCP interface.
 
bool(* channel_busy )(void)
 Is there energy on the channel right now? Optional (NULL when the station has no busy detector, which is the default) – used to avoid keying over a transmission we cannot decode, which decoder sync alone cannot see.
 
void(* send_keydown )(const arq_keydown_t *kd)
 Carousel: key the radio for a keydown of separate bursts (copied by the callee), and set the CRC seed the modem's decoders accept (0: plain frames only, outside a carousel session).
 
void(* send_pattern )(int pattern_kind)
 Key a pattern (arq_pattern_kind_t) on the air.
 
void(* set_crc_seed )(uint16_t seed)
 

Field Documentation

◆ channel_busy

bool(* arq_fsm_callbacks_t::channel_busy) (void)

Is there energy on the channel right now? Optional (NULL when the station has no busy detector, which is the default) – used to avoid keying over a transmission we cannot decode, which decoder sync alone cannot see.

See peer_is_transmitting() in arq_fsm.c.

◆ deliver_rx_data

void(* arq_fsm_callbacks_t::deliver_rx_data) (const uint8_t *data, size_t len)

Deliver received data bytes to the TCP data stream.

◆ notify_cancelpending

void(* arq_fsm_callbacks_t::notify_cancelpending) (void)

Notify TCP interface that a pending incoming call did not complete.

◆ notify_connected

void(* arq_fsm_callbacks_t::notify_connected) (const char *remote_call, const char *local_call)

Notify TCP interface that a connection is established.

Parameters
remote_callthe peer (caller) callsign
local_callour dialed callsign/SSID (empty => use primary)

◆ notify_disconnected

void(* arq_fsm_callbacks_t::notify_disconnected) (bool to_no_client)

Notify TCP interface of disconnection.

Parameters
to_no_clienttrue = client disconnected too; clear arq_conn.

◆ notify_pending

void(* arq_fsm_callbacks_t::notify_pending) (const char *remote_call, const char *local_call)

Notify TCP interface of an incoming call that is pending acceptance.

Parameters
remote_callthe peer (caller) callsign
local_callour dialed callsign/SSID (empty => use primary)

◆ send_buffer_status

void(* arq_fsm_callbacks_t::send_buffer_status) (int backlog_bytes)

Send BUFFER status (bytes remaining) to TCP interface.

◆ send_keydown

void(* arq_fsm_callbacks_t::send_keydown) (const arq_keydown_t *kd)

Carousel: key the radio for a keydown of separate bursts (copied by the callee), and set the CRC seed the modem's decoders accept (0: plain frames only, outside a carousel session).

◆ send_pattern

void(* arq_fsm_callbacks_t::send_pattern) (int pattern_kind)

Key a pattern (arq_pattern_kind_t) on the air.

Optional.

◆ send_tx_frame

void(* arq_fsm_callbacks_t::send_tx_frame) (int packet_type, int mode, size_t frame_size, const uint8_t *frame, int burst_remaining)

Enqueue a complete TX frame to the modem action queue.

◆ set_crc_seed

void(* arq_fsm_callbacks_t::set_crc_seed) (uint16_t seed)

◆ tx_backlog

int(* arq_fsm_callbacks_t::tx_backlog) (void)

Return bytes available in the TX buffer.

◆ tx_read

int(* arq_fsm_callbacks_t::tx_read) (uint8_t *buf, size_t len)

Read up to len bytes from the TX buffer; returns bytes actually read.


The documentation for this struct was generated from the following file: