HERMES Modem
Hermes ARQ/Broadcast modem
Loading...
Searching...
No Matches
Data Structures | Functions
arq_timing.h File Reference
#include <stdbool.h>
#include <stdint.h>
Include dependency graph for arq_timing.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  arq_timing_ctx_t
 

Functions

void arq_timing_init (arq_timing_ctx_t *ctx)
 Zero-initialise a timing context at session start.
 
void arq_timing_record_tx_queue (arq_timing_ctx_t *ctx, int seq, int mode, int backlog_bytes, int payload_bytes)
 Record frame queued for TX; logs [TMG] tx_queue.
 
void arq_timing_record_tx_start (arq_timing_ctx_t *ctx, int seq, int mode, int backlog_bytes)
 Record PTT ON; logs [TMG] tx_start.
 
void arq_timing_record_tx_end (arq_timing_ctx_t *ctx, int seq)
 Record PTT OFF; logs [TMG] tx_end with duration.
 
void arq_timing_record_ack_rx (arq_timing_ctx_t *ctx, int seq, uint8_t ack_delay_raw, int peer_snr_x10)
 Record ACK received; computes and logs OTA RTT.
 
void arq_timing_record_data_rx (arq_timing_ctx_t *ctx, int seq, int bytes, int snr_x10)
 Record data frame decoded (IRS side); logs [TMG] data_rx.
 
void arq_timing_record_ack_tx (arq_timing_ctx_t *ctx, int seq)
 Record ACK TX started (IRS side); logs [TMG] ack_tx.
 
void arq_timing_record_retry (arq_timing_ctx_t *ctx, int seq, int attempt, const char *reason)
 Record a retry event; logs [TMG] retry.
 
void arq_timing_record_turn (arq_timing_ctx_t *ctx, bool to_iss, const char *reason)
 Record turn direction change; logs [TMG] turn.
 
void arq_timing_record_connect (arq_timing_ctx_t *ctx, int mode)
 Record session connected; logs [TMG] connect.
 
void arq_timing_record_disconnect (arq_timing_ctx_t *ctx, const char *reason)
 Record session disconnected; logs [TMG] disconnect and session totals.
 

Function Documentation

◆ arq_timing_init()

void arq_timing_init ( arq_timing_ctx_t ctx)

Zero-initialise a timing context at session start.

◆ arq_timing_record_ack_rx()

void arq_timing_record_ack_rx ( arq_timing_ctx_t ctx,
int  seq,
uint8_t  ack_delay_raw,
int  peer_snr_x10 
)

Record ACK received; computes and logs OTA RTT.

Parameters
ctxTiming context.
seqTX sequence number being ACKed.
ack_delay_rawWire-encoded ack_delay (10ms units, 0=unknown).
peer_snr_x10Peer-reported SNR * 10.

◆ arq_timing_record_ack_tx()

void arq_timing_record_ack_tx ( arq_timing_ctx_t ctx,
int  seq 
)

Record ACK TX started (IRS side); logs [TMG] ack_tx.

◆ arq_timing_record_connect()

void arq_timing_record_connect ( arq_timing_ctx_t ctx,
int  mode 
)

Record session connected; logs [TMG] connect.

◆ arq_timing_record_data_rx()

void arq_timing_record_data_rx ( arq_timing_ctx_t ctx,
int  seq,
int  bytes,
int  snr_x10 
)

Record data frame decoded (IRS side); logs [TMG] data_rx.

◆ arq_timing_record_disconnect()

void arq_timing_record_disconnect ( arq_timing_ctx_t ctx,
const char *  reason 
)

Record session disconnected; logs [TMG] disconnect and session totals.

◆ arq_timing_record_retry()

void arq_timing_record_retry ( arq_timing_ctx_t ctx,
int  seq,
int  attempt,
const char *  reason 
)

Record a retry event; logs [TMG] retry.

Parameters
ctxTiming context.
seqTX sequence number.
attempt1-based retry number.
reasonShort reason string (e.g. "timeout", "nack").

◆ arq_timing_record_turn()

void arq_timing_record_turn ( arq_timing_ctx_t ctx,
bool  to_iss,
const char *  reason 
)

Record turn direction change; logs [TMG] turn.

Parameters
ctxTiming context.
to_isstrue = becoming ISS, false = becoming IRS.
reason"piggyback", "turn_req", "startup" etc.

◆ arq_timing_record_tx_end()

void arq_timing_record_tx_end ( arq_timing_ctx_t ctx,
int  seq 
)

Record PTT OFF; logs [TMG] tx_end with duration.

◆ arq_timing_record_tx_queue()

void arq_timing_record_tx_queue ( arq_timing_ctx_t ctx,
int  seq,
int  mode,
int  backlog_bytes,
int  payload_bytes 
)

Record frame queued for TX; logs [TMG] tx_queue.

Parameters
ctxTiming context.
seqTX sequence number.
modeFreeDV mode used for TX.
backlog_bytesApplication bytes remaining in TX queue.
payload_bytesActual application bytes in this frame (0 for retransmits).

◆ arq_timing_record_tx_start()

void arq_timing_record_tx_start ( arq_timing_ctx_t ctx,
int  seq,
int  mode,
int  backlog_bytes 
)

Record PTT ON; logs [TMG] tx_start.