From 2c2a594875b49ee29660dcc63fa34057b1f02be1 Mon Sep 17 00:00:00 2001 From: jgromes Date: Mon, 17 Feb 2025 20:20:01 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=206a96d?= =?UTF-8?q?44b2bdee76bd7dbaca09eb24067d02adba1=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _s_x1272_8h_source.html | 120 ++-- _s_x1278_8h_source.html | 124 ++-- class_s_x1272-members.html | 2 +- class_s_x1272.html | 14 +- class_s_x1272.js | 2 +- class_s_x1273-members.html | 2 +- class_s_x1273.html | 6 +- class_s_x1276-members.html | 2 +- class_s_x1276.html | 6 +- class_s_x1277-members.html | 2 +- class_s_x1277.html | 6 +- class_s_x1278-members.html | 2 +- class_s_x1278.html | 14 +- class_s_x1278.js | 2 +- class_s_x1279-members.html | 2 +- class_s_x1279.html | 6 +- coverage/amber.png | Bin 141 -> 0 bytes coverage/emerald.png | Bin 141 -> 0 bytes .../HardwareEmulation.hpp.func-sort-c.html | 84 --- .../include/HardwareEmulation.hpp.func.html | 84 --- .../include/HardwareEmulation.hpp.gcov.html | 147 ----- .../unit/include/TestHal.hpp.func-sort-c.html | 168 ----- .../test/unit/include/TestHal.hpp.func.html | 168 ----- .../test/unit/include/TestHal.hpp.gcov.html | 345 ---------- .../test/unit/include/index-sort-f.html | 103 --- .../test/unit/include/index-sort-l.html | 103 --- coverage/extras/test/unit/include/index.html | 103 --- .../tests/TestModule.cpp.func-sort-c.html | 112 ---- .../test/unit/tests/TestModule.cpp.func.html | 112 ---- .../test/unit/tests/TestModule.cpp.gcov.html | 305 --------- .../extras/test/unit/tests/index-sort-f.html | 93 --- .../extras/test/unit/tests/index-sort-l.html | 93 --- coverage/extras/test/unit/tests/index.html | 93 --- coverage/gcov.css | 519 --------------- coverage/glass.png | Bin 167 -> 0 bytes coverage/index-sort-f.html | 113 ---- coverage/index-sort-l.html | 113 ---- coverage/index.html | 113 ---- coverage/ruby.png | Bin 141 -> 0 bytes coverage/snow.png | Bin 141 -> 0 bytes coverage/src/Hal.cpp.func-sort-c.html | 100 --- coverage/src/Hal.cpp.func.html | 100 --- coverage/src/Hal.cpp.gcov.html | 111 ---- coverage/src/Module.cpp.func-sort-c.html | 164 ----- coverage/src/Module.cpp.func.html | 164 ----- coverage/src/Module.cpp.gcov.html | 616 ------------------ coverage/src/index-sort-f.html | 103 --- coverage/src/index-sort-l.html | 103 --- coverage/src/index.html | 103 --- coverage/updown.png | Bin 117 -> 0 bytes functions_func_s.html | 2 +- functions_s.html | 2 +- navtreeindex3.js | 4 +- search/all_10.js | 2 +- search/functions_f.js | 2 +- 55 files changed, 162 insertions(+), 4697 deletions(-) delete mode 100644 coverage/amber.png delete mode 100644 coverage/emerald.png delete mode 100644 coverage/extras/test/unit/include/HardwareEmulation.hpp.func-sort-c.html delete mode 100644 coverage/extras/test/unit/include/HardwareEmulation.hpp.func.html delete mode 100644 coverage/extras/test/unit/include/HardwareEmulation.hpp.gcov.html delete mode 100644 coverage/extras/test/unit/include/TestHal.hpp.func-sort-c.html delete mode 100644 coverage/extras/test/unit/include/TestHal.hpp.func.html delete mode 100644 coverage/extras/test/unit/include/TestHal.hpp.gcov.html delete mode 100644 coverage/extras/test/unit/include/index-sort-f.html delete mode 100644 coverage/extras/test/unit/include/index-sort-l.html delete mode 100644 coverage/extras/test/unit/include/index.html delete mode 100644 coverage/extras/test/unit/tests/TestModule.cpp.func-sort-c.html delete mode 100644 coverage/extras/test/unit/tests/TestModule.cpp.func.html delete mode 100644 coverage/extras/test/unit/tests/TestModule.cpp.gcov.html delete mode 100644 coverage/extras/test/unit/tests/index-sort-f.html delete mode 100644 coverage/extras/test/unit/tests/index-sort-l.html delete mode 100644 coverage/extras/test/unit/tests/index.html delete mode 100644 coverage/gcov.css delete mode 100644 coverage/glass.png delete mode 100644 coverage/index-sort-f.html delete mode 100644 coverage/index-sort-l.html delete mode 100644 coverage/index.html delete mode 100644 coverage/ruby.png delete mode 100644 coverage/snow.png delete mode 100644 coverage/src/Hal.cpp.func-sort-c.html delete mode 100644 coverage/src/Hal.cpp.func.html delete mode 100644 coverage/src/Hal.cpp.gcov.html delete mode 100644 coverage/src/Module.cpp.func-sort-c.html delete mode 100644 coverage/src/Module.cpp.func.html delete mode 100644 coverage/src/Module.cpp.gcov.html delete mode 100644 coverage/src/index-sort-f.html delete mode 100644 coverage/src/index-sort-l.html delete mode 100644 coverage/src/index.html delete mode 100644 coverage/updown.png diff --git a/_s_x1272_8h_source.html b/_s_x1272_8h_source.html index 84460ac3..3628808c 100644 --- a/_s_x1272_8h_source.html +++ b/_s_x1272_8h_source.html @@ -220,78 +220,78 @@ $(document).ready(function(){initNavTree('_s_x1272_8h_source.html',''); initResi
192
199 int16_t setOutputPower(int8_t power) override;
200
-
207 int16_t setOutputPower(int8_t power, bool useRfo);
-
208
-
216 int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
-
217
-
225 int16_t checkOutputPower(int8_t power, int8_t* clipped, bool useRfo);
-
226
-
233 int16_t setGain(uint8_t gain);
-
234
-
241 int16_t setDataShaping(uint8_t sh) override;
-
242
-
250 int16_t setDataShapingOOK(uint8_t sh);
-
251
-
257 float getRSSI() override;
-
258
-
265 float getRSSI(bool packet, bool skipReceive = false);
-
266
-
275 int16_t setCRC(bool enable, bool mode = false);
-
276
-
283 int16_t forceLDRO(bool enable);
-
284
-
290 int16_t autoLDRO();
-
291
-
297 int16_t implicitHeader(size_t len);
-
298
-
303 int16_t explicitHeader();
-
304
-
311 int16_t setModem(ModemType_t modem) override;
-
312
-
313#if !RADIOLIB_GODMODE
-
314 protected:
-
315#endif
-
316 int16_t setBandwidthRaw(uint8_t newBandwidth);
-
317 int16_t setSpreadingFactorRaw(uint8_t newSpreadingFactor);
-
318 int16_t setCodingRateRaw(uint8_t newCodingRate);
-
319
-
320 int16_t configFSK() override;
-
321 void errataFix(bool rx) override;
-
322
-
323#if !RADIOLIB_GODMODE
-
324 private:
-
325#endif
-
326 bool ldroAuto = true;
-
327 bool ldroEnabled = false;
-
328
-
329};
+
208 int16_t setOutputPower(int8_t power, bool forceRfo);
+
209
+
217 int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
+
218
+
226 int16_t checkOutputPower(int8_t power, int8_t* clipped, bool useRfo);
+
227
+
234 int16_t setGain(uint8_t gain);
+
235
+
242 int16_t setDataShaping(uint8_t sh) override;
+
243
+
251 int16_t setDataShapingOOK(uint8_t sh);
+
252
+
258 float getRSSI() override;
+
259
+
266 float getRSSI(bool packet, bool skipReceive = false);
+
267
+
276 int16_t setCRC(bool enable, bool mode = false);
+
277
+
284 int16_t forceLDRO(bool enable);
+
285
+
291 int16_t autoLDRO();
+
292
+
298 int16_t implicitHeader(size_t len);
+
299
+
304 int16_t explicitHeader();
+
305
+
312 int16_t setModem(ModemType_t modem) override;
+
313
+
314#if !RADIOLIB_GODMODE
+
315 protected:
+
316#endif
+
317 int16_t setBandwidthRaw(uint8_t newBandwidth);
+
318 int16_t setSpreadingFactorRaw(uint8_t newSpreadingFactor);
+
319 int16_t setCodingRateRaw(uint8_t newCodingRate);
+
320
+
321 int16_t configFSK() override;
+
322 void errataFix(bool rx) override;
+
323
+
324#if !RADIOLIB_GODMODE
+
325 private:
+
326#endif
+
327 bool ldroAuto = true;
+
328 bool ldroEnabled = false;
+
329
+
330};
-
330
-
331#endif
-
332
-
333#endif
+
331
+
332#endif
+
333
+
334#endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition Module.h:73
Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic...
Definition SX1272.h:94
void reset() override
Reset method. Will reset the chip to the default state using RST pin.
Definition SX1272.cpp:76
int16_t setBandwidth(float bw)
Sets LoRa link bandwidth. Allowed values are 125, 250 and 500 kHz. Only available in LoRa mode.
Definition SX1272.cpp:96
-
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition SX1272.cpp:317
+
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition SX1272.cpp:318
int16_t checkDataRate(DataRate_t dr) override
Check the data rate can be configured by this module.
Definition SX1272.cpp:255
-
int16_t setModem(ModemType_t modem) override
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition SX1272.cpp:571
-
int16_t setDataShapingOOK(uint8_t sh)
Sets filter cutoff frequency that will be used for data shaping. Allowed values are 1 for frequency e...
Definition SX1272.cpp:405
-
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition SX1272.cpp:476
-
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission. Required for spreading factor 6.
Definition SX1272.cpp:499
-
float getRSSI() override
Gets recorded signal strength indicator. Overload with packet mode enabled for PhysicalLayer compatib...
Definition SX1272.cpp:439
+
int16_t setModem(ModemType_t modem) override
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition SX1272.cpp:572
+
int16_t setDataShapingOOK(uint8_t sh)
Sets filter cutoff frequency that will be used for data shaping. Allowed values are 1 for frequency e...
Definition SX1272.cpp:406
+
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition SX1272.cpp:477
+
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission. Required for spreading factor 6.
Definition SX1272.cpp:500
+
float getRSSI() override
Gets recorded signal strength indicator. Overload with packet mode enabled for PhysicalLayer compatib...
Definition SX1272.cpp:440
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition SX1272.cpp:226
virtual int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa link spreading factor. Allowed values range from 6 to 12. Only available in LoRa mode.
Definition SX1272.cpp:134
int16_t beginFSK(float freq=915.0, float br=4.8, float freqDev=5.0, float rxBw=125.0, int8_t power=10, uint16_t preambleLength=16, bool enableOOK=false)
FSK modem initialization method. Must be called at least once from Arduino sketch to initialize the m...
Definition SX1272.cpp:41
-
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Only available in FSK...
Definition SX1272.cpp:374
+
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Only available in FSK...
Definition SX1272.cpp:375
int16_t setCodingRate(uint8_t cr)
Sets LoRa link coding rate denominator. Allowed values range from 5 to 8. Only available in LoRa mode...
Definition SX1272.cpp:188
int16_t setBitRate(float br) override
Sets FSK bit rate. Allowed values range from 0.5 to 300 kbps. Only available in FSK mode.
Definition SX1272.cpp:222
-
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition SX1272.cpp:490
-
int16_t setCRC(bool enable, bool mode=false)
Enables/disables CRC check of received packets.
Definition SX1272.cpp:447
+
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition SX1272.cpp:491
+
int16_t setCRC(bool enable, bool mode=false)
Enables/disables CRC check of received packets.
Definition SX1272.cpp:448
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values range from 860.0 MHz to 1020.0 MHz.
Definition SX1272.cpp:85
-
int16_t setGain(uint8_t gain)
Sets gain of receiver LNA (low-noise amplifier). Can be set to any integer in range 1 to 6 where 1 is...
Definition SX1272.cpp:337
-
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition SX1272.cpp:504
+
int16_t setGain(uint8_t gain)
Sets gain of receiver LNA (low-noise amplifier). Can be set to any integer in range 1 to 6 where 1 is...
Definition SX1272.cpp:338
+
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition SX1272.cpp:505
virtual int16_t begin(float freq=915.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX127X_SYNC_WORD, int8_t power=10, uint16_t preambleLength=8, uint8_t gain=0)
LoRa modem initialization method. Must be called at least once from Arduino sketch to initialize the ...
Definition SX1272.cpp:9
int16_t setOutputPower(int8_t power) override
Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA...
Definition SX1272.cpp:278
Base class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from thi...
Definition SX127x.h:583
diff --git a/_s_x1278_8h_source.html b/_s_x1278_8h_source.html index bd8e2288..5997f22a 100644 --- a/_s_x1278_8h_source.html +++ b/_s_x1278_8h_source.html @@ -231,82 +231,82 @@ $(document).ready(function(){initNavTree('_s_x1278_8h_source.html',''); initResi
203
210 int16_t setOutputPower(int8_t power) override;
211
-
219 int16_t setOutputPower(int8_t power, bool useRfo);
-
220
-
228 int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
-
229
-
237 int16_t checkOutputPower(int8_t power, int8_t* clipped, bool useRfo);
-
238
-
245 int16_t setGain(uint8_t gain);
-
246
-
253 int16_t setDataShaping(uint8_t sh) override;
-
254
-
262 int16_t setDataShapingOOK(uint8_t sh);
-
263
-
269 float getRSSI() override;
-
270
-
277 float getRSSI(bool packet, bool skipReceive = false);
-
278
-
286 int16_t setCRC(bool enable, bool mode = false);
-
287
-
295 int16_t forceLDRO(bool enable);
-
296
-
302 int16_t autoLDRO();
-
303
-
309 int16_t implicitHeader(size_t len);
-
310
-
315 int16_t explicitHeader();
-
316
-
323 int16_t setModem(ModemType_t modem) override;
-
324
-
325#if !RADIOLIB_GODMODE
-
326 protected:
-
327#endif
-
328 int16_t setBandwidthRaw(uint8_t newBandwidth);
-
329 int16_t setSpreadingFactorRaw(uint8_t newSpreadingFactor);
-
330 int16_t setCodingRateRaw(uint8_t newCodingRate);
-
331
-
332 int16_t configFSK() override;
-
333 void errataFix(bool rx) override;
-
334
-
335#if !RADIOLIB_GODMODE
-
336 private:
-
337#endif
-
338 bool ldroAuto = true;
-
339 bool ldroEnabled = false;
-
340
-
341};
+
220 int16_t setOutputPower(int8_t power, bool forceRfo);
+
221
+
229 int16_t checkOutputPower(int8_t power, int8_t* clipped) override;
+
230
+
238 int16_t checkOutputPower(int8_t power, int8_t* clipped, bool useRfo);
+
239
+
246 int16_t setGain(uint8_t gain);
+
247
+
254 int16_t setDataShaping(uint8_t sh) override;
+
255
+
263 int16_t setDataShapingOOK(uint8_t sh);
+
264
+
270 float getRSSI() override;
+
271
+
278 float getRSSI(bool packet, bool skipReceive = false);
+
279
+
287 int16_t setCRC(bool enable, bool mode = false);
+
288
+
296 int16_t forceLDRO(bool enable);
+
297
+
303 int16_t autoLDRO();
+
304
+
310 int16_t implicitHeader(size_t len);
+
311
+
316 int16_t explicitHeader();
+
317
+
324 int16_t setModem(ModemType_t modem) override;
+
325
+
326#if !RADIOLIB_GODMODE
+
327 protected:
+
328#endif
+
329 int16_t setBandwidthRaw(uint8_t newBandwidth);
+
330 int16_t setSpreadingFactorRaw(uint8_t newSpreadingFactor);
+
331 int16_t setCodingRateRaw(uint8_t newCodingRate);
+
332
+
333 int16_t configFSK() override;
+
334 void errataFix(bool rx) override;
+
335
+
336#if !RADIOLIB_GODMODE
+
337 private:
+
338#endif
+
339 bool ldroAuto = true;
+
340 bool ldroEnabled = false;
+
341
+
342};
-
342
-
347RADIOLIB_TYPE_ALIAS(SX1278, RFM98)
-
348
-
349#endif
-
350
-
351#endif
+
343
+
348RADIOLIB_TYPE_ALIAS(SX1278, RFM98)
+
349
+
350#endif
+
351
+
352#endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition Module.h:73
Only exists as alias for SX1278, since there seems to be no difference between RFM98 and SX1278 modul...
Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279,...
Definition SX1278.h:105
-
float getRSSI() override
Gets recorded signal strength indicator. Overload with packet mode enabled for PhysicalLayer compatib...
Definition SX1278.cpp:473
-
int16_t setDataShapingOOK(uint8_t sh)
Sets filter cutoff frequency that will be used for data shaping. Allowed values are 1 for frequency e...
Definition SX1278.cpp:440
+
float getRSSI() override
Gets recorded signal strength indicator. Overload with packet mode enabled for PhysicalLayer compatib...
Definition SX1278.cpp:474
+
int16_t setDataShapingOOK(uint8_t sh)
Sets filter cutoff frequency that will be used for data shaping. Allowed values are 1 for frequency e...
Definition SX1278.cpp:441
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition SX1278.cpp:240
int16_t setBandwidth(float bw)
Sets LoRa link bandwidth. Allowed values are 7.8, 10.4, 15.6, 20.8, 31.25, 41.7, 62....
Definition SX1278.cpp:96
-
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission. Required for spreading factor 6.
Definition SX1278.cpp:537
-
int16_t setModem(ModemType_t modem) override
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition SX1278.cpp:691
+
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission. Required for spreading factor 6.
Definition SX1278.cpp:538
+
int16_t setModem(ModemType_t modem) override
Set modem for the radio to use. Will perform full reset and reconfigure the radio using its default p...
Definition SX1278.cpp:692
int16_t setOutputPower(int8_t power) override
Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA...
Definition SX1278.cpp:292
void reset() override
Reset method. Will reset the chip to the default state using RST pin.
Definition SX1278.cpp:76
-
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition SX1278.cpp:514
-
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition SX1278.cpp:542
+
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition SX1278.cpp:515
+
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition SX1278.cpp:543
int16_t checkDataRate(DataRate_t dr) override
Check the data rate can be configured by this module.
Definition SX1278.cpp:269
int16_t setCodingRate(uint8_t cr)
Sets LoRa link coding rate denominator. Allowed values range from 5 to 8. Only available in LoRa mode...
Definition SX1278.cpp:202
virtual int16_t beginFSK(float freq=434.0, float br=4.8, float freqDev=5.0, float rxBw=125.0, int8_t power=10, uint16_t preambleLength=16, bool enableOOK=false)
FSK modem initialization method. Must be called at least once from Arduino sketch to initialize the m...
Definition SX1278.cpp:41
virtual int16_t begin(float freq=434.0, float bw=125.0, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX127X_SYNC_WORD, int8_t power=10, uint16_t preambleLength=8, uint8_t gain=0)
LoRa modem initialization method. Must be called at least once from Arduino sketch to initialize the ...
Definition SX1278.cpp:9
-
int16_t setGain(uint8_t gain)
Sets gain of receiver LNA (low-noise amplifier). Can be set to any integer in range 1 to 6 where 1 is...
Definition SX1278.cpp:366
-
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition SX1278.cpp:338
-
int16_t setCRC(bool enable, bool mode=false)
Enables/disables CRC check of received packets.
Definition SX1278.cpp:485
+
int16_t setGain(uint8_t gain)
Sets gain of receiver LNA (low-noise amplifier). Can be set to any integer in range 1 to 6 where 1 is...
Definition SX1278.cpp:367
+
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition SX1278.cpp:339
+
int16_t setCRC(bool enable, bool mode=false)
Enables/disables CRC check of received packets.
Definition SX1278.cpp:486
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values range from 137.0 MHz to 525.0 MHz.
Definition SX1278.cpp:85
-
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition SX1278.cpp:528
+
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition SX1278.cpp:529
virtual int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa link spreading factor. Allowed values range from 6 to 12. Only available in LoRa mode.
Definition SX1278.cpp:148
-
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Only available in FSK...
Definition SX1278.cpp:404
+
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Only available in FSK...
Definition SX1278.cpp:405
int16_t setBitRate(float br) override
Sets FSK bit rate. Allowed values range from 0.5 to 300 kbps. Only available in FSK mode.
Definition SX1278.cpp:236
Base class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from thi...
Definition SX127x.h:583
Common data rate structure.
Definition PhysicalLayer.h:74
diff --git a/class_s_x1272-members.html b/class_s_x1272-members.html index 6fb1a53e..9d266f1c 100644 --- a/class_s_x1272-members.html +++ b/class_s_x1272-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1272.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1272virtual - setOutputPower(int8_t power, bool useRfo)SX1272 + setOutputPower(int8_t power, bool forceRfo)SX1272 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1272.html b/class_s_x1272.html index 84e976a1..43dd4009 100644 --- a/class_s_x1272.html +++ b/class_s_x1272.html @@ -151,9 +151,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin).
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin).
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  @@ -1448,8 +1448,8 @@ size_t maxPacketLength - -

◆ setOutputPower() [2/2]

+ +

◆ setOutputPower() [2/2]

@@ -1464,7 +1464,7 @@ size_t maxPacketLength bool  - useRfo  + forceRfo  @@ -1478,7 +1478,7 @@ size_t maxPacketLength
Parameters
- +
powerTransmission output power in dBm.
useRfoWhether to use the RFO (true) or the PA_BOOST (false) pin for the RF output.
forceRfoWhether to force using the RFO pin for the RF output (true) or the lave the selection up to user (false) based on power output.
diff --git a/class_s_x1272.js b/class_s_x1272.js index 3f900e93..7a92073f 100644 --- a/class_s_x1272.js +++ b/class_s_x1272.js @@ -24,6 +24,6 @@ var class_s_x1272 = [ "setGain", "class_s_x1272.html#ae1c57ad5e8496dc28cd3ba9852809852", null ], [ "setModem", "class_s_x1272.html#a2c99afea2bb3bbb1146c8a4536b4843c", null ], [ "setOutputPower", "class_s_x1272.html#aec51f08c0902145ff5f11e27e7cab638", null ], - [ "setOutputPower", "class_s_x1272.html#a03f7073d710f18aad79b7d46f2fda659", null ], + [ "setOutputPower", "class_s_x1272.html#aac001c32a61d4eec0a49c472cac9ebc6", null ], [ "setSpreadingFactor", "class_s_x1272.html#a82084ac58502c83d2ada998410307490", null ] ]; \ No newline at end of file diff --git a/class_s_x1273-members.html b/class_s_x1273-members.html index 59e1c29b..9ea09739 100644 --- a/class_s_x1273-members.html +++ b/class_s_x1273-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1273.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1272virtual - setOutputPower(int8_t power, bool useRfo)SX1272 + setOutputPower(int8_t power, bool forceRfo)SX1272 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1273.html b/class_s_x1273.html index 3e36228c..8f99feba 100644 --- a/class_s_x1273.html +++ b/class_s_x1273.html @@ -158,9 +158,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin).
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -1 to 14 dBm (RFO pin) or +2 to +20 dBm (PA_BOOST pin).
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  diff --git a/class_s_x1276-members.html b/class_s_x1276-members.html index 56b3733c..31430e2c 100644 --- a/class_s_x1276-members.html +++ b/class_s_x1276-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1276.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1278virtual - setOutputPower(int8_t power, bool useRfo)SX1278 + setOutputPower(int8_t power, bool forceRfo)SX1278 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1276.html b/class_s_x1276.html index 3a1c644e..f61b04d6 100644 --- a/class_s_x1276.html +++ b/class_s_x1276.html @@ -161,9 +161,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  diff --git a/class_s_x1277-members.html b/class_s_x1277-members.html index c3429cb9..f0674cda 100644 --- a/class_s_x1277-members.html +++ b/class_s_x1277-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1277.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1278virtual - setOutputPower(int8_t power, bool useRfo)SX1278 + setOutputPower(int8_t power, bool forceRfo)SX1278 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1277.html b/class_s_x1277.html index 6ca9a54d..9c4e75a8 100644 --- a/class_s_x1277.html +++ b/class_s_x1277.html @@ -167,9 +167,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  diff --git a/class_s_x1278-members.html b/class_s_x1278-members.html index 1e1c1622..90f29ce6 100644 --- a/class_s_x1278-members.html +++ b/class_s_x1278-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1278.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1278virtual - setOutputPower(int8_t power, bool useRfo)SX1278 + setOutputPower(int8_t power, bool forceRfo)SX1278 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1278.html b/class_s_x1278.html index c4cc7dc1..38f33a15 100644 --- a/class_s_x1278.html +++ b/class_s_x1278.html @@ -153,9 +153,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  @@ -1458,8 +1458,8 @@ size_t maxPacketLength
- -

◆ setOutputPower() [2/2]

+ +

◆ setOutputPower() [2/2]

@@ -1474,7 +1474,7 @@ size_t maxPacketLength bool  - useRfo  + forceRfo  @@ -1488,7 +1488,7 @@ size_t maxPacketLength
Parameters
- +
powerTransmission output power in dBm.
useRfoWhether to use the RFO (true) or the PA_BOOST (false) pin for the RF output.
forceRfoWhether to force using the RFO pin for the RF output (true) or the lave the selection up to user (false) based on power output.
diff --git a/class_s_x1278.js b/class_s_x1278.js index 1008275d..702500c5 100644 --- a/class_s_x1278.js +++ b/class_s_x1278.js @@ -24,6 +24,6 @@ var class_s_x1278 = [ "setGain", "class_s_x1278.html#aa57b713988cfa224a6db2ff325052931", null ], [ "setModem", "class_s_x1278.html#a609dd3faf2036e8c2d046fd191e0137d", null ], [ "setOutputPower", "class_s_x1278.html#a69abc18e7fa0055e6b80024e8cde7db4", null ], - [ "setOutputPower", "class_s_x1278.html#aca58a6c2e8fcef6414fdf3bc1eb62082", null ], + [ "setOutputPower", "class_s_x1278.html#ab206a23ac93f5687ba5f6741fa690130", null ], [ "setSpreadingFactor", "class_s_x1278.html#af70c22fe38bc3b944070ccbc083fed08", null ] ]; \ No newline at end of file diff --git a/class_s_x1279-members.html b/class_s_x1279-members.html index 1f84e389..8b99bc7d 100644 --- a/class_s_x1279-members.html +++ b/class_s_x1279-members.html @@ -206,7 +206,7 @@ $(document).ready(function(){initNavTree('class_s_x1279.html',''); initResizable setOokPeakThresholdStep(uint8_t value)SX127x setOokThresholdType(uint8_t type)SX127x setOutputPower(int8_t power) overrideSX1278virtual - setOutputPower(int8_t power, bool useRfo)SX1278 + setOutputPower(int8_t power, bool forceRfo)SX1278 setPacketReceivedAction(void(*func)(void)) overrideSX127xvirtual setPacketSentAction(void(*func)(void)) overrideSX127xvirtual setPreambleLength(size_t preambleLength) overrideSX127xvirtual diff --git a/class_s_x1279.html b/class_s_x1279.html index 79852397..4310f154 100644 --- a/class_s_x1279.html +++ b/class_s_x1279.html @@ -158,9 +158,9 @@ Public Member Functions int16_t setOutputPower (int8_t power) override  Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin. Defaults to PA_BOOST.
  -int16_t setOutputPower (int8_t power, bool useRfo) - Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
-  +int16_t setOutputPower (int8_t power, bool forceRfo) + Sets transmission output power. Allowed values range from -4 to 15 dBm (RFO pin) or +2 to +17 dBm (PA_BOOST pin). High power +20 dBm operation is also supported, on the PA_BOOST pin.
+  int16_t checkOutputPower (int8_t power, int8_t *clipped) override  Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::checkOutputPower.
  diff --git a/coverage/amber.png b/coverage/amber.png deleted file mode 100644 index 2cab170d8359081983a4e343848dfe06bc490f12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^G2tW}LqE04T&+ z;1OBOz`!j8!i<;h*8KqrvZOouIx;Y9?C1WI$O`1M1^9%x{(levWG?NMQuI!iC1^Jb!lvI6;R0X`wF(yt=9xVZRt1vCRixIA4P dLn>}1Cji+@42)0J?}79&c)I$ztaD0e0sy@GAL0N2 diff --git a/coverage/extras/test/unit/include/HardwareEmulation.hpp.func-sort-c.html b/coverage/extras/test/unit/include/HardwareEmulation.hpp.func-sort-c.html deleted file mode 100644 index ede30650..00000000 --- a/coverage/extras/test/unit/include/HardwareEmulation.hpp.func-sort-c.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/HardwareEmulation.hpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - HardwareEmulation.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:1414100.0 %
Date:2025-02-17 17:37:38Functions:33100.0 %
-
- -
- - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN13EmulatedRadio7connectEP13EmulatedPin_tS1_S1_S1_4
_ZN13EmulatedRadio10HandleGPIOEv2932
_ZN13EmulatedRadio9HandleSPIEh4192
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/HardwareEmulation.hpp.func.html b/coverage/extras/test/unit/include/HardwareEmulation.hpp.func.html deleted file mode 100644 index 82bbbb91..00000000 --- a/coverage/extras/test/unit/include/HardwareEmulation.hpp.func.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/HardwareEmulation.hpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - HardwareEmulation.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:1414100.0 %
Date:2025-02-17 17:37:38Functions:33100.0 %
-
- -
- - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN13EmulatedRadio10HandleGPIOEv2932
_ZN13EmulatedRadio7connectEP13EmulatedPin_tS1_S1_S1_4
_ZN13EmulatedRadio9HandleSPIEh4192
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/HardwareEmulation.hpp.gcov.html b/coverage/extras/test/unit/include/HardwareEmulation.hpp.gcov.html deleted file mode 100644 index 48c9a6e3..00000000 --- a/coverage/extras/test/unit/include/HardwareEmulation.hpp.gcov.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/HardwareEmulation.hpp - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - HardwareEmulation.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:1414100.0 %
Date:2025-02-17 17:37:38Functions:33100.0 %
-
- - - - - - - - -

-
          Line data    Source code
-
-       1             : #ifndef HARDWARE_EMULATION_HPP
-       2             : #define HARDWARE_EMULATION_HPP
-       3             : 
-       4             : #include <stdint.h>
-       5             : 
-       6             : // value that is returned by the emualted radio class when performing SPI transfer to it
-       7             : #define EMULATED_RADIO_SPI_RETURN (0xFF)
-       8             : 
-       9             : // pin indexes
-      10             : #define EMULATED_RADIO_NSS_PIN    (1)
-      11             : #define EMULATED_RADIO_IRQ_PIN    (2)
-      12             : #define EMULATED_RADIO_RST_PIN    (3)
-      13             : #define EMULATED_RADIO_GPIO_PIN   (4)
-      14             : 
-      15             : enum PinFunction_t {
-      16             :   PIN_UNASSIGNED = 0,
-      17             :   PIN_CS,
-      18             :   PIN_IRQ,
-      19             :   PIN_RST,
-      20             :   PIN_GPIO,
-      21             : };
-      22             : 
-      23             : // structure for emulating GPIO pins
-      24             : struct EmulatedPin_t {
-      25             :   uint32_t mode;
-      26             :   uint32_t value;
-      27             :   bool event;
-      28             :   PinFunction_t func; 
-      29             : };
-      30             : 
-      31             : // structure for emulating SPI registers
-      32             : struct EmulatedRegister_t {
-      33             :   uint8_t value;
-      34             :   uint8_t readOnlyBitFlags;
-      35             :   bool bufferAccess;
-      36             : };
-      37             : 
-      38             : // base class for emulated radio modules (SX126x etc.)
-      39             : class EmulatedRadio {
-      40             :   public:
-      41           4 :     void connect(EmulatedPin_t* csPin, EmulatedPin_t* irqPin, EmulatedPin_t* rstPin, EmulatedPin_t* gpioPin) {
-      42           4 :       this->cs = csPin;
-      43           4 :       this->cs->func = PIN_CS;
-      44           4 :       this->irq = irqPin;
-      45           4 :       this->irq->func = PIN_IRQ;
-      46           4 :       this->rst = rstPin;
-      47           4 :       this->rst->func = PIN_RST;
-      48           4 :       this->gpio = gpioPin;
-      49           4 :       this->gpio->func = PIN_GPIO;
-      50           4 :     }
-      51             : 
-      52        4192 :     virtual uint8_t HandleSPI(uint8_t b) {
-      53             :       (void)b;
-      54             :       // handle the SPI input and generate output here
-      55        4192 :       return(EMULATED_RADIO_SPI_RETURN);
-      56             :     }
-      57             : 
-      58        2932 :     virtual void HandleGPIO() {
-      59             :       // handle discrete GPIO signals here (e.g. reset state machine on NSS falling edge)
-      60        2932 :     }
-      61             :   
-      62             :   protected:
-      63             :     // pointers to emulated GPIO pins
-      64             :     // this is done via pointers so that the same GPIO entity is shared, like with a real hardware
-      65             :     EmulatedPin_t* cs;
-      66             :     EmulatedPin_t* irq;
-      67             :     EmulatedPin_t* rst;
-      68             :     EmulatedPin_t* gpio;
-      69             : };
-      70             : 
-      71             : #endif
-
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/TestHal.hpp.func-sort-c.html b/coverage/extras/test/unit/include/TestHal.hpp.func-sort-c.html deleted file mode 100644 index 0b7fa246..00000000 --- a/coverage/extras/test/unit/include/TestHal.hpp.func-sort-c.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/TestHal.hpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - TestHal.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:699175.8 %
Date:2025-02-17 17:37:38Functions:152462.5 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN7TestHal15attachInterruptEjPFvvEj0
_ZN7TestHal15detachInterruptEj0
_ZN7TestHal4toneEjjm0
_ZN7TestHal5delayEm0
_ZN7TestHal5yieldEv0
_ZN7TestHal6noToneEj0
_ZN7TestHal6spiEndEv0
_ZN7TestHal7pulseInEjjm0
_ZN7TestHal8spiBeginEv0
_ZN7TestHal12connectRadioEP13EmulatedRadio4
_ZN7TestHal4initEv4
_ZN7TestHal4termEv4
_ZN7TestHal7pinModeEjj4
_ZN7TestHalC2Ev4
_ZN7TestHal12spiLogMemcmpEPKvm12
_ZN7TestHal10spiLogWipeEv16
_ZN7TestHal11digitalReadEj846
_ZN7TestHal6millisEv846
_ZN7TestHal6microsEv1462
_ZN7TestHal11spiTransferEPhmS0_1464
_ZN7TestHal17spiEndTransactionEv1464
_ZN7TestHal19spiBeginTransactionEv1464
_ZN7TestHal12digitalWriteEjj2932
_ZN7TestHal17delayMicrosecondsEm4615
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/TestHal.hpp.func.html b/coverage/extras/test/unit/include/TestHal.hpp.func.html deleted file mode 100644 index 278a15a6..00000000 --- a/coverage/extras/test/unit/include/TestHal.hpp.func.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/TestHal.hpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - TestHal.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:699175.8 %
Date:2025-02-17 17:37:38Functions:152462.5 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN7TestHal10spiLogWipeEv16
_ZN7TestHal11digitalReadEj846
_ZN7TestHal11spiTransferEPhmS0_1464
_ZN7TestHal12connectRadioEP13EmulatedRadio4
_ZN7TestHal12digitalWriteEjj2932
_ZN7TestHal12spiLogMemcmpEPKvm12
_ZN7TestHal15attachInterruptEjPFvvEj0
_ZN7TestHal15detachInterruptEj0
_ZN7TestHal17delayMicrosecondsEm4615
_ZN7TestHal17spiEndTransactionEv1464
_ZN7TestHal19spiBeginTransactionEv1464
_ZN7TestHal4initEv4
_ZN7TestHal4termEv4
_ZN7TestHal4toneEjjm0
_ZN7TestHal5delayEm0
_ZN7TestHal5yieldEv0
_ZN7TestHal6microsEv1462
_ZN7TestHal6millisEv846
_ZN7TestHal6noToneEj0
_ZN7TestHal6spiEndEv0
_ZN7TestHal7pinModeEjj4
_ZN7TestHal7pulseInEjjm0
_ZN7TestHal8spiBeginEv0
_ZN7TestHalC2Ev4
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/TestHal.hpp.gcov.html b/coverage/extras/test/unit/include/TestHal.hpp.gcov.html deleted file mode 100644 index 25553d53..00000000 --- a/coverage/extras/test/unit/include/TestHal.hpp.gcov.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include/TestHal.hpp - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/include - TestHal.hpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:699175.8 %
Date:2025-02-17 17:37:38Functions:152462.5 %
-
- - - - - - - - -

-
          Line data    Source code
-
-       1             : #ifndef TEST_HAL_HPP
-       2             : #define TEST_HAL_HPP
-       3             : 
-       4             : #include <chrono>
-       5             : #include <thread>
-       6             : #include <fmt/format.h>
-       7             : 
-       8             : #include <RadioLib.h>
-       9             : 
-      10             : #include <boost/log/trivial.hpp>
-      11             : #include <boost/format.hpp>
-      12             : 
-      13             : #if defined(TEST_HAL_LOG)
-      14             : #define HAL_LOG(...) BOOST_TEST_MESSAGE(__VA_ARGS__)
-      15             : #else
-      16             : #define HAL_LOG(...) {}
-      17             : #endif
-      18             : 
-      19             : #include "HardwareEmulation.hpp"
-      20             : 
-      21             : #define TEST_HAL_INPUT          (0)
-      22             : #define TEST_HAL_OUTPUT         (1)
-      23             : #define TEST_HAL_LOW            (0)
-      24             : #define TEST_HAL_HIGH           (1)
-      25             : #define TEST_HAL_RISING         (0)
-      26             : #define TEST_HAL_FALLING        (1)
-      27             : 
-      28             : // number of emulated GPIO pins
-      29             : #define TEST_HAL_NUM_GPIO_PINS  (32)
-      30             : 
-      31             : #define TEST_HAL_SPI_LOG_LENGTH (512)
-      32             : 
-      33             : class TestHal : public RadioLibHal {
-      34             :   public:
-      35           4 :     TestHal() : RadioLibHal(TEST_HAL_INPUT, TEST_HAL_OUTPUT, TEST_HAL_LOW, TEST_HAL_HIGH, TEST_HAL_RISING, TEST_HAL_FALLING) { }
-      36             : 
-      37           4 :     void init() override {
-      38             :       HAL_LOG("TestHal::init()");
-      39             : 
-      40             :       // save program start timestamp
-      41           4 :       start = std::chrono::high_resolution_clock::now();
-      42             : 
-      43             :       // init emulated GPIO
-      44         132 :       for(int i = 0; i < TEST_HAL_NUM_GPIO_PINS; i++) {
-      45         128 :         this->gpio[i].mode = 0;
-      46         128 :         this->gpio[i].value = 0;
-      47         128 :         this->gpio[i].event = false;
-      48         128 :         this->gpio[i].func = PIN_UNASSIGNED;
-      49             :       }
-      50             : 
-      51             :       // wipe history log
-      52           4 :       this->spiLogWipe();
-      53           4 :     }
-      54             : 
-      55           4 :     void term() override {
-      56             :       HAL_LOG("TestHal::term()");
-      57           4 :     }
-      58             : 
-      59           4 :     void pinMode(uint32_t pin, uint32_t mode) override {
-      60             :       HAL_LOG("TestHal::pinMode(pin=" << pin << ", mode=" << mode << " [" << ((mode == TEST_HAL_INPUT) ? "INPUT" : "OUTPUT") << "])");
-      61             :       
-      62             :       // check the range
-      63           4 :       BOOST_ASSERT_MSG(pin < TEST_HAL_NUM_GPIO_PINS, "Pin number out of range");
-      64             : 
-      65             :       // check known modes
-      66           4 :       BOOST_ASSERT_MSG(((mode == TEST_HAL_INPUT) || (mode == TEST_HAL_OUTPUT)), "Invalid pin mode");
-      67             : 
-      68             :       // set mode
-      69           4 :       this->gpio[pin].mode = mode;
-      70           4 :     }
-      71             : 
-      72        2932 :     void digitalWrite(uint32_t pin, uint32_t value) override {
-      73             :       HAL_LOG("TestHal::digitalWrite(pin=" << pin << ", value=" << value << " [" << ((value == TEST_HAL_LOW) ? "LOW" : "HIGH") << "])");
-      74             : 
-      75             :       // check the range
-      76        2932 :       BOOST_ASSERT_MSG(pin < TEST_HAL_NUM_GPIO_PINS, "Pin number out of range");
-      77             : 
-      78             :       // check it is output
-      79        2932 :       BOOST_ASSERT_MSG(this->gpio[pin].mode == TEST_HAL_OUTPUT, "GPIO is not output!");
-      80             : 
-      81             :       // check known values
-      82        2932 :       BOOST_ASSERT_MSG(((value == TEST_HAL_LOW) || (value == TEST_HAL_HIGH)), "Invalid output value");
-      83             : 
-      84             :       // set value
-      85        2932 :       this->gpio[pin].value = value;
-      86        2932 :       this->gpio[pin].event = true;
-      87        2932 :       if(radio) {
-      88        2932 :         this->radio->HandleGPIO();
-      89             :       }
-      90        2932 :       this->gpio[pin].event = false;
-      91        2932 :     }
-      92             : 
-      93         846 :     uint32_t digitalRead(uint32_t pin) override {
-      94             :       HAL_LOG("TestHal::digitalRead(pin=" << pin << ")");
-      95             : 
-      96             :       // check the range
-      97         846 :       BOOST_ASSERT_MSG(pin < TEST_HAL_NUM_GPIO_PINS, "Pin number out of range");
-      98             : 
-      99             :       // check it is input
-     100         846 :       BOOST_ASSERT_MSG(this->gpio[pin].mode == TEST_HAL_INPUT, "GPIO is not input");
-     101             : 
-     102             :       // read the value
-     103         846 :       uint32_t value = this->gpio[pin].value;
-     104             :       HAL_LOG("TestHal::digitalRead(pin=" << pin << ")=" << value << " [" << ((value == TEST_HAL_LOW) ? "LOW" : "HIGH") << "]");
-     105         846 :       return(value);
-     106             :     }
-     107             : 
-     108           0 :     void attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) override {
-     109             :       HAL_LOG("TestHal::attachInterrupt(interruptNum=" << interruptNum << ", interruptCb=" << interruptCb << ", mode=" << mode << ")");
-     110             : 
-     111             :       // TODO implement
-     112             :       (void)interruptNum;
-     113             :       (void)interruptCb;
-     114             :       (void)mode;
-     115           0 :     }
-     116             : 
-     117           0 :     void detachInterrupt(uint32_t interruptNum) override {
-     118             :       HAL_LOG("TestHal::detachInterrupt(interruptNum=" << interruptNum << ")");
-     119             : 
-     120             :       // TODO implement
-     121             :       (void)interruptNum;
-     122           0 :     }
-     123             : 
-     124           0 :     void delay(unsigned long ms) override {
-     125             :       HAL_LOG("TestHal::delay(ms=" << ms << ")");
-     126           0 :       const auto start = std::chrono::high_resolution_clock::now();
-     127             : 
-     128             :       // sleep_for is sufficient for ms-precision sleep
-     129           0 :       std::this_thread::sleep_for(std::chrono::duration<unsigned long, std::milli>(ms));
-     130             : 
-     131             :       // measure and print
-     132           0 :       const auto end = std::chrono::high_resolution_clock::now();
-     133           0 :       const std::chrono::duration<double, std::milli> elapsed = end - start;
-     134             :       HAL_LOG("TestHal::delay(ms=" << ms << ")=" << elapsed.count() << "ms");
-     135           0 :     }
-     136             : 
-     137        4615 :     void delayMicroseconds(unsigned long us) override {
-     138             :       HAL_LOG("TestHal::delayMicroseconds(us=" << us << ")");
-     139        4615 :       const auto start = std::chrono::high_resolution_clock::now();
-     140             : 
-     141             :       // busy wait is needed for microseconds precision
-     142        4615 :       const auto len = std::chrono::microseconds(us);
-     143     6689860 :       while(std::chrono::high_resolution_clock::now() - start < len);
-     144             : 
-     145             :       // measure and print
-     146        4615 :       const auto end = std::chrono::high_resolution_clock::now();
-     147        4615 :       const std::chrono::duration<double, std::micro> elapsed = end - start;
-     148             :       HAL_LOG("TestHal::delayMicroseconds(us=" << us << ")=" << elapsed.count() << "us");
-     149        4615 :     }
-     150             : 
-     151           0 :     void yield() override {
-     152             :       HAL_LOG("TestHal::yield()");
-     153           0 :     }
-     154             : 
-     155         846 :     unsigned long millis() override {
-     156             :       HAL_LOG("TestHal::millis()");
-     157         846 :       std::chrono::time_point now = std::chrono::high_resolution_clock::now();
-     158         846 :       auto res = std::chrono::duration_cast<std::chrono::milliseconds>(now - this->start);
-     159             :       HAL_LOG("TestHal::millis()=" << res.count());
-     160         846 :       return(res.count());
-     161             :     }
-     162             : 
-     163        1462 :     unsigned long micros() override {
-     164             :       HAL_LOG("TestHal::micros()");
-     165        1462 :       std::chrono::time_point now = std::chrono::high_resolution_clock::now();
-     166        1462 :       auto res = std::chrono::duration_cast<std::chrono::microseconds>(now - this->start);
-     167             :       HAL_LOG("TestHal::micros()=" << res.count());
-     168        1462 :       return(res.count());
-     169             :     }
-     170             : 
-     171           0 :     long pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) override {
-     172             :       HAL_LOG("TestHal::pulseIn(pin=" << pin << ", state=" << state << ", timeout=" << timeout << ")");
-     173             : 
-     174             :       // TODO implement
-     175             :       (void)pin;
-     176             :       (void)state;
-     177             :       (void)timeout;
-     178           0 :       return(0);
-     179             :     }
-     180             : 
-     181           0 :     void spiBegin() {
-     182             :       HAL_LOG("TestHal::spiBegin()");
-     183           0 :     }
-     184             : 
-     185        1464 :     void spiBeginTransaction() {
-     186             :       HAL_LOG("TestHal::spiBeginTransaction()");
-     187        1464 :     }
-     188             : 
-     189        1464 :     void spiTransfer(uint8_t* out, size_t len, uint8_t* in) {
-     190             :       HAL_LOG("TestHal::spiTransfer(len=" << len << ")");
-     191             :       
-     192        5656 :       for(size_t i = 0; i < len; i++) {
-     193             :         // append to log
-     194        4192 :         (*this->spiLogPtr++) = out[i];
-     195             : 
-     196             :         // process the SPI byte
-     197        4192 :         in[i] = this->radio->HandleSPI(out[i]);
-     198             : 
-     199             :         // artificial delay to emulate SPI running at a finite speed
-     200             :         // this is added because timeouts are based on time duration,
-     201             :         // so we need to make sure some time actually elapses
-     202        4192 :         this->delayMicroseconds(100);
-     203             : 
-     204             :         // output debug
-     205             :         HAL_LOG(fmt::format("out={:#02x}, in={:#02x}", out[i], in[i]));
-     206             :       }
-     207        1464 :     }
-     208             : 
-     209        1464 :     void spiEndTransaction() {
-     210             :       HAL_LOG("TestHal::spiEndTransaction()");
-     211        1464 :     }
-     212             : 
-     213           0 :     void spiEnd() {
-     214             :       HAL_LOG("TestHal::spiEnd()");
-     215           0 :     }
-     216             : 
-     217           0 :     void tone(uint32_t pin, unsigned int frequency, unsigned long duration = 0) {
-     218             :       HAL_LOG("TestHal::tone(pin=" << pin << ", frequency=" << frequency << ", duration=" << duration << ")");
-     219             : 
-     220             :       // TODO implement
-     221             :       (void)pin;
-     222             :       (void)frequency;
-     223             :       (void)duration;
-     224           0 :     }
-     225             : 
-     226           0 :     void noTone(uint32_t pin) {
-     227             :       HAL_LOG("TestHal::noTone(pin=" << pin << ")");
-     228             : 
-     229             :       // TODO implement
-     230             :       (void)pin;
-     231           0 :     }
-     232             : 
-     233             :     // method to compare buffer to the internal SPI log, for verifying SPI transactions
-     234          12 :     int spiLogMemcmp(const void* in, size_t n) {
-     235          12 :       int ret = memcmp(this->spiLog, in, n);
-     236          12 :       this->spiLogWipe();
-     237          12 :       return(ret);
-     238             :     }
-     239             : 
-     240          16 :     void spiLogWipe() {
-     241          16 :       memset(this->spiLog, 0x00, TEST_HAL_SPI_LOG_LENGTH);
-     242          16 :       this->spiLogPtr = this->spiLog;
-     243          16 :     }
-     244             : 
-     245             :     // method that "connects" the emualted radio hardware to this HAL
-     246           4 :     void connectRadio(EmulatedRadio* r) {
-     247           4 :       this->radio = r;
-     248           4 :       this->radio->connect(&this->gpio[EMULATED_RADIO_NSS_PIN],
-     249             :                            &this->gpio[EMULATED_RADIO_IRQ_PIN],
-     250             :                            &this->gpio[EMULATED_RADIO_RST_PIN],
-     251             :                            &this->gpio[EMULATED_RADIO_GPIO_PIN]);
-     252           4 :     }
-     253             : 
-     254             :   private:
-     255             :     // array of emulated GPIO pins
-     256             :     EmulatedPin_t gpio[TEST_HAL_NUM_GPIO_PINS];
-     257             : 
-     258             :     // start time point
-     259             :     std::chrono::time_point<std::chrono::high_resolution_clock> start;
-     260             : 
-     261             :     // emulated radio hardware
-     262             :     EmulatedRadio* radio;
-     263             : 
-     264             :     // SPI history log
-     265             :     uint8_t spiLog[TEST_HAL_SPI_LOG_LENGTH];
-     266             :     uint8_t* spiLogPtr;
-     267             : };
-     268             : 
-     269             : #endif
-
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/index-sort-f.html b/coverage/extras/test/unit/include/index-sort-f.html deleted file mode 100644 index acfa066d..00000000 --- a/coverage/extras/test/unit/include/index-sort-f.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/includeHitTotalCoverage
Test:lcov.infoLines:8310579.0 %
Date:2025-02-17 17:37:38Functions:182766.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
TestHal.hpp -
75.8%75.8%
-
75.8 %69 / 9162.5 %15 / 24
HardwareEmulation.hpp -
100.0%
-
100.0 %14 / 14100.0 %3 / 3
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/index-sort-l.html b/coverage/extras/test/unit/include/index-sort-l.html deleted file mode 100644 index 98749865..00000000 --- a/coverage/extras/test/unit/include/index-sort-l.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/includeHitTotalCoverage
Test:lcov.infoLines:8310579.0 %
Date:2025-02-17 17:37:38Functions:182766.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
TestHal.hpp -
75.8%75.8%
-
75.8 %69 / 9162.5 %15 / 24
HardwareEmulation.hpp -
100.0%
-
100.0 %14 / 14100.0 %3 / 3
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/include/index.html b/coverage/extras/test/unit/include/index.html deleted file mode 100644 index a73876ba..00000000 --- a/coverage/extras/test/unit/include/index.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/include - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/includeHitTotalCoverage
Test:lcov.infoLines:8310579.0 %
Date:2025-02-17 17:37:38Functions:182766.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
HardwareEmulation.hpp -
100.0%
-
100.0 %14 / 14100.0 %3 / 3
TestHal.hpp -
75.8%75.8%
-
75.8 %69 / 9162.5 %15 / 24
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/TestModule.cpp.func-sort-c.html b/coverage/extras/test/unit/tests/TestModule.cpp.func-sort-c.html deleted file mode 100644 index 51f82f80..00000000 --- a/coverage/extras/test/unit/tests/TestModule.cpp.func-sort-c.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests/TestModule.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/tests - TestModule.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN12suite_Module25Module_SPIgetRegValue_reg11test_methodEv1
_ZN12suite_Module25Module_SPIsetRegValue_reg11test_methodEv1
_ZN12suite_Module28Module_SPIgetRegValue_stream11test_methodEv1
_ZN12suite_Module28Module_SPIsetRegValue_stream11test_methodEv1
_ZN12suite_ModuleL33Module_SPIgetRegValue_reg_invokerEv1
_ZN12suite_ModuleL33Module_SPIsetRegValue_reg_invokerEv1
_ZN12suite_ModuleL36Module_SPIgetRegValue_stream_invokerEv1
_ZN12suite_ModuleL36Module_SPIsetRegValue_stream_invokerEv1
_ZN13ModuleFixtureC2Ev4
_ZN13ModuleFixtureD2Ev4
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/TestModule.cpp.func.html b/coverage/extras/test/unit/tests/TestModule.cpp.func.html deleted file mode 100644 index d52419c5..00000000 --- a/coverage/extras/test/unit/tests/TestModule.cpp.func.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests/TestModule.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/tests - TestModule.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN12suite_Module25Module_SPIgetRegValue_reg11test_methodEv1
_ZN12suite_Module25Module_SPIsetRegValue_reg11test_methodEv1
_ZN12suite_Module28Module_SPIgetRegValue_stream11test_methodEv1
_ZN12suite_Module28Module_SPIsetRegValue_stream11test_methodEv1
_ZN12suite_ModuleL33Module_SPIgetRegValue_reg_invokerEv1
_ZN12suite_ModuleL33Module_SPIsetRegValue_reg_invokerEv1
_ZN12suite_ModuleL36Module_SPIgetRegValue_stream_invokerEv1
_ZN12suite_ModuleL36Module_SPIsetRegValue_stream_invokerEv1
_ZN13ModuleFixtureC2Ev4
_ZN13ModuleFixtureD2Ev4
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/TestModule.cpp.gcov.html b/coverage/extras/test/unit/tests/TestModule.cpp.gcov.html deleted file mode 100644 index 1a06d5b5..00000000 --- a/coverage/extras/test/unit/tests/TestModule.cpp.gcov.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests/TestModule.cpp - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/tests - TestModule.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- - - - - - - - -

-
          Line data    Source code
-
-       1             : // boost test header
-       2             : #include <boost/test/unit_test.hpp>
-       3             : 
-       4             : // mock HAL
-       5             : #include "TestHal.hpp"
-       6             : 
-       7             : // testing fixture
-       8             : struct ModuleFixture {
-       9             :   TestHal* hal = nullptr;
-      10             :   Module* mod = nullptr;
-      11             :   EmulatedRadio* radioHardware = nullptr;
-      12             : 
-      13           4 :   ModuleFixture()  { 
-      14           4 :     BOOST_TEST_MESSAGE("--- Module fixture setup ---"); 
-      15           4 :     hal = new TestHal();
-      16           4 :     radioHardware = new EmulatedRadio();
-      17           4 :     hal->connectRadio(radioHardware);
-      18             : 
-      19           4 :     mod = new Module(hal, EMULATED_RADIO_NSS_PIN, EMULATED_RADIO_IRQ_PIN, EMULATED_RADIO_RST_PIN, EMULATED_RADIO_GPIO_PIN);
-      20           4 :     mod->init();
-      21           4 :   }
-      22             : 
-      23           4 :   ~ModuleFixture() { 
-      24           4 :     BOOST_TEST_MESSAGE("--- Module fixture teardown ---");
-      25           4 :     mod->term();
-      26           4 :     delete[] mod;
-      27           4 :     delete[] hal;
-      28           4 :   }
-      29             : };
-      30             : 
-      31             : BOOST_FIXTURE_TEST_SUITE(suite_Module, ModuleFixture)
-      32             : 
-      33           2 :   BOOST_FIXTURE_TEST_CASE(Module_SPIgetRegValue_reg, ModuleFixture)
-      34             :   {
-      35           1 :     BOOST_TEST_MESSAGE("--- Test Module::SPIgetRegValue register access ---");
-      36             :     int16_t ret;
-      37             : 
-      38             :     // basic register read with default config
-      39           1 :     const uint8_t address = 0x12;
-      40           1 :     const uint8_t spiTxn[] = { address, 0x00 };
-      41           1 :     ret = mod->SPIgetRegValue(address);
-      42             : 
-      43             :     // check return code, value and history log
-      44           1 :     BOOST_TEST(ret >= RADIOLIB_ERR_NONE);
-      45           1 :     BOOST_TEST(ret == EMULATED_RADIO_SPI_RETURN);
-      46           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-      47             : 
-      48             :     // register read masking test
-      49           1 :     const uint8_t msb = 5;
-      50           1 :     const uint8_t lsb = 1;
-      51           1 :     const uint8_t maskedValue = 0x3E;
-      52           1 :     ret = mod->SPIgetRegValue(address, msb, lsb);
-      53           1 :     BOOST_TEST(ret == maskedValue);
-      54             : 
-      55             :     // invalid mask tests (swapped MSB and LSB, out of range bit masks)
-      56           1 :     ret = mod->SPIgetRegValue(address, lsb, msb);
-      57           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      58           1 :     ret = mod->SPIgetRegValue(address, 10, lsb);
-      59           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      60           1 :     ret = mod->SPIgetRegValue(address, msb, 10);
-      61           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      62           1 :   }
-      63             : 
-      64           2 :   BOOST_FIXTURE_TEST_CASE(Module_SPIsetRegValue_reg, ModuleFixture)
-      65             :   {
-      66           1 :     BOOST_TEST_MESSAGE("--- Test Module::SPIsetRegValue register access ---");
-      67             :     int16_t ret;
-      68             : 
-      69             :     // basic register write with default config
-      70           1 :     const uint8_t address = 0x12;
-      71           1 :     const uint8_t value = 0xAB;
-      72           1 :     const uint8_t spiTxn[] = { address, 0x00, 0x80 | address, value };
-      73           1 :     ret = mod->SPIsetRegValue(address, value);
-      74             : 
-      75             :     // check return code and history log
-      76             :     // this will return write error because the bare emulated radio has no internal logic
-      77           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-      78           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-      79             : 
-      80             :     // register write masking test
-      81           1 :     const uint8_t msb = 5;
-      82           1 :     const uint8_t lsb = 1;
-      83           1 :     const uint8_t maskedValue = 0xEB;
-      84           1 :     const uint8_t spiTxn2[] = { address, 0x00, 0x80 | address, maskedValue };
-      85           1 :     ret = mod->SPIsetRegValue(address, value, msb, lsb);
-      86           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-      87           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn2, sizeof(spiTxn2)) == 0);
-      88             : 
-      89             :     // invalid mask tests (swapped MSB and LSB, out of range bit masks)
-      90           1 :     ret = mod->SPIsetRegValue(address, value, lsb, msb);
-      91           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      92           1 :     ret = mod->SPIsetRegValue(address, value, 10, lsb);
-      93           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      94           1 :     ret = mod->SPIsetRegValue(address, value, msb, 10);
-      95           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-      96             : 
-      97             :     // check interval test
-      98           1 :     const uint8_t interval = 200;
-      99           1 :     const unsigned long start = hal->micros();
-     100           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, interval);
-     101           1 :     const unsigned long stop = hal->micros();
-     102           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     103           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     104           1 :     const unsigned long elapsed = stop - start;
-     105           1 :     BOOST_TEST(elapsed >= (unsigned long)interval*1000UL);
-     106             : 
-     107             :     // disabled check mask test
-     108           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, 2, 0);
-     109           1 :     BOOST_TEST(ret == RADIOLIB_ERR_NONE);
-     110           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     111             : 
-     112             :     // forced write test
-     113           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, 2, 0xFF, true);
-     114           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     115           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     116           1 :   }
-     117             : 
-     118           2 :   BOOST_FIXTURE_TEST_CASE(Module_SPIgetRegValue_stream, ModuleFixture)
-     119             :   {
-     120           1 :     BOOST_TEST_MESSAGE("--- Test Module::SPIgetRegValue stream access ---");
-     121             :     int16_t ret;
-     122             : 
-     123             :     // change settings to stream type
-     124           1 :     mod->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR] = Module::BITS_16;
-     125           1 :     mod->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD] = Module::BITS_8;
-     126           1 :     mod->spiConfig.statusPos = 1;
-     127           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ] = RADIOLIB_SX126X_CMD_READ_REGISTER;
-     128           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE] = RADIOLIB_SX126X_CMD_WRITE_REGISTER;
-     129           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_NOP] = RADIOLIB_SX126X_CMD_NOP;
-     130           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_STATUS] = RADIOLIB_SX126X_CMD_GET_STATUS;
-     131           1 :     mod->spiConfig.stream = true;
-     132             : 
-     133             :     // basic register read
-     134           1 :     const uint8_t address = 0x12;
-     135           1 :     const uint8_t spiTxn[] = { RADIOLIB_SX126X_CMD_READ_REGISTER, 0x00, address, 0x00, 0x00 };
-     136           1 :     ret = mod->SPIgetRegValue(address);
-     137             : 
-     138             :     // check return code, value and history log
-     139           1 :     BOOST_TEST(ret >= RADIOLIB_ERR_NONE);
-     140           1 :     BOOST_TEST(ret == EMULATED_RADIO_SPI_RETURN);
-     141           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     142             : 
-     143             :     // register read masking test
-     144           1 :     const uint8_t msb = 5;
-     145           1 :     const uint8_t lsb = 1;
-     146           1 :     const uint8_t maskedValue = 0x3E;
-     147           1 :     ret = mod->SPIgetRegValue(address, msb, lsb);
-     148           1 :     BOOST_TEST(ret == maskedValue);
-     149             : 
-     150             :     // invalid mask tests (swapped MSB and LSB, out of range bit masks)
-     151           1 :     ret = mod->SPIgetRegValue(address, lsb, msb);
-     152           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     153           1 :     ret = mod->SPIgetRegValue(address, 10, lsb);
-     154           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     155           1 :     ret = mod->SPIgetRegValue(address, msb, 10);
-     156           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     157           1 :   }
-     158             : 
-     159           2 :   BOOST_FIXTURE_TEST_CASE(Module_SPIsetRegValue_stream, ModuleFixture)
-     160             :   {
-     161           1 :     BOOST_TEST_MESSAGE("--- Test Module::SPIsetRegValue stream access ---");
-     162             :     int16_t ret;
-     163             : 
-     164             :     // change settings to stream type
-     165           1 :     mod->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR] = Module::BITS_16;
-     166           1 :     mod->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD] = Module::BITS_8;
-     167           1 :     mod->spiConfig.statusPos = 1;
-     168           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ] = RADIOLIB_SX126X_CMD_READ_REGISTER;
-     169           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE] = RADIOLIB_SX126X_CMD_WRITE_REGISTER;
-     170           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_NOP] = RADIOLIB_SX126X_CMD_NOP;
-     171           1 :     mod->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_STATUS] = RADIOLIB_SX126X_CMD_GET_STATUS;
-     172           1 :     mod->spiConfig.stream = true;
-     173             : 
-     174             :     // basic register write with default config
-     175           1 :     const uint8_t address = 0x12;
-     176           1 :     const uint8_t value = 0xAB;
-     177           1 :     const uint8_t spiTxn[] = { 
-     178             :       RADIOLIB_SX126X_CMD_READ_REGISTER,  0x00, address, 0x00, 0x00,
-     179             :       RADIOLIB_SX126X_CMD_WRITE_REGISTER, 0x00, address, value,
-     180             :     };
-     181           1 :     ret = mod->SPIsetRegValue(address, value);
-     182             : 
-     183             :     // check return code and history log
-     184             :     // this will return write error because the bare emulated radio has no internal logic
-     185           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     186           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     187             : 
-     188             :     // register write masking test
-     189           1 :     const uint8_t msb = 5;
-     190           1 :     const uint8_t lsb = 1;
-     191           1 :     const uint8_t maskedValue = 0xEB;
-     192           1 :     const uint8_t spiTxn2[] = { 
-     193             :       RADIOLIB_SX126X_CMD_READ_REGISTER,  0x00, address, 0x00, 0x00,
-     194             :       RADIOLIB_SX126X_CMD_WRITE_REGISTER, 0x00, address, maskedValue,
-     195             :     };
-     196           1 :     ret = mod->SPIsetRegValue(address, value, msb, lsb);
-     197           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     198           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn2, sizeof(spiTxn2)) == 0);
-     199             : 
-     200             :     // invalid mask tests (swapped MSB and LSB, out of range bit masks)
-     201           1 :     ret = mod->SPIsetRegValue(address, value, lsb, msb);
-     202           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     203           1 :     ret = mod->SPIsetRegValue(address, value, 10, lsb);
-     204           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     205           1 :     ret = mod->SPIsetRegValue(address, value, msb, 10);
-     206           1 :     BOOST_TEST(ret == RADIOLIB_ERR_INVALID_BIT_RANGE);
-     207             : 
-     208             :     // check interval test
-     209           1 :     const uint8_t interval = 200;
-     210           1 :     const unsigned long start = hal->micros();
-     211           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, interval);
-     212           1 :     const unsigned long stop = hal->micros();
-     213           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     214           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     215           1 :     const unsigned long elapsed = stop - start;
-     216           1 :     BOOST_TEST(elapsed >= (unsigned long)interval*1000UL);
-     217             : 
-     218             :     // disabled check mask test
-     219           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, 2, 0);
-     220           1 :     BOOST_TEST(ret == RADIOLIB_ERR_NONE);
-     221           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     222             : 
-     223             :     // forced write test
-     224           1 :     ret = mod->SPIsetRegValue(address, value, 7, 0, 2, 0xFF, true);
-     225           1 :     BOOST_TEST(ret == RADIOLIB_ERR_SPI_WRITE_FAILED);
-     226           1 :     BOOST_TEST(hal->spiLogMemcmp(spiTxn, sizeof(spiTxn)) == 0);
-     227           1 :   }
-     228             : 
-     229             : BOOST_AUTO_TEST_SUITE_END()
-
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/index-sort-f.html b/coverage/extras/test/unit/tests/index-sort-f.html deleted file mode 100644 index cf746316..00000000 --- a/coverage/extras/test/unit/tests/index-sort-f.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/testsHitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
TestModule.cpp -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/index-sort-l.html b/coverage/extras/test/unit/tests/index-sort-l.html deleted file mode 100644 index eaff6603..00000000 --- a/coverage/extras/test/unit/tests/index-sort-l.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/testsHitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
TestModule.cpp -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/extras/test/unit/tests/index.html b/coverage/extras/test/unit/tests/index.html deleted file mode 100644 index d1fd24a5..00000000 --- a/coverage/extras/test/unit/tests/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - LCOV - lcov.info - extras/test/unit/tests - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - extras/test/unit/testsHitTotalCoverage
Test:lcov.infoLines:142142100.0 %
Date:2025-02-17 17:37:38Functions:1010100.0 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
TestModule.cpp -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/gcov.css b/coverage/gcov.css deleted file mode 100644 index bfd0a83e..00000000 --- a/coverage/gcov.css +++ /dev/null @@ -1,519 +0,0 @@ -/* All views: initial background and text color */ -body -{ - color: #000000; - background-color: #FFFFFF; -} - -/* All views: standard link format*/ -a:link -{ - color: #284FA8; - text-decoration: underline; -} - -/* All views: standard link - visited format */ -a:visited -{ - color: #00CB40; - text-decoration: underline; -} - -/* All views: standard link - activated format */ -a:active -{ - color: #FF0040; - text-decoration: underline; -} - -/* All views: main title format */ -td.title -{ - text-align: center; - padding-bottom: 10px; - font-family: sans-serif; - font-size: 20pt; - font-style: italic; - font-weight: bold; -} - -/* All views: header item format */ -td.headerItem -{ - text-align: right; - padding-right: 6px; - font-family: sans-serif; - font-weight: bold; - vertical-align: top; - white-space: nowrap; -} - -/* All views: header item value format */ -td.headerValue -{ - text-align: left; - color: #284FA8; - font-family: sans-serif; - font-weight: bold; - white-space: nowrap; -} - -/* All views: header item coverage table heading */ -td.headerCovTableHead -{ - text-align: center; - padding-right: 6px; - padding-left: 6px; - padding-bottom: 0px; - font-family: sans-serif; - font-size: 80%; - white-space: nowrap; -} - -/* All views: header item coverage table entry */ -td.headerCovTableEntry -{ - text-align: right; - color: #284FA8; - font-family: sans-serif; - font-weight: bold; - white-space: nowrap; - padding-left: 12px; - padding-right: 4px; - background-color: #DAE7FE; -} - -/* All views: header item coverage table entry for high coverage rate */ -td.headerCovTableEntryHi -{ - text-align: right; - color: #000000; - font-family: sans-serif; - font-weight: bold; - white-space: nowrap; - padding-left: 12px; - padding-right: 4px; - background-color: #A7FC9D; -} - -/* All views: header item coverage table entry for medium coverage rate */ -td.headerCovTableEntryMed -{ - text-align: right; - color: #000000; - font-family: sans-serif; - font-weight: bold; - white-space: nowrap; - padding-left: 12px; - padding-right: 4px; - background-color: #FFEA20; -} - -/* All views: header item coverage table entry for ow coverage rate */ -td.headerCovTableEntryLo -{ - text-align: right; - color: #000000; - font-family: sans-serif; - font-weight: bold; - white-space: nowrap; - padding-left: 12px; - padding-right: 4px; - background-color: #FF0000; -} - -/* All views: header legend value for legend entry */ -td.headerValueLeg -{ - text-align: left; - color: #000000; - font-family: sans-serif; - font-size: 80%; - white-space: nowrap; - padding-top: 4px; -} - -/* All views: color of horizontal ruler */ -td.ruler -{ - background-color: #6688D4; -} - -/* All views: version string format */ -td.versionInfo -{ - text-align: center; - padding-top: 2px; - font-family: sans-serif; - font-style: italic; -} - -/* Directory view/File view (all)/Test case descriptions: - table headline format */ -td.tableHead -{ - text-align: center; - color: #FFFFFF; - background-color: #6688D4; - font-family: sans-serif; - font-size: 120%; - font-weight: bold; - white-space: nowrap; - padding-left: 4px; - padding-right: 4px; -} - -span.tableHeadSort -{ - padding-right: 4px; -} - -/* Directory view/File view (all): filename entry format */ -td.coverFile -{ - text-align: left; - padding-left: 10px; - padding-right: 20px; - color: #284FA8; - background-color: #DAE7FE; - font-family: monospace; -} - -/* Directory view/File view (all): bar-graph entry format*/ -td.coverBar -{ - padding-left: 10px; - padding-right: 10px; - background-color: #DAE7FE; -} - -/* Directory view/File view (all): bar-graph outline color */ -td.coverBarOutline -{ - background-color: #000000; -} - -/* Directory view/File view (all): percentage entry for files with - high coverage rate */ -td.coverPerHi -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #A7FC9D; - font-weight: bold; - font-family: sans-serif; -} - -/* Directory view/File view (all): line count entry for files with - high coverage rate */ -td.coverNumHi -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #A7FC9D; - white-space: nowrap; - font-family: sans-serif; -} - -/* Directory view/File view (all): percentage entry for files with - medium coverage rate */ -td.coverPerMed -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #FFEA20; - font-weight: bold; - font-family: sans-serif; -} - -/* Directory view/File view (all): line count entry for files with - medium coverage rate */ -td.coverNumMed -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #FFEA20; - white-space: nowrap; - font-family: sans-serif; -} - -/* Directory view/File view (all): percentage entry for files with - low coverage rate */ -td.coverPerLo -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #FF0000; - font-weight: bold; - font-family: sans-serif; -} - -/* Directory view/File view (all): line count entry for files with - low coverage rate */ -td.coverNumLo -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #FF0000; - white-space: nowrap; - font-family: sans-serif; -} - -/* File view (all): "show/hide details" link format */ -a.detail:link -{ - color: #B8D0FF; - font-size:80%; -} - -/* File view (all): "show/hide details" link - visited format */ -a.detail:visited -{ - color: #B8D0FF; - font-size:80%; -} - -/* File view (all): "show/hide details" link - activated format */ -a.detail:active -{ - color: #FFFFFF; - font-size:80%; -} - -/* File view (detail): test name entry */ -td.testName -{ - text-align: right; - padding-right: 10px; - background-color: #DAE7FE; - font-family: sans-serif; -} - -/* File view (detail): test percentage entry */ -td.testPer -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #DAE7FE; - font-family: sans-serif; -} - -/* File view (detail): test lines count entry */ -td.testNum -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #DAE7FE; - font-family: sans-serif; -} - -/* Test case descriptions: test name format*/ -dt -{ - font-family: sans-serif; - font-weight: bold; -} - -/* Test case descriptions: description table body */ -td.testDescription -{ - padding-top: 10px; - padding-left: 30px; - padding-bottom: 10px; - padding-right: 30px; - background-color: #DAE7FE; -} - -/* Source code view: function entry */ -td.coverFn -{ - text-align: left; - padding-left: 10px; - padding-right: 20px; - color: #284FA8; - background-color: #DAE7FE; - font-family: monospace; -} - -/* Source code view: function entry zero count*/ -td.coverFnLo -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #FF0000; - font-weight: bold; - font-family: sans-serif; -} - -/* Source code view: function entry nonzero count*/ -td.coverFnHi -{ - text-align: right; - padding-left: 10px; - padding-right: 10px; - background-color: #DAE7FE; - font-weight: bold; - font-family: sans-serif; -} - -/* Source code view: source code format */ -pre.source -{ - font-family: monospace; - white-space: pre; - margin-top: 2px; -} - -/* Source code view: line number format */ -span.lineNum -{ - background-color: #EFE383; -} - -/* Source code view: format for lines which were executed */ -td.lineCov, -span.lineCov -{ - background-color: #CAD7FE; -} - -/* Source code view: format for Cov legend */ -span.coverLegendCov -{ - padding-left: 10px; - padding-right: 10px; - padding-bottom: 2px; - background-color: #CAD7FE; -} - -/* Source code view: format for lines which were not executed */ -td.lineNoCov, -span.lineNoCov -{ - background-color: #FF6230; -} - -/* Source code view: format for NoCov legend */ -span.coverLegendNoCov -{ - padding-left: 10px; - padding-right: 10px; - padding-bottom: 2px; - background-color: #FF6230; -} - -/* Source code view (function table): standard link - visited format */ -td.lineNoCov > a:visited, -td.lineCov > a:visited -{ - color: black; - text-decoration: underline; -} - -/* Source code view: format for lines which were executed only in a - previous version */ -span.lineDiffCov -{ - background-color: #B5F7AF; -} - -/* Source code view: format for branches which were executed - * and taken */ -span.branchCov -{ - background-color: #CAD7FE; -} - -/* Source code view: format for branches which were executed - * but not taken */ -span.branchNoCov -{ - background-color: #FF6230; -} - -/* Source code view: format for branches which were not executed */ -span.branchNoExec -{ - background-color: #FF6230; -} - -/* Source code view: format for the source code heading line */ -pre.sourceHeading -{ - white-space: pre; - font-family: monospace; - font-weight: bold; - margin: 0px; -} - -/* All views: header legend value for low rate */ -td.headerValueLegL -{ - font-family: sans-serif; - text-align: center; - white-space: nowrap; - padding-left: 4px; - padding-right: 2px; - background-color: #FF0000; - font-size: 80%; -} - -/* All views: header legend value for med rate */ -td.headerValueLegM -{ - font-family: sans-serif; - text-align: center; - white-space: nowrap; - padding-left: 2px; - padding-right: 2px; - background-color: #FFEA20; - font-size: 80%; -} - -/* All views: header legend value for hi rate */ -td.headerValueLegH -{ - font-family: sans-serif; - text-align: center; - white-space: nowrap; - padding-left: 2px; - padding-right: 4px; - background-color: #A7FC9D; - font-size: 80%; -} - -/* All views except source code view: legend format for low coverage */ -span.coverLegendCovLo -{ - padding-left: 10px; - padding-right: 10px; - padding-top: 2px; - background-color: #FF0000; -} - -/* All views except source code view: legend format for med coverage */ -span.coverLegendCovMed -{ - padding-left: 10px; - padding-right: 10px; - padding-top: 2px; - background-color: #FFEA20; -} - -/* All views except source code view: legend format for hi coverage */ -span.coverLegendCovHi -{ - padding-left: 10px; - padding-right: 10px; - padding-top: 2px; - background-color: #A7FC9D; -} diff --git a/coverage/glass.png b/coverage/glass.png deleted file mode 100644 index e1abc00680a3093c49fdb775ae6bdb6764c95af2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)gaEa{HEjtmSN`?>!lvI6;R0X`wF z|Ns97GD8ntt^-nxB|(0{3=Yq3q=7g|-tI089jvk*Kn`btM`SSr1Gf+eGhVt|_XjA* zUgGKN%6^Gmn4d%Ph(nkFP>9RZ#WAE}PI3Z}&BVayv3^M*kj3EX>gTe~DWM4f=_Dpv diff --git a/coverage/index-sort-f.html b/coverage/index-sort-f.html deleted file mode 100644 index 18aaa5b2..00000000 --- a/coverage/index-sort-f.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - LCOV - lcov.info - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:33748569.5 %
Date:2025-02-17 17:37:38Functions:386756.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
src -
47.1%47.1%
-
47.1 %112 / 23833.3 %10 / 30
extras/test/unit/include -
79.0%79.0%
-
79.0 %83 / 10566.7 %18 / 27
extras/test/unit/tests -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/index-sort-l.html b/coverage/index-sort-l.html deleted file mode 100644 index a54bce20..00000000 --- a/coverage/index-sort-l.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - LCOV - lcov.info - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:33748569.5 %
Date:2025-02-17 17:37:38Functions:386756.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
src -
47.1%47.1%
-
47.1 %112 / 23833.3 %10 / 30
extras/test/unit/include -
79.0%79.0%
-
79.0 %83 / 10566.7 %18 / 27
extras/test/unit/tests -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/index.html b/coverage/index.html deleted file mode 100644 index 380f9649..00000000 --- a/coverage/index.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - LCOV - lcov.info - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top levelHitTotalCoverage
Test:lcov.infoLines:33748569.5 %
Date:2025-02-17 17:37:38Functions:386756.7 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Directory Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
extras/test/unit/include -
79.0%79.0%
-
79.0 %83 / 10566.7 %18 / 27
extras/test/unit/tests -
100.0%
-
100.0 %142 / 142100.0 %10 / 10
src -
47.1%47.1%
-
47.1 %112 / 23833.3 %10 / 30
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/ruby.png b/coverage/ruby.png deleted file mode 100644 index 991b6d4ec9e78be165e3ef757eed1aada287364d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^FceV#7`HfI^%F z9+AZi4BSE>%y{W;-5;PJOS+@4BLl<6e(pbstUx|nfKQ0)e^Y%R^MdiLxj>4`)5S5Q b;#P73kj=!v_*DHKNFRfztDnm{r-UW|iOwIS diff --git a/coverage/snow.png b/coverage/snow.png deleted file mode 100644 index 2cdae107fceec6e7f02ac7acb4a34a82a540caa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j3CU&3?x-=hn)ga>?NMQuI!iC1^MM!lvI6;R0X`wF|Ns97GD8ntt^-nBo-U3d c6}OTTfNUlP#;5A{K>8RwUHx3vIVCg!071?oo&W#< diff --git a/coverage/src/Hal.cpp.func-sort-c.html b/coverage/src/Hal.cpp.func-sort-c.html deleted file mode 100644 index 456c4fc0..00000000 --- a/coverage/src/Hal.cpp.func-sort-c.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Hal.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Hal.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:71936.8 %
Date:2025-02-17 17:37:38Functions:1714.3 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN11RadioLibHal14pinToInterruptEj0
_ZN11RadioLibHal4initEv0
_ZN11RadioLibHal4termEv0
_ZN11RadioLibHal4toneEjjm0
_ZN11RadioLibHal5yieldEv0
_ZN11RadioLibHal6noToneEj0
_ZN11RadioLibHalC2Ejjjjjj4
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/Hal.cpp.func.html b/coverage/src/Hal.cpp.func.html deleted file mode 100644 index 93ce3545..00000000 --- a/coverage/src/Hal.cpp.func.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Hal.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Hal.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:71936.8 %
Date:2025-02-17 17:37:38Functions:1714.3 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN11RadioLibHal14pinToInterruptEj0
_ZN11RadioLibHal4initEv0
_ZN11RadioLibHal4termEv0
_ZN11RadioLibHal4toneEjjm0
_ZN11RadioLibHal5yieldEv0
_ZN11RadioLibHal6noToneEj0
_ZN11RadioLibHalC2Ejjjjjj4
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/Hal.cpp.gcov.html b/coverage/src/Hal.cpp.gcov.html deleted file mode 100644 index be0e0a64..00000000 --- a/coverage/src/Hal.cpp.gcov.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Hal.cpp - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Hal.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:71936.8 %
Date:2025-02-17 17:37:38Functions:1714.3 %
-
- - - - - - - - -

-
          Line data    Source code
-
-       1             : #include "Hal.h"
-       2             : 
-       3           4 : RadioLibHal::RadioLibHal(const uint32_t input, const uint32_t output, const uint32_t low, const uint32_t high, const uint32_t rising, const uint32_t falling)
-       4           4 :     : GpioModeInput(input),
-       5           4 :       GpioModeOutput(output),
-       6           4 :       GpioLevelLow(low),
-       7           4 :       GpioLevelHigh(high),
-       8           4 :       GpioInterruptRising(rising),
-       9           4 :       GpioInterruptFalling(falling) {}
-      10             : 
-      11           0 : void RadioLibHal::init() {
-      12             : 
-      13           0 : }
-      14             : 
-      15           0 : void RadioLibHal::term() {
-      16             : 
-      17           0 : }
-      18             : 
-      19           0 : void RadioLibHal::tone(uint32_t pin, unsigned int frequency, RadioLibTime_t duration) {
-      20             :   (void)pin;
-      21             :   (void)frequency;
-      22             :   (void)duration;
-      23           0 : }
-      24             : 
-      25           0 : void RadioLibHal::noTone(uint32_t pin) {
-      26             :   (void)pin;
-      27           0 : }
-      28             : 
-      29           0 : void RadioLibHal::yield() {
-      30             : 
-      31           0 : }
-      32             : 
-      33           0 : uint32_t RadioLibHal::pinToInterrupt(uint32_t pin) {
-      34           0 :   return(pin);
-      35             : }
-
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/Module.cpp.func-sort-c.html b/coverage/src/Module.cpp.func-sort-c.html deleted file mode 100644 index cadff126..00000000 --- a/coverage/src/Module.cpp.func-sort-c.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Module.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Module.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:10521947.9 %
Date:2025-02-17 17:37:38Functions:92339.1 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN6Module13SPIreadStreamEPKhhPhmbb0
_ZN6Module13SPIreadStreamEtPhmbb0
_ZN6Module14SPIcheckStreamEv0
_ZN6Module14SPIwriteStreamEPKhhS1_mbb0
_ZN6Module14SPIwriteStreamEtPKhmbb0
_ZN6Module15setRfSwitchPinsEjj0
_ZN6Module16setRfSwitchStateEh0
_ZN6Module16setRfSwitchTableERA5_KjPKNS_14RfSwitchMode_tE0
_ZN6Module19waitForMicrosecondsEmm0
_ZN6Module20SPIreadRegisterBurstEjmPh0
_ZN6Module21SPIwriteRegisterBurstEjPKhm0
_ZN6ModuleC2ERKS_0
_ZN6ModuleaSERKS_0
_ZNK6Module16findRfSwitchModeEh0
_ZN6Module4initEv4
_ZN6Module4termEv4
_ZN6ModuleC2EP11RadioLibHaljjjj4
_ZN6Module14SPIgetRegValueEjhh10
_ZN6Module16SPIwriteRegisterEjh10
_ZN6Module14SPIsetRegValueEjhhhhhb16
_ZN6Module17SPItransferStreamEPKhhbS1_Phmb423
_ZN6Module11SPItransferEtjPKhPhm1041
_ZN6Module15SPIreadRegisterEj1454
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/Module.cpp.func.html b/coverage/src/Module.cpp.func.html deleted file mode 100644 index b0279d83..00000000 --- a/coverage/src/Module.cpp.func.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Module.cpp - functions - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Module.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:10521947.9 %
Date:2025-02-17 17:37:38Functions:92339.1 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN6Module11SPItransferEtjPKhPhm1041
_ZN6Module13SPIreadStreamEPKhhPhmbb0
_ZN6Module13SPIreadStreamEtPhmbb0
_ZN6Module14SPIcheckStreamEv0
_ZN6Module14SPIgetRegValueEjhh10
_ZN6Module14SPIsetRegValueEjhhhhhb16
_ZN6Module14SPIwriteStreamEPKhhS1_mbb0
_ZN6Module14SPIwriteStreamEtPKhmbb0
_ZN6Module15SPIreadRegisterEj1454
_ZN6Module15setRfSwitchPinsEjj0
_ZN6Module16SPIwriteRegisterEjh10
_ZN6Module16setRfSwitchStateEh0
_ZN6Module16setRfSwitchTableERA5_KjPKNS_14RfSwitchMode_tE0
_ZN6Module17SPItransferStreamEPKhhbS1_Phmb423
_ZN6Module19waitForMicrosecondsEmm0
_ZN6Module20SPIreadRegisterBurstEjmPh0
_ZN6Module21SPIwriteRegisterBurstEjPKhm0
_ZN6Module4initEv4
_ZN6Module4termEv4
_ZN6ModuleC2EP11RadioLibHaljjjj4
_ZN6ModuleC2ERKS_0
_ZN6ModuleaSERKS_0
_ZNK6Module16findRfSwitchModeEh0
-
-
- - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/Module.cpp.gcov.html b/coverage/src/Module.cpp.gcov.html deleted file mode 100644 index dd535c74..00000000 --- a/coverage/src/Module.cpp.gcov.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - - - - LCOV - lcov.info - src/Module.cpp - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - src - Module.cpp (source / functions)HitTotalCoverage
Test:lcov.infoLines:10521947.9 %
Date:2025-02-17 17:37:38Functions:92339.1 %
-
- - - - - - - - -

-
          Line data    Source code
-
-       1             : #include "Module.h"
-       2             : 
-       3             : // the following is probably only needed on non-Arduino builds
-       4             : #include <stdio.h>
-       5             : #include <string.h>
-       6             : 
-       7             : #if defined(RADIOLIB_BUILD_ARDUINO)
-       8             : #include "hal/Arduino/ArduinoHal.h"
-       9             : 
-      10             : Module::Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio) : csPin(cs), irqPin(irq), rstPin(rst), gpioPin(gpio) {
-      11             :   this->hal = new ArduinoHal();
-      12             : }
-      13             : 
-      14             : Module::Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio, SPIClass& spi, SPISettings spiSettings) : csPin(cs), irqPin(irq), rstPin(rst), gpioPin(gpio) {
-      15             :   this->hal = new ArduinoHal(spi, spiSettings);
-      16             : }
-      17             : #endif
-      18             : 
-      19           4 : Module::Module(RadioLibHal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio) : csPin(cs), irqPin(irq), rstPin(rst), gpioPin(gpio) {
-      20           4 :   this->hal = hal;
-      21           4 : }
-      22             : 
-      23           0 : Module::Module(const Module& mod) {
-      24           0 :   *this = mod;
-      25           0 : }
-      26             : 
-      27           0 : Module& Module::operator=(const Module& mod) {
-      28           0 :   memcpy(reinterpret_cast<void*>(&(const_cast<Module&>(mod)).spiConfig), &this->spiConfig, sizeof(SPIConfig_t));
-      29           0 :   this->csPin = mod.csPin;
-      30           0 :   this->irqPin = mod.irqPin;
-      31           0 :   this->rstPin = mod.rstPin;
-      32           0 :   this->gpioPin = mod.gpioPin;
-      33           0 :   return(*this);
-      34             : }
-      35             : 
-      36             : static volatile const char info[] = RADIOLIB_INFO;
-      37           4 : void Module::init() {
-      38           4 :   this->hal->init();
-      39           4 :   this->hal->pinMode(csPin, this->hal->GpioModeOutput);
-      40           4 :   this->hal->digitalWrite(csPin, this->hal->GpioLevelHigh);
-      41             :   RADIOLIB_DEBUG_BASIC_PRINTLN(RADIOLIB_INFO);
-      42           4 : }
-      43             : 
-      44           4 : void Module::term() {
-      45             :   // stop hardware interfaces (if they were initialized by the library)
-      46           4 :   this->hal->term();
-      47           4 : }
-      48             : 
-      49          10 : int16_t Module::SPIgetRegValue(uint32_t reg, uint8_t msb, uint8_t lsb) {
-      50          10 :   if((msb > 7) || (lsb > 7) || (lsb > msb)) {
-      51           6 :     return(RADIOLIB_ERR_INVALID_BIT_RANGE);
-      52             :   }
-      53             : 
-      54           4 :   uint8_t rawValue = SPIreadRegister(reg);
-      55           4 :   uint8_t maskedValue = rawValue & ((0b11111111 << lsb) & (0b11111111 >> (7 - msb)));
-      56           4 :   return(maskedValue);
-      57             : }
-      58             : 
-      59          16 : int16_t Module::SPIsetRegValue(uint32_t reg, uint8_t value, uint8_t msb, uint8_t lsb, uint8_t checkInterval, uint8_t checkMask, bool force) {
-      60          16 :   if((msb > 7) || (lsb > 7) || (lsb > msb)) {
-      61           6 :     return(RADIOLIB_ERR_INVALID_BIT_RANGE);
-      62             :   }
-      63             : 
-      64             :   // read the current value
-      65          10 :   uint8_t currentValue = SPIreadRegister(reg);
-      66          10 :   uint8_t mask = ~((0b11111111 << (msb + 1)) | (0b11111111 >> (8 - lsb)));
-      67             : 
-      68             :   // check if we actually need to update the register
-      69          10 :   if((currentValue & mask) == (value & mask) && !force) {
-      70           0 :     return(RADIOLIB_ERR_NONE);
-      71             :   }
-      72             : 
-      73             :   // update the register
-      74          10 :   uint8_t newValue = (currentValue & ~mask) | (value & mask);
-      75          10 :   SPIwriteRegister(reg, newValue);
-      76             : 
-      77             :   #if RADIOLIB_SPI_PARANOID
-      78             :     // check register value each millisecond until check interval is reached
-      79             :     // some registers need a bit of time to process the change (e.g. SX127X_REG_OP_MODE)
-      80          10 :     RadioLibTime_t start = this->hal->micros();
-      81             :     #if RADIOLIB_DEBUG_SPI
-      82             :     uint8_t readValue = 0x00;
-      83             :     #endif
-      84        1448 :     while(this->hal->micros() - start < (checkInterval * 1000)) {
-      85        1440 :       uint8_t val = SPIreadRegister(reg);
-      86        1440 :       if((val & checkMask) == (newValue & checkMask)) {
-      87             :         // check passed, we can stop the loop
-      88           2 :         return(RADIOLIB_ERR_NONE);
-      89             :       }
-      90             :       #if RADIOLIB_DEBUG_SPI
-      91             :       readValue = val;
-      92             :       #endif
-      93             :     }
-      94             : 
-      95             :     // check failed, print debug info
-      96             :     RADIOLIB_DEBUG_SPI_PRINTLN();
-      97             :     RADIOLIB_DEBUG_SPI_PRINTLN("address:\t0x%X", reg);
-      98             :     RADIOLIB_DEBUG_SPI_PRINTLN("bits:\t\t%d %d", msb, lsb);
-      99             :     RADIOLIB_DEBUG_SPI_PRINTLN("value:\t\t0x%X", value);
-     100             :     RADIOLIB_DEBUG_SPI_PRINTLN("current:\t0x%X", currentValue);
-     101             :     RADIOLIB_DEBUG_SPI_PRINTLN("mask:\t\t0x%X", mask);
-     102             :     RADIOLIB_DEBUG_SPI_PRINTLN("new:\t\t0x%X", newValue);
-     103             :     RADIOLIB_DEBUG_SPI_PRINTLN("read:\t\t0x%X", readValue);
-     104             : 
-     105           8 :     return(RADIOLIB_ERR_SPI_WRITE_FAILED);
-     106             :   #else
-     107             :     return(RADIOLIB_ERR_NONE);
-     108             :   #endif
-     109             : }
-     110             : 
-     111           0 : void Module::SPIreadRegisterBurst(uint32_t reg, size_t numBytes, uint8_t* inBytes) {
-     112           0 :   if(!this->spiConfig.stream) {
-     113           0 :     SPItransfer(this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ], reg, NULL, inBytes, numBytes);
-     114             :   } else {
-     115             :     uint8_t cmd[6];
-     116           0 :     uint8_t* cmdPtr = cmd;
-     117           0 :     for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     118           0 :       *(cmdPtr++) = (this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ] >> 8*i) & 0xFF;
-     119             :     }
-     120           0 :     for(int8_t i = (int8_t)((this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8) - 1); i >= 0; i--) {
-     121           0 :       *(cmdPtr++) = (reg >> 8*i) & 0xFF;
-     122             :     }
-     123           0 :     SPItransferStream(cmd, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 + this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8, false, NULL, inBytes, numBytes, true);
-     124             :   }
-     125           0 : }
-     126             : 
-     127        1454 : uint8_t Module::SPIreadRegister(uint32_t reg) {
-     128        1454 :   uint8_t resp = 0;
-     129        1454 :   if(!spiConfig.stream) {
-     130        1036 :     SPItransfer(this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ], reg, NULL, &resp, 1);
-     131             :   } else {
-     132             :     uint8_t cmd[6];
-     133         418 :     uint8_t* cmdPtr = cmd;
-     134         836 :     for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     135         418 :       *(cmdPtr++) = (this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ] >> 8*i) & 0xFF;
-     136             :     }
-     137        1254 :     for(int8_t i = (int8_t)((this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8) - 1); i >= 0; i--) {
-     138         836 :       *(cmdPtr++) = (reg >> 8*i) & 0xFF;
-     139             :     }
-     140         418 :     SPItransferStream(cmd, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 + this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8, false, NULL, &resp, 1, true);
-     141             :   }
-     142        1454 :   return(resp);
-     143             : }
-     144             : 
-     145           0 : void Module::SPIwriteRegisterBurst(uint32_t reg, const uint8_t* data, size_t numBytes) {
-     146           0 :   if(!spiConfig.stream) {
-     147           0 :     SPItransfer(spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE], reg, data, NULL, numBytes);
-     148             :   } else {
-     149             :     uint8_t cmd[6];
-     150           0 :     uint8_t* cmdPtr = cmd;
-     151           0 :     for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     152           0 :       *(cmdPtr++) = (this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE] >> 8*i) & 0xFF;
-     153             :     }
-     154           0 :     for(int8_t i = (int8_t)((this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8) - 1); i >= 0; i--) {
-     155           0 :       *(cmdPtr++) = (reg >> 8*i) & 0xFF;
-     156             :     }
-     157           0 :     SPItransferStream(cmd, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 + this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8, true, data, NULL, numBytes, true);
-     158             :   }
-     159           0 : }
-     160             : 
-     161          10 : void Module::SPIwriteRegister(uint32_t reg, uint8_t data) {
-     162          10 :   if(!spiConfig.stream) {
-     163           5 :     SPItransfer(spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE], reg, &data, NULL, 1);
-     164             :   } else {
-     165             :     uint8_t cmd[6];
-     166           5 :     uint8_t* cmdPtr = cmd;
-     167          10 :     for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     168           5 :       *(cmdPtr++) = (this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE] >> 8*i) & 0xFF;
-     169             :     }
-     170          15 :     for(int8_t i = (int8_t)((this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8) - 1); i >= 0; i--) {
-     171          10 :       *(cmdPtr++) = (reg >> 8*i) & 0xFF;
-     172             :     }
-     173           5 :     SPItransferStream(cmd, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 + this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8, true, &data, NULL, 1, true);
-     174             :   }
-     175          10 : }
-     176             : 
-     177        1041 : void Module::SPItransfer(uint16_t cmd, uint32_t reg, const uint8_t* dataOut, uint8_t* dataIn, size_t numBytes) {
-     178             :   // prepare the buffers
-     179        1041 :   size_t buffLen = this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 + this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8 + numBytes;
-     180             :   #if RADIOLIB_STATIC_ONLY
-     181             :     uint8_t buffOut[RADIOLIB_STATIC_ARRAY_SIZE];
-     182             :     uint8_t buffIn[RADIOLIB_STATIC_ARRAY_SIZE];
-     183             :   #else
-     184        1041 :     uint8_t* buffOut = new uint8_t[buffLen];
-     185        1041 :     uint8_t* buffIn = new uint8_t[buffLen];
-     186             :   #endif
-     187        1041 :   uint8_t* buffOutPtr = buffOut;
-     188             : 
-     189             :   // copy the command
-     190             :   // TODO properly handle variable commands and addresses
-     191        1041 :   if(this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR] <= 8) {
-     192        1041 :     *(buffOutPtr++) = reg | cmd;
-     193             :   } else {
-     194           0 :     *(buffOutPtr++) = (reg >> 8) | cmd;
-     195           0 :     *(buffOutPtr++) = reg & 0xFF;
-     196             :   }
-     197             : 
-     198             :   // copy the data
-     199        1041 :   if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE]) {
-     200           5 :     memcpy(buffOutPtr, dataOut, numBytes);
-     201             :   } else {
-     202        1036 :     memset(buffOutPtr, this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_NOP], numBytes);
-     203             :   }
-     204             : 
-     205             :   // do the transfer
-     206        1041 :   this->hal->spiBeginTransaction();
-     207        1041 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelLow);
-     208        1041 :   this->hal->spiTransfer(buffOut, buffLen, buffIn);
-     209        1041 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelHigh);
-     210        1041 :   this->hal->spiEndTransaction();
-     211             :   
-     212             :   // copy the data
-     213        1041 :   if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ]) {
-     214        1036 :     memcpy(dataIn, &buffIn[this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8], numBytes);
-     215             :   }
-     216             : 
-     217             :   // print debug information
-     218             :   #if RADIOLIB_DEBUG_SPI
-     219             :     const uint8_t* debugBuffPtr = NULL;
-     220             :     if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE]) {
-     221             :       RADIOLIB_DEBUG_SPI_PRINT("W\t%X\t", reg);
-     222             :       debugBuffPtr = &buffOut[this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8];
-     223             :     } else if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ]) {
-     224             :       RADIOLIB_DEBUG_SPI_PRINT("R\t%X\t", reg);
-     225             :       debugBuffPtr = &buffIn[this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8];
-     226             :     }
-     227             :     for(size_t n = 0; n < numBytes; n++) {
-     228             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("%X\t", debugBuffPtr[n]);
-     229             :     }
-     230             :     RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG();
-     231             :   #endif
-     232             : 
-     233             :   #if !RADIOLIB_STATIC_ONLY
-     234        1041 :     delete[] buffOut;
-     235        1041 :     delete[] buffIn;
-     236             :   #endif
-     237        1041 : }
-     238             : 
-     239           0 : int16_t Module::SPIreadStream(uint16_t cmd, uint8_t* data, size_t numBytes, bool waitForGpio, bool verify) {
-     240             :   uint8_t cmdBuf[2];
-     241           0 :   uint8_t* cmdPtr = cmdBuf;
-     242           0 :   for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     243           0 :     *(cmdPtr++) = (cmd >> 8*i) & 0xFF;
-     244             :   }
-     245           0 :   return(this->SPIreadStream(cmdBuf, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8, data, numBytes, waitForGpio, verify));
-     246             : }
-     247             : 
-     248           0 : int16_t Module::SPIreadStream(const uint8_t* cmd, uint8_t cmdLen, uint8_t* data, size_t numBytes, bool waitForGpio, bool verify) {
-     249             :   // send the command
-     250           0 :   int16_t state = this->SPItransferStream(cmd, cmdLen, false, NULL, data, numBytes, waitForGpio);
-     251           0 :   RADIOLIB_ASSERT(state);
-     252             : 
-     253             :   #if !RADIOLIB_SPI_PARANOID
-     254             :   (void)verify;
-     255             :   return(RADIOLIB_ERR_NONE);
-     256             :   #else
-     257             : 
-     258             :   // check the status
-     259           0 :   if(verify && (this->spiConfig.checkStatusCb != nullptr)) {
-     260           0 :     state = this->spiConfig.checkStatusCb(this);
-     261             :   }
-     262             : 
-     263           0 :   return(state);
-     264             :   #endif
-     265             : }
-     266             : 
-     267           0 : int16_t Module::SPIwriteStream(uint16_t cmd, const uint8_t* data, size_t numBytes, bool waitForGpio, bool verify) {
-     268             :   uint8_t cmdBuf[2];
-     269           0 :   uint8_t* cmdPtr = cmdBuf;
-     270           0 :   for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     271           0 :     *(cmdPtr++) = (cmd >> 8*i) & 0xFF;
-     272             :   }
-     273           0 :   return(this->SPIwriteStream(cmdBuf, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8, data, numBytes, waitForGpio, verify));
-     274             : }
-     275             : 
-     276           0 : int16_t Module::SPIwriteStream(const uint8_t* cmd, uint8_t cmdLen, const uint8_t* data, size_t numBytes, bool waitForGpio, bool verify) {
-     277             :   // send the command
-     278           0 :   int16_t state = this->SPItransferStream(cmd, cmdLen, true, data, NULL, numBytes, waitForGpio);
-     279           0 :   RADIOLIB_ASSERT(state);
-     280             : 
-     281             :   #if !RADIOLIB_SPI_PARANOID
-     282             :   (void)verify;
-     283             :   return(RADIOLIB_ERR_NONE);
-     284             :   #else
-     285             : 
-     286             :   // check the status
-     287           0 :   if(verify && (this->spiConfig.checkStatusCb != nullptr)) {
-     288           0 :     state = this->spiConfig.checkStatusCb(this);
-     289             :   }
-     290             : 
-     291           0 :   return(state);
-     292             :   #endif
-     293             : }
-     294             : 
-     295           0 : int16_t Module::SPIcheckStream() {
-     296           0 :   int16_t state = RADIOLIB_ERR_NONE;
-     297             : 
-     298             :   #if RADIOLIB_SPI_PARANOID
-     299             :   // get the status
-     300           0 :   uint8_t spiStatus = 0;
-     301             :   uint8_t cmdBuf[2];
-     302           0 :   uint8_t* cmdPtr = cmdBuf;
-     303           0 :   for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     304           0 :     *(cmdPtr++) = ( this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_STATUS] >> 8*i) & 0xFF;
-     305             :   }
-     306           0 :   state = this->SPItransferStream(cmdBuf, this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8, false, NULL, &spiStatus, 1, true);
-     307           0 :   RADIOLIB_ASSERT(state);
-     308             : 
-     309             :   // translate to RadioLib status code
-     310           0 :   if(this->spiConfig.parseStatusCb != nullptr) {
-     311           0 :     this->spiConfig.err = this->spiConfig.parseStatusCb(spiStatus);
-     312             :   }
-     313             :   #endif
-     314             : 
-     315           0 :   return(state);
-     316             : }
-     317             : 
-     318         423 : int16_t Module::SPItransferStream(const uint8_t* cmd, uint8_t cmdLen, bool write, const uint8_t* dataOut, uint8_t* dataIn, size_t numBytes, bool waitForGpio) {
-     319             :   // prepare the output buffer
-     320         423 :   size_t buffLen = cmdLen + numBytes;
-     321         423 :   if(!write) {
-     322         418 :     buffLen += (this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_STATUS] / 8);
-     323             :   }
-     324             :   #if RADIOLIB_STATIC_ONLY
-     325             :     uint8_t buffOut[RADIOLIB_STATIC_ARRAY_SIZE];
-     326             :   #else
-     327         423 :     uint8_t* buffOut = new uint8_t[buffLen];
-     328             :   #endif
-     329         423 :   uint8_t* buffOutPtr = buffOut;
-     330             : 
-     331             :   // copy the command
-     332        1692 :   for(uint8_t n = 0; n < cmdLen; n++) {
-     333        1269 :     *(buffOutPtr++) = cmd[n];
-     334             :   }
-     335             : 
-     336             :   // copy the data
-     337         423 :   if(write) {
-     338           5 :     memcpy(buffOutPtr, dataOut, numBytes);
-     339             :   } else {
-     340         418 :     memset(buffOutPtr, this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_NOP], numBytes + (this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_STATUS] / 8));
-     341             :   }
-     342             : 
-     343             :   // ensure GPIO is low
-     344         423 :   if(waitForGpio) {
-     345         423 :     if(this->gpioPin == RADIOLIB_NC) {
-     346           0 :       this->hal->delay(50);
-     347             :     } else {
-     348         423 :       RadioLibTime_t start = this->hal->millis();
-     349         423 :       while(this->hal->digitalRead(this->gpioPin)) {
-     350           0 :         this->hal->yield();
-     351             : 
-     352             :         // this timeout check triggers a false positive from cppcheck
-     353             :         // cppcheck-suppress unsignedLessThanZero
-     354           0 :         if(this->hal->millis() - start >= this->spiConfig.timeout) {
-     355             :           RADIOLIB_DEBUG_BASIC_PRINTLN("GPIO pre-transfer timeout, is it connected?");
-     356             :           #if !RADIOLIB_STATIC_ONLY
-     357           0 :             delete[] buffOut;
-     358             :           #endif
-     359           0 :           return(RADIOLIB_ERR_SPI_CMD_TIMEOUT);
-     360             :         }
-     361             :       
-     362             :       }
-     363             :     }
-     364             :   }
-     365             : 
-     366             :   // prepare the input buffer
-     367             :   #if RADIOLIB_STATIC_ONLY
-     368             :     uint8_t buffIn[RADIOLIB_STATIC_ARRAY_SIZE];
-     369             :   #else
-     370         423 :     uint8_t* buffIn = new uint8_t[buffLen];
-     371             :   #endif
-     372             : 
-     373             :   // do the transfer
-     374         423 :   this->hal->spiBeginTransaction();
-     375         423 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelLow);
-     376         423 :   this->hal->spiTransfer(buffOut, buffLen, buffIn);
-     377         423 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelHigh);
-     378         423 :   this->hal->spiEndTransaction();
-     379             : 
-     380             :   // wait for GPIO to go high and then low
-     381         423 :   if(waitForGpio) {
-     382         423 :     if(this->gpioPin == RADIOLIB_NC) {
-     383           0 :       this->hal->delay(1);
-     384             :     } else {
-     385         423 :       this->hal->delayMicroseconds(1);
-     386         423 :       RadioLibTime_t start = this->hal->millis();
-     387         423 :       while(this->hal->digitalRead(this->gpioPin)) {
-     388           0 :         this->hal->yield();
-     389             :         
-     390             :         // this timeout check triggers a false positive from cppcheck
-     391             :         // cppcheck-suppress unsignedLessThanZero
-     392           0 :         if(this->hal->millis() - start >= this->spiConfig.timeout) {
-     393             :           RADIOLIB_DEBUG_BASIC_PRINTLN("GPIO post-transfer timeout, is it connected?");
-     394             :           #if !RADIOLIB_STATIC_ONLY
-     395           0 :             delete[] buffOut;
-     396           0 :             delete[] buffIn;
-     397             :           #endif
-     398           0 :           return(RADIOLIB_ERR_SPI_CMD_TIMEOUT);
-     399             :         }
-     400             :       
-     401             :       }
-     402             :     }
-     403             :   }
-     404             : 
-     405             :   // parse status
-     406         423 :   int16_t state = RADIOLIB_ERR_NONE;
-     407         423 :   if((this->spiConfig.parseStatusCb != nullptr) && (numBytes > 0)) {
-     408           0 :     state = this->spiConfig.parseStatusCb(buffIn[this->spiConfig.statusPos]);
-     409             :   }
-     410             :   
-     411             :   // copy the data
-     412         423 :   if(!write) {
-     413             :     // skip the status bytes if present
-     414         418 :     memcpy(dataIn, &buffIn[cmdLen + (this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_STATUS] / 8)], numBytes);
-     415             :   }
-     416             : 
-     417             :   // print debug information
-     418             :   #if RADIOLIB_DEBUG_SPI
-     419             :     // print command byte(s)
-     420             :     RADIOLIB_DEBUG_SPI_PRINT("CMD");
-     421             :     if(write) {
-     422             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("W\t");
-     423             :     } else {
-     424             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("R\t");
-     425             :     }
-     426             :     size_t n = 0;
-     427             :     for(; n < cmdLen; n++) {
-     428             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("%X\t", cmd[n]);
-     429             :     }
-     430             :     RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG();
-     431             : 
-     432             :     // print data bytes
-     433             :     RADIOLIB_DEBUG_SPI_PRINT("SI\t");
-     434             :     for(n = 0; n < cmdLen; n++) {
-     435             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("\t");
-     436             :     }
-     437             :     for(; n < buffLen; n++) {
-     438             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("%X\t", buffOut[n]);
-     439             :     }
-     440             :     RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG();
-     441             :     RADIOLIB_DEBUG_SPI_PRINT("SO\t");
-     442             :     for(n = 0; n < buffLen; n++) {
-     443             :       RADIOLIB_DEBUG_SPI_PRINT_NOTAG("%X\t", buffIn[n]);
-     444             :     }
-     445             :     RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG();
-     446             :   #endif
-     447             : 
-     448             :   #if !RADIOLIB_STATIC_ONLY
-     449         423 :     delete[] buffOut;
-     450         423 :     delete[] buffIn;
-     451             :   #endif
-     452             : 
-     453         423 :   return(state);
-     454             : }
-     455             : 
-     456           0 : void Module::waitForMicroseconds(RadioLibTime_t start, RadioLibTime_t len) {
-     457             :   #if RADIOLIB_INTERRUPT_TIMING
-     458             :   (void)start;
-     459             :   if((this->TimerSetupCb != nullptr) && (len != this->prevTimingLen)) {
-     460             :     prevTimingLen = len;
-     461             :     this->TimerSetupCb(len);
-     462             :   }
-     463             :   this->TimerFlag = false;
-     464             :   while(!this->TimerFlag) {
-     465             :     this->hal->yield();
-     466             :   }
-     467             :   #else
-     468           0 :    while(this->hal->micros() - start < len) {
-     469           0 :     this->hal->yield();
-     470             :   }
-     471             :   #endif
-     472           0 : }
-     473             : 
-     474             : #if RADIOLIB_DEBUG
-     475             : void Module::regdump(const char* level, uint16_t start, size_t len) {
-     476             :   #if RADIOLIB_STATIC_ONLY
-     477             :     uint8_t buff[RADIOLIB_STATIC_ARRAY_SIZE];
-     478             :   #else
-     479             :     uint8_t* buff = new uint8_t[len];
-     480             :   #endif
-     481             :   SPIreadRegisterBurst(start, len, buff);
-     482             :   rlb_hexdump(level, buff, len, start);
-     483             :   #if !RADIOLIB_STATIC_ONLY
-     484             :     delete[] buff;
-     485             :   #endif
-     486             : }
-     487             : #endif
-     488             : 
-     489           0 : void Module::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
-     490             :   // This can be on the stack, setRfSwitchTable copies the contents
-     491           0 :   const uint32_t pins[] = {
-     492             :     rxEn, txEn, RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC,
-     493           0 :   };
-     494             :   
-     495             :   // This must be static, since setRfSwitchTable stores a reference.
-     496             :   static const RfSwitchMode_t table[] = {
-     497           0 :     { MODE_IDLE,  {this->hal->GpioLevelLow,  this->hal->GpioLevelLow} },
-     498           0 :     { MODE_RX,    {this->hal->GpioLevelHigh, this->hal->GpioLevelLow} },
-     499           0 :     { MODE_TX,    {this->hal->GpioLevelLow,  this->hal->GpioLevelHigh} },
-     500             :     END_OF_MODE_TABLE,
-     501           0 :   };
-     502           0 :   setRfSwitchTable(pins, table);
-     503           0 : }
-     504             : 
-     505           0 : void Module::setRfSwitchTable(const uint32_t (&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[]) {
-     506           0 :   memcpy(this->rfSwitchPins, pins, sizeof(this->rfSwitchPins));
-     507           0 :   this->rfSwitchTable = table;
-     508           0 :   for(size_t i = 0; i < RFSWITCH_MAX_PINS; i++) {
-     509           0 :     this->hal->pinMode(pins[i], this->hal->GpioModeOutput);
-     510             :   }
-     511           0 : }
-     512             : 
-     513           0 : const Module::RfSwitchMode_t *Module::findRfSwitchMode(uint8_t mode) const {
-     514           0 :   const RfSwitchMode_t *row = this->rfSwitchTable;
-     515           0 :   while(row && row->mode != MODE_END_OF_TABLE) {
-     516           0 :     if(row->mode == mode) {
-     517           0 :       return row;
-     518             :     }
-     519           0 :     ++row;
-     520             :   }
-     521           0 :   return nullptr;
-     522             : }
-     523             : 
-     524           0 : void Module::setRfSwitchState(uint8_t mode) {
-     525           0 :   const RfSwitchMode_t *row = findRfSwitchMode(mode);
-     526           0 :   if(!row) {
-     527             :     // RF switch control is disabled or does not have this mode
-     528           0 :     return;
-     529             :   }
-     530             : 
-     531             :   // set pins
-     532           0 :   const uint32_t *value = &row->values[0];
-     533           0 :   for(size_t i = 0; i < RFSWITCH_MAX_PINS; i++) {
-     534           0 :     uint32_t pin = this->rfSwitchPins[i];
-     535           0 :     if(!(pin & RFSWITCH_PIN_FLAG)) {
-     536           0 :       this->hal->digitalWrite(pin, *value);
-     537             :     }
-     538           0 :     ++value;
-     539             :   }
-     540             : }
-
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/index-sort-f.html b/coverage/src/index-sort-f.html deleted file mode 100644 index 3aaade82..00000000 --- a/coverage/src/index-sort-f.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - src - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - srcHitTotalCoverage
Test:lcov.infoLines:11223847.1 %
Date:2025-02-17 17:37:38Functions:103033.3 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
Hal.cpp -
36.8%36.8%
-
36.8 %7 / 1914.3 %1 / 7
Module.cpp -
47.9%47.9%
-
47.9 %105 / 21939.1 %9 / 23
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/index-sort-l.html b/coverage/src/index-sort-l.html deleted file mode 100644 index e3f19c95..00000000 --- a/coverage/src/index-sort-l.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - src - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - srcHitTotalCoverage
Test:lcov.infoLines:11223847.1 %
Date:2025-02-17 17:37:38Functions:103033.3 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
Hal.cpp -
36.8%36.8%
-
36.8 %7 / 1914.3 %1 / 7
Module.cpp -
47.9%47.9%
-
47.9 %105 / 21939.1 %9 / 23
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/src/index.html b/coverage/src/index.html deleted file mode 100644 index ca91a41a..00000000 --- a/coverage/src/index.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - LCOV - lcov.info - src - - - - - - - - - - - - - - -
LCOV - code coverage report
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Current view:top level - srcHitTotalCoverage
Test:lcov.infoLines:11223847.1 %
Date:2025-02-17 17:37:38Functions:103033.3 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Filename Sort by nameLine Coverage Sort by line coverageFunctions Sort by function coverage
Hal.cpp -
36.8%36.8%
-
36.8 %7 / 1914.3 %1 / 7
Module.cpp -
47.9%47.9%
-
47.9 %105 / 21939.1 %9 / 23
-
-
- - - - -
Generated by: LCOV version 1.14
-
- - - diff --git a/coverage/updown.png b/coverage/updown.png deleted file mode 100644 index aa56a238b3e6c435265250f9266cd1b8caba0f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^AT}Qd8;}%R+`Ae`*?77*hG?8mPH5^{)z4*}Q$iB}huR`+ diff --git a/functions_func_s.html b/functions_func_s.html index 3d34a64a..726e2caa 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -168,7 +168,7 @@ $(document).ready(function(){initNavTree('functions_func_s.html',''); initResiza
  • setOokPeakThresholdDecrement() : RF69, SX127x
  • setOokPeakThresholdStep() : SX127x
  • setOokThresholdType() : RF69, SX127x
  • -
  • setOutputPower() : CC1101, LR1110, LR1120, nRF24, PhysicalLayer, RF69, Si4430, Si4431, Si4432, STM32WLx, SX1261, SX1262, SX1268, SX1272, SX1278, SX128x
  • +
  • setOutputPower() : CC1101, LR1110, LR1120, nRF24, PhysicalLayer, RF69, Si4430, Si4431, Si4432, STM32WLx, SX1261, SX1262, SX1268, SX1272, SX1278, SX128x
  • setPacketReceivedAction() : CC1101, LR11x0, nRF24, PhysicalLayer, RF69, Si443x, STM32WLx, SX126x, SX127x, SX128x
  • setPacketSentAction() : CC1101, LR11x0, nRF24, PhysicalLayer, RF69, Si443x, STM32WLx, SX126x, SX127x, SX128x
  • setPaConfig() : SX126x
  • diff --git a/functions_s.html b/functions_s.html index 70867832..4dccd073 100644 --- a/functions_s.html +++ b/functions_s.html @@ -174,7 +174,7 @@ $(document).ready(function(){initNavTree('functions_s.html',''); initResizable()
  • setOokPeakThresholdDecrement() : RF69, SX127x
  • setOokPeakThresholdStep() : SX127x
  • setOokThresholdType() : RF69, SX127x
  • -
  • setOutputPower() : CC1101, LR1110, LR1120, nRF24, PhysicalLayer, RF69, Si4430, Si4431, Si4432, STM32WLx, SX1261, SX1262, SX1268, SX1272, SX1278, SX128x
  • +
  • setOutputPower() : CC1101, LR1110, LR1120, nRF24, PhysicalLayer, RF69, Si4430, Si4431, Si4432, STM32WLx, SX1261, SX1262, SX1268, SX1272, SX1278, SX128x
  • setPacketReceivedAction() : CC1101, LR11x0, nRF24, PhysicalLayer, RF69, Si443x, STM32WLx, SX126x, SX127x, SX128x
  • setPacketSentAction() : CC1101, LR11x0, nRF24, PhysicalLayer, RF69, Si443x, STM32WLx, SX126x, SX127x, SX128x
  • setPaConfig() : SX126x
  • diff --git a/navtreeindex3.js b/navtreeindex3.js index 01d2ef40..2fa4fa7d 100644 --- a/navtreeindex3.js +++ b/navtreeindex3.js @@ -138,7 +138,6 @@ var NAVTREEINDEX3 = "class_s_x126x.html#afd3113858966e878e9c67a1e710bd586":[3,0,79,47], "class_s_x126x.html#afdd901c5eac2ca8773d0977e2c493317":[3,0,79,18], "class_s_x1272.html":[3,0,80], -"class_s_x1272.html#a03f7073d710f18aad79b7d46f2fda659":[3,0,80,24], "class_s_x1272.html#a0978cc9ecbb7b9d3a017c133506e57ac":[3,0,80,12], "class_s_x1272.html#a0cc8eeb00241031796fc73b08711469b":[3,0,80,13], "class_s_x1272.html#a171656d12a9909bbb04fc81be86ec2a6":[3,0,80,10], @@ -156,6 +155,7 @@ var NAVTREEINDEX3 = "class_s_x1272.html#a91aca64124321c07a67f26b3c6934aea":[3,0,80,18], "class_s_x1272.html#a960913438feccad4c1913a9222384a5f":[3,0,80,15], "class_s_x1272.html#a9ffe467a6baaeaa079e02c3f1f43f626":[3,0,80,0], +"class_s_x1272.html#aac001c32a61d4eec0a49c472cac9ebc6":[3,0,80,24], "class_s_x1272.html#ab5c9a79d72996c3d793cee812b0aded5":[3,0,80,14], "class_s_x1272.html#abb4bbfe8acc6026c833d267d78417b63":[3,0,80,1], "class_s_x1272.html#abd912314a977f92c464d36d862329ffc":[3,0,80,16], @@ -205,9 +205,9 @@ var NAVTREEINDEX3 = "class_s_x1278.html#aa57b713988cfa224a6db2ff325052931":[3,0,84,21], "class_s_x1278.html#aac7b585c4a616a1cd6f89a8b46a7d9f8":[3,0,84,5], "class_s_x1278.html#ab17357254073baeb7490c98faf10d991":[3,0,84,10], +"class_s_x1278.html#ab206a23ac93f5687ba5f6741fa690130":[3,0,84,24], "class_s_x1278.html#ac0be7586b8e40355bbd29d78ae9941d1":[3,0,84,16], "class_s_x1278.html#ac6146c2a3d0a35662312165325fd97f8":[3,0,84,6], -"class_s_x1278.html#aca58a6c2e8fcef6414fdf3bc1eb62082":[3,0,84,24], "class_s_x1278.html#adb4d95d3b2798cf8ea94890ae71dcc59":[3,0,84,20], "class_s_x1278.html#ae02adcde8c2978c0d1b157729dd5df1e":[3,0,84,1], "class_s_x1278.html#af70c22fe38bc3b944070ccbc083fed08":[3,0,84,25], diff --git a/search/all_10.js b/search/all_10.js index 7b2ede1b..705b4d74 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -79,7 +79,7 @@ var searchData= ['setookpeakthresholddecrement_76',['setookpeakthresholddecrement',['../class_s_x127x.html#aac2f43d70b5f94e49e09b4c9f082f46d',1,'SX127x::setOokPeakThresholdDecrement()'],['../class_r_f69.html#a434420f2def6c383608223105469fda1',1,'RF69::setOokPeakThresholdDecrement()']]], ['setookpeakthresholdstep_77',['setOokPeakThresholdStep',['../class_s_x127x.html#a48ca43e6aad02815fa1507f0f0831c54',1,'SX127x']]], ['setookthresholdtype_78',['setookthresholdtype',['../class_r_f69.html#a219a046c10ddcc0a787ad19346ecad6a',1,'RF69::setOokThresholdType()'],['../class_s_x127x.html#a8b93142202167270db109d18b743c744',1,'SX127x::setOokThresholdType()']]], - ['setoutputpower_79',['setoutputpower',['../class_c_c1101.html#a5d6dce30fc7da668975b6da663784cdf',1,'CC1101::setOutputPower()'],['../class_l_r1110.html#a65c08f0475f888537e55401b75e58b23',1,'LR1110::setOutputPower(int8_t power) override'],['../class_l_r1110.html#ae4eaaa6411bb1eeb131613fb3f43e5d1',1,'LR1110::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1120.html#a1b1321eb695e4a6b583074bb92c33193',1,'LR1120::setOutputPower(int8_t power) override'],['../class_l_r1120.html#a2e2ea0a2f6d3a8d81e0f2be35848bbc7',1,'LR1120::setOutputPower(int8_t power, bool forceHighPower)'],['../classn_r_f24.html#a4fa66ce5fb6d7b22bbb439c2f9103bf3',1,'nRF24::setOutputPower()'],['../class_r_f69.html#a721094611fa375e73bd0332ab2d7d113',1,'RF69::setOutputPower()'],['../class_si4430.html#ab1303e014a4b8d2307a2b1deb061fdeb',1,'Si4430::setOutputPower()'],['../class_si4431.html#ad1538dbe67ed5d3682591d1d780ab0e9',1,'Si4431::setOutputPower()'],['../class_si4432.html#a5e3017bce6d66d35b867e7878d108c68',1,'Si4432::setOutputPower()'],['../class_s_t_m32_w_lx.html#a9afbde1c466907598974cc3923784c5b',1,'STM32WLx::setOutputPower()'],['../class_s_x1262.html#aa455a7f0e69abdcca55cf35388d9dc52',1,'SX1262::setOutputPower()'],['../class_s_x1268.html#a6b6adaee1c8d76c3d766225298d84709',1,'SX1268::setOutputPower()'],['../class_s_x1272.html#aec51f08c0902145ff5f11e27e7cab638',1,'SX1272::setOutputPower(int8_t power) override'],['../class_s_x1272.html#a03f7073d710f18aad79b7d46f2fda659',1,'SX1272::setOutputPower(int8_t power, bool useRfo)'],['../class_s_x1278.html#a69abc18e7fa0055e6b80024e8cde7db4',1,'SX1278::setOutputPower(int8_t power) override'],['../class_s_x1278.html#aca58a6c2e8fcef6414fdf3bc1eb62082',1,'SX1278::setOutputPower(int8_t power, bool useRfo)'],['../class_s_x128x.html#a1bc3372c47a4e3c81ef15bee448ba6b6',1,'SX128x::setOutputPower()'],['../class_physical_layer.html#ad2286dc78dbf8e3084f38e9159b99ae5',1,'PhysicalLayer::setOutputPower()'],['../class_s_x1261.html#a3d197bb8a301f3594c7bfa1c9375aef1',1,'SX1261::setOutputPower()']]], + ['setoutputpower_79',['setoutputpower',['../class_c_c1101.html#a5d6dce30fc7da668975b6da663784cdf',1,'CC1101::setOutputPower()'],['../class_l_r1110.html#a65c08f0475f888537e55401b75e58b23',1,'LR1110::setOutputPower(int8_t power) override'],['../class_l_r1110.html#ae4eaaa6411bb1eeb131613fb3f43e5d1',1,'LR1110::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1120.html#a1b1321eb695e4a6b583074bb92c33193',1,'LR1120::setOutputPower(int8_t power) override'],['../class_l_r1120.html#a2e2ea0a2f6d3a8d81e0f2be35848bbc7',1,'LR1120::setOutputPower(int8_t power, bool forceHighPower)'],['../classn_r_f24.html#a4fa66ce5fb6d7b22bbb439c2f9103bf3',1,'nRF24::setOutputPower()'],['../class_r_f69.html#a721094611fa375e73bd0332ab2d7d113',1,'RF69::setOutputPower()'],['../class_si4430.html#ab1303e014a4b8d2307a2b1deb061fdeb',1,'Si4430::setOutputPower()'],['../class_si4431.html#ad1538dbe67ed5d3682591d1d780ab0e9',1,'Si4431::setOutputPower()'],['../class_si4432.html#a5e3017bce6d66d35b867e7878d108c68',1,'Si4432::setOutputPower()'],['../class_s_t_m32_w_lx.html#a9afbde1c466907598974cc3923784c5b',1,'STM32WLx::setOutputPower()'],['../class_s_x1262.html#aa455a7f0e69abdcca55cf35388d9dc52',1,'SX1262::setOutputPower()'],['../class_s_x1268.html#a6b6adaee1c8d76c3d766225298d84709',1,'SX1268::setOutputPower()'],['../class_s_x1272.html#aec51f08c0902145ff5f11e27e7cab638',1,'SX1272::setOutputPower(int8_t power) override'],['../class_s_x1272.html#aac001c32a61d4eec0a49c472cac9ebc6',1,'SX1272::setOutputPower(int8_t power, bool forceRfo)'],['../class_s_x1278.html#a69abc18e7fa0055e6b80024e8cde7db4',1,'SX1278::setOutputPower(int8_t power) override'],['../class_s_x1278.html#ab206a23ac93f5687ba5f6741fa690130',1,'SX1278::setOutputPower(int8_t power, bool forceRfo)'],['../class_s_x128x.html#a1bc3372c47a4e3c81ef15bee448ba6b6',1,'SX128x::setOutputPower()'],['../class_physical_layer.html#ad2286dc78dbf8e3084f38e9159b99ae5',1,'PhysicalLayer::setOutputPower()'],['../class_s_x1261.html#a3d197bb8a301f3594c7bfa1c9375aef1',1,'SX1261::setOutputPower()']]], ['setpacketreceivedaction_80',['setpacketreceivedaction',['../class_s_t_m32_w_lx.html#ad23dafdeb21b97165be74ef8f093866c',1,'STM32WLx::setPacketReceivedAction()'],['../class_physical_layer.html#aec928bb26f65752aa20cd236fbabb95c',1,'PhysicalLayer::setPacketReceivedAction()'],['../class_s_x128x.html#ad98c4526ef971f9aadb30e351a37eaf9',1,'SX128x::setPacketReceivedAction()'],['../class_s_x127x.html#ae236a467095fb5364d0fc4a98d85f96e',1,'SX127x::setPacketReceivedAction()'],['../class_s_x126x.html#a7603aa60ae8d975eb262a4b7e2aed1d0',1,'SX126x::setPacketReceivedAction()'],['../class_si443x.html#a0e098ea9aa3945f0c38f59efe43b147e',1,'Si443x::setPacketReceivedAction()'],['../class_r_f69.html#a74962c069e08890ac9566d48634c778e',1,'RF69::setPacketReceivedAction()'],['../classn_r_f24.html#a60df9afa489eabe3a3ca193ab7709165',1,'nRF24::setPacketReceivedAction()'],['../class_l_r11x0.html#ac2a8ece736198c966e3870dac09f4e87',1,'LR11x0::setPacketReceivedAction()'],['../class_c_c1101.html#a29a16e8ed85432c6fae8d9e45399de6e',1,'CC1101::setPacketReceivedAction(void(*func)(void)) override']]], ['setpacketsentaction_81',['setpacketsentaction',['../class_c_c1101.html#a336999da23e554073a9fa628131883f5',1,'CC1101::setPacketSentAction()'],['../class_l_r11x0.html#a92299e41f839590008b4e344776838a1',1,'LR11x0::setPacketSentAction()'],['../classn_r_f24.html#a26b5f873db167733df143a0608eea3ac',1,'nRF24::setPacketSentAction()'],['../class_r_f69.html#a97603856caada65676ff4b11630c7f72',1,'RF69::setPacketSentAction()'],['../class_si443x.html#af2d36121ca94736ef3ecb4c09aded753',1,'Si443x::setPacketSentAction()'],['../class_s_t_m32_w_lx.html#a7c0e3aef03f0b6834d0465d8f8568c32',1,'STM32WLx::setPacketSentAction()'],['../class_s_x126x.html#ac79f7ebab97ae91fff6933be3207c873',1,'SX126x::setPacketSentAction()'],['../class_s_x127x.html#a3530e8e19cfe4d96fe49ca4e6386b099',1,'SX127x::setPacketSentAction()'],['../class_s_x128x.html#a1e6f938ce715dad9a6609bf56626a50d',1,'SX128x::setPacketSentAction()'],['../class_physical_layer.html#a32b512b34f6575b2109ae3c3f35d1369',1,'PhysicalLayer::setPacketSentAction()']]], ['setpaconfig_82',['setPaConfig',['../class_s_x126x.html#a1623e7d5450c97ca092913ad79d62208',1,'SX126x']]], diff --git a/search/functions_f.js b/search/functions_f.js index 28728b16..87856e13 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -73,7 +73,7 @@ var searchData= ['setookpeakthresholddecrement_70',['setookpeakthresholddecrement',['../class_r_f69.html#a434420f2def6c383608223105469fda1',1,'RF69::setOokPeakThresholdDecrement()'],['../class_s_x127x.html#aac2f43d70b5f94e49e09b4c9f082f46d',1,'SX127x::setOokPeakThresholdDecrement(uint8_t value)']]], ['setookpeakthresholdstep_71',['setOokPeakThresholdStep',['../class_s_x127x.html#a48ca43e6aad02815fa1507f0f0831c54',1,'SX127x']]], ['setookthresholdtype_72',['setookthresholdtype',['../class_r_f69.html#a219a046c10ddcc0a787ad19346ecad6a',1,'RF69::setOokThresholdType()'],['../class_s_x127x.html#a8b93142202167270db109d18b743c744',1,'SX127x::setOokThresholdType()']]], - ['setoutputpower_73',['setoutputpower',['../class_s_t_m32_w_lx.html#a9afbde1c466907598974cc3923784c5b',1,'STM32WLx::setOutputPower()'],['../class_physical_layer.html#ad2286dc78dbf8e3084f38e9159b99ae5',1,'PhysicalLayer::setOutputPower()'],['../class_s_x128x.html#a1bc3372c47a4e3c81ef15bee448ba6b6',1,'SX128x::setOutputPower()'],['../class_s_x1278.html#aca58a6c2e8fcef6414fdf3bc1eb62082',1,'SX1278::setOutputPower(int8_t power, bool useRfo)'],['../class_s_x1278.html#a69abc18e7fa0055e6b80024e8cde7db4',1,'SX1278::setOutputPower(int8_t power) override'],['../class_s_x1272.html#a03f7073d710f18aad79b7d46f2fda659',1,'SX1272::setOutputPower(int8_t power, bool useRfo)'],['../class_s_x1272.html#aec51f08c0902145ff5f11e27e7cab638',1,'SX1272::setOutputPower(int8_t power) override'],['../class_s_x1268.html#a6b6adaee1c8d76c3d766225298d84709',1,'SX1268::setOutputPower()'],['../class_s_x1262.html#aa455a7f0e69abdcca55cf35388d9dc52',1,'SX1262::setOutputPower()'],['../class_s_x1261.html#a3d197bb8a301f3594c7bfa1c9375aef1',1,'SX1261::setOutputPower()'],['../class_si4432.html#a5e3017bce6d66d35b867e7878d108c68',1,'Si4432::setOutputPower()'],['../class_si4431.html#ad1538dbe67ed5d3682591d1d780ab0e9',1,'Si4431::setOutputPower()'],['../class_si4430.html#ab1303e014a4b8d2307a2b1deb061fdeb',1,'Si4430::setOutputPower()'],['../class_r_f69.html#a721094611fa375e73bd0332ab2d7d113',1,'RF69::setOutputPower()'],['../classn_r_f24.html#a4fa66ce5fb6d7b22bbb439c2f9103bf3',1,'nRF24::setOutputPower()'],['../class_l_r1120.html#a2e2ea0a2f6d3a8d81e0f2be35848bbc7',1,'LR1120::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1120.html#a1b1321eb695e4a6b583074bb92c33193',1,'LR1120::setOutputPower(int8_t power) override'],['../class_l_r1110.html#ae4eaaa6411bb1eeb131613fb3f43e5d1',1,'LR1110::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1110.html#a65c08f0475f888537e55401b75e58b23',1,'LR1110::setOutputPower(int8_t power) override'],['../class_c_c1101.html#a5d6dce30fc7da668975b6da663784cdf',1,'CC1101::setOutputPower()']]], + ['setoutputpower_73',['setoutputpower',['../class_s_t_m32_w_lx.html#a9afbde1c466907598974cc3923784c5b',1,'STM32WLx::setOutputPower()'],['../class_physical_layer.html#ad2286dc78dbf8e3084f38e9159b99ae5',1,'PhysicalLayer::setOutputPower()'],['../class_s_x128x.html#a1bc3372c47a4e3c81ef15bee448ba6b6',1,'SX128x::setOutputPower()'],['../class_s_x1278.html#ab206a23ac93f5687ba5f6741fa690130',1,'SX1278::setOutputPower(int8_t power, bool forceRfo)'],['../class_s_x1278.html#a69abc18e7fa0055e6b80024e8cde7db4',1,'SX1278::setOutputPower(int8_t power) override'],['../class_s_x1272.html#aac001c32a61d4eec0a49c472cac9ebc6',1,'SX1272::setOutputPower(int8_t power, bool forceRfo)'],['../class_s_x1272.html#aec51f08c0902145ff5f11e27e7cab638',1,'SX1272::setOutputPower(int8_t power) override'],['../class_s_x1268.html#a6b6adaee1c8d76c3d766225298d84709',1,'SX1268::setOutputPower()'],['../class_s_x1262.html#aa455a7f0e69abdcca55cf35388d9dc52',1,'SX1262::setOutputPower()'],['../class_s_x1261.html#a3d197bb8a301f3594c7bfa1c9375aef1',1,'SX1261::setOutputPower()'],['../class_si4432.html#a5e3017bce6d66d35b867e7878d108c68',1,'Si4432::setOutputPower()'],['../class_si4431.html#ad1538dbe67ed5d3682591d1d780ab0e9',1,'Si4431::setOutputPower()'],['../class_si4430.html#ab1303e014a4b8d2307a2b1deb061fdeb',1,'Si4430::setOutputPower()'],['../class_r_f69.html#a721094611fa375e73bd0332ab2d7d113',1,'RF69::setOutputPower()'],['../classn_r_f24.html#a4fa66ce5fb6d7b22bbb439c2f9103bf3',1,'nRF24::setOutputPower()'],['../class_l_r1120.html#a2e2ea0a2f6d3a8d81e0f2be35848bbc7',1,'LR1120::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1120.html#a1b1321eb695e4a6b583074bb92c33193',1,'LR1120::setOutputPower(int8_t power) override'],['../class_l_r1110.html#ae4eaaa6411bb1eeb131613fb3f43e5d1',1,'LR1110::setOutputPower(int8_t power, bool forceHighPower)'],['../class_l_r1110.html#a65c08f0475f888537e55401b75e58b23',1,'LR1110::setOutputPower(int8_t power) override'],['../class_c_c1101.html#a5d6dce30fc7da668975b6da663784cdf',1,'CC1101::setOutputPower()']]], ['setpacketreceivedaction_74',['setpacketreceivedaction',['../class_physical_layer.html#aec928bb26f65752aa20cd236fbabb95c',1,'PhysicalLayer::setPacketReceivedAction()'],['../class_s_x128x.html#ad98c4526ef971f9aadb30e351a37eaf9',1,'SX128x::setPacketReceivedAction()'],['../class_s_x127x.html#ae236a467095fb5364d0fc4a98d85f96e',1,'SX127x::setPacketReceivedAction()'],['../class_s_x126x.html#a7603aa60ae8d975eb262a4b7e2aed1d0',1,'SX126x::setPacketReceivedAction()'],['../class_s_t_m32_w_lx.html#ad23dafdeb21b97165be74ef8f093866c',1,'STM32WLx::setPacketReceivedAction()'],['../class_r_f69.html#a74962c069e08890ac9566d48634c778e',1,'RF69::setPacketReceivedAction()'],['../class_si443x.html#a0e098ea9aa3945f0c38f59efe43b147e',1,'Si443x::setPacketReceivedAction()'],['../class_c_c1101.html#a29a16e8ed85432c6fae8d9e45399de6e',1,'CC1101::setPacketReceivedAction()'],['../classn_r_f24.html#a60df9afa489eabe3a3ca193ab7709165',1,'nRF24::setPacketReceivedAction()'],['../class_l_r11x0.html#ac2a8ece736198c966e3870dac09f4e87',1,'LR11x0::setPacketReceivedAction(void(*func)(void)) override']]], ['setpacketsentaction_75',['setpacketsentaction',['../class_l_r11x0.html#a92299e41f839590008b4e344776838a1',1,'LR11x0::setPacketSentAction()'],['../classn_r_f24.html#a26b5f873db167733df143a0608eea3ac',1,'nRF24::setPacketSentAction()'],['../class_r_f69.html#a97603856caada65676ff4b11630c7f72',1,'RF69::setPacketSentAction()'],['../class_si443x.html#af2d36121ca94736ef3ecb4c09aded753',1,'Si443x::setPacketSentAction()'],['../class_s_t_m32_w_lx.html#a7c0e3aef03f0b6834d0465d8f8568c32',1,'STM32WLx::setPacketSentAction()'],['../class_s_x126x.html#ac79f7ebab97ae91fff6933be3207c873',1,'SX126x::setPacketSentAction()'],['../class_s_x127x.html#a3530e8e19cfe4d96fe49ca4e6386b099',1,'SX127x::setPacketSentAction()'],['../class_s_x128x.html#a1e6f938ce715dad9a6609bf56626a50d',1,'SX128x::setPacketSentAction()'],['../class_physical_layer.html#a32b512b34f6575b2109ae3c3f35d1369',1,'PhysicalLayer::setPacketSentAction()'],['../class_c_c1101.html#a336999da23e554073a9fa628131883f5',1,'CC1101::setPacketSentAction()']]], ['setpaconfig_76',['setPaConfig',['../class_s_x126x.html#a1623e7d5450c97ca092913ad79d62208',1,'SX126x']]],