Si4463Device class final
#include <npr/phy/si4463_device.hpp>
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
truewhen 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
truewhen 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. |