lr2021 0.8.0

Driver for Semtech LR2021
Documentation
# Change Log

## [0.8.0] - 2025-09-07

### Added
  - API for Raw IQ TX/capture
  - Add method to patch RF setting for ranging as this needs to be done after set_packet_type
  - Add LoRa API for hidden features: set_lora_freq_range and set_sidedet_halfbin
  - Add BLE API for Constant Tone Extension support (experimental)

### Changed
  - WMbus PktFormat renamed to WmbusFormat
  - LoRa:
    * use struct to define modulation and packet params
    * SF and LoRaBw implements Ord (i.e. can use comparison operators)

## [0.7.0] - 2025-09-07

### Added
  - LoRa: add API to retrieve FEI
  - Ranging:
    * add method to get the base TXRX Delay depending on bandwidth and SF
    * add set_rf_ranging to ensure constant delay whatever the RF selected
    * add method to retrieve the ranging RSSI correction offset
  - Ranging:

### Fixed
  - Fix command value of SetRxDutyCycle
  - Ranging: rssi2 has been removed (always null)
  - Patch RAM is now properly enabled after being loaded (to be tested)

## [0.6.0] - 2025-09-03

### Changed
  - Improved documentation (doc(alias), Summary of methods in each protocol file, ...)
  - Use enum for RxBoost in `set_rx_path`
  - Use enum for DIO in `set_dio_function_cmd`, `set_dio_irq_config_cmd`, `set_dio_rf_switch_config_cmd` and `set_lora_timing_sync`

### Added
  - Add API to control DIO functions (`set_dio_function` and `set_dio_rf_switch`)
  - Add API related to packet timestamp (`set_timestamp_source` and `get_timestamp`)
  - Add API related to TX/RS (`set_tx_test_mode`, `set_auto_txrx` and `set_rx_duty_cycle`)

## [0.5.0] - 2025-08-31

### Changed
  - FSK: dc_free parameter is now a bool in set_fsk_packet
  - ZWave:
    * timeout now uses the recommended value based on number of channel used
    * set_packet now uses a struct which can be build based on the Zwave mode

### Added
  - LoRa: add methods related to ranging, timing synch, preamble modulation
  - WM-Bus: API
  - Wisun: API
  - BPSK: API (TX only)
  - System:
    * `rd_mem` API allows reading a chunk of the chip memory (mainly for debug or multi-register dump)
    * `ErrorsRsp` now has a defmt::Format implementation as-well as a direct access to the 32b value

## [0.4.0] - 2025-08-23

### Changed
  - Core: the internal buffer was extended to support 256 data bytes and made externally accessible
    through `buffer()` and `buffer_mut()`.
  - Read/Write FIFO where changed and split in two:
    * `wr_tx_fifo`/`rd_rx_fifo` changed to take only a length argument and use the internal buffer
    * `wr_tx_fifo_to`/`wr_rx_fifo_from` corresponds to the old API when a buffer is provided to the command
  - FLRC set packet now uses a structures as input parameter (`FlrcPacket_Params::new(...)`)

### Added
  - PatchRam: `get_pram_info` allows to check if a patch RAM has been set and which version number it contains.
  - API for Zigbee: `set_zigbee_packet`, `set_zigbee_packet_len`, `set_zigbee_address`, `get_zigbee_packet_status`, `get_zigbee_rx_stats`
  - API for ZWave: `set_zwave_packet`, `set_zwave_home_id`, `set_zwave_beam_filt`, `set_zwave_scan_config`, `start_zwave_scan`, `get_zwave_packet_status`, `get_zwave_rx_stats`
  - API for LR-FHSS: `lrfhss_build_packet`, `set_lrfhss_syncword` and `set_lrfhss_hopping`.
  - All enums from command now derive defmt::Format if option is enabled


## [0.3.0] - 2025-08-18

### Added
  - API for legacy FSK modulation (using same packet format as previous Semtech chips)
  - API for FSK CAD/CCA (set_cad_params, set_cad, set_cca, get_cca_result)
  - API for first RSSI measurements (get_rssi_avg/inst)


## [0.2.0] - 2025-08-17

### Added
  - OOK: add API methods to configure the OOK receiver including configuration for ADS-B
  - Radio: `set_rx_gain` for manual gain setting and `force_crc_out` to always output CRC on the RX FIFO
  - System: add function to read and write registers