From 854ce7871a77cb309f2760f9dc2b4aa794116403 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 5 Mar 2023 14:09:00 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=208174c?= =?UTF-8?q?5825098b0952b19a819513090f658338a14=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _s_t_m32_w_lx_8h_source.html | 2 +- _s_x1262_8h_source.html | 2 +- _s_x1268_8h_source.html | 2 +- _s_x126x_8h_source.html | 931 ++++++++++++++++---------------- _s_x1281_8h_source.html | 2 +- _s_x128x_8h_source.html | 455 ++++++++-------- class_l_l_c_c68-members.html | 6 +- class_l_l_c_c68.html | 18 +- class_s_t_m32_w_lx-members.html | 6 +- class_s_t_m32_w_lx.html | 18 +- class_s_x1261-members.html | 6 +- class_s_x1261.html | 18 +- class_s_x1262-members.html | 6 +- class_s_x1262.html | 18 +- class_s_x1268-members.html | 6 +- class_s_x1268.html | 18 +- class_s_x126x-members.html | 6 +- class_s_x126x.html | 84 ++- class_s_x126x.js | 6 +- class_s_x1280-members.html | 2 +- class_s_x1280.html | 6 +- class_s_x1281-members.html | 2 +- class_s_x1281.html | 6 +- class_s_x1282-members.html | 2 +- class_s_x1282.html | 6 +- class_s_x128x-members.html | 2 +- class_s_x128x.html | 30 +- class_s_x128x.js | 2 +- functions_func_s.html | 8 +- functions_s.html | 8 +- navtreeindex2.js | 6 +- navtreeindex3.js | 6 +- search/all_f.js | 6 +- search/functions_f.js | 6 +- 34 files changed, 887 insertions(+), 821 deletions(-) diff --git a/_s_t_m32_w_lx_8h_source.html b/_s_t_m32_w_lx_8h_source.html index 2e90b751..951629fe 100644 --- a/_s_t_m32_w_lx_8h_source.html +++ b/_s_t_m32_w_lx_8h_source.html @@ -171,7 +171,7 @@ $(document).ready(function(){initNavTree('_s_t_m32_w_lx_8h_source.html',''); ini
@ MODE_IDLE
Definition: STM32WLx.h:57
int16_t beginFSK(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=156.2, int8_t power=10, uint16_t preambleLength=16, float tcxoVoltage=1.6, bool useRegulatorLDO=false)
Initialization method for FSK modem.
Definition: STM32WLx.cpp:33
Derived class for SX1262 modules.
Definition: SX1262.h:22
-
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1325
+
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1324
Definition: Module.h:34
diff --git a/_s_x1262_8h_source.html b/_s_x1262_8h_source.html index ad05997f..08763556 100644 --- a/_s_x1262_8h_source.html +++ b/_s_x1262_8h_source.html @@ -138,7 +138,7 @@ $(document).ready(function(){initNavTree('_s_x1262_8h_source.html',''); initResi
int16_t begin(float freq=434.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX126X_SYNC_WORD_PRIVATE, int8_t power=10, uint16_t preambleLength=8, float tcxoVoltage=1.6, bool useRegulatorLDO=false)
Initialization method for LoRa modem.
Definition: SX1262.cpp:8
virtual int16_t setOutputPower(int8_t power)
Sets output power. Allowed values are in range from -9 to 22 dBm. This method is virtual to allow ove...
Definition: SX1262.cpp:84
int16_t setFrequency(float freq)
Sets carrier frequency. Allowed values are in range from 150.0 to 960.0 MHz.
Definition: SX1262.cpp:50
-
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:424
+
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:425
diff --git a/_s_x1268_8h_source.html b/_s_x1268_8h_source.html index 9d535dd0..f2db7144 100644 --- a/_s_x1268_8h_source.html +++ b/_s_x1268_8h_source.html @@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('_s_x1268_8h_source.html',''); initResi
int16_t setFrequency(float freq)
Sets carrier frequency. Allowed values are in range from 410.0 to 810.0 MHz.
Definition: SX1268.cpp:50
int16_t begin(float freq=434.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX126X_SYNC_WORD_PRIVATE, int8_t power=10, uint16_t preambleLength=8, float tcxoVoltage=1.6, bool useRegulatorLDO=false)
Initialization method for LoRa modem.
Definition: SX1268.cpp:8
int16_t beginFSK(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=156.2, int8_t power=10, uint16_t preambleLength=16, float tcxoVoltage=1.6, bool useRegulatorLDO=false)
Initialization method for FSK modem.
Definition: SX1268.cpp:32
-
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:424
+
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:425
diff --git a/_s_x126x_8h_source.html b/_s_x126x_8h_source.html index d5c3a7a0..02f3d568 100644 --- a/_s_x126x_8h_source.html +++ b/_s_x126x_8h_source.html @@ -309,428 +309,429 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
221 #define RADIOLIB_SX126X_IRQ_RADIOLIB_PREAMBLE_DETECTED 0b0000000000000100 // 2 2 preamble detected
222 #define RADIOLIB_SX126X_IRQ_RX_DONE 0b0000000000000010 // 1 1 packet received
223 #define RADIOLIB_SX126X_IRQ_TX_DONE 0b0000000000000001 // 0 0 packet transmission completed
-
224 #define RADIOLIB_SX126X_IRQ_ALL 0b0100001111111111 // 14 0 all interrupts
-
225 #define RADIOLIB_SX126X_IRQ_NONE 0b0000000000000000 // 14 0 no interrupts
-
226 
-
227 //RADIOLIB_SX126X_CMD_SET_DIO2_AS_RF_SWITCH_CTRL
-
228 #define RADIOLIB_SX126X_DIO2_AS_IRQ 0x00 // 7 0 DIO2 configuration: IRQ
-
229 #define RADIOLIB_SX126X_DIO2_AS_RF_SWITCH 0x01 // 7 0 RF switch control
-
230 
-
231 //RADIOLIB_SX126X_CMD_SET_DIO3_AS_TCXO_CTRL
-
232 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_6 0x00 // 7 0 DIO3 voltage output for TCXO: 1.6 V
-
233 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_7 0x01 // 7 0 1.7 V
-
234 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_8 0x02 // 7 0 1.8 V
-
235 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_2 0x03 // 7 0 2.2 V
-
236 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_4 0x04 // 7 0 2.4 V
-
237 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_7 0x05 // 7 0 2.7 V
-
238 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_0 0x06 // 7 0 3.0 V
-
239 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_3 0x07 // 7 0 3.3 V
-
240 
-
241 //RADIOLIB_SX126X_CMD_SET_PACKET_TYPE
-
242 #define RADIOLIB_SX126X_PACKET_TYPE_GFSK 0x00 // 7 0 packet type: GFSK
-
243 #define RADIOLIB_SX126X_PACKET_TYPE_LORA 0x01 // 7 0 LoRa
-
244 #define RADIOLIB_SX126X_PACKET_TYPE_LR_FHSS 0x03 // 7 0 LR-FHSS
-
245 
-
246 //RADIOLIB_SX126X_CMD_SET_TX_PARAMS
-
247 #define RADIOLIB_SX126X_PA_RAMP_10U 0x00 // 7 0 ramp time: 10 us
-
248 #define RADIOLIB_SX126X_PA_RAMP_20U 0x01 // 7 0 20 us
-
249 #define RADIOLIB_SX126X_PA_RAMP_40U 0x02 // 7 0 40 us
-
250 #define RADIOLIB_SX126X_PA_RAMP_80U 0x03 // 7 0 80 us
-
251 #define RADIOLIB_SX126X_PA_RAMP_200U 0x04 // 7 0 200 us
-
252 #define RADIOLIB_SX126X_PA_RAMP_800U 0x05 // 7 0 800 us
-
253 #define RADIOLIB_SX126X_PA_RAMP_1700U 0x06 // 7 0 1700 us
-
254 #define RADIOLIB_SX126X_PA_RAMP_3400U 0x07 // 7 0 3400 us
-
255 
-
256 //RADIOLIB_SX126X_CMD_SET_MODULATION_PARAMS
-
257 #define RADIOLIB_SX126X_GFSK_FILTER_NONE 0x00 // 7 0 GFSK filter: none
-
258 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_3 0x08 // 7 0 Gaussian, BT = 0.3
-
259 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_5 0x09 // 7 0 Gaussian, BT = 0.5
-
260 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_7 0x0A // 7 0 Gaussian, BT = 0.7
-
261 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_1 0x0B // 7 0 Gaussian, BT = 1
-
262 #define RADIOLIB_SX126X_GFSK_RX_BW_4_8 0x1F // 7 0 GFSK Rx bandwidth: 4.8 kHz
-
263 #define RADIOLIB_SX126X_GFSK_RX_BW_5_8 0x17 // 7 0 5.8 kHz
-
264 #define RADIOLIB_SX126X_GFSK_RX_BW_7_3 0x0F // 7 0 7.3 kHz
-
265 #define RADIOLIB_SX126X_GFSK_RX_BW_9_7 0x1E // 7 0 9.7 kHz
-
266 #define RADIOLIB_SX126X_GFSK_RX_BW_11_7 0x16 // 7 0 11.7 kHz
-
267 #define RADIOLIB_SX126X_GFSK_RX_BW_14_6 0x0E // 7 0 14.6 kHz
-
268 #define RADIOLIB_SX126X_GFSK_RX_BW_19_5 0x1D // 7 0 19.5 kHz
-
269 #define RADIOLIB_SX126X_GFSK_RX_BW_23_4 0x15 // 7 0 23.4 kHz
-
270 #define RADIOLIB_SX126X_GFSK_RX_BW_29_3 0x0D // 7 0 29.3 kHz
-
271 #define RADIOLIB_SX126X_GFSK_RX_BW_39_0 0x1C // 7 0 39.0 kHz
-
272 #define RADIOLIB_SX126X_GFSK_RX_BW_46_9 0x14 // 7 0 46.9 kHz
-
273 #define RADIOLIB_SX126X_GFSK_RX_BW_58_6 0x0C // 7 0 58.6 kHz
-
274 #define RADIOLIB_SX126X_GFSK_RX_BW_78_2 0x1B // 7 0 78.2 kHz
-
275 #define RADIOLIB_SX126X_GFSK_RX_BW_93_8 0x13 // 7 0 93.8 kHz
-
276 #define RADIOLIB_SX126X_GFSK_RX_BW_117_3 0x0B // 7 0 117.3 kHz
-
277 #define RADIOLIB_SX126X_GFSK_RX_BW_156_2 0x1A // 7 0 156.2 kHz
-
278 #define RADIOLIB_SX126X_GFSK_RX_BW_187_2 0x12 // 7 0 187.2 kHz
-
279 #define RADIOLIB_SX126X_GFSK_RX_BW_234_3 0x0A // 7 0 234.3 kHz
-
280 #define RADIOLIB_SX126X_GFSK_RX_BW_312_0 0x19 // 7 0 312.0 kHz
-
281 #define RADIOLIB_SX126X_GFSK_RX_BW_373_6 0x11 // 7 0 373.6 kHz
-
282 #define RADIOLIB_SX126X_GFSK_RX_BW_467_0 0x09 // 7 0 467.0 kHz
-
283 #define RADIOLIB_SX126X_LORA_BW_7_8 0x00 // 7 0 LoRa bandwidth: 7.8 kHz
-
284 #define RADIOLIB_SX126X_LORA_BW_10_4 0x08 // 7 0 10.4 kHz
-
285 #define RADIOLIB_SX126X_LORA_BW_15_6 0x01 // 7 0 15.6 kHz
-
286 #define RADIOLIB_SX126X_LORA_BW_20_8 0x09 // 7 0 20.8 kHz
-
287 #define RADIOLIB_SX126X_LORA_BW_31_25 0x02 // 7 0 31.25 kHz
-
288 #define RADIOLIB_SX126X_LORA_BW_41_7 0x0A // 7 0 41.7 kHz
-
289 #define RADIOLIB_SX126X_LORA_BW_62_5 0x03 // 7 0 62.5 kHz
-
290 #define RADIOLIB_SX126X_LORA_BW_125_0 0x04 // 7 0 125.0 kHz
-
291 #define RADIOLIB_SX126X_LORA_BW_250_0 0x05 // 7 0 250.0 kHz
-
292 #define RADIOLIB_SX126X_LORA_BW_500_0 0x06 // 7 0 500.0 kHz
-
293 #define RADIOLIB_SX126X_LORA_CR_4_5 0x01 // 7 0 LoRa coding rate: 4/5
-
294 #define RADIOLIB_SX126X_LORA_CR_4_6 0x02 // 7 0 4/6
-
295 #define RADIOLIB_SX126X_LORA_CR_4_7 0x03 // 7 0 4/7
-
296 #define RADIOLIB_SX126X_LORA_CR_4_8 0x04 // 7 0 4/8
-
297 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_OFF 0x00 // 7 0 LoRa low data rate optimization: disabled
-
298 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_ON 0x01 // 7 0 enabled
-
299 
-
300 //RADIOLIB_SX126X_CMD_SET_PACKET_PARAMS
-
301 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_OFF 0x00 // 7 0 GFSK minimum preamble length before reception starts: detector disabled
-
302 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_8 0x04 // 7 0 8 bits
-
303 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16 0x05 // 7 0 16 bits
-
304 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_24 0x06 // 7 0 24 bits
-
305 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_32 0x07 // 7 0 32 bits
-
306 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_OFF 0x00 // 7 0 GFSK address filtering: disabled
-
307 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE 0x01 // 7 0 node only
-
308 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE_BROADCAST 0x02 // 7 0 node and broadcast
-
309 #define RADIOLIB_SX126X_GFSK_PACKET_FIXED 0x00 // 7 0 GFSK packet type: fixed (payload length known in advance to both sides)
-
310 #define RADIOLIB_SX126X_GFSK_PACKET_VARIABLE 0x01 // 7 0 variable (payload length added to packet)
-
311 #define RADIOLIB_SX126X_GFSK_CRC_OFF 0x01 // 7 0 GFSK packet CRC: disabled
-
312 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE 0x00 // 7 0 1 byte
-
313 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE 0x02 // 7 0 2 byte
-
314 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE_INV 0x04 // 7 0 1 byte, inverted
-
315 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE_INV 0x06 // 7 0 2 byte, inverted
-
316 #define RADIOLIB_SX126X_GFSK_WHITENING_OFF 0x00 // 7 0 GFSK data whitening: disabled
-
317 #define RADIOLIB_SX126X_GFSK_WHITENING_ON 0x01 // 7 0 enabled
-
318 #define RADIOLIB_SX126X_LORA_HEADER_EXPLICIT 0x00 // 7 0 LoRa header mode: explicit
-
319 #define RADIOLIB_SX126X_LORA_HEADER_IMPLICIT 0x01 // 7 0 implicit
-
320 #define RADIOLIB_SX126X_LORA_CRC_OFF 0x00 // 7 0 LoRa CRC mode: disabled
-
321 #define RADIOLIB_SX126X_LORA_CRC_ON 0x01 // 7 0 enabled
-
322 #define RADIOLIB_SX126X_LORA_IQ_STANDARD 0x00 // 7 0 LoRa IQ setup: standard
-
323 #define RADIOLIB_SX126X_LORA_IQ_INVERTED 0x01 // 7 0 inverted
-
324 
-
325 //RADIOLIB_SX126X_CMD_SET_CAD_PARAMS
-
326 #define RADIOLIB_SX126X_CAD_ON_1_SYMB 0x00 // 7 0 number of symbols used for CAD: 1
-
327 #define RADIOLIB_SX126X_CAD_ON_2_SYMB 0x01 // 7 0 2
-
328 #define RADIOLIB_SX126X_CAD_ON_4_SYMB 0x02 // 7 0 4
-
329 #define RADIOLIB_SX126X_CAD_ON_8_SYMB 0x03 // 7 0 8
-
330 #define RADIOLIB_SX126X_CAD_ON_16_SYMB 0x04 // 7 0 16
-
331 #define RADIOLIB_SX126X_CAD_GOTO_STDBY 0x00 // 7 0 after CAD is done, always go to STDBY_RC mode
-
332 #define RADIOLIB_SX126X_CAD_GOTO_RX 0x01 // 7 0 after CAD is done, go to Rx mode if activity is detected
-
333 #define RADIOLIB_SX126X_CAD_PARAM_DEFAULT 0xFF // 7 0 used by the CAD methods to specify default parameter value
-
334 #define RADIOLIB_SX126X_CAD_PARAM_DET_MIN 10 // 7 0 default detMin CAD parameter
-
335 
-
336 //RADIOLIB_SX126X_CMD_GET_STATUS
-
337 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_RC 0b00100000 // 6 4 current chip mode: STDBY_RC
-
338 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_XOSC 0b00110000 // 6 4 STDBY_XOSC
-
339 #define RADIOLIB_SX126X_STATUS_MODE_FS 0b01000000 // 6 4 FS
-
340 #define RADIOLIB_SX126X_STATUS_MODE_RX 0b01010000 // 6 4 RX
-
341 #define RADIOLIB_SX126X_STATUS_MODE_TX 0b01100000 // 6 4 TX
-
342 #define RADIOLIB_SX126X_STATUS_DATA_AVAILABLE 0b00000100 // 3 1 command status: packet received and data can be retrieved
-
343 #define RADIOLIB_SX126X_STATUS_CMD_TIMEOUT 0b00000110 // 3 1 SPI command timed out
-
344 #define RADIOLIB_SX126X_STATUS_CMD_INVALID 0b00001000 // 3 1 invalid SPI command
-
345 #define RADIOLIB_SX126X_STATUS_CMD_FAILED 0b00001010 // 3 1 SPI command failed to execute
-
346 #define RADIOLIB_SX126X_STATUS_TX_DONE 0b00001100 // 3 1 packet transmission done
-
347 #define RADIOLIB_SX126X_STATUS_SPI_FAILED 0b11111111 // 7 0 SPI transaction failed
-
348 
-
349 //RADIOLIB_SX126X_CMD_GET_PACKET_STATUS
-
350 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PREAMBLE_ERR 0b10000000 // 7 7 GFSK Rx status: preamble error
-
351 #define RADIOLIB_SX126X_GFSK_RX_STATUS_SYNC_ERR 0b01000000 // 6 6 sync word error
-
352 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ADRS_ERR 0b00100000 // 5 5 address error
-
353 #define RADIOLIB_SX126X_GFSK_RX_STATUS_CRC_ERR 0b00010000 // 4 4 CRC error
-
354 #define RADIOLIB_SX126X_GFSK_RX_STATUS_LENGTH_ERR 0b00001000 // 3 3 length error
-
355 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ABORT_ERR 0b00000100 // 2 2 abort error
-
356 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_RECEIVED 0b00000010 // 2 2 packet received
-
357 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_SENT 0b00000001 // 2 2 packet sent
-
358 
-
359 //RADIOLIB_SX126X_CMD_GET_DEVICE_ERRORS
-
360 #define RADIOLIB_SX126X_PA_RAMP_ERR 0b100000000 // 8 8 device errors: PA ramping failed
-
361 #define RADIOLIB_SX126X_PLL_LOCK_ERR 0b001000000 // 6 6 PLL failed to lock
-
362 #define RADIOLIB_SX126X_XOSC_START_ERR 0b000100000 // 5 5 crystal oscillator failed to start
-
363 #define RADIOLIB_SX126X_IMG_CALIB_ERR 0b000010000 // 4 4 image calibration failed
-
364 #define RADIOLIB_SX126X_ADC_CALIB_ERR 0b000001000 // 3 3 ADC calibration failed
-
365 #define RADIOLIB_SX126X_PLL_CALIB_ERR 0b000000100 // 2 2 PLL calibration failed
-
366 #define RADIOLIB_SX126X_RC13M_CALIB_ERR 0b000000010 // 1 1 RC13M calibration failed
-
367 #define RADIOLIB_SX126X_RC64K_CALIB_ERR 0b000000001 // 0 0 RC64K calibration failed
-
368 
+
224 #define RADIOLIB_SX126X_IRQ_RX_DEFAULT 0b0000001001100010 // 14 0 default for Rx (RX_DONE, TIMEOUT, CRC_ERR and HEADER_ERR)
+
225 #define RADIOLIB_SX126X_IRQ_ALL 0b0100001111111111 // 14 0 all interrupts
+
226 #define RADIOLIB_SX126X_IRQ_NONE 0b0000000000000000 // 14 0 no interrupts
+
227 
+
228 //RADIOLIB_SX126X_CMD_SET_DIO2_AS_RF_SWITCH_CTRL
+
229 #define RADIOLIB_SX126X_DIO2_AS_IRQ 0x00 // 7 0 DIO2 configuration: IRQ
+
230 #define RADIOLIB_SX126X_DIO2_AS_RF_SWITCH 0x01 // 7 0 RF switch control
+
231 
+
232 //RADIOLIB_SX126X_CMD_SET_DIO3_AS_TCXO_CTRL
+
233 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_6 0x00 // 7 0 DIO3 voltage output for TCXO: 1.6 V
+
234 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_7 0x01 // 7 0 1.7 V
+
235 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_8 0x02 // 7 0 1.8 V
+
236 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_2 0x03 // 7 0 2.2 V
+
237 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_4 0x04 // 7 0 2.4 V
+
238 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_7 0x05 // 7 0 2.7 V
+
239 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_0 0x06 // 7 0 3.0 V
+
240 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_3 0x07 // 7 0 3.3 V
+
241 
+
242 //RADIOLIB_SX126X_CMD_SET_PACKET_TYPE
+
243 #define RADIOLIB_SX126X_PACKET_TYPE_GFSK 0x00 // 7 0 packet type: GFSK
+
244 #define RADIOLIB_SX126X_PACKET_TYPE_LORA 0x01 // 7 0 LoRa
+
245 #define RADIOLIB_SX126X_PACKET_TYPE_LR_FHSS 0x03 // 7 0 LR-FHSS
+
246 
+
247 //RADIOLIB_SX126X_CMD_SET_TX_PARAMS
+
248 #define RADIOLIB_SX126X_PA_RAMP_10U 0x00 // 7 0 ramp time: 10 us
+
249 #define RADIOLIB_SX126X_PA_RAMP_20U 0x01 // 7 0 20 us
+
250 #define RADIOLIB_SX126X_PA_RAMP_40U 0x02 // 7 0 40 us
+
251 #define RADIOLIB_SX126X_PA_RAMP_80U 0x03 // 7 0 80 us
+
252 #define RADIOLIB_SX126X_PA_RAMP_200U 0x04 // 7 0 200 us
+
253 #define RADIOLIB_SX126X_PA_RAMP_800U 0x05 // 7 0 800 us
+
254 #define RADIOLIB_SX126X_PA_RAMP_1700U 0x06 // 7 0 1700 us
+
255 #define RADIOLIB_SX126X_PA_RAMP_3400U 0x07 // 7 0 3400 us
+
256 
+
257 //RADIOLIB_SX126X_CMD_SET_MODULATION_PARAMS
+
258 #define RADIOLIB_SX126X_GFSK_FILTER_NONE 0x00 // 7 0 GFSK filter: none
+
259 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_3 0x08 // 7 0 Gaussian, BT = 0.3
+
260 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_5 0x09 // 7 0 Gaussian, BT = 0.5
+
261 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_7 0x0A // 7 0 Gaussian, BT = 0.7
+
262 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_1 0x0B // 7 0 Gaussian, BT = 1
+
263 #define RADIOLIB_SX126X_GFSK_RX_BW_4_8 0x1F // 7 0 GFSK Rx bandwidth: 4.8 kHz
+
264 #define RADIOLIB_SX126X_GFSK_RX_BW_5_8 0x17 // 7 0 5.8 kHz
+
265 #define RADIOLIB_SX126X_GFSK_RX_BW_7_3 0x0F // 7 0 7.3 kHz
+
266 #define RADIOLIB_SX126X_GFSK_RX_BW_9_7 0x1E // 7 0 9.7 kHz
+
267 #define RADIOLIB_SX126X_GFSK_RX_BW_11_7 0x16 // 7 0 11.7 kHz
+
268 #define RADIOLIB_SX126X_GFSK_RX_BW_14_6 0x0E // 7 0 14.6 kHz
+
269 #define RADIOLIB_SX126X_GFSK_RX_BW_19_5 0x1D // 7 0 19.5 kHz
+
270 #define RADIOLIB_SX126X_GFSK_RX_BW_23_4 0x15 // 7 0 23.4 kHz
+
271 #define RADIOLIB_SX126X_GFSK_RX_BW_29_3 0x0D // 7 0 29.3 kHz
+
272 #define RADIOLIB_SX126X_GFSK_RX_BW_39_0 0x1C // 7 0 39.0 kHz
+
273 #define RADIOLIB_SX126X_GFSK_RX_BW_46_9 0x14 // 7 0 46.9 kHz
+
274 #define RADIOLIB_SX126X_GFSK_RX_BW_58_6 0x0C // 7 0 58.6 kHz
+
275 #define RADIOLIB_SX126X_GFSK_RX_BW_78_2 0x1B // 7 0 78.2 kHz
+
276 #define RADIOLIB_SX126X_GFSK_RX_BW_93_8 0x13 // 7 0 93.8 kHz
+
277 #define RADIOLIB_SX126X_GFSK_RX_BW_117_3 0x0B // 7 0 117.3 kHz
+
278 #define RADIOLIB_SX126X_GFSK_RX_BW_156_2 0x1A // 7 0 156.2 kHz
+
279 #define RADIOLIB_SX126X_GFSK_RX_BW_187_2 0x12 // 7 0 187.2 kHz
+
280 #define RADIOLIB_SX126X_GFSK_RX_BW_234_3 0x0A // 7 0 234.3 kHz
+
281 #define RADIOLIB_SX126X_GFSK_RX_BW_312_0 0x19 // 7 0 312.0 kHz
+
282 #define RADIOLIB_SX126X_GFSK_RX_BW_373_6 0x11 // 7 0 373.6 kHz
+
283 #define RADIOLIB_SX126X_GFSK_RX_BW_467_0 0x09 // 7 0 467.0 kHz
+
284 #define RADIOLIB_SX126X_LORA_BW_7_8 0x00 // 7 0 LoRa bandwidth: 7.8 kHz
+
285 #define RADIOLIB_SX126X_LORA_BW_10_4 0x08 // 7 0 10.4 kHz
+
286 #define RADIOLIB_SX126X_LORA_BW_15_6 0x01 // 7 0 15.6 kHz
+
287 #define RADIOLIB_SX126X_LORA_BW_20_8 0x09 // 7 0 20.8 kHz
+
288 #define RADIOLIB_SX126X_LORA_BW_31_25 0x02 // 7 0 31.25 kHz
+
289 #define RADIOLIB_SX126X_LORA_BW_41_7 0x0A // 7 0 41.7 kHz
+
290 #define RADIOLIB_SX126X_LORA_BW_62_5 0x03 // 7 0 62.5 kHz
+
291 #define RADIOLIB_SX126X_LORA_BW_125_0 0x04 // 7 0 125.0 kHz
+
292 #define RADIOLIB_SX126X_LORA_BW_250_0 0x05 // 7 0 250.0 kHz
+
293 #define RADIOLIB_SX126X_LORA_BW_500_0 0x06 // 7 0 500.0 kHz
+
294 #define RADIOLIB_SX126X_LORA_CR_4_5 0x01 // 7 0 LoRa coding rate: 4/5
+
295 #define RADIOLIB_SX126X_LORA_CR_4_6 0x02 // 7 0 4/6
+
296 #define RADIOLIB_SX126X_LORA_CR_4_7 0x03 // 7 0 4/7
+
297 #define RADIOLIB_SX126X_LORA_CR_4_8 0x04 // 7 0 4/8
+
298 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_OFF 0x00 // 7 0 LoRa low data rate optimization: disabled
+
299 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_ON 0x01 // 7 0 enabled
+
300 
+
301 //RADIOLIB_SX126X_CMD_SET_PACKET_PARAMS
+
302 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_OFF 0x00 // 7 0 GFSK minimum preamble length before reception starts: detector disabled
+
303 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_8 0x04 // 7 0 8 bits
+
304 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16 0x05 // 7 0 16 bits
+
305 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_24 0x06 // 7 0 24 bits
+
306 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_32 0x07 // 7 0 32 bits
+
307 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_OFF 0x00 // 7 0 GFSK address filtering: disabled
+
308 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE 0x01 // 7 0 node only
+
309 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE_BROADCAST 0x02 // 7 0 node and broadcast
+
310 #define RADIOLIB_SX126X_GFSK_PACKET_FIXED 0x00 // 7 0 GFSK packet type: fixed (payload length known in advance to both sides)
+
311 #define RADIOLIB_SX126X_GFSK_PACKET_VARIABLE 0x01 // 7 0 variable (payload length added to packet)
+
312 #define RADIOLIB_SX126X_GFSK_CRC_OFF 0x01 // 7 0 GFSK packet CRC: disabled
+
313 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE 0x00 // 7 0 1 byte
+
314 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE 0x02 // 7 0 2 byte
+
315 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE_INV 0x04 // 7 0 1 byte, inverted
+
316 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE_INV 0x06 // 7 0 2 byte, inverted
+
317 #define RADIOLIB_SX126X_GFSK_WHITENING_OFF 0x00 // 7 0 GFSK data whitening: disabled
+
318 #define RADIOLIB_SX126X_GFSK_WHITENING_ON 0x01 // 7 0 enabled
+
319 #define RADIOLIB_SX126X_LORA_HEADER_EXPLICIT 0x00 // 7 0 LoRa header mode: explicit
+
320 #define RADIOLIB_SX126X_LORA_HEADER_IMPLICIT 0x01 // 7 0 implicit
+
321 #define RADIOLIB_SX126X_LORA_CRC_OFF 0x00 // 7 0 LoRa CRC mode: disabled
+
322 #define RADIOLIB_SX126X_LORA_CRC_ON 0x01 // 7 0 enabled
+
323 #define RADIOLIB_SX126X_LORA_IQ_STANDARD 0x00 // 7 0 LoRa IQ setup: standard
+
324 #define RADIOLIB_SX126X_LORA_IQ_INVERTED 0x01 // 7 0 inverted
+
325 
+
326 //RADIOLIB_SX126X_CMD_SET_CAD_PARAMS
+
327 #define RADIOLIB_SX126X_CAD_ON_1_SYMB 0x00 // 7 0 number of symbols used for CAD: 1
+
328 #define RADIOLIB_SX126X_CAD_ON_2_SYMB 0x01 // 7 0 2
+
329 #define RADIOLIB_SX126X_CAD_ON_4_SYMB 0x02 // 7 0 4
+
330 #define RADIOLIB_SX126X_CAD_ON_8_SYMB 0x03 // 7 0 8
+
331 #define RADIOLIB_SX126X_CAD_ON_16_SYMB 0x04 // 7 0 16
+
332 #define RADIOLIB_SX126X_CAD_GOTO_STDBY 0x00 // 7 0 after CAD is done, always go to STDBY_RC mode
+
333 #define RADIOLIB_SX126X_CAD_GOTO_RX 0x01 // 7 0 after CAD is done, go to Rx mode if activity is detected
+
334 #define RADIOLIB_SX126X_CAD_PARAM_DEFAULT 0xFF // 7 0 used by the CAD methods to specify default parameter value
+
335 #define RADIOLIB_SX126X_CAD_PARAM_DET_MIN 10 // 7 0 default detMin CAD parameter
+
336 
+
337 //RADIOLIB_SX126X_CMD_GET_STATUS
+
338 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_RC 0b00100000 // 6 4 current chip mode: STDBY_RC
+
339 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_XOSC 0b00110000 // 6 4 STDBY_XOSC
+
340 #define RADIOLIB_SX126X_STATUS_MODE_FS 0b01000000 // 6 4 FS
+
341 #define RADIOLIB_SX126X_STATUS_MODE_RX 0b01010000 // 6 4 RX
+
342 #define RADIOLIB_SX126X_STATUS_MODE_TX 0b01100000 // 6 4 TX
+
343 #define RADIOLIB_SX126X_STATUS_DATA_AVAILABLE 0b00000100 // 3 1 command status: packet received and data can be retrieved
+
344 #define RADIOLIB_SX126X_STATUS_CMD_TIMEOUT 0b00000110 // 3 1 SPI command timed out
+
345 #define RADIOLIB_SX126X_STATUS_CMD_INVALID 0b00001000 // 3 1 invalid SPI command
+
346 #define RADIOLIB_SX126X_STATUS_CMD_FAILED 0b00001010 // 3 1 SPI command failed to execute
+
347 #define RADIOLIB_SX126X_STATUS_TX_DONE 0b00001100 // 3 1 packet transmission done
+
348 #define RADIOLIB_SX126X_STATUS_SPI_FAILED 0b11111111 // 7 0 SPI transaction failed
+
349 
+
350 //RADIOLIB_SX126X_CMD_GET_PACKET_STATUS
+
351 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PREAMBLE_ERR 0b10000000 // 7 7 GFSK Rx status: preamble error
+
352 #define RADIOLIB_SX126X_GFSK_RX_STATUS_SYNC_ERR 0b01000000 // 6 6 sync word error
+
353 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ADRS_ERR 0b00100000 // 5 5 address error
+
354 #define RADIOLIB_SX126X_GFSK_RX_STATUS_CRC_ERR 0b00010000 // 4 4 CRC error
+
355 #define RADIOLIB_SX126X_GFSK_RX_STATUS_LENGTH_ERR 0b00001000 // 3 3 length error
+
356 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ABORT_ERR 0b00000100 // 2 2 abort error
+
357 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_RECEIVED 0b00000010 // 2 2 packet received
+
358 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_SENT 0b00000001 // 2 2 packet sent
+
359 
+
360 //RADIOLIB_SX126X_CMD_GET_DEVICE_ERRORS
+
361 #define RADIOLIB_SX126X_PA_RAMP_ERR 0b100000000 // 8 8 device errors: PA ramping failed
+
362 #define RADIOLIB_SX126X_PLL_LOCK_ERR 0b001000000 // 6 6 PLL failed to lock
+
363 #define RADIOLIB_SX126X_XOSC_START_ERR 0b000100000 // 5 5 crystal oscillator failed to start
+
364 #define RADIOLIB_SX126X_IMG_CALIB_ERR 0b000010000 // 4 4 image calibration failed
+
365 #define RADIOLIB_SX126X_ADC_CALIB_ERR 0b000001000 // 3 3 ADC calibration failed
+
366 #define RADIOLIB_SX126X_PLL_CALIB_ERR 0b000000100 // 2 2 PLL calibration failed
+
367 #define RADIOLIB_SX126X_RC13M_CALIB_ERR 0b000000010 // 1 1 RC13M calibration failed
+
368 #define RADIOLIB_SX126X_RC64K_CALIB_ERR 0b000000001 // 0 0 RC64K calibration failed
369 
-
370 // SX126X SPI register variables
-
371 //RADIOLIB_SX126X_REG_HOPPING_ENABLE
-
372 #define RADIOLIB_SX126X_HOPPING_ENABLED 0b00000001 // 0 0 intra-packet hopping for LR-FHSS: enabled
-
373 #define RADIOLIB_SX126X_HOPPING_DISABLED 0b00000000 // 0 0 (disabled)
-
374 
-
375 //RADIOLIB_SX126X_REG_LORA_SYNC_WORD_MSB + LSB
-
376 #define RADIOLIB_SX126X_SYNC_WORD_PUBLIC 0x34 // actually 0x3444 NOTE: The low nibbles in each byte (0x_4_4) are masked out since apparently, they're reserved.
-
377 #define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 // actually 0x1424 You couldn't make this up if you tried.
-
378 
-
379 // RADIOLIB_SX126X_REG_TX_BITBANG_ENABLE_1
-
380 #define RADIOLIB_SX126X_TX_BITBANG_1_DISABLED 0b00000000 // 6 4 Tx bitbang: disabled (default)
-
381 #define RADIOLIB_SX126X_TX_BITBANG_1_ENABLED 0b00010000 // 6 4 enabled
-
382 
-
383 // RADIOLIB_SX126X_REG_TX_BITBANG_ENABLE_0
-
384 #define RADIOLIB_SX126X_TX_BITBANG_0_DISABLED 0b00000000 // 3 0 Tx bitbang: disabled (default)
-
385 #define RADIOLIB_SX126X_TX_BITBANG_0_ENABLED 0b00001100 // 3 0 enabled
-
386 
-
387 // RADIOLIB_SX126X_REG_DIOX_OUT_ENABLE
-
388 #define RADIOLIB_SX126X_DIO1_OUT_DISABLED 0b00000010 // 1 1 DIO1 output: disabled
-
389 #define RADIOLIB_SX126X_DIO1_OUT_ENABLED 0b00000000 // 1 1 enabled
-
390 #define RADIOLIB_SX126X_DIO2_OUT_DISABLED 0b00000100 // 2 2 DIO2 output: disabled
-
391 #define RADIOLIB_SX126X_DIO2_OUT_ENABLED 0b00000000 // 2 2 enabled
-
392 #define RADIOLIB_SX126X_DIO3_OUT_DISABLED 0b00001000 // 3 3 DIO3 output: disabled
-
393 #define RADIOLIB_SX126X_DIO3_OUT_ENABLED 0b00000000 // 3 3 enabled
-
394 
-
395 // RADIOLIB_SX126X_REG_DIOX_IN_ENABLE
-
396 #define RADIOLIB_SX126X_DIO1_IN_DISABLED 0b00000000 // 1 1 DIO1 input: disabled
-
397 #define RADIOLIB_SX126X_DIO1_IN_ENABLED 0b00000010 // 1 1 enabled
-
398 #define RADIOLIB_SX126X_DIO2_IN_DISABLED 0b00000000 // 2 2 DIO2 input: disabled
-
399 #define RADIOLIB_SX126X_DIO2_IN_ENABLED 0b00000100 // 2 2 enabled
-
400 #define RADIOLIB_SX126X_DIO3_IN_DISABLED 0b00000000 // 3 3 DIO3 input: disabled
-
401 #define RADIOLIB_SX126X_DIO3_IN_ENABLED 0b00001000 // 3 3 enabled
-
402 
-
403 // RADIOLIB_SX126X_REG_RX_GAIN
-
404 #define RADIOLIB_SX126X_RX_GAIN_BOOSTED 0x96 // 7 0 Rx gain: boosted
-
405 #define RADIOLIB_SX126X_RX_GAIN_POWER_SAVING 0x94 // 7 0 power saving
-
406 #define RADIOLIB_SX126X_RX_GAIN_SPECTRAL_SCAN 0xCB // 7 0 spectral scan
-
407 
-
408 // RADIOLIB_SX126X_REG_PATCH_UPDATE_ENABLE
-
409 #define RADIOLIB_SX126X_PATCH_UPDATE_DISABLED 0b00010000 // 4 4 patch update: disabled
-
410 #define RADIOLIB_SX126X_PATCH_UPDATE_ENABLED 0b00000000 // 4 4 enabled
-
411 
-
412 // RADIOLIB_SX126X_REG_SPECTRAL_SCAN_STATUS
-
413 #define RADIOLIB_SX126X_SPECTRAL_SCAN_NONE 0x00 // 7 0 spectral scan status: none
-
414 #define RADIOLIB_SX126X_SPECTRAL_SCAN_ONGOING 0x0F // 7 0 ongoing
-
415 #define RADIOLIB_SX126X_SPECTRAL_SCAN_ABORTED 0xF0 // 7 0 aborted
-
416 #define RADIOLIB_SX126X_SPECTRAL_SCAN_COMPLETED 0xFF // 7 0 completed
-
417 
-
424 class SX126x: public PhysicalLayer {
-
425  public:
-
426  // introduce PhysicalLayer overloads
-
427  using PhysicalLayer::transmit;
-
428  using PhysicalLayer::receive;
-
429  using PhysicalLayer::startTransmit;
-
430  using PhysicalLayer::readData;
-
431 
-
437  SX126x(Module* mod);
-
438 
-
439  Module* getMod();
-
440 
-
441  // basic methods
-
442 
-
458  int16_t begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO = false);
-
459 
-
477  int16_t beginFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO = false);
-
478 
-
487  int16_t reset(bool verify = true);
-
488 
-
501  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
502 
-
513  int16_t receive(uint8_t* data, size_t len) override;
-
514 
-
522  int16_t transmitDirect(uint32_t frf = 0) override;
-
523 
-
530  int16_t receiveDirect() override;
-
531 
-
543  int16_t scanChannel(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);
-
544 
-
552  int16_t sleep(bool retainConfig = true);
-
553 
-
559  int16_t standby() override;
-
560 
-
568  int16_t standby(uint8_t mode);
-
569 
-
570  // interrupt methods
-
571 
-
577  void setDio1Action(void (*func)(void));
-
578 
-
582  void clearDio1Action();
-
583 
-
596  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
597 
-
603  int16_t finishTransmit() override;
-
604 
-
613  int16_t startReceive(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
-
614 
-
625  int16_t startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod);
-
626 
-
638  int16_t startReceiveDutyCycleAuto(uint16_t senderPreambleLength = 0, uint16_t minSymbols = 8);
-
639 
-
645  uint16_t getIrqStatus();
-
646 
-
657  int16_t readData(uint8_t* data, size_t len) override;
-
658 
-
670  int16_t startChannelScan(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);
+
370 
+
371 // SX126X SPI register variables
+
372 //RADIOLIB_SX126X_REG_HOPPING_ENABLE
+
373 #define RADIOLIB_SX126X_HOPPING_ENABLED 0b00000001 // 0 0 intra-packet hopping for LR-FHSS: enabled
+
374 #define RADIOLIB_SX126X_HOPPING_DISABLED 0b00000000 // 0 0 (disabled)
+
375 
+
376 //RADIOLIB_SX126X_REG_LORA_SYNC_WORD_MSB + LSB
+
377 #define RADIOLIB_SX126X_SYNC_WORD_PUBLIC 0x34 // actually 0x3444 NOTE: The low nibbles in each byte (0x_4_4) are masked out since apparently, they're reserved.
+
378 #define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 // actually 0x1424 You couldn't make this up if you tried.
+
379 
+
380 // RADIOLIB_SX126X_REG_TX_BITBANG_ENABLE_1
+
381 #define RADIOLIB_SX126X_TX_BITBANG_1_DISABLED 0b00000000 // 6 4 Tx bitbang: disabled (default)
+
382 #define RADIOLIB_SX126X_TX_BITBANG_1_ENABLED 0b00010000 // 6 4 enabled
+
383 
+
384 // RADIOLIB_SX126X_REG_TX_BITBANG_ENABLE_0
+
385 #define RADIOLIB_SX126X_TX_BITBANG_0_DISABLED 0b00000000 // 3 0 Tx bitbang: disabled (default)
+
386 #define RADIOLIB_SX126X_TX_BITBANG_0_ENABLED 0b00001100 // 3 0 enabled
+
387 
+
388 // RADIOLIB_SX126X_REG_DIOX_OUT_ENABLE
+
389 #define RADIOLIB_SX126X_DIO1_OUT_DISABLED 0b00000010 // 1 1 DIO1 output: disabled
+
390 #define RADIOLIB_SX126X_DIO1_OUT_ENABLED 0b00000000 // 1 1 enabled
+
391 #define RADIOLIB_SX126X_DIO2_OUT_DISABLED 0b00000100 // 2 2 DIO2 output: disabled
+
392 #define RADIOLIB_SX126X_DIO2_OUT_ENABLED 0b00000000 // 2 2 enabled
+
393 #define RADIOLIB_SX126X_DIO3_OUT_DISABLED 0b00001000 // 3 3 DIO3 output: disabled
+
394 #define RADIOLIB_SX126X_DIO3_OUT_ENABLED 0b00000000 // 3 3 enabled
+
395 
+
396 // RADIOLIB_SX126X_REG_DIOX_IN_ENABLE
+
397 #define RADIOLIB_SX126X_DIO1_IN_DISABLED 0b00000000 // 1 1 DIO1 input: disabled
+
398 #define RADIOLIB_SX126X_DIO1_IN_ENABLED 0b00000010 // 1 1 enabled
+
399 #define RADIOLIB_SX126X_DIO2_IN_DISABLED 0b00000000 // 2 2 DIO2 input: disabled
+
400 #define RADIOLIB_SX126X_DIO2_IN_ENABLED 0b00000100 // 2 2 enabled
+
401 #define RADIOLIB_SX126X_DIO3_IN_DISABLED 0b00000000 // 3 3 DIO3 input: disabled
+
402 #define RADIOLIB_SX126X_DIO3_IN_ENABLED 0b00001000 // 3 3 enabled
+
403 
+
404 // RADIOLIB_SX126X_REG_RX_GAIN
+
405 #define RADIOLIB_SX126X_RX_GAIN_BOOSTED 0x96 // 7 0 Rx gain: boosted
+
406 #define RADIOLIB_SX126X_RX_GAIN_POWER_SAVING 0x94 // 7 0 power saving
+
407 #define RADIOLIB_SX126X_RX_GAIN_SPECTRAL_SCAN 0xCB // 7 0 spectral scan
+
408 
+
409 // RADIOLIB_SX126X_REG_PATCH_UPDATE_ENABLE
+
410 #define RADIOLIB_SX126X_PATCH_UPDATE_DISABLED 0b00010000 // 4 4 patch update: disabled
+
411 #define RADIOLIB_SX126X_PATCH_UPDATE_ENABLED 0b00000000 // 4 4 enabled
+
412 
+
413 // RADIOLIB_SX126X_REG_SPECTRAL_SCAN_STATUS
+
414 #define RADIOLIB_SX126X_SPECTRAL_SCAN_NONE 0x00 // 7 0 spectral scan status: none
+
415 #define RADIOLIB_SX126X_SPECTRAL_SCAN_ONGOING 0x0F // 7 0 ongoing
+
416 #define RADIOLIB_SX126X_SPECTRAL_SCAN_ABORTED 0xF0 // 7 0 aborted
+
417 #define RADIOLIB_SX126X_SPECTRAL_SCAN_COMPLETED 0xFF // 7 0 completed
+
418 
+
425 class SX126x: public PhysicalLayer {
+
426  public:
+
427  // introduce PhysicalLayer overloads
+
428  using PhysicalLayer::transmit;
+
429  using PhysicalLayer::receive;
+
430  using PhysicalLayer::startTransmit;
+
431  using PhysicalLayer::readData;
+
432 
+
438  SX126x(Module* mod);
+
439 
+
440  Module* getMod();
+
441 
+
442  // basic methods
+
443 
+
459  int16_t begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO = false);
+
460 
+
478  int16_t beginFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO = false);
+
479 
+
488  int16_t reset(bool verify = true);
+
489 
+
502  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
503 
+
514  int16_t receive(uint8_t* data, size_t len) override;
+
515 
+
523  int16_t transmitDirect(uint32_t frf = 0) override;
+
524 
+
531  int16_t receiveDirect() override;
+
532 
+
544  int16_t scanChannel(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);
+
545 
+
553  int16_t sleep(bool retainConfig = true);
+
554 
+
560  int16_t standby() override;
+
561 
+
569  int16_t standby(uint8_t mode);
+
570 
+
571  // interrupt methods
+
572 
+
578  void setDio1Action(void (*func)(void));
+
579 
+
583  void clearDio1Action();
+
584 
+
597  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
598 
+
604  int16_t finishTransmit() override;
+
605 
+
618  int16_t startReceive(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);
+
619 
+
634  int16_t startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);
+
635 
+
651  int16_t startReceiveDutyCycleAuto(uint16_t senderPreambleLength = 0, uint16_t minSymbols = 8, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);
+
652 
+
658  uint16_t getIrqStatus();
+
659 
+
670  int16_t readData(uint8_t* data, size_t len) override;
671 
-
677  int16_t getChannelScanResult();
-
678 
-
679  // configuration methods
-
680 
-
688  int16_t setBandwidth(float bw);
-
689 
-
697  int16_t setSpreadingFactor(uint8_t sf);
-
698 
-
706  int16_t setCodingRate(uint8_t cr);
-
707 
-
717  int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
-
718 
-
726  int16_t setCurrentLimit(float currentLimit);
-
727 
-
733  float getCurrentLimit();
-
734 
-
742  int16_t setPreambleLength(uint16_t preambleLength);
-
743 
-
751  int16_t setFrequencyDeviation(float freqDev) override;
-
752 
-
760  int16_t setBitRate(float br);
-
761 
-
769  int16_t setRxBandwidth(float rxBw);
-
770 
-
780  int16_t setRxBoostedGainMode(bool rxbgm, bool persist = true);
-
781 
-
791  int16_t setDataShaping(uint8_t sh) override;
-
792 
-
802  int16_t setSyncWord(uint8_t* syncWord, uint8_t len);
-
803 
-
813  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
-
814 
-
822  int16_t setNodeAddress(uint8_t nodeAddr);
-
823 
-
831  int16_t setBroadcastAddress(uint8_t broadAddr);
-
832 
-
838  int16_t disableAddressFiltering();
-
839 
-
853  int16_t setCRC(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021, bool inverted = true);
-
854 
-
864  int16_t setWhitening(bool enabled, uint16_t initial = 0x0100);
-
865 
-
876  int16_t setTCXO(float voltage, uint32_t delay = 5000);
-
877 
-
883  int16_t setDio2AsRfSwitch(bool enable = true);
-
884 
-
890  float getDataRate() const;
-
891 
-
897  float getRSSI();
-
898 
-
904  float getSNR();
-
905 
-
913  size_t getPacketLength(bool update = true) override;
-
914 
-
922  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_SX126X_MAX_PACKET_LENGTH);
-
923 
-
931  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_SX126X_MAX_PACKET_LENGTH);
-
932 
-
940  uint32_t getTimeOnAir(size_t len);
-
941 
-
947  float getRSSIInst();
-
948 
-
956  int16_t implicitHeader(size_t len);
-
957 
-
963  int16_t explicitHeader();
-
964 
-
970  int16_t setRegulatorLDO();
-
971 
-
977  int16_t setRegulatorDCDC();
-
978 
-
986  int16_t setEncoding(uint8_t encoding) override;
-
987 
-
989  void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn);
-
990 
-
992  void setRfSwitchTable(const RADIOLIB_PIN_TYPE (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
-
993 
-
1002  int16_t forceLDRO(bool enable);
+
683  int16_t startChannelScan(uint8_t symbolNum = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak = RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin = RADIOLIB_SX126X_CAD_PARAM_DEFAULT);
+
684 
+
690  int16_t getChannelScanResult();
+
691 
+
692  // configuration methods
+
693 
+
701  int16_t setBandwidth(float bw);
+
702 
+
710  int16_t setSpreadingFactor(uint8_t sf);
+
711 
+
719  int16_t setCodingRate(uint8_t cr);
+
720 
+
730  int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
+
731 
+
739  int16_t setCurrentLimit(float currentLimit);
+
740 
+
746  float getCurrentLimit();
+
747 
+
755  int16_t setPreambleLength(uint16_t preambleLength);
+
756 
+
764  int16_t setFrequencyDeviation(float freqDev) override;
+
765 
+
773  int16_t setBitRate(float br);
+
774 
+
782  int16_t setRxBandwidth(float rxBw);
+
783 
+
793  int16_t setRxBoostedGainMode(bool rxbgm, bool persist = true);
+
794 
+
804  int16_t setDataShaping(uint8_t sh) override;
+
805 
+
815  int16_t setSyncWord(uint8_t* syncWord, uint8_t len);
+
816 
+
826  int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
+
827 
+
835  int16_t setNodeAddress(uint8_t nodeAddr);
+
836 
+
844  int16_t setBroadcastAddress(uint8_t broadAddr);
+
845 
+
851  int16_t disableAddressFiltering();
+
852 
+
866  int16_t setCRC(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021, bool inverted = true);
+
867 
+
877  int16_t setWhitening(bool enabled, uint16_t initial = 0x0100);
+
878 
+
889  int16_t setTCXO(float voltage, uint32_t delay = 5000);
+
890 
+
896  int16_t setDio2AsRfSwitch(bool enable = true);
+
897 
+
903  float getDataRate() const;
+
904 
+
910  float getRSSI();
+
911 
+
917  float getSNR();
+
918 
+
926  size_t getPacketLength(bool update = true) override;
+
927 
+
935  int16_t fixedPacketLengthMode(uint8_t len = RADIOLIB_SX126X_MAX_PACKET_LENGTH);
+
936 
+
944  int16_t variablePacketLengthMode(uint8_t maxLen = RADIOLIB_SX126X_MAX_PACKET_LENGTH);
+
945 
+
953  uint32_t getTimeOnAir(size_t len);
+
954 
+
960  float getRSSIInst();
+
961 
+
969  int16_t implicitHeader(size_t len);
+
970 
+
976  int16_t explicitHeader();
+
977 
+
983  int16_t setRegulatorLDO();
+
984 
+
990  int16_t setRegulatorDCDC();
+
991 
+
999  int16_t setEncoding(uint8_t encoding) override;
+
1000 
+
1002  void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn);
1003 
-
1010  int16_t autoLDRO();
-
1011 
-
1017  uint8_t randomByte();
-
1018 
-
1019  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
-
1025  void setDirectAction(void (*func)(void));
-
1026 
-
1032  void readBit(RADIOLIB_PIN_TYPE pin);
-
1033  #endif
-
1034 
-
1035 
-
1036 #if !defined(RADIOLIB_GODMODE)
-
1037  protected:
-
1038 #endif
-
1039  // SX126x SPI command implementations
-
1040  int16_t setTx(uint32_t timeout = 0);
-
1041  int16_t setRx(uint32_t timeout);
-
1042  int16_t setCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
-
1043  int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);
-
1044  int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
-
1045  int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
-
1046  int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
-
1047  int16_t readBuffer(uint8_t* data, uint8_t numBytes);
-
1048  int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);
-
1049  virtual int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);
-
1050  int16_t setRfFrequency(uint32_t frf);
-
1051  int16_t calibrateImage(uint8_t* data);
-
1052  uint8_t getPacketType();
-
1053  int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);
-
1054  int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
-
1055  int16_t setModulationParamsFSK(uint32_t br, uint8_t pulseShape, uint8_t rxBw, uint32_t freqDev);
-
1056  int16_t setPacketParams(uint16_t preambleLength, uint8_t crcType, uint8_t payloadLength, uint8_t headerType, uint8_t invertIQ = RADIOLIB_SX126X_LORA_IQ_STANDARD);
-
1057  int16_t setPacketParamsFSK(uint16_t preambleLength, uint8_t crcType, uint8_t syncWordLength, uint8_t addrComp, uint8_t whitening, uint8_t packetType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLength = 0xFF, uint8_t preambleDetectorLength = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);
-
1058  int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
-
1059  int16_t setRegulatorMode(uint8_t mode);
-
1060  uint8_t getStatus();
-
1061  uint32_t getPacketStatus();
-
1062  uint16_t getDeviceErrors();
-
1063  int16_t clearDeviceErrors();
-
1064 
-
1065  int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
-
1066  int16_t setFrequencyRaw(float freq);
-
1067  int16_t setPacketMode(uint8_t mode, uint8_t len);
-
1068  int16_t setHeaderType(uint8_t headerType, size_t len = 0xFF);
-
1069  int16_t directMode();
-
1070  int16_t packetMode();
-
1071 
-
1072  // fixes to errata
-
1073  int16_t fixSensitivity();
-
1074  int16_t fixPaClamping(bool enable = true);
-
1075  int16_t fixImplicitTimeout();
-
1076  int16_t fixInvertedIQ(uint8_t iqConfig);
+
1005  void setRfSwitchTable(const RADIOLIB_PIN_TYPE (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
+
1006 
+
1015  int16_t forceLDRO(bool enable);
+
1016 
+
1023  int16_t autoLDRO();
+
1024 
+
1030  uint8_t randomByte();
+
1031 
+
1032  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
+
1038  void setDirectAction(void (*func)(void));
+
1039 
+
1045  void readBit(RADIOLIB_PIN_TYPE pin);
+
1046  #endif
+
1047 
+
1048 
+
1049 #if !defined(RADIOLIB_GODMODE)
+
1050  protected:
+
1051 #endif
+
1052  // SX126x SPI command implementations
+
1053  int16_t setTx(uint32_t timeout = 0);
+
1054  int16_t setRx(uint32_t timeout);
+
1055  int16_t setCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin);
+
1056  int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);
+
1057  int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+
1058  int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+
1059  int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
+
1060  int16_t readBuffer(uint8_t* data, uint8_t numBytes);
+
1061  int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);
+
1062  virtual int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);
+
1063  int16_t setRfFrequency(uint32_t frf);
+
1064  int16_t calibrateImage(uint8_t* data);
+
1065  uint8_t getPacketType();
+
1066  int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);
+
1067  int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
+
1068  int16_t setModulationParamsFSK(uint32_t br, uint8_t pulseShape, uint8_t rxBw, uint32_t freqDev);
+
1069  int16_t setPacketParams(uint16_t preambleLength, uint8_t crcType, uint8_t payloadLength, uint8_t headerType, uint8_t invertIQ = RADIOLIB_SX126X_LORA_IQ_STANDARD);
+
1070  int16_t setPacketParamsFSK(uint16_t preambleLength, uint8_t crcType, uint8_t syncWordLength, uint8_t addrComp, uint8_t whitening, uint8_t packetType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLength = 0xFF, uint8_t preambleDetectorLength = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);
+
1071  int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
+
1072  int16_t setRegulatorMode(uint8_t mode);
+
1073  uint8_t getStatus();
+
1074  uint32_t getPacketStatus();
+
1075  uint16_t getDeviceErrors();
+
1076  int16_t clearDeviceErrors();
1077 
-
1078 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
-
1079  protected:
-
1080 #endif
-
1081  Module* _mod;
-
1082 
-
1083  // common low-level SPI interface
-
1084  static int16_t SPIparseStatus(uint8_t in);
-
1085 
-
1086 #if !defined(RADIOLIB_GODMODE)
-
1087  protected:
-
1088 #endif
-
1089 
-
1090  uint8_t _bw = 0, _sf = 0, _cr = 0, _ldro = 0, _crcType = 0, _headerType = 0;
-
1091  uint16_t _preambleLength = 0;
-
1092  float _bwKhz = 0;
-
1093  bool _ldroAuto = true;
-
1094 
-
1095  uint32_t _br = 0, _freqDev = 0;
-
1096  uint8_t _rxBw = 0, _pulseShape = 0, _crcTypeFSK = 0, _syncWordLength = 0, _addrComp = 0, _whitening = 0, _packetType = 0;
-
1097  uint16_t _preambleLengthFSK = 0;
-
1098  float _rxBwKhz = 0;
-
1099 
-
1100  float _dataRate = 0;
-
1101 
-
1102  uint32_t _tcxoDelay = 0;
-
1103 
-
1104  size_t _implicitLen = 0;
-
1105  uint8_t _chipType = 0;
-
1106 
-
1107  // Allow subclasses to define different TX modes
-
1108  uint8_t _tx_mode = Module::MODE_TX;
-
1109 
-
1110  int16_t config(uint8_t modem);
-
1111  bool findChip(uint8_t type);
-
1112 };
-
1113 
-
1114 #endif
-
1115 
-
1116 #endif
+
1078  int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX126X_IRQ_RX_DONE);
+
1079  int16_t setFrequencyRaw(float freq);
+
1080  int16_t setPacketMode(uint8_t mode, uint8_t len);
+
1081  int16_t setHeaderType(uint8_t headerType, size_t len = 0xFF);
+
1082  int16_t directMode();
+
1083  int16_t packetMode();
+
1084 
+
1085  // fixes to errata
+
1086  int16_t fixSensitivity();
+
1087  int16_t fixPaClamping(bool enable = true);
+
1088  int16_t fixImplicitTimeout();
+
1089  int16_t fixInvertedIQ(uint8_t iqConfig);
+
1090 
+
1091 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
+
1092  protected:
+
1093 #endif
+
1094  Module* _mod;
+
1095 
+
1096  // common low-level SPI interface
+
1097  static int16_t SPIparseStatus(uint8_t in);
+
1098 
+
1099 #if !defined(RADIOLIB_GODMODE)
+
1100  protected:
+
1101 #endif
+
1102 
+
1103  uint8_t _bw = 0, _sf = 0, _cr = 0, _ldro = 0, _crcType = 0, _headerType = 0;
+
1104  uint16_t _preambleLength = 0;
+
1105  float _bwKhz = 0;
+
1106  bool _ldroAuto = true;
+
1107 
+
1108  uint32_t _br = 0, _freqDev = 0;
+
1109  uint8_t _rxBw = 0, _pulseShape = 0, _crcTypeFSK = 0, _syncWordLength = 0, _addrComp = 0, _whitening = 0, _packetType = 0;
+
1110  uint16_t _preambleLengthFSK = 0;
+
1111  float _rxBwKhz = 0;
+
1112 
+
1113  float _dataRate = 0;
+
1114 
+
1115  uint32_t _tcxoDelay = 0;
+
1116 
+
1117  size_t _implicitLen = 0;
+
1118  uint8_t _chipType = 0;
+
1119 
+
1120  // Allow subclasses to define different TX modes
+
1121  uint8_t _tx_mode = Module::MODE_TX;
+
1122 
+
1123  int16_t config(uint8_t modem);
+
1124  bool findChip(uint8_t type);
+
1125 };
+
1126 
+
1127 #endif
+
1128 
+
1129 #endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:16
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code.
Definition: Module.h:27
@ MODE_TX
Definition: Module.h:56
@@ -739,69 +740,69 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:141
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:122
int16_t receive(String &str, size_t len=0)
Arduino String receive method.
Definition: PhysicalLayer.cpp:60
-
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:424
+
Base class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from thi...
Definition: SX126x.h:425
+
int16_t startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)
Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages...
Definition: SX126x.cpp:575
void setDio1Action(void(*func)(void))
Sets interrupt service routine to call when DIO1 activates.
Definition: SX126x.cpp:458
-
float getRSSI()
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX126x.cpp:1221
-
int16_t startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)
Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is dete...
Definition: SX126x.cpp:684
-
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX126x.cpp:996
-
int16_t setRegulatorLDO()
Set regulator mode to LDO.
Definition: SX126x.cpp:1309
-
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1321
-
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Available in FSK mode only. Serves only as alias for PhysicalLayer compat...
Definition: SX126x.cpp:1317
+
float getRSSI()
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX126x.cpp:1220
+
int16_t startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)
Interrupt-driven channel activity detection method. DIO0 will be activated when LoRa preamble is dete...
Definition: SX126x.cpp:683
+
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX126x.cpp:995
+
int16_t setRegulatorLDO()
Set regulator mode to LDO.
Definition: SX126x.cpp:1308
+
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1320
+
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Available in FSK mode only. Serves only as alias for PhysicalLayer compat...
Definition: SX126x.cpp:1316
int16_t beginFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO=false)
Initialization method for FSK modem.
Definition: SX126x.cpp:91
-
int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 7.8, 10.4, 15.6, 20.8, 31.25, 41.7, 62.5, 125....
Definition: SX126x.cpp:731
-
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX126x.cpp:1305
-
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition: SX126x.cpp:1329
-
int16_t setNodeAddress(uint8_t nodeAddr)
Sets node address. Calling this method will also enable address filtering for node address only.
Definition: SX126x.cpp:1076
-
int16_t setTCXO(float voltage, uint32_t delay=5000)
Sets TCXO (Temperature Compensated Crystal Oscillator) configuration.
Definition: SX126x.cpp:1381
-
int16_t setRxBandwidth(float rxBw)
Sets FSK receiver bandwidth. Allowed values are 4.8, 5.8, 7.3, 9.7, 11.7, 14.6, 19....
Definition: SX126x.cpp:896
-
int16_t setRegulatorDCDC()
Set regulator mode to DC-DC.
Definition: SX126x.cpp:1313
-
int16_t setWhitening(bool enabled, uint16_t initial=0x0100)
Sets FSK whitening parameters.
Definition: SX126x.cpp:1180
+
int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 7.8, 10.4, 15.6, 20.8, 31.25, 41.7, 62.5, 125....
Definition: SX126x.cpp:730
+
int16_t startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)
Interrupt-driven receive method. DIO1 will be activated when full packet is received.
Definition: SX126x.cpp:535
+
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX126x.cpp:1304
+
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition: SX126x.cpp:1328
+
int16_t setNodeAddress(uint8_t nodeAddr)
Sets node address. Calling this method will also enable address filtering for node address only.
Definition: SX126x.cpp:1075
+
int16_t setTCXO(float voltage, uint32_t delay=5000)
Sets TCXO (Temperature Compensated Crystal Oscillator) configuration.
Definition: SX126x.cpp:1380
+
int16_t setRxBandwidth(float rxBw)
Sets FSK receiver bandwidth. Allowed values are 4.8, 5.8, 7.3, 9.7, 11.7, 14.6, 19....
Definition: SX126x.cpp:895
+
int16_t setRegulatorDCDC()
Set regulator mode to DC-DC.
Definition: SX126x.cpp:1312
+
int16_t startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)
Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen....
Definition: SX126x.cpp:548
+
int16_t setWhitening(bool enabled, uint16_t initial=0x0100)
Sets FSK whitening parameters.
Definition: SX126x.cpp:1179
void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: SX126x.cpp:462
-
int16_t startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)
Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages...
Definition: SX126x.cpp:575
int16_t scanChannel(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)
Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
Definition: SX126x.cpp:416
int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition: SX126x.cpp:446
-
int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 200.0 kHz.
Definition: SX126x.cpp:854
-
int16_t setBitRate(float br)
Sets FSK bit rate. Allowed values range from 0.6 to 300.0 kbps.
Definition: SX126x.cpp:878
-
uint32_t getTimeOnAir(size_t len)
Get expected time-on-air for a given size of payload.
Definition: SX126x.cpp:1259
-
uint8_t randomByte()
Get one truly random byte from RSSI noise.
Definition: SX126x.cpp:1350
+
int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 200.0 kHz.
Definition: SX126x.cpp:853
+
int16_t setBitRate(float br)
Sets FSK bit rate. Allowed values range from 0.6 to 300.0 kbps.
Definition: SX126x.cpp:877
+
uint32_t getTimeOnAir(size_t len)
Get expected time-on-air for a given size of payload.
Definition: SX126x.cpp:1258
+
uint8_t randomByte()
Get one truly random byte from RSSI noise.
Definition: SX126x.cpp:1349
int16_t receiveDirect() override
Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX126x series does...
Definition: SX126x.cpp:342
int16_t finishTransmit() override
Clean up after transmission is done.
Definition: SX126x.cpp:527
-
int16_t setCurrentLimit(float currentLimit)
Sets current protection limit. Can be set in 2.5 mA steps.
Definition: SX126x.cpp:819
-
int16_t setRxBoostedGainMode(bool rxbgm, bool persist=true)
Enables or disables Rx Boosted Gain mode as described in SX126x datasheet section 9....
Definition: SX126x.cpp:959
+
int16_t setCurrentLimit(float currentLimit)
Sets current protection limit. Can be set in 2.5 mA steps.
Definition: SX126x.cpp:818
+
int16_t setRxBoostedGainMode(bool rxbgm, bool persist=true)
Enables or disables Rx Boosted Gain mode as described in SX126x datasheet section 9....
Definition: SX126x.cpp:958
int16_t transmitDirect(uint32_t frf=0) override
Starts direct mode transmission.
Definition: SX126x.cpp:326
-
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_SX126X_MAX_PACKET_LENGTH)
Set modem in variable packet length mode. Available in FSK mode only.
Definition: SX126x.cpp:1255
+
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_SX126X_MAX_PACKET_LENGTH)
Set modem in variable packet length mode. Available in FSK mode only.
Definition: SX126x.cpp:1254
int16_t begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool useRegulatorLDO=false)
Initialization method for LoRa modem.
Definition: SX126x.cpp:12
-
int16_t setCRC(uint8_t len, uint16_t initial=0x1D0F, uint16_t polynomial=0x1021, bool inverted=true)
Sets CRC configuration.
Definition: SX126x.cpp:1121
-
uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX126x.cpp:1528
+
int16_t setCRC(uint8_t len, uint16_t initial=0x1D0F, uint16_t polynomial=0x1021, bool inverted=true)
Sets CRC configuration.
Definition: SX126x.cpp:1120
+
uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX126x.cpp:1527
int16_t reset(bool verify=true)
Reset method. Will reset the chip to the default state using RST pin.
Definition: SX126x.cpp:185
-
int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits=0x44)
Sets LoRa sync word.
Definition: SX126x.cpp:808
-
float getCurrentLimit()
Reads current protection limit.
Definition: SX126x.cpp:832
+
int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits=0x44)
Sets LoRa sync word.
Definition: SX126x.cpp:807
+
float getCurrentLimit()
Reads current protection limit.
Definition: SX126x.cpp:831
SX126x(Module *mod)
Default constructor.
Definition: SX126x.cpp:4
-
int16_t setPreambleLength(uint16_t preambleLength)
Sets preamble length for LoRa or FSK modem. Allowed values range from 1 to 65535.
Definition: SX126x.cpp:841
+
int16_t setPreambleLength(uint16_t preambleLength)
Sets preamble length for LoRa or FSK modem. Allowed values range from 1 to 65535.
Definition: SX126x.cpp:840
int16_t transmit(__FlashStringHelper *fstr, uint8_t addr=0)
Arduino Flash String transmit method.
Definition: PhysicalLayer.cpp:12
-
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition: SX126x.cpp:1341
-
void setDirectAction(void(*func)(void))
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX126x.cpp:1372
-
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_SX126X_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode. Available in FSK mode only.
Definition: SX126x.cpp:1251
-
int16_t setBroadcastAddress(uint8_t broadAddr)
Sets broadcast address. Calling this method will also enable address filtering for node and broadcast...
Definition: SX126x.cpp:1093
-
int16_t getChannelScanResult()
Read the channel scan result.
Definition: SX126x.cpp:710
-
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX126x.cpp:1244
-
int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen)
Sets FSK sync word in the form of array of up to 8 bytes.
Definition: SX126x.cpp:1049
-
float getDataRate() const
Gets effective data rate for the last transmitted packet. The value is calculated only for payload by...
Definition: SX126x.cpp:1217
-
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1325
-
int16_t startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)
Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen....
Definition: SX126x.cpp:548
-
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX126x.cpp:1301
-
float getRSSIInst()
Get instantaneous RSSI value during recption of the packet. Should switch to FSK receive mode for LBT...
Definition: SX126x.cpp:1294
-
float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: SX126x.cpp:1228
-
int16_t setDio2AsRfSwitch(bool enable=true)
Set DIO2 to function as RF switch (default in Semtech example designs).
Definition: SX126x.cpp:1429
-
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX126x.cpp:782
+
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition: SX126x.cpp:1340
+
void setDirectAction(void(*func)(void))
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX126x.cpp:1371
+
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_SX126X_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode. Available in FSK mode only.
Definition: SX126x.cpp:1250
+
int16_t setBroadcastAddress(uint8_t broadAddr)
Sets broadcast address. Calling this method will also enable address filtering for node and broadcast...
Definition: SX126x.cpp:1092
+
int16_t getChannelScanResult()
Read the channel scan result.
Definition: SX126x.cpp:709
+
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX126x.cpp:1243
+
int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen)
Sets FSK sync word in the form of array of up to 8 bytes.
Definition: SX126x.cpp:1048
+
float getDataRate() const
Gets effective data rate for the last transmitted packet. The value is calculated only for payload by...
Definition: SX126x.cpp:1216
+
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX126x.cpp:1324
+
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX126x.cpp:1300
+
float getRSSIInst()
Get instantaneous RSSI value during recption of the packet. Should switch to FSK receive mode for LBT...
Definition: SX126x.cpp:1293
+
float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: SX126x.cpp:1227
+
int16_t setDio2AsRfSwitch(bool enable=true)
Set DIO2 to function as RF switch (default in Semtech example designs).
Definition: SX126x.cpp:1428
+
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX126x.cpp:781
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:141
-
int16_t startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)
Interrupt-driven receive method. DIO1 will be activated when full packet is received.
Definition: SX126x.cpp:535
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:122
int16_t receive(String &str, size_t len=0)
Arduino String receive method.
Definition: PhysicalLayer.cpp:60
int16_t sleep(bool retainConfig=true)
Sets the module to sleep mode.
Definition: SX126x.cpp:430
-
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition: SX126x.cpp:1110
-
int16_t setCodingRate(uint8_t cr)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX126x.cpp:795
-
void readBit(RADIOLIB_PIN_TYPE pin)
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX126x.cpp:1376
+
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition: SX126x.cpp:1109
+
int16_t setCodingRate(uint8_t cr)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX126x.cpp:794
+
void readBit(RADIOLIB_PIN_TYPE pin)
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX126x.cpp:1375
Definition: Module.h:34
diff --git a/_s_x1281_8h_source.html b/_s_x1281_8h_source.html index c07bc109..345f2750 100644 --- a/_s_x1281_8h_source.html +++ b/_s_x1281_8h_source.html @@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('_s_x1281_8h_source.html',''); initResi
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:16
Derived class for SX1281 modules.
Definition: SX1281.h:16
SX1281(Module *mod)
Default constructor.
Definition: SX1281.cpp:4
-
Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:350
+
Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:351
diff --git a/_s_x128x_8h_source.html b/_s_x128x_8h_source.html index 29c66153..2268c08b 100644 --- a/_s_x128x_8h_source.html +++ b/_s_x128x_8h_source.html @@ -415,207 +415,208 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
327 #define RADIOLIB_SX128X_IRQ_SYNC_WORD_VALID 0x0004 // 2 2 sync word valid
328 #define RADIOLIB_SX128X_IRQ_RX_DONE 0x0002 // 1 1 Rx done
329 #define RADIOLIB_SX128X_IRQ_TX_DONE 0x0001 // 0 0 Tx done
-
330 #define RADIOLIB_SX128X_IRQ_NONE 0x0000 // 15 0 none
-
331 #define RADIOLIB_SX128X_IRQ_ALL 0xFFFF // 15 0 all
-
332 
-
333 //RADIOLIB_SX128X_CMD_SET_REGULATOR_MODE
-
334 #define RADIOLIB_SX128X_REGULATOR_LDO 0x00 // 7 0 set regulator mode: LDO (default)
-
335 #define RADIOLIB_SX128X_REGULATOR_DC_DC 0x01 // 7 0 DC-DC
-
336 
-
337 //RADIOLIB_SX128X_CMD_SET_RANGING_ROLE
-
338 #define RADIOLIB_SX128X_RANGING_ROLE_MASTER 0x01 // 7 0 ranging role: master
-
339 #define RADIOLIB_SX128X_RANGING_ROLE_SLAVE 0x00 // 7 0 slave
-
340 
-
341 //RADIOLIB_SX128X_REG_LORA_SYNC_WORD_1 - RADIOLIB_SX128X_REG_LORA_SYNC_WORD_2
-
342 #define RADIOLIB_SX128X_SYNC_WORD_PRIVATE 0x12
-
343 
-
350 class SX128x: public PhysicalLayer {
-
351  public:
-
352  // introduce PhysicalLayer overloads
-
353  using PhysicalLayer::transmit;
-
354  using PhysicalLayer::receive;
-
355  using PhysicalLayer::startTransmit;
-
356  using PhysicalLayer::readData;
-
357 
-
363  SX128x(Module* mod);
-
364 
-
365  Module* getMod();
-
366 
-
367  // basic methods
-
368 
-
388  int16_t begin(float freq = 2400.0, float bw = 812.5, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t power = 10, uint16_t preambleLength = 12);
-
389 
-
405  int16_t beginGFSK(float freq = 2400.0, uint16_t br = 800, float freqDev = 400.0, int8_t power = 10, uint16_t preambleLength = 16);
-
406 
-
422  int16_t beginBLE(float freq = 2400.0, uint16_t br = 800, float freqDev = 400.0, int8_t power = 10, uint8_t dataShaping = RADIOLIB_SHAPING_0_5);
-
423 
-
441  int16_t beginFLRC(float freq = 2400.0, uint16_t br = 650, uint8_t cr = 3, int8_t power = 10, uint16_t preambleLength = 16, uint8_t dataShaping = RADIOLIB_SHAPING_0_5);
-
442 
-
451  int16_t reset(bool verify = true);
-
452 
-
465  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
466 
-
477  int16_t receive(uint8_t* data, size_t len) override;
-
478 
-
486  int16_t transmitDirect(uint32_t frf = 0) override;
-
487 
-
494  int16_t receiveDirect() override;
-
495 
-
501  int16_t scanChannel();
-
502 
-
510  int16_t sleep(bool retainConfig = true);
-
511 
-
517  int16_t standby() override;
-
518 
-
526  int16_t standby(uint8_t mode);
-
527 
-
528  // interrupt methods
-
529 
-
535  void setDio1Action(void (*func)(void));
-
536 
-
540  void clearDio1Action();
-
541 
-
554  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
-
555 
-
561  int16_t finishTransmit() override;
-
562 
-
571  int16_t startReceive(uint16_t timeout = RADIOLIB_SX128X_RX_TIMEOUT_INF);
-
572 
-
577  uint16_t getIrqStatus();
-
578 
-
589  int16_t readData(uint8_t* data, size_t len) override;
-
590 
-
591  // configuration methods
-
592 
-
600  int16_t setFrequency(float freq);
-
601 
-
609  int16_t setBandwidth(float bw);
-
610 
-
618  int16_t setSpreadingFactor(uint8_t sf);
-
619 
-
629  int16_t setCodingRate(uint8_t cr, bool longInterleaving = false);
-
630 
-
638  int16_t setOutputPower(int8_t power);
-
639 
-
647  int16_t setPreambleLength(uint32_t preambleLength);
-
648 
-
656  int16_t setBitRate(float br);
-
657 
-
665  int16_t setFrequencyDeviation(float freqDev) override;
-
666 
-
675  int16_t setDataShaping(uint8_t sh) override;
-
676 
-
686  int16_t setSyncWord(uint8_t* syncWord, uint8_t len);
-
687 
-
697  int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
-
698 
-
710  int16_t setCRC(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);
-
711 
-
719  int16_t setWhitening(bool enabled);
-
720 
-
728  int16_t setAccessAddress(uint32_t addr);
-
729 
-
737  int16_t setHighSensitivityMode(bool hsm = false);
-
738 
-
746  int16_t setGainControl(uint8_t gain = 0);
-
747 
-
753  float getRSSI();
-
754 
-
760  float getSNR();
-
761 
-
767  float getFrequencyError();
-
768 
-
776  size_t getPacketLength(bool update = true) override;
-
777 
-
785  uint32_t getTimeOnAir(size_t len);
-
786 
-
792  int16_t implicitHeader(size_t len);
-
793 
-
801  int16_t explicitHeader();
-
802 
-
810  int16_t setEncoding(uint8_t encoding) override;
-
811 
-
813  void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn);
-
814 
-
816  void setRfSwitchTable(const RADIOLIB_PIN_TYPE (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
-
817 
-
823  uint8_t randomByte();
-
824 
-
825  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
-
831  void setDirectAction(void (*func)(void));
-
832 
-
838  void readBit(RADIOLIB_PIN_TYPE pin);
-
839  #endif
-
840 
-
841 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
-
842  protected:
-
843 #endif
-
844  Module* _mod;
+
330 #define RADIOLIB_SX128X_IRQ_RX_DEFAULT 0x4062 // 15 0 default for Rx (RX_DONE, RX_TX_TIMEOUT, CRC_ERROR and HEADER_ERROR)
+
331 #define RADIOLIB_SX128X_IRQ_NONE 0x0000 // 15 0 none
+
332 #define RADIOLIB_SX128X_IRQ_ALL 0xFFFF // 15 0 all
+
333 
+
334 //RADIOLIB_SX128X_CMD_SET_REGULATOR_MODE
+
335 #define RADIOLIB_SX128X_REGULATOR_LDO 0x00 // 7 0 set regulator mode: LDO (default)
+
336 #define RADIOLIB_SX128X_REGULATOR_DC_DC 0x01 // 7 0 DC-DC
+
337 
+
338 //RADIOLIB_SX128X_CMD_SET_RANGING_ROLE
+
339 #define RADIOLIB_SX128X_RANGING_ROLE_MASTER 0x01 // 7 0 ranging role: master
+
340 #define RADIOLIB_SX128X_RANGING_ROLE_SLAVE 0x00 // 7 0 slave
+
341 
+
342 //RADIOLIB_SX128X_REG_LORA_SYNC_WORD_1 - RADIOLIB_SX128X_REG_LORA_SYNC_WORD_2
+
343 #define RADIOLIB_SX128X_SYNC_WORD_PRIVATE 0x12
+
344 
+
351 class SX128x: public PhysicalLayer {
+
352  public:
+
353  // introduce PhysicalLayer overloads
+
354  using PhysicalLayer::transmit;
+
355  using PhysicalLayer::receive;
+
356  using PhysicalLayer::startTransmit;
+
357  using PhysicalLayer::readData;
+
358 
+
364  SX128x(Module* mod);
+
365 
+
366  Module* getMod();
+
367 
+
368  // basic methods
+
369 
+
389  int16_t begin(float freq = 2400.0, float bw = 812.5, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t power = 10, uint16_t preambleLength = 12);
+
390 
+
406  int16_t beginGFSK(float freq = 2400.0, uint16_t br = 800, float freqDev = 400.0, int8_t power = 10, uint16_t preambleLength = 16);
+
407 
+
423  int16_t beginBLE(float freq = 2400.0, uint16_t br = 800, float freqDev = 400.0, int8_t power = 10, uint8_t dataShaping = RADIOLIB_SHAPING_0_5);
+
424 
+
442  int16_t beginFLRC(float freq = 2400.0, uint16_t br = 650, uint8_t cr = 3, int8_t power = 10, uint16_t preambleLength = 16, uint8_t dataShaping = RADIOLIB_SHAPING_0_5);
+
443 
+
452  int16_t reset(bool verify = true);
+
453 
+
466  int16_t transmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
467 
+
478  int16_t receive(uint8_t* data, size_t len) override;
+
479 
+
487  int16_t transmitDirect(uint32_t frf = 0) override;
+
488 
+
495  int16_t receiveDirect() override;
+
496 
+
502  int16_t scanChannel();
+
503 
+
511  int16_t sleep(bool retainConfig = true);
+
512 
+
518  int16_t standby() override;
+
519 
+
527  int16_t standby(uint8_t mode);
+
528 
+
529  // interrupt methods
+
530 
+
536  void setDio1Action(void (*func)(void));
+
537 
+
541  void clearDio1Action();
+
542 
+
555  int16_t startTransmit(uint8_t* data, size_t len, uint8_t addr = 0) override;
+
556 
+
562  int16_t finishTransmit() override;
+
563 
+
576  int16_t startReceive(uint16_t timeout = RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags = RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask = RADIOLIB_SX128X_IRQ_RX_DONE);
+
577 
+
582  uint16_t getIrqStatus();
+
583 
+
594  int16_t readData(uint8_t* data, size_t len) override;
+
595 
+
596  // configuration methods
+
597 
+
605  int16_t setFrequency(float freq);
+
606 
+
614  int16_t setBandwidth(float bw);
+
615 
+
623  int16_t setSpreadingFactor(uint8_t sf);
+
624 
+
634  int16_t setCodingRate(uint8_t cr, bool longInterleaving = false);
+
635 
+
643  int16_t setOutputPower(int8_t power);
+
644 
+
652  int16_t setPreambleLength(uint32_t preambleLength);
+
653 
+
661  int16_t setBitRate(float br);
+
662 
+
670  int16_t setFrequencyDeviation(float freqDev) override;
+
671 
+
680  int16_t setDataShaping(uint8_t sh) override;
+
681 
+
691  int16_t setSyncWord(uint8_t* syncWord, uint8_t len);
+
692 
+
702  int16_t setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
+
703 
+
715  int16_t setCRC(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);
+
716 
+
724  int16_t setWhitening(bool enabled);
+
725 
+
733  int16_t setAccessAddress(uint32_t addr);
+
734 
+
742  int16_t setHighSensitivityMode(bool hsm = false);
+
743 
+
751  int16_t setGainControl(uint8_t gain = 0);
+
752 
+
758  float getRSSI();
+
759 
+
765  float getSNR();
+
766 
+
772  float getFrequencyError();
+
773 
+
781  size_t getPacketLength(bool update = true) override;
+
782 
+
790  uint32_t getTimeOnAir(size_t len);
+
791 
+
797  int16_t implicitHeader(size_t len);
+
798 
+
806  int16_t explicitHeader();
+
807 
+
815  int16_t setEncoding(uint8_t encoding) override;
+
816 
+
818  void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn);
+
819 
+
821  void setRfSwitchTable(const RADIOLIB_PIN_TYPE (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
+
822 
+
828  uint8_t randomByte();
+
829 
+
830  #if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
+
836  void setDirectAction(void (*func)(void));
+
837 
+
843  void readBit(RADIOLIB_PIN_TYPE pin);
+
844  #endif
845 
-
846 #if !defined(RADIOLIB_GODMODE)
+
846 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
847  protected:
848 #endif
-
849 
-
850  // cached LoRa parameters
-
851  float _bwKhz = 0;
-
852  uint8_t _bw = 0, _sf = 0, _cr = 0;
-
853  uint8_t _preambleLengthLoRa = 0, _headerType = 0, _payloadLen = 0, _crcLoRa = 0;
+
849  Module* _mod;
+
850 
+
851 #if !defined(RADIOLIB_GODMODE)
+
852  protected:
+
853 #endif
854 
-
855  // SX128x SPI command implementations
-
856  uint8_t getStatus();
-
857  int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
-
858  int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
-
859  int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
-
860  int16_t readBuffer(uint8_t* data, uint8_t numBytes);
-
861  int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
-
862  int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
-
863  int16_t setCad();
-
864  uint8_t getPacketType();
-
865  int16_t setRfFrequency(uint32_t frf);
-
866  int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);
-
867  int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
-
868  int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);
-
869  int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncWordLen, uint8_t syncWordMatch, uint8_t crcLen, uint8_t whitening, uint8_t payloadLen = 0xFF, uint8_t headerType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);
-
870  int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTestPayload, uint8_t whitening);
-
871  int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t headerType, uint8_t payloadLen, uint8_t crc, uint8_t invertIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);
-
872  int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);
-
873  int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);
-
874  int16_t setRangingRole(uint8_t role);
-
875  int16_t setPacketType(uint8_t type);
-
876 
-
877  int16_t setHeaderType(uint8_t headerType, size_t len = 0xFF);
-
878 
-
879 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
-
880  private:
-
881 #endif
-
882 
-
883  // common low-level SPI interface
-
884  static int16_t SPIparseStatus(uint8_t in);
-
885 
-
886 #if !defined(RADIOLIB_GODMODE)
-
887  private:
-
888 #endif
-
889  // common parameters
-
890  uint8_t _pwr = 0;
-
891 
-
892  // cached GFSK parameters
-
893  float _modIndexReal = 0;
-
894  uint16_t _brKbps = 0;
-
895  uint8_t _br = 0, _modIndex = 0, _shaping = 0;
-
896  uint8_t _preambleLengthGFSK = 0, _syncWordLen = 0, _syncWordMatch = 0, _crcGFSK = 0, _whitening = 0;
-
897 
-
898  // cached FLRC parameters
-
899  uint8_t _crFLRC = 0;
-
900 
-
901  // cached BLE parameters
-
902  uint8_t _connectionState = 0, _crcBLE = 0, _bleTestPayload = 0;
-
903 
-
904  int16_t config(uint8_t modem);
-
905 };
-
906 
-
907 #endif
+
855  // cached LoRa parameters
+
856  float _bwKhz = 0;
+
857  uint8_t _bw = 0, _sf = 0, _cr = 0;
+
858  uint8_t _preambleLengthLoRa = 0, _headerType = 0, _payloadLen = 0, _crcLoRa = 0;
+
859 
+
860  // SX128x SPI command implementations
+
861  uint8_t getStatus();
+
862  int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+
863  int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+
864  int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
+
865  int16_t readBuffer(uint8_t* data, uint8_t numBytes);
+
866  int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
+
867  int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
+
868  int16_t setCad();
+
869  uint8_t getPacketType();
+
870  int16_t setRfFrequency(uint32_t frf);
+
871  int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);
+
872  int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
+
873  int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);
+
874  int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncWordLen, uint8_t syncWordMatch, uint8_t crcLen, uint8_t whitening, uint8_t payloadLen = 0xFF, uint8_t headerType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);
+
875  int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTestPayload, uint8_t whitening);
+
876  int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t headerType, uint8_t payloadLen, uint8_t crc, uint8_t invertIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);
+
877  int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);
+
878  int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);
+
879  int16_t setRangingRole(uint8_t role);
+
880  int16_t setPacketType(uint8_t type);
+
881 
+
882  int16_t setHeaderType(uint8_t headerType, size_t len = 0xFF);
+
883 
+
884 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
+
885  private:
+
886 #endif
+
887 
+
888  // common low-level SPI interface
+
889  static int16_t SPIparseStatus(uint8_t in);
+
890 
+
891 #if !defined(RADIOLIB_GODMODE)
+
892  private:
+
893 #endif
+
894  // common parameters
+
895  uint8_t _pwr = 0;
+
896 
+
897  // cached GFSK parameters
+
898  float _modIndexReal = 0;
+
899  uint16_t _brKbps = 0;
+
900  uint8_t _br = 0, _modIndex = 0, _shaping = 0;
+
901  uint8_t _preambleLengthGFSK = 0, _syncWordLen = 0, _syncWordMatch = 0, _crcGFSK = 0, _whitening = 0;
+
902 
+
903  // cached FLRC parameters
+
904  uint8_t _crFLRC = 0;
+
905 
+
906  // cached BLE parameters
+
907  uint8_t _connectionState = 0, _crcBLE = 0, _bleTestPayload = 0;
908 
-
909 #endif
+
909  int16_t config(uint8_t modem);
+
910 };
+
911 
+
912 #endif
+
913 
+
914 #endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:16
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code.
Definition: Module.h:27
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:14
@@ -623,54 +624,54 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:141
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:122
int16_t receive(String &str, size_t len=0)
Arduino String receive method.
Definition: PhysicalLayer.cpp:60
-
Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:350
+
Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:351
void setDio1Action(void(*func)(void))
Sets interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:469
-
int16_t setSyncWord(uint8_t *syncWord, uint8_t len)
Sets FSK/FLRC sync word in the form of array of up to 5 bytes (FSK). For FLRC modem,...
Definition: SX128x.cpp:899
-
int16_t setPreambleLength(uint32_t preambleLength)
Sets preamble length for currently active modem. Allowed values range from 1 to 65535.
Definition: SX128x.cpp:731
+
int16_t setSyncWord(uint8_t *syncWord, uint8_t len)
Sets FSK/FLRC sync word in the form of array of up to 5 bytes (FSK). For FLRC modem,...
Definition: SX128x.cpp:897
+
int16_t setPreambleLength(uint32_t preambleLength)
Sets preamble length for currently active modem. Allowed values range from 1 to 65535.
Definition: SX128x.cpp:729
int16_t sleep(bool retainConfig=true)
Sets the module to sleep mode.
Definition: SX128x.cpp:441
-
int16_t setFrequency(float freq)
Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.
Definition: SX128x.cpp:625
-
uint32_t getTimeOnAir(size_t len)
Get expected time-on-air for a given size of payload.
Definition: SX128x.cpp:1190
+
int16_t setFrequency(float freq)
Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.
Definition: SX128x.cpp:623
+
uint32_t getTimeOnAir(size_t len)
Get expected time-on-air for a given size of payload.
Definition: SX128x.cpp:1188
int16_t reset(bool verify=true)
Reset method. Will reset the chip to the default state using RST pin.
Definition: SX128x.cpp:262
-
int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 3200.0 kHz.
Definition: SX128x.cpp:836
-
float getFrequencyError()
Gets frequency error of the latest received packet.
Definition: SX128x.cpp:1150
+
int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 3200.0 kHz.
Definition: SX128x.cpp:834
+
float getFrequencyError()
Gets frequency error of the latest received packet.
Definition: SX128x.cpp:1148
int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition: SX128x.cpp:457
-
void readBit(RADIOLIB_PIN_TYPE pin)
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1287
+
void readBit(RADIOLIB_PIN_TYPE pin)
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1285
int16_t beginBLE(float freq=2400.0, uint16_t br=800, float freqDev=400.0, int8_t power=10, uint8_t dataShaping=RADIOLIB_SHAPING_0_5)
Initialization method for BLE modem.
Definition: SX128x.cpp:142
-
int16_t setGainControl(uint8_t gain=0)
Enables or disables receiver manual gain control.
Definition: SX128x.cpp:1070
-
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX128x.cpp:1183
+
int16_t setGainControl(uint8_t gain=0)
Enables or disables receiver manual gain control.
Definition: SX128x.cpp:1068
+
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX128x.cpp:1181
int16_t finishTransmit() override
Clean up after transmission is done.
Definition: SX128x.cpp:541
-
int16_t setBitRate(float br)
Sets FSK or FLRC bit rate. Allowed values are 125, 250, 400, 500, 800, 1000, 1600 and 2000 kbps (for ...
Definition: SX128x.cpp:779
+
int16_t setBitRate(float br)
Sets FSK or FLRC bit rate. Allowed values are 125, 250, 400, 500, 800, 1000, 1600 and 2000 kbps (for ...
Definition: SX128x.cpp:777
int16_t transmitDirect(uint32_t frf=0) override
Starts direct mode transmission.
Definition: SX128x.cpp:373
-
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1266
-
int16_t setHighSensitivityMode(bool hsm=false)
Enables or disables receiver high sensitivity mode.
Definition: SX128x.cpp:1053
-
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Serves only as alias for PhysicalLayer compatibility.
Definition: SX128x.cpp:1262
+
void setRfSwitchPins(RADIOLIB_PIN_TYPE rxEn, RADIOLIB_PIN_TYPE txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1264
+
int16_t setHighSensitivityMode(bool hsm=false)
Enables or disables receiver high sensitivity mode.
Definition: SX128x.cpp:1051
+
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Serves only as alias for PhysicalLayer compatibility.
Definition: SX128x.cpp:1260
int16_t scanChannel()
Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
Definition: SX128x.cpp:396
-
float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa or ranging mode...
Definition: SX128x.cpp:1130
-
int16_t setWhitening(bool enabled)
Sets whitening parameters, not available for LoRa or FLRC modem.
Definition: SX128x.cpp:1022
+
float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa or ranging mode...
Definition: SX128x.cpp:1128
+
int16_t setWhitening(bool enabled)
Sets whitening parameters, not available for LoRa or FLRC modem.
Definition: SX128x.cpp:1020
int16_t beginGFSK(float freq=2400.0, uint16_t br=800, float freqDev=400.0, int8_t power=10, uint16_t preambleLength=16)
Initialization method for GFSK modem.
Definition: SX128x.cpp:73
-
int16_t setAccessAddress(uint32_t addr)
Sets BLE access address.
Definition: SX128x.cpp:1042
-
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX128x.cpp:1258
-
float getRSSI()
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX128x.cpp:1106
-
uint8_t randomByte()
Dummy random method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1274
-
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX128x.cpp:869
+
int16_t setAccessAddress(uint32_t addr)
Sets BLE access address.
Definition: SX128x.cpp:1040
+
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX128x.cpp:1256
+
float getRSSI()
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX128x.cpp:1104
+
uint8_t randomByte()
Dummy random method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1272
+
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX128x.cpp:867
SX128x(Module *mod)
Default constructor.
Definition: SX128x.cpp:4
-
int16_t setCodingRate(uint8_t cr, bool longInterleaving=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX128x.cpp:697
-
int16_t setCRC(uint8_t len, uint32_t initial=0x1D0F, uint16_t polynomial=0x1021)
Sets CRC configuration.
Definition: SX128x.cpp:958
+
int16_t setCodingRate(uint8_t cr, bool longInterleaving=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX128x.cpp:695
+
int16_t setCRC(uint8_t len, uint32_t initial=0x1D0F, uint16_t polynomial=0x1021)
Sets CRC configuration.
Definition: SX128x.cpp:956
int16_t transmit(__FlashStringHelper *fstr, uint8_t addr=0)
Arduino Flash String transmit method.
Definition: PhysicalLayer.cpp:12
void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:473
-
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX128x.cpp:1254
+
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX128x.cpp:1252
int16_t beginFLRC(float freq=2400.0, uint16_t br=650, uint8_t cr=3, int8_t power=10, uint16_t preambleLength=16, uint8_t dataShaping=RADIOLIB_SHAPING_0_5)
Initialization method for FLRC modem.
Definition: SX128x.cpp:197
int16_t begin(float freq=2400.0, float bw=812.5, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t power=10, uint16_t preambleLength=12)
Initialization method for LoRa modem.
Definition: SX128x.cpp:12
-
int16_t startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF)
Interrupt-driven receive method. DIO1 will be activated when full packet is received.
Definition: SX128x.cpp:549
-
int16_t setOutputPower(int8_t power)
Sets output power. Allowed values are in range from -18 to 13 dBm.
Definition: SX128x.cpp:725
-
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1270
-
uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX128x.cpp:1387
-
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX128x.cpp:663
+
int16_t setOutputPower(int8_t power)
Sets output power. Allowed values are in range from -18 to 13 dBm.
Definition: SX128x.cpp:723
+
int16_t startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE)
Interrupt-driven receive method. DIO1 will be activated when full packet is received.
Definition: SX128x.cpp:549
+
void setRfSwitchTable(const RADIOLIB_PIN_TYPE(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1268
+
uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX128x.cpp:1385
+
int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX128x.cpp:661
int16_t readData(String &str, size_t len=0)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:141
-
int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 203.125, 406.25, 812.5 and 1625.0 kHz.
Definition: SX128x.cpp:633
+
int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 203.125, 406.25, 812.5 and 1625.0 kHz.
Definition: SX128x.cpp:631
int16_t startTransmit(String &str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:122
int16_t receive(String &str, size_t len=0)
Arduino String receive method.
Definition: PhysicalLayer.cpp:60
-
void setDirectAction(void(*func)(void))
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1281
+
void setDirectAction(void(*func)(void))
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1279
int16_t receiveDirect() override
Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX128x series does...
Definition: SX128x.cpp:388
#define RADIOLIB_SHAPING_0_5
Gaussin shaping filter, BT = 0.5.
Definition: TypeDef.h:25
Definition: Module.h:34
diff --git a/class_l_l_c_c68-members.html b/class_l_l_c_c68-members.html index 781c671f..3cfee865 100644 --- a/class_l_l_c_c68-members.html +++ b/class_l_l_c_c68-members.html @@ -169,9 +169,9 @@ $(document).ready(function(){initNavTree('class_l_l_c_c68.html',''); initResizab standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_l_l_c_c68.html b/class_l_l_c_c68.html index c8ba3a06..0f6e9986 100644 --- a/class_l_l_c_c68.html +++ b/class_l_l_c_c68.html @@ -195,15 +195,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_t_m32_w_lx-members.html b/class_s_t_m32_w_lx-members.html index 5ca0a3b1..e78a5231 100644 --- a/class_s_t_m32_w_lx-members.html +++ b/class_s_t_m32_w_lx-members.html @@ -176,9 +176,9 @@ $(document).ready(function(){initNavTree('class_s_t_m32_w_lx.html',''); initResi standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_s_t_m32_w_lx.html b/class_s_t_m32_w_lx.html index 31dedcbc..64e65392 100644 --- a/class_s_t_m32_w_lx.html +++ b/class_s_t_m32_w_lx.html @@ -218,15 +218,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x1261-members.html b/class_s_x1261-members.html index 47415095..9746f84b 100644 --- a/class_s_x1261-members.html +++ b/class_s_x1261-members.html @@ -168,9 +168,9 @@ $(document).ready(function(){initNavTree('class_s_x1261.html',''); initResizable standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_s_x1261.html b/class_s_x1261.html index 2a35375e..3fdae127 100644 --- a/class_s_x1261.html +++ b/class_s_x1261.html @@ -186,15 +186,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x1262-members.html b/class_s_x1262-members.html index 1b108a7f..88fa8df7 100644 --- a/class_s_x1262-members.html +++ b/class_s_x1262-members.html @@ -168,9 +168,9 @@ $(document).ready(function(){initNavTree('class_s_x1262.html',''); initResizable standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_s_x1262.html b/class_s_x1262.html index b7be6fb4..086383cb 100644 --- a/class_s_x1262.html +++ b/class_s_x1262.html @@ -184,15 +184,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x1268-members.html b/class_s_x1268-members.html index 8e587301..cf9e9ac7 100644 --- a/class_s_x1268-members.html +++ b/class_s_x1268-members.html @@ -167,9 +167,9 @@ $(document).ready(function(){initNavTree('class_s_x1268.html',''); initResizable standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_s_x1268.html b/class_s_x1268.html index 46dd3931..d1569ffc 100644 --- a/class_s_x1268.html +++ b/class_s_x1268.html @@ -178,15 +178,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x126x-members.html b/class_s_x126x-members.html index 41091d8a..d257742c 100644 --- a/class_s_x126x-members.html +++ b/class_s_x126x-members.html @@ -163,9 +163,9 @@ $(document).ready(function(){initNavTree('class_s_x126x.html',''); initResizable standby(uint8_t mode)SX126xvirtual startChannelScan(uint8_t symbolNum=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detPeak=RADIOLIB_SX126X_CAD_PARAM_DEFAULT, uint8_t detMin=RADIOLIB_SX126X_CAD_PARAM_DEFAULT)SX126x startDirect()PhysicalLayer - startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF)SX126x - startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod)SX126x - startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8)SX126x + startReceive(uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x + startReceiveDutyCycleAuto(uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE)SX126x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX126xvirtual startTransmit(String &str, uint8_t addr=0)SX126x startTransmit(const char *str, uint8_t addr=0)SX126x diff --git a/class_s_x126x.html b/class_s_x126x.html index 9470f7bb..f6bb2087 100644 --- a/class_s_x126x.html +++ b/class_s_x126x.html @@ -163,15 +163,15 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  -int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod) - Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
-  -int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8) - Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
-  +int16_t startReceive (uint32_t timeout=RADIOLIB_SX126X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  +int16_t startReceiveDutyCycle (uint32_t rxPeriod, uint32_t sleepPeriod, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Interrupt-driven receive method where the device mostly sleeps and periodically wakes to listen. Note that this function assumes the unit will take 500us + TCXO_delay to change state. See datasheet section 13.1.7, version 1.2. More...
+  +int16_t startReceiveDutyCycleAuto (uint16_t senderPreambleLength=0, uint16_t minSymbols=8, uint16_t irqFlags=RADIOLIB_SX126X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX126X_IRQ_RX_DONE) + Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  @@ -2297,8 +2297,8 @@ void  -

◆ startReceive()

+ +

◆ startReceive()

@@ -2317,6 +2333,8 @@ void 
Parameters
+ +
timeoutRaw timeout value, expressed as multiples of 15.625 us. Defaults to RADIOLIB_SX126X_RX_TIMEOUT_INF for infinite timeout (Rx continuous mode), set to RADIOLIB_SX126X_RX_TIMEOUT_NONE for no timeout (Rx single mode). If timeout other than infinite is set, signal will be generated on DIO1.
irqFlagsSets the IRQ flags, defaults to RADIOLIB_SX126X_IRQ_RX_DEFAULT.
irqMaskSets the mask of IRQ flags that will trigger DIO1, defaults to RADIOLIB_SX126X_IRQ_RX_DONE.
@@ -2324,8 +2342,8 @@ void 
-

◆ startReceiveDutyCycle()

+ +

◆ startReceiveDutyCycle()

@@ -2340,7 +2358,19 @@ void  uint32_t  - sleepPeriod  + sleepPeriod, + + + + + uint16_t  + irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, + + + + + uint16_t  + irqMask = RADIOLIB_SX126X_IRQ_RX_DONE  @@ -2355,6 +2385,8 @@ void  rxPeriodThe duration the receiver will be in Rx mode, in microseconds. sleepPeriodThe duration the receiver will not be in Rx mode, in microseconds. + irqFlagsSets the IRQ flags, defaults to RADIOLIB_SX126X_IRQ_RX_DEFAULT. + irqMaskSets the mask of IRQ flags that will trigger DIO1, defaults to RADIOLIB_SX126X_IRQ_RX_DONE. @@ -2362,8 +2394,8 @@ void  -

◆ startReceiveDutyCycleAuto()

+ +

◆ startReceiveDutyCycleAuto()

@@ -2378,7 +2410,19 @@ void  uint16_t  - minSymbols = 8  + minSymbols = 8, + + + + + uint16_t  + irqFlags = RADIOLIB_SX126X_IRQ_RX_DEFAULT, + + + + + uint16_t  + irqMask = RADIOLIB_SX126X_IRQ_RX_DONE  @@ -2388,11 +2432,13 @@ void  -

Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages.

+

Calls startReceiveDutyCycle with rxPeriod and sleepPeriod set so the unit shouldn't miss any messages.

Parameters
+ +
senderPreambleLengthExpected preamble length of the messages to receive. If set to zero, the currently configured preamble length will be used. Defaults to zero.
minSymbolsParameters will be chosen to ensure that the unit will catch at least this many symbols of any preamble of the specified length. Defaults to 8. According to Semtech, receiver requires 8 symbols to reliably latch a preamble. This makes this method redundant when transmitter preamble length is less than 17 (2*minSymbols + 1).
irqFlagsSets the IRQ flags, defaults to RADIOLIB_SX126X_IRQ_RX_DEFAULT.
irqMaskSets the mask of IRQ flags that will trigger DIO1, defaults to RADIOLIB_SX126X_IRQ_RX_DONE.
diff --git a/class_s_x126x.js b/class_s_x126x.js index 4f8e563b..666e81b1 100644 --- a/class_s_x126x.js +++ b/class_s_x126x.js @@ -62,9 +62,9 @@ var class_s_x126x = [ "standby", "class_s_x126x.html#a7a1579e2557c36a4a34b09039c0d0c71", null ], [ "standby", "class_s_x126x.html#ad7569396f09f3867dc1bd4d4a0613acd", null ], [ "startChannelScan", "class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2", null ], - [ "startReceive", "class_s_x126x.html#aeb92dc9d2e2a2b3a3a5ff2856528d497", null ], - [ "startReceiveDutyCycle", "class_s_x126x.html#adc46b6adda2d0e82e25ed1fc78274136", null ], - [ "startReceiveDutyCycleAuto", "class_s_x126x.html#a6b50cb78f02a3d93939437eb48489d3f", null ], + [ "startReceive", "class_s_x126x.html#a34057f054d1cd3cce520ddf87b0821d5", null ], + [ "startReceiveDutyCycle", "class_s_x126x.html#a5b4f8a41b593436b8c7a2a2d46ac387e", null ], + [ "startReceiveDutyCycleAuto", "class_s_x126x.html#a077f180905ce4818cbdacad0cd9fe841", null ], [ "startTransmit", "class_s_x126x.html#a923654706eff5118ef6e84214e837f27", null ], [ "startTransmit", "class_s_x126x.html#af068e6e862c99e39d0261a7971dd56db", null ], [ "startTransmit", "class_s_x126x.html#ad59e37ce0606dc8051e40be9d14cfec3", null ], diff --git a/class_s_x1280-members.html b/class_s_x1280-members.html index fc4a1f30..cc0b81ab 100644 --- a/class_s_x1280-members.html +++ b/class_s_x1280-members.html @@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('class_s_x1280.html',''); initResizable standby(uint8_t mode)SX128xvirtual startDirect()PhysicalLayer startRanging(bool master, uint32_t addr, uint16_t calTable[3][6]=NULL)SX1280 - startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF)SX128x + startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE)SX128x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX128xvirtual startTransmit(String &str, uint8_t addr=0)SX128x startTransmit(const char *str, uint8_t addr=0)SX128x diff --git a/class_s_x1280.html b/class_s_x1280.html index 35a5fe77..cf868df1 100644 --- a/class_s_x1280.html +++ b/class_s_x1280.html @@ -184,9 +184,9 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  +int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x1281-members.html b/class_s_x1281-members.html index 75de8cc3..dcf7d92a 100644 --- a/class_s_x1281-members.html +++ b/class_s_x1281-members.html @@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('class_s_x1281.html',''); initResizable standby() overrideSX128xvirtual standby(uint8_t mode)SX128xvirtual startDirect()PhysicalLayer - startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF)SX128x + startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE)SX128x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX128xvirtual startTransmit(String &str, uint8_t addr=0)SX128x startTransmit(const char *str, uint8_t addr=0)SX128x diff --git a/class_s_x1281.html b/class_s_x1281.html index c8370918..846d0a4d 100644 --- a/class_s_x1281.html +++ b/class_s_x1281.html @@ -171,9 +171,9 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  +int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x1282-members.html b/class_s_x1282-members.html index 453f7ac3..8ad6208f 100644 --- a/class_s_x1282-members.html +++ b/class_s_x1282-members.html @@ -154,7 +154,7 @@ $(document).ready(function(){initNavTree('class_s_x1282.html',''); initResizable standby(uint8_t mode)SX128xvirtual startDirect()PhysicalLayer startRanging(bool master, uint32_t addr, uint16_t calTable[3][6]=NULL)SX1280 - startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF)SX128x + startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE)SX128x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX128xvirtual startTransmit(String &str, uint8_t addr=0)SX128x startTransmit(const char *str, uint8_t addr=0)SX128x diff --git a/class_s_x1282.html b/class_s_x1282.html index 7e2a40f9..452fcf0b 100644 --- a/class_s_x1282.html +++ b/class_s_x1282.html @@ -188,9 +188,9 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  +int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  diff --git a/class_s_x128x-members.html b/class_s_x128x-members.html index 5e713b9d..d5287220 100644 --- a/class_s_x128x-members.html +++ b/class_s_x128x-members.html @@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('class_s_x128x.html',''); initResizable standby() overrideSX128xvirtual standby(uint8_t mode)SX128xvirtual startDirect()PhysicalLayer - startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF)SX128x + startReceive(uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE)SX128x startTransmit(uint8_t *data, size_t len, uint8_t addr=0) overrideSX128xvirtual startTransmit(String &str, uint8_t addr=0)SX128x startTransmit(const char *str, uint8_t addr=0)SX128x diff --git a/class_s_x128x.html b/class_s_x128x.html index ea5025bd..88710a0e 100644 --- a/class_s_x128x.html +++ b/class_s_x128x.html @@ -167,9 +167,9 @@ void int16_t finishTransmit () override  Clean up after transmission is done. More...
  -int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF) - Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
-  +int16_t startReceive (uint16_t timeout=RADIOLIB_SX128X_RX_TIMEOUT_INF, uint16_t irqFlags=RADIOLIB_SX128X_IRQ_RX_DEFAULT, uint16_t irqMask=RADIOLIB_SX128X_IRQ_RX_DONE) + Interrupt-driven receive method. DIO1 will be activated when full packet is received. More...
+  uint16_t getIrqStatus ()  Reads the current IRQ status. More...
  @@ -2015,8 +2015,8 @@ void  -

◆ startReceive()

+ +

◆ startReceive()

@@ -2035,6 +2051,8 @@ void 
Parameters
+ +
timeoutRaw timeout value, expressed as multiples of 15.625 us. Defaults to RADIOLIB_SX128X_RX_TIMEOUT_INF for infinite timeout (Rx continuous mode), set to RADIOLIB_SX128X_RX_TIMEOUT_NONE for no timeout (Rx single mode). If timeout other than infinite is set, signal will be generated on DIO1.
irqFlagsSets the IRQ flags, defaults to RADIOLIB_SX128X_IRQ_RX_DEFAULT.
irqMaskSets the mask of IRQ flags that will trigger DIO1, defaults to RADIOLIB_SX128X_IRQ_RX_DONE.
diff --git a/class_s_x128x.js b/class_s_x128x.js index e9f2d453..0664786a 100644 --- a/class_s_x128x.js +++ b/class_s_x128x.js @@ -51,7 +51,7 @@ var class_s_x128x = [ "sleep", "class_s_x128x.html#a1d15e13e15b060ddbbe84257d5fcb66f", null ], [ "standby", "class_s_x128x.html#a2be8cc6c3b61b59cb6a6ca4f6a030b45", null ], [ "standby", "class_s_x128x.html#aa11ba80f0cebb3e6927c775ad5f96b4e", null ], - [ "startReceive", "class_s_x128x.html#ad59ee052d8ab1f250245a14039fc8b66", null ], + [ "startReceive", "class_s_x128x.html#add774469f0bde099082a29068064712c", null ], [ "startTransmit", "class_s_x128x.html#a923654706eff5118ef6e84214e837f27", null ], [ "startTransmit", "class_s_x128x.html#af068e6e862c99e39d0261a7971dd56db", null ], [ "startTransmit", "class_s_x128x.html#ad59e37ce0606dc8051e40be9d14cfec3", null ], diff --git a/functions_func_s.html b/functions_func_s.html index 7876dca6..3b2bcff8 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -532,15 +532,15 @@ $(document).ready(function(){initNavTree('functions_func_s.html',''); initResiza ,
PagerClient , RF69 , Si443x -, SX126x +, SX126x , SX127x -, SX128x +, SX128x
  • startReceiveDutyCycle() -: SX126x +: SX126x
  • startReceiveDutyCycleAuto() -: SX126x +: SX126x
  • startSignal() : MorseClient diff --git a/functions_s.html b/functions_s.html index 581dcabb..c5ca30f0 100644 --- a/functions_s.html +++ b/functions_s.html @@ -571,15 +571,15 @@ $(document).ready(function(){initNavTree('functions_s.html',''); initResizable() , PagerClient , RF69 , Si443x -, SX126x +, SX126x , SX127x -, SX128x +, SX128x
  • startReceiveDutyCycle() -: SX126x +: SX126x
  • startReceiveDutyCycleAuto() -: SX126x +: SX126x
  • startSignal() : MorseClient diff --git a/navtreeindex2.js b/navtreeindex2.js index 09a5aae9..6a0c2f24 100644 --- a/navtreeindex2.js +++ b/navtreeindex2.js @@ -34,6 +34,7 @@ var NAVTREEINDEX2 = "class_s_x1268.html#ad9e92b39ae0fdfa47131ddf7adb92b71":[3,0,34,1], "class_s_x1268.html#af6b041392136b599eec57085e2067a6f":[3,0,34,2], "class_s_x126x.html":[3,0,35], +"class_s_x126x.html#a077f180905ce4818cbdacad0cd9fe841":[3,0,35,64], "class_s_x126x.html#a0da667fe702d7b4aafaa4bf7e69ea40d":[3,0,35,39], "class_s_x126x.html#a0e5f0032a91686b9673a48c908eb1925":[3,0,35,16], "class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2":[3,0,35,61], @@ -44,6 +45,7 @@ var NAVTREEINDEX2 = "class_s_x126x.html#a2e500e5b6044ccab8f6b19af4ffa917c":[3,0,35,3], "class_s_x126x.html#a2f60df59c80241d98ce078c0417a7f08":[3,0,35,32], "class_s_x126x.html#a3350cbfab628956c1a456383ac7bb2b2":[3,0,35,25], +"class_s_x126x.html#a34057f054d1cd3cce520ddf87b0821d5":[3,0,35,62], "class_s_x126x.html#a3563453988a83d22dd07d4691543a300":[3,0,35,24], "class_s_x126x.html#a3765f534418d4e0540c179621c019138":[3,0,35,6], "class_s_x126x.html#a38e6d7831f35893a5b8328c10a2901bf":[3,0,35,54], @@ -54,9 +56,9 @@ var NAVTREEINDEX2 = "class_s_x126x.html#a57bee6f4b3a3b7ec646ac8de347ee0d6":[3,0,35,56], "class_s_x126x.html#a59d443c02d4620cda32c63a00c6bcc22":[3,0,35,50], "class_s_x126x.html#a5ae69309ca0cf5f13c60f2d162916ff8":[3,0,35,46], +"class_s_x126x.html#a5b4f8a41b593436b8c7a2a2d46ac387e":[3,0,35,63], "class_s_x126x.html#a67702de41ae866b9f9d73234fc9ae376":[3,0,35,57], "class_s_x126x.html#a6848afe4c16a47edb3e0b342a86ecdfd":[3,0,35,4], -"class_s_x126x.html#a6b50cb78f02a3d93939437eb48489d3f":[3,0,35,64], "class_s_x126x.html#a755e7df4b0958f7c793d0c058408831a":[3,0,35,31], "class_s_x126x.html#a7a1579e2557c36a4a34b09039c0d0c71":[3,0,35,59], "class_s_x126x.html#a7cd95a5f2e39ae8fb1a3040e77fa21a3":[3,0,35,43], @@ -94,7 +96,6 @@ var NAVTREEINDEX2 = "class_s_x126x.html#ad59e37ce0606dc8051e40be9d14cfec3":[3,0,35,67], "class_s_x126x.html#ad7569396f09f3867dc1bd4d4a0613acd":[3,0,35,60], "class_s_x126x.html#ad92085fdf4508c0849de0aec8dee2494":[3,0,35,49], -"class_s_x126x.html#adc46b6adda2d0e82e25ed1fc78274136":[3,0,35,63], "class_s_x126x.html#adec09cba71494bd927ad1da786606ca6":[3,0,35,20], "class_s_x126x.html#ae36664f9c605a8fe74b2f357e0ec3323":[3,0,35,17], "class_s_x126x.html#ae36823d3539667bdf7d2f073bd4fa1ca":[3,0,35,18], @@ -103,7 +104,6 @@ var NAVTREEINDEX2 = "class_s_x126x.html#ae5993359ace652fbdc862eb23fdd263d":[3,0,35,52], "class_s_x126x.html#ae8eed0e888a7c8742e89d2b850977de2":[3,0,35,23], "class_s_x126x.html#aeb62c5a521aafc1e0525c58e9364482b":[3,0,35,71], -"class_s_x126x.html#aeb92dc9d2e2a2b3a3a5ff2856528d497":[3,0,35,62], "class_s_x126x.html#af068e6e862c99e39d0261a7971dd56db":[3,0,35,66], "class_s_x126x.html#afb1b090348d9091bfa3a0b5ba3d85b36":[3,0,35,26], "class_s_x126x.html#afb5509f0705cdd971065251ed6b2fb4e":[3,0,35,58], diff --git a/navtreeindex3.js b/navtreeindex3.js index 41e5de20..b393694d 100644 --- a/navtreeindex3.js +++ b/navtreeindex3.js @@ -64,8 +64,8 @@ var NAVTREEINDEX3 = "class_s_x128x.html#ac7df67afbb0b1a88daf5ec50f3d65660":[3,0,46,3], "class_s_x128x.html#acbd0d1a48051ccd35f4a89c9b8d05bdf":[3,0,46,1], "class_s_x128x.html#ad59e37ce0606dc8051e40be9d14cfec3":[3,0,46,54], -"class_s_x128x.html#ad59ee052d8ab1f250245a14039fc8b66":[3,0,46,51], "class_s_x128x.html#ad6e2b46c317a8d8512cf0380025147a9":[3,0,46,40], +"class_s_x128x.html#add774469f0bde099082a29068064712c":[3,0,46,51], "class_s_x128x.html#ae14ea0c263fba51ec39d146c5877f0a3":[3,0,46,43], "class_s_x128x.html#ae1f933f767161cc59fdaca816ab93e22":[3,0,46,9], "class_s_x128x.html#ae435f57132f76f4283abb870176acf54":[3,0,46,44], @@ -210,8 +210,8 @@ var NAVTREEINDEX3 = "dir_ed12d23d857ca7061030f8751e72e77c.html":[4,0,0,0,10], "dir_f980efad9544c0545d0fa50a84ff12f2.html":[4,0,0,0,9], "files.html":[4,0], -"functions.html":[3,3,0,0], "functions.html":[3,3,0], +"functions.html":[3,3,0,0], "functions_b.html":[3,3,0,1], "functions_c.html":[3,3,0,2], "functions_d.html":[3,3,0,3], @@ -219,8 +219,8 @@ var NAVTREEINDEX3 = "functions_enum.html":[3,3,4], "functions_eval.html":[3,3,5], "functions_f.html":[3,3,0,5], -"functions_func.html":[3,3,1,0], "functions_func.html":[3,3,1], +"functions_func.html":[3,3,1,0], "functions_func_b.html":[3,3,1,1], "functions_func_c.html":[3,3,1,2], "functions_func_d.html":[3,3,1,3], diff --git a/search/all_f.js b/search/all_f.js index 84624fa1..0a84b47e 100644 --- a/search/all_f.js +++ b/search/all_f.js @@ -110,9 +110,9 @@ var searchData= ['startchannelscan_334',['startChannelScan',['../class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059',1,'SX127x::startChannelScan()'],['../class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2',1,'SX126x::startChannelScan()']]], ['startdirect_335',['startDirect',['../class_physical_layer.html#a88a10657bd2215a11a2331f937414b55',1,'PhysicalLayer']]], ['startranging_336',['startRanging',['../class_s_x1280.html#a78cebe909fb2776f11f6c50f4f241c10',1,'SX1280']]], - ['startreceive_337',['startReceive',['../class_pager_client.html#ad6f4f034b71311144f76b629a8ef8f8d',1,'PagerClient::startReceive()'],['../class_s_x128x.html#ad59ee052d8ab1f250245a14039fc8b66',1,'SX128x::startReceive()'],['../class_s_x127x.html#adffb96b7f80dc43909bb4cebde68fe9d',1,'SX127x::startReceive()'],['../class_s_x126x.html#aeb92dc9d2e2a2b3a3a5ff2856528d497',1,'SX126x::startReceive()'],['../class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2',1,'Si443x::startReceive()'],['../class_r_f69.html#afae38fa64242043de34096bf497725f1',1,'RF69::startReceive()'],['../classn_r_f24.html#af4f443da5d90e032e5f2f65420515f9c',1,'nRF24::startReceive()'],['../class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3',1,'CC1101::startReceive()']]], - ['startreceivedutycycle_338',['startReceiveDutyCycle',['../class_s_x126x.html#adc46b6adda2d0e82e25ed1fc78274136',1,'SX126x']]], - ['startreceivedutycycleauto_339',['startReceiveDutyCycleAuto',['../class_s_x126x.html#a6b50cb78f02a3d93939437eb48489d3f',1,'SX126x']]], + ['startreceive_337',['startReceive',['../class_pager_client.html#ad6f4f034b71311144f76b629a8ef8f8d',1,'PagerClient::startReceive()'],['../class_s_x128x.html#add774469f0bde099082a29068064712c',1,'SX128x::startReceive()'],['../class_s_x127x.html#adffb96b7f80dc43909bb4cebde68fe9d',1,'SX127x::startReceive()'],['../class_s_x126x.html#a34057f054d1cd3cce520ddf87b0821d5',1,'SX126x::startReceive()'],['../class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2',1,'Si443x::startReceive()'],['../class_r_f69.html#afae38fa64242043de34096bf497725f1',1,'RF69::startReceive()'],['../classn_r_f24.html#af4f443da5d90e032e5f2f65420515f9c',1,'nRF24::startReceive()'],['../class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3',1,'CC1101::startReceive()']]], + ['startreceivedutycycle_338',['startReceiveDutyCycle',['../class_s_x126x.html#a5b4f8a41b593436b8c7a2a2d46ac387e',1,'SX126x']]], + ['startreceivedutycycleauto_339',['startReceiveDutyCycleAuto',['../class_s_x126x.html#a077f180905ce4818cbdacad0cd9fe841',1,'SX126x']]], ['startsignal_340',['startSignal',['../class_morse_client.html#a3c718208786f8fe55f30eee990ec28e3',1,'MorseClient']]], ['starttransmit_341',['startTransmit',['../class_c_c1101.html#a0df2938e2509a8f2746b20ae0558d4ea',1,'CC1101::startTransmit()'],['../classn_r_f24.html#a923654706eff5118ef6e84214e837f27',1,'nRF24::startTransmit(const char *str, uint8_t addr=0)'],['../classn_r_f24.html#a42fdc828b49f2b8e15457189bd57d917',1,'nRF24::startTransmit(uint8_t *data, size_t len, uint8_t addr) override'],['../class_r_f69.html#a855dc194947b095b821ec1524ba6814c',1,'RF69::startTransmit()'],['../class_si443x.html#a402b4f5f11ba79e9cd4fb6ac0bfd9314',1,'Si443x::startTransmit()'],['../class_s_x126x.html#ab843614658a79db7aa24e48d5b6e84f1',1,'SX126x::startTransmit()'],['../class_s_x127x.html#adc2f1379573b7a7b5ee8125ea3752083',1,'SX127x::startTransmit()'],['../class_s_x128x.html#aef221e7d463c5228ce00ed6934512848',1,'SX128x::startTransmit()'],['../class_physical_layer.html#af068e6e862c99e39d0261a7971dd56db',1,'PhysicalLayer::startTransmit(String &str, uint8_t addr=0)'],['../class_physical_layer.html#a923654706eff5118ef6e84214e837f27',1,'PhysicalLayer::startTransmit(const char *str, uint8_t addr=0)'],['../class_physical_layer.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'PhysicalLayer::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_c_c1101.html#af068e6e862c99e39d0261a7971dd56db',1,'CC1101::startTransmit(String &str, uint8_t addr=0)'],['../class_c_c1101.html#a923654706eff5118ef6e84214e837f27',1,'CC1101::startTransmit(const char *str, uint8_t addr=0)'],['../class_c_c1101.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'CC1101::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../classn_r_f24.html#af068e6e862c99e39d0261a7971dd56db',1,'nRF24::startTransmit(String &str, uint8_t addr=0)'],['../classn_r_f24.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'nRF24::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x128x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX128x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x128x.html#a923654706eff5118ef6e84214e837f27',1,'SX128x::startTransmit(const char *str, uint8_t addr=0)'],['../class_s_x128x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX128x::startTransmit(String &str, uint8_t addr=0)'],['../class_s_x127x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX127x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x127x.html#a923654706eff5118ef6e84214e837f27',1,'SX127x::startTransmit(const char *str, uint8_t addr=0)'],['../class_s_x127x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX127x::startTransmit(String &str, uint8_t addr=0)'],['../class_s_x126x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX126x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x126x.html#a923654706eff5118ef6e84214e837f27',1,'SX126x::startTransmit(const char *str, uint8_t addr=0)'],['../class_s_x126x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX126x::startTransmit(String &str, uint8_t addr=0)'],['../class_si443x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'Si443x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_si443x.html#a923654706eff5118ef6e84214e837f27',1,'Si443x::startTransmit(const char *str, uint8_t addr=0)'],['../class_si443x.html#af068e6e862c99e39d0261a7971dd56db',1,'Si443x::startTransmit(String &str, uint8_t addr=0)'],['../class_r_f69.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'RF69::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_r_f69.html#a923654706eff5118ef6e84214e837f27',1,'RF69::startTransmit(const char *str, uint8_t addr=0)'],['../class_r_f69.html#af068e6e862c99e39d0261a7971dd56db',1,'RF69::startTransmit(String &str, uint8_t addr=0)']]], ['status_20codes_342',['Status Codes',['../group__status__codes.html',1,'']]], diff --git a/search/functions_f.js b/search/functions_f.js index 1fcecd31..99f78fff 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -95,9 +95,9 @@ var searchData= ['startchannelscan_641',['startChannelScan',['../class_s_x126x.html#a10a0e75571350fb05fa100e5d5151be2',1,'SX126x::startChannelScan()'],['../class_s_x127x.html#a1d4631691c16d6ecf38815dc4e59a059',1,'SX127x::startChannelScan()']]], ['startdirect_642',['startDirect',['../class_physical_layer.html#a88a10657bd2215a11a2331f937414b55',1,'PhysicalLayer']]], ['startranging_643',['startRanging',['../class_s_x1280.html#a78cebe909fb2776f11f6c50f4f241c10',1,'SX1280']]], - ['startreceive_644',['startReceive',['../class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2',1,'Si443x::startReceive()'],['../class_pager_client.html#ad6f4f034b71311144f76b629a8ef8f8d',1,'PagerClient::startReceive()'],['../class_s_x128x.html#ad59ee052d8ab1f250245a14039fc8b66',1,'SX128x::startReceive()'],['../class_s_x127x.html#adffb96b7f80dc43909bb4cebde68fe9d',1,'SX127x::startReceive()'],['../class_r_f69.html#afae38fa64242043de34096bf497725f1',1,'RF69::startReceive()'],['../classn_r_f24.html#af4f443da5d90e032e5f2f65420515f9c',1,'nRF24::startReceive()'],['../class_s_x126x.html#aeb92dc9d2e2a2b3a3a5ff2856528d497',1,'SX126x::startReceive()'],['../class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3',1,'CC1101::startReceive()']]], - ['startreceivedutycycle_645',['startReceiveDutyCycle',['../class_s_x126x.html#adc46b6adda2d0e82e25ed1fc78274136',1,'SX126x']]], - ['startreceivedutycycleauto_646',['startReceiveDutyCycleAuto',['../class_s_x126x.html#a6b50cb78f02a3d93939437eb48489d3f',1,'SX126x']]], + ['startreceive_644',['startReceive',['../class_si443x.html#a10f886fc534a85bbf8c1aeb9b5ffe4f2',1,'Si443x::startReceive()'],['../class_pager_client.html#ad6f4f034b71311144f76b629a8ef8f8d',1,'PagerClient::startReceive()'],['../class_s_x128x.html#add774469f0bde099082a29068064712c',1,'SX128x::startReceive()'],['../class_s_x127x.html#adffb96b7f80dc43909bb4cebde68fe9d',1,'SX127x::startReceive()'],['../class_r_f69.html#afae38fa64242043de34096bf497725f1',1,'RF69::startReceive()'],['../classn_r_f24.html#af4f443da5d90e032e5f2f65420515f9c',1,'nRF24::startReceive()'],['../class_s_x126x.html#a34057f054d1cd3cce520ddf87b0821d5',1,'SX126x::startReceive()'],['../class_c_c1101.html#af727750d05be0bcef4bb8ac260d110e3',1,'CC1101::startReceive()']]], + ['startreceivedutycycle_645',['startReceiveDutyCycle',['../class_s_x126x.html#a5b4f8a41b593436b8c7a2a2d46ac387e',1,'SX126x']]], + ['startreceivedutycycleauto_646',['startReceiveDutyCycleAuto',['../class_s_x126x.html#a077f180905ce4818cbdacad0cd9fe841',1,'SX126x']]], ['startsignal_647',['startSignal',['../class_morse_client.html#a3c718208786f8fe55f30eee990ec28e3',1,'MorseClient']]], ['starttransmit_648',['startTransmit',['../class_s_x127x.html#a923654706eff5118ef6e84214e837f27',1,'SX127x::startTransmit()'],['../class_r_f69.html#af068e6e862c99e39d0261a7971dd56db',1,'RF69::startTransmit(String &str, uint8_t addr=0)'],['../class_r_f69.html#a923654706eff5118ef6e84214e837f27',1,'RF69::startTransmit(const char *str, uint8_t addr=0)'],['../class_r_f69.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'RF69::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_si443x.html#af068e6e862c99e39d0261a7971dd56db',1,'Si443x::startTransmit(String &str, uint8_t addr=0)'],['../class_si443x.html#a923654706eff5118ef6e84214e837f27',1,'Si443x::startTransmit(const char *str, uint8_t addr=0)'],['../class_si443x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'Si443x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x126x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX126x::startTransmit(String &str, uint8_t addr=0)'],['../class_s_x126x.html#a923654706eff5118ef6e84214e837f27',1,'SX126x::startTransmit(const char *str, uint8_t addr=0)'],['../class_s_x126x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX126x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x127x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX127x::startTransmit(String &str, uint8_t addr=0)'],['../class_s_x127x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX127x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_s_x128x.html#af068e6e862c99e39d0261a7971dd56db',1,'SX128x::startTransmit(String &str, uint8_t addr=0)'],['../class_s_x128x.html#a923654706eff5118ef6e84214e837f27',1,'SX128x::startTransmit(const char *str, uint8_t addr=0)'],['../class_s_x128x.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'SX128x::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_physical_layer.html#a923654706eff5118ef6e84214e837f27',1,'PhysicalLayer::startTransmit()'],['../class_s_x128x.html#aef221e7d463c5228ce00ed6934512848',1,'SX128x::startTransmit()'],['../classn_r_f24.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'nRF24::startTransmit()'],['../class_c_c1101.html#a0df2938e2509a8f2746b20ae0558d4ea',1,'CC1101::startTransmit()'],['../classn_r_f24.html#a42fdc828b49f2b8e15457189bd57d917',1,'nRF24::startTransmit()'],['../class_r_f69.html#a855dc194947b095b821ec1524ba6814c',1,'RF69::startTransmit()'],['../class_si443x.html#a402b4f5f11ba79e9cd4fb6ac0bfd9314',1,'Si443x::startTransmit()'],['../class_s_x126x.html#ab843614658a79db7aa24e48d5b6e84f1',1,'SX126x::startTransmit()'],['../class_s_x127x.html#adc2f1379573b7a7b5ee8125ea3752083',1,'SX127x::startTransmit()'],['../class_physical_layer.html#af068e6e862c99e39d0261a7971dd56db',1,'PhysicalLayer::startTransmit(String &str, uint8_t addr=0)'],['../class_physical_layer.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'PhysicalLayer::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../class_c_c1101.html#af068e6e862c99e39d0261a7971dd56db',1,'CC1101::startTransmit(String &str, uint8_t addr=0)'],['../class_c_c1101.html#a923654706eff5118ef6e84214e837f27',1,'CC1101::startTransmit(const char *str, uint8_t addr=0)'],['../class_c_c1101.html#ad59e37ce0606dc8051e40be9d14cfec3',1,'CC1101::startTransmit(uint8_t *data, size_t len, uint8_t addr=0)'],['../classn_r_f24.html#af068e6e862c99e39d0261a7971dd56db',1,'nRF24::startTransmit(String &str, uint8_t addr=0)'],['../classn_r_f24.html#a923654706eff5118ef6e84214e837f27',1,'nRF24::startTransmit(const char *str, uint8_t addr=0)']]], ['stm32wlx_649',['STM32WLx',['../class_s_t_m32_w_lx.html#ac0e8787dbb8e8aaa172b089ace6eaa09',1,'STM32WLx']]],