lriot 2.1.0.0
lr1110_radio.h
Go to the documentation of this file.
1
35#ifndef LR1110_RADIO_H
36#define LR1110_RADIO_H
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42/*
43 * -----------------------------------------------------------------------------
44 * --- DEPENDENCIES ------------------------------------------------------------
45 */
46
48#include "common/lr1110_types.h"
49#include "common/lr1110_hal.h"
50
51/*
52 * -----------------------------------------------------------------------------
53 * --- PUBLIC MACROS -----------------------------------------------------------
54 */
55
56/*
57 * -----------------------------------------------------------------------------
58 * --- PUBLIC CONSTANTS --------------------------------------------------------
59 */
60
64#define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH 8
65
69#define LR11110_RADIO_GFSK_SYNC_WORD_DEFAULT \
70 { \
71 0x97, 0x23, 0x52, 0x25, 0x56, 0x53, 0x65, 0x64 \
72 }
73
74/*
75 * -----------------------------------------------------------------------------
76 * --- PUBLIC TYPES ------------------------------------------------------------
77 */
78
79/*
80 * -----------------------------------------------------------------------------
81 * --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
82 */
83
94
109
124
135err_t lr1110_radio_get_pkt_type( lriot_t *ctx, uint8_t* pkt_type );
136
147
159
171
182err_t lr1110_radio_get_rssi_inst( lriot_t *ctx, int8_t* rssi_in_dbm );
183
196
205err_t lr1110_radio_set_lora_sync_word( lriot_t *ctx, uint8_t sync_word );
206
221
239err_t lr1110_radio_set_rx( lriot_t *ctx, uint32_t timeout_in_ms );
240
272err_t lr1110_radio_set_rx_with_timeout_in_rtc_step( lriot_t *ctx, uint32_t timeout_in_rtc_step );
273
291err_t lr1110_radio_set_tx( lriot_t *ctx, uint32_t timeout_in_ms );
292
317err_t lr1110_radio_set_tx_with_timeout_in_rtc_step( lriot_t *ctx, uint32_t timeout_in_rtc_step );
318
329err_t lr1110_radio_set_rf_freq( lriot_t *ctx, uint32_t freq_in_hz );
330
355err_t lr1110_radio_auto_tx_rx( lriot_t *ctx, uint32_t delay, lr1110_radio_intermediary_mode_t intermediary_mode,
356 uint32_t timeout );
357
367
378err_t lr1110_radio_set_pkt_type( lriot_t *ctx, uint8_t pkt_type );
379
393
407
421
435
455err_t lr1110_radio_set_tx_params( lriot_t *ctx, int8_t pwr_in_dbm, lr1110_radio_ramp_time_t ramp_time );
456
468err_t lr1110_radio_set_pkt_address( lriot_t *ctx, uint8_t node_address, uint8_t broadcast_address );
469
481
508err_t lr1110_radio_set_rx_duty_cycle( lriot_t *ctx, uint32_t rx_period_in_ms, uint32_t sleep_period_in_ms,
510
537err_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step( lriot_t *ctx,uint32_t rx_period_in_rtc_step,
538 uint32_t sleep_period_in_rtc_step,
540
552
565err_t lr1110_radio_stop_timeout_on_preamble( lriot_t *ctx, bool stop_timeout_on_preamble );
566
580
593
602
612err_t lr1110_radio_set_lora_sync_timeout( lriot_t *ctx, uint8_t nb_symbol );
613
623err_t lr1110_radio_set_gfsk_crc_params( lriot_t *ctx, uint32_t seed, uint32_t polynomial );
624
634
643err_t lr1110_radio_cfg_rx_boosted( lriot_t *ctx, bool enable_boost_mode );
644
653err_t lr1110_radio_get_gfsk_rx_bandwidth( uint32_t bw_in_hz, lr1110_radio_gfsk_bw_t* bw_parameter );
654
667
676
687
699
710
718uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step( uint32_t time_in_ms );
719
720
734err_t lr1110_radio_get_lora_rx_info( lriot_t *ctx, bool* is_crc_present, uint8_t* cr );
735
736#ifdef __cplusplus
737}
738#endif
739
740#endif // LR1110_RADIO_H
741
742/* --- EOF ------------------------------------------------------------------ */
Hardware Abstraction Layer (HAL) interface for LR1110.
err_t lr1110_radio_get_gfsk_rx_bandwidth(uint32_t bw_in_hz, lr1110_radio_gfsk_bw_t *bw_parameter)
Gets the radio bw parameter for a given bandwidth in Hz.
err_t lr1110_radio_set_gfsk_crc_params(lriot_t *ctx, uint32_t seed, uint32_t polynomial)
Configure the seed and the polynomial used to compute CRC in GFSK packet.
err_t lr1110_radio_set_gfsk_mod_params(lriot_t *ctx, lr1110_radio_mod_params_gfsk_t *mod_params)
Set the modulation parameters for GFSK packets.
err_t lr1110_radio_set_tx_with_timeout_in_rtc_step(lriot_t *ctx, uint32_t timeout_in_rtc_step)
Start TX operations.
uint32_t lr1110_radio_get_gfsk_time_on_air_numerator(lr1110_radio_pkt_params_gfsk_t *pkt_p)
Compute the numerator for GFSK time-on-air computation.
err_t lr1110_radio_set_pkt_type(lriot_t *ctx, uint8_t pkt_type)
Set the packet type.
err_t lr1110_radio_set_rx_with_timeout_in_rtc_step(lriot_t *ctx, uint32_t timeout_in_rtc_step)
Start RX operations.
err_t lr1110_radio_stop_timeout_on_preamble(lriot_t *ctx, bool stop_timeout_on_preamble)
Define on which event the Rx timeout shall be stopped.
err_t lr1110_radio_set_lora_mod_params(lriot_t *ctx, lr1110_radio_mod_params_lora_t *mod_params)
Set the modulation parameters for LoRa packets.
err_t lr1110_radio_set_lora_sync_timeout(lriot_t *ctx, uint8_t nb_symbol)
Configure the LoRa modem to issue a RX timeout after an exact number of symbols given in parameter if...
err_t lr1110_radio_set_gfsk_sync_word(lriot_t *ctx, uint8_t gfsk_sync_word[LR1110_RADIO_GFSK_SYNC_WORD_LENGTH])
Set the GFSK modem sync word.
err_t lr1110_radio_get_lora_stats(lriot_t *ctx, lr1110_radio_stats_lora_t *stats)
Get the internal statistics of the LoRa received packets.
uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step(uint32_t time_in_ms)
Get the number of RTC steps for a given time in millisecond.
err_t lr1110_radio_set_pkt_address(lriot_t *ctx, uint8_t node_address, uint8_t broadcast_address)
Sets the Node and Broadcast address used for GFSK.
err_t lr1110_radio_set_pa_cfg(lriot_t *ctx, lr1110_radio_pa_cfg_t *pa_cfg)
Set the Power Amplifier configuration.
err_t lr1110_radio_reset_stats(lriot_t *ctx)
Reset internal statistics of the received packets.
uint32_t lr1110_radio_get_gfsk_time_on_air_in_ms(lr1110_radio_pkt_params_gfsk_t *pkt_p, lr1110_radio_mod_params_gfsk_t *mod_p)
Get the time on air in ms for GFSK transmission.
err_t lr1110_radio_set_tx_params(lriot_t *ctx, int8_t pwr_in_dbm, lr1110_radio_ramp_time_t ramp_time)
Set the parameters for TX power and power amplifier ramp time.
err_t lr1110_radio_get_gfsk_pkt_status(lriot_t *ctx, lr1110_radio_pkt_status_gfsk_t *pkt_status)
Get the status of last GFSK received packet.
err_t lr1110_radio_set_rx_tx_fallback_mode(lriot_t *ctx, lr1110_radio_fallback_modes_t fallback_mode)
Alter the chip mode after successfull transmission or reception operation.
err_t lr1110_radio_set_tx_infinite_preamble(lriot_t *ctx)
Set the device into Tx continuous preamble (modulated signal).
err_t lr1110_radio_set_gfsk_pkt_params(lriot_t *ctx, lr1110_radio_pkt_params_gfsk_t *pkt_params)
Set the packet parameters for GFSK packets.
err_t lr1110_radio_get_lora_pkt_status(lriot_t *ctx, lr1110_radio_pkt_status_lora_t *pkt_status)
Get the status of last LoRa received packet.
err_t lr1110_radio_set_cad(lriot_t *ctx)
Start the CAD mode.
err_t lr1110_radio_set_rx_duty_cycle(lriot_t *ctx, uint32_t rx_period_in_ms, uint32_t sleep_period_in_ms, lr1110_radio_rx_duty_cycle_mode_t mode)
Configure and start a Rx Duty Cycle operation.
err_t lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step(lriot_t *ctx, uint32_t rx_period_in_rtc_step, uint32_t sleep_period_in_rtc_step, lr1110_radio_rx_duty_cycle_mode_t mode)
Configure and start a Rx Duty Cycle operation.
err_t lr1110_radio_set_tx_cw(lriot_t *ctx)
Set the device into Tx continuous wave (RF tone).
err_t lr1110_radio_auto_tx_rx(lriot_t *ctx, uint32_t delay, lr1110_radio_intermediary_mode_t intermediary_mode, uint32_t timeout)
Configure automatic TX after RX or automatic RX after TX.
#define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH
Length in byte of the GFSK sync word.
Definition lr1110_radio.h:64
err_t lr1110_radio_set_rx(lriot_t *ctx, uint32_t timeout_in_ms)
Start RX operations.
err_t lr1110_radio_get_gfsk_stats(lriot_t *ctx, lr1110_radio_stats_gfsk_t *stats)
Get the internal statistics of the GFSK received packets.
err_t lr1110_radio_set_tx(lriot_t *ctx, uint32_t timeout_in_ms)
Start TX operations.
err_t lr1110_radio_set_gfsk_whitening_seed(lriot_t *ctx, uint16_t seed)
Configure the whitening seed used in GFSK packet.
err_t lr1110_radio_set_lora_sync_word(lriot_t *ctx, uint8_t sync_word)
Set the LoRa modem sync word.
err_t lr1110_radio_cfg_rx_boosted(lriot_t *ctx, bool enable_boost_mode)
Configure the boost mode in reception.
uint32_t lr1110_radio_get_lora_time_on_air_numerator(lr1110_radio_pkt_params_lora_t *pkt_p, lr1110_radio_mod_params_lora_t *mod_p)
Compute the numerator for LoRa time-on-air computation.
err_t lr1110_radio_get_rx_buffer_status(lriot_t *ctx, lr1110_radio_rx_buffer_status_t *rx_buffer_status)
Get the length of last received packet, and the offset in the RX internal buffer of the first byte of...
err_t lr1110_radio_get_pkt_type(lriot_t *ctx, uint8_t *pkt_type)
Get the packet type currently configured.
uint32_t lr1110_radio_get_lora_bw_in_hz(lr1110_radio_lora_bw_t bw)
Get the actual value in Hertz of a given LoRa bandwidth.
uint32_t lr1110_radio_get_lora_time_on_air_in_ms(lr1110_radio_pkt_params_lora_t *pkt_p, lr1110_radio_mod_params_lora_t *mod_p)
Get the time on air in ms for LoRa transmission.
err_t lr1110_radio_set_rf_freq(lriot_t *ctx, uint32_t freq_in_hz)
Set the frequency for future radio operations.
err_t lr1110_radio_set_cad_params(lriot_t *ctx, lr1110_radio_cad_params_t *cad_params)
Set Channel Activity Detection configuration.
err_t lr1110_radio_set_lora_pkt_params(lriot_t *ctx, lr1110_radio_pkt_params_lora_t *pkt_params)
Set the packet parameters for LoRa packets.
err_t lr1110_radio_get_lora_rx_info(lriot_t *ctx, bool *is_crc_present, uint8_t *cr)
Get the information from the last received LoRa packet header (if LR1110_RADIO_LORA_PKT_EXPLICIT) or ...
err_t lr1110_radio_get_rssi_inst(lriot_t *ctx, int8_t *rssi_in_dbm)
Get the instantaneous RSSI.
err_t lr1110_radio_set_lora_public_network(lriot_t *ctx, lr1110_radio_lora_network_type_t network_type)
Set the LoRa modem sync word to private / public.
Radio driver types for LR1110.
lr1110_radio_ramp_time_t
Ramping time for PA.
Definition lr1110_radio_types.h:110
lr1110_radio_gfsk_bw_t
GFSK Bandwidth configurations.
Definition lr1110_radio_types.h:316
lr1110_radio_lora_network_type_t
LoRa network type configuration.
Definition lr1110_radio_types.h:133
lr1110_radio_intermediary_mode_t
Values for intermediary mode.
Definition lr1110_radio_types.h:188
lr1110_radio_rx_duty_cycle_mode_t
RX Duty Cycle Modes.
Definition lr1110_radio_types.h:307
lr1110_radio_lora_bw_t
LoRa Bandwidth configurations.
Definition lr1110_radio_types.h:157
lr1110_radio_fallback_modes_t
Chip mode after successfull transmission or reception.
Definition lr1110_radio_types.h:98
Type definitions for LR1110.
Channel Activity Detection parameters.
Definition lr1110_radio_types.h:385
Modulation configuration for GFSK packet.
Definition lr1110_radio_types.h:458
Modulation configuration for LoRa packet.
Definition lr1110_radio_types.h:469
Configuration of Power Amplifier.
Definition lr1110_radio_types.h:519
Packet parameter configuration for GFSK packets.
Definition lr1110_radio_types.h:480
Packet parameter configuration for LoRa packets.
Definition lr1110_radio_types.h:495
Status of GFSK received packet.
Definition lr1110_radio_types.h:399
Status of received packet.
Definition lr1110_radio_types.h:417
Length and offset of received packet.
Definition lr1110_radio_types.h:427
GFSK packet statistic structure.
Definition lr1110_radio_types.h:437
LoRa packet statistic structure.
Definition lr1110_radio_types.h:447
LR IoT Click context object.
Definition lriot.h:273