|
Mercury Modem
Mercury ARQ/Broadcast modem
|
#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) |
| 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.
| void(* arq_fsm_callbacks_t::deliver_rx_data) (const uint8_t *data, size_t len) |
Deliver received data bytes to the TCP data stream.
| void(* arq_fsm_callbacks_t::notify_cancelpending) (void) |
Notify TCP interface that a pending incoming call did not complete.
| void(* arq_fsm_callbacks_t::notify_connected) (const char *remote_call, const char *local_call) |
Notify TCP interface that a connection is established.
| remote_call | the peer (caller) callsign |
| local_call | our dialed callsign/SSID (empty => use primary) |
| void(* arq_fsm_callbacks_t::notify_disconnected) (bool to_no_client) |
Notify TCP interface of disconnection.
| to_no_client | true = client disconnected too; clear arq_conn. |
| 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.
| remote_call | the peer (caller) callsign |
| local_call | our dialed callsign/SSID (empty => use primary) |
| void(* arq_fsm_callbacks_t::send_buffer_status) (int backlog_bytes) |
Send BUFFER status (bytes remaining) to TCP interface.
| 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).
| void(* arq_fsm_callbacks_t::send_pattern) (int pattern_kind) |
Key a pattern (arq_pattern_kind_t) on the air.
Optional.
| 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.
| void(* arq_fsm_callbacks_t::set_crc_seed) (uint16_t seed) |
| int(* arq_fsm_callbacks_t::tx_backlog) (void) |
Return bytes available in the TX buffer.
| 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.