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
39 extern "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 
135 err_t lr1110_radio_get_pkt_type( lriot_t *ctx, uint8_t* pkt_type );
136 
147 
159 
171 
182 err_t lr1110_radio_get_rssi_inst( lriot_t *ctx, int8_t* rssi_in_dbm );
183 
196 
205 err_t lr1110_radio_set_lora_sync_word( lriot_t *ctx, uint8_t sync_word );
206 
221 
239 err_t lr1110_radio_set_rx( lriot_t *ctx, uint32_t timeout_in_ms );
240 
272 err_t lr1110_radio_set_rx_with_timeout_in_rtc_step( lriot_t *ctx, uint32_t timeout_in_rtc_step );
273 
291 err_t lr1110_radio_set_tx( lriot_t *ctx, uint32_t timeout_in_ms );
292 
317 err_t lr1110_radio_set_tx_with_timeout_in_rtc_step( lriot_t *ctx, uint32_t timeout_in_rtc_step );
318 
329 err_t lr1110_radio_set_rf_freq( lriot_t *ctx, uint32_t freq_in_hz );
330 
355 err_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 
378 err_t lr1110_radio_set_pkt_type( lriot_t *ctx, uint8_t pkt_type );
379 
393 
407 
421 
435 
455 err_t lr1110_radio_set_tx_params( lriot_t *ctx, int8_t pwr_in_dbm, lr1110_radio_ramp_time_t ramp_time );
456 
468 err_t lr1110_radio_set_pkt_address( lriot_t *ctx, uint8_t node_address, uint8_t broadcast_address );
469 
481 
508 err_t lr1110_radio_set_rx_duty_cycle( lriot_t *ctx, uint32_t rx_period_in_ms, uint32_t sleep_period_in_ms,
510 
537 err_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 
565 err_t lr1110_radio_stop_timeout_on_preamble( lriot_t *ctx, bool stop_timeout_on_preamble );
566 
580 
593 
602 
612 err_t lr1110_radio_set_lora_sync_timeout( lriot_t *ctx, uint8_t nb_symbol );
613 
623 err_t lr1110_radio_set_gfsk_crc_params( lriot_t *ctx, uint32_t seed, uint32_t polynomial );
624 
633 err_t lr1110_radio_set_gfsk_whitening_seed( lriot_t *ctx, uint16_t seed );
634 
643 err_t lr1110_radio_cfg_rx_boosted( lriot_t *ctx, bool enable_boost_mode );
644 
653 err_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 
718 uint32_t lr1110_radio_convert_time_in_ms_to_rtc_step( uint32_t time_in_ms );
719 
720 
734 err_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 ------------------------------------------------------------------ */
lr1110_radio_fallback_modes_t
lr1110_radio_fallback_modes_t
Chip mode after successfull transmission or reception.
Definition: lr1110_radio_types.h:98
lr1110_radio_set_tx_params
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.
lr1110_radio_set_tx
err_t lr1110_radio_set_tx(lriot_t *ctx, uint32_t timeout_in_ms)
Start TX operations.
lr1110_radio_stats_lora_s
LoRa packet statistic structure.
Definition: lr1110_radio_types.h:447
lr1110_radio_pkt_params_lora_s
Packet parameter configuration for LoRa packets.
Definition: lr1110_radio_types.h:495
lriot_t
LR IoT Click context object.
Definition: lriot.h:273
lr1110_radio_types.h
Radio driver types for LR1110.
lr1110_radio_ramp_time_t
lr1110_radio_ramp_time_t
Ramping time for PA.
Definition: lr1110_radio_types.h:110
lr1110_radio_set_tx_cw
err_t lr1110_radio_set_tx_cw(lriot_t *ctx)
Set the device into Tx continuous wave (RF tone).
lr1110_radio_set_gfsk_whitening_seed
err_t lr1110_radio_set_gfsk_whitening_seed(lriot_t *ctx, uint16_t seed)
Configure the whitening seed used in GFSK packet.
lr1110_radio_set_tx_infinite_preamble
err_t lr1110_radio_set_tx_infinite_preamble(lriot_t *ctx)
Set the device into Tx continuous preamble (modulated signal).
lr1110_radio_set_lora_mod_params
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.
lr1110_radio_pkt_status_lora_s
Status of received packet.
Definition: lr1110_radio_types.h:417
lr1110_radio_set_rx_with_timeout_in_rtc_step
err_t lr1110_radio_set_rx_with_timeout_in_rtc_step(lriot_t *ctx, uint32_t timeout_in_rtc_step)
Start RX operations.
lr1110_radio_get_gfsk_time_on_air_in_ms
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.
lr1110_radio_reset_stats
err_t lr1110_radio_reset_stats(lriot_t *ctx)
Reset internal statistics of the received packets.
lr1110_radio_get_rssi_inst
err_t lr1110_radio_get_rssi_inst(lriot_t *ctx, int8_t *rssi_in_dbm)
Get the instantaneous RSSI.
lr1110_radio_get_gfsk_pkt_status
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.
lr1110_radio_intermediary_mode_t
lr1110_radio_intermediary_mode_t
Values for intermediary mode.
Definition: lr1110_radio_types.h:188
lr1110_radio_set_rx_tx_fallback_mode
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.
lr1110_radio_set_cad_params
err_t lr1110_radio_set_cad_params(lriot_t *ctx, lr1110_radio_cad_params_t *cad_params)
Set Channel Activity Detection configuration.
lr1110_radio_set_rx_duty_cycle
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.
lr1110_radio_set_gfsk_mod_params
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.
lr1110_radio_get_lora_pkt_status
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.
lr1110_hal.h
Hardware Abstraction Layer (HAL) interface for LR1110.
lr1110_radio_cfg_rx_boosted
err_t lr1110_radio_cfg_rx_boosted(lriot_t *ctx, bool enable_boost_mode)
Configure the boost mode in reception.
lr1110_radio_set_rx
err_t lr1110_radio_set_rx(lriot_t *ctx, uint32_t timeout_in_ms)
Start RX operations.
lr1110_radio_set_gfsk_sync_word
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.
lr1110_radio_lora_bw_t
lr1110_radio_lora_bw_t
LoRa Bandwidth configurations.
Definition: lr1110_radio_types.h:157
lr1110_radio_set_rx_duty_cycle_with_timings_in_rtc_step
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.
lr1110_radio_cad_params_s
Channel Activity Detection parameters.
Definition: lr1110_radio_types.h:385
LR1110_RADIO_GFSK_SYNC_WORD_LENGTH
#define LR1110_RADIO_GFSK_SYNC_WORD_LENGTH
Length in byte of the GFSK sync word.
Definition: lr1110_radio.h:64
lr1110_radio_get_gfsk_rx_bandwidth
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.
lr1110_radio_get_lora_rx_info
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 ...
lr1110_radio_set_cad
err_t lr1110_radio_set_cad(lriot_t *ctx)
Start the CAD mode.
lr1110_radio_gfsk_bw_t
lr1110_radio_gfsk_bw_t
GFSK Bandwidth configurations.
Definition: lr1110_radio_types.h:316
lr1110_radio_set_lora_public_network
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.
lr1110_radio_get_pkt_type
err_t lr1110_radio_get_pkt_type(lriot_t *ctx, uint8_t *pkt_type)
Get the packet type currently configured.
lr1110_radio_set_pkt_type
err_t lr1110_radio_set_pkt_type(lriot_t *ctx, uint8_t pkt_type)
Set the packet type.
lr1110_radio_set_lora_pkt_params
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.
lr1110_radio_get_gfsk_time_on_air_numerator
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.
lr1110_radio_pa_cfg_s
Configuration of Power Amplifier.
Definition: lr1110_radio_types.h:519
lr1110_radio_pkt_params_gfsk_s
Packet parameter configuration for GFSK packets.
Definition: lr1110_radio_types.h:480
lr1110_radio_set_pa_cfg
err_t lr1110_radio_set_pa_cfg(lriot_t *ctx, lr1110_radio_pa_cfg_t *pa_cfg)
Set the Power Amplifier configuration.
lr1110_types.h
Type definitions for LR1110.
lr1110_radio_set_gfsk_crc_params
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.
lr1110_radio_get_lora_bw_in_hz
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.
lr1110_radio_get_gfsk_stats
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.
lr1110_radio_rx_buffer_status_s
Length and offset of received packet.
Definition: lr1110_radio_types.h:427
lr1110_radio_set_lora_sync_word
err_t lr1110_radio_set_lora_sync_word(lriot_t *ctx, uint8_t sync_word)
Set the LoRa modem sync word.
lr1110_radio_set_tx_with_timeout_in_rtc_step
err_t lr1110_radio_set_tx_with_timeout_in_rtc_step(lriot_t *ctx, uint32_t timeout_in_rtc_step)
Start TX operations.
lr1110_radio_set_pkt_address
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.
lr1110_radio_set_lora_sync_timeout
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...
lr1110_radio_get_lora_time_on_air_numerator
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.
lr1110_radio_set_gfsk_pkt_params
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.
lr1110_radio_auto_tx_rx
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.
lr1110_radio_stats_gfsk_s
GFSK packet statistic structure.
Definition: lr1110_radio_types.h:437
lr1110_radio_get_rx_buffer_status
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...
lr1110_radio_mod_params_lora_s
Modulation configuration for LoRa packet.
Definition: lr1110_radio_types.h:469
lr1110_radio_rx_duty_cycle_mode_t
lr1110_radio_rx_duty_cycle_mode_t
RX Duty Cycle Modes.
Definition: lr1110_radio_types.h:307
lr1110_radio_pkt_status_gfsk_s
Status of GFSK received packet.
Definition: lr1110_radio_types.h:399
lr1110_radio_set_rf_freq
err_t lr1110_radio_set_rf_freq(lriot_t *ctx, uint32_t freq_in_hz)
Set the frequency for future radio operations.
lr1110_radio_get_lora_stats
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.
lr1110_radio_convert_time_in_ms_to_rtc_step
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.
lr1110_radio_mod_params_gfsk_s
Modulation configuration for GFSK packet.
Definition: lr1110_radio_types.h:458
lr1110_radio_lora_network_type_t
lr1110_radio_lora_network_type_t
LoRa network type configuration.
Definition: lr1110_radio_types.h:133
lr1110_radio_get_lora_time_on_air_in_ms
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.
lr1110_radio_stop_timeout_on_preamble
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.