npr::rf::Si4463Device class final

Thin SI4463 device driver (SPI command path + FIFO RX/TX streaming).

Contains only hardware-facing behavior; protocol policy is handled above this layer.

Public functions

auto begin_tx_session(uint8_t preamble_bytes) -> bool
Prepares SI4463 for a burst of one or more TX packets.
void end_tx_session()
Returns radio back to RX and closes TX session.
auto healthy() const -> bool
true when device is initialized and HAL bindings are valid.
auto init(const Si4463Hal& hal, const RadioProfile& profile, const Si4463Config& config) -> bool
Initializes chip and applies profile/config.
auto poll_irq_line_active() const -> bool
Polls IRQ pin level if available.
auto read_fast_response(uint8_t* frr4_out) -> bool
Reads fast response register mirror (FRR4).
auto read_interrupt_status(uint8_t* ph_pend, uint8_t* modem_pend, uint8_t* chip_pend) -> bool
Reads and clears interrupt pending groups.
auto read_rx_packet(uint8_t* out, size_t out_capacity, size_t* out_size) -> bool
Reads one fully assembled RX packet from internal assembly buffer.
auto rx_assembly_pending() const -> bool
true when partial RX packet bytes are buffered and waiting completion.
auto set_tx_session_preamble(uint8_t preamble_bytes) -> bool
Updates preamble length while TX session is active.
auto start_rx() -> bool
Forces radio into RX state.
auto transmit_packet(const uint8_t* frame, size_t frame_size, uint8_t preamble_bytes, uint32_t timeout_us, Si4463TxTelemetry* telemetry = nullptr) -> bool
Sends one full frame using TX FIFO streaming.
auto transmit_packet_in_session(const uint8_t* frame, size_t frame_size, uint32_t timeout_us, Si4463TxTelemetry* telemetry = nullptr) -> bool
Sends one packet while TX session is already prepared.

Function documentation

bool npr::rf::Si4463Device::begin_tx_session(uint8_t preamble_bytes)

Prepares SI4463 for a burst of one or more TX packets.

Performs preamble/state/fifo/hop setup once.

bool npr::rf::Si4463Device::transmit_packet(const uint8_t* frame, size_t frame_size, uint8_t preamble_bytes, uint32_t timeout_us, Si4463TxTelemetry* telemetry = nullptr)

Sends one full frame using TX FIFO streaming.

Parameters
frame On-air bytes to transmit.
frame_size Number of bytes in frame.
preamble_bytes Requested preamble length for this transmit.
timeout_us Timeout for TX completion wait.
telemetry Optional timing output.
Returns true when packet-sent IRQ was observed before timeout.