From d6138b8a4d4a70cb040c45a15ccd42ee570477a9 Mon Sep 17 00:00:00 2001 From: jgromes Date: Tue, 11 Feb 2025 13:29:10 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=20e0874?= =?UTF-8?q?49c0b451170c4c4880a910d0b1338f6cf95=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _build_opt_8h_source.html | 868 +++++++++--------- 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 35 files changed, 436 insertions(+), 4967 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/_build_opt_8h_source.html b/_build_opt_8h_source.html index 3b87e5a3..44ebce42 100644 --- a/_build_opt_8h_source.html +++ b/_build_opt_8h_source.html @@ -218,475 +218,479 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
118 //#define RADIOLIB_CLOCK_DRIFT_MS (0)
119#endif
120
-
121#if ARDUINO >= 100
-
122 // Arduino build
-
123 #include "Arduino.h"
-
124 #define RADIOLIB_BUILD_ARDUINO
-
125#else
-
126 // generic build
-
127 #include <stdio.h>
-
128 #define RADIOLIB_BUILD_GENERIC
-
129#endif
-
130
-
131#if defined(RADIOLIB_BUILD_ARDUINO)
-
132/*
-
133 * Platform-specific configuration.
-
134 *
-
135 * RADIOLIB_PLATFORM - platform name, used in debugging to quickly check the correct platform is detected.
-
136 * RADIOLIB_NC - alias for unused pin, usually the largest possible value of uint32_t.
-
137 * RADIOLIB_DEFAULT_SPI - default SPIClass instance to use.
-
138 * RADIOLIB_NONVOLATILE - macro to place variable into program storage (usually Flash).
-
139 * RADIOLIB_NONVOLATILE_READ_BYTE - function/macro to read variables saved in program storage (usually Flash).
-
140 * RADIOLIB_TYPE_ALIAS - construct to create an alias for a type, usually via the `using` keyword.
-
141 * RADIOLIB_TONE_UNSUPPORTED - some platforms do not have tone()/noTone(), which is required for AFSK.
-
142 *
-
143 * Users may also specify their own configuration by uncommenting the RADIOLIB_CUSTOM_ARDUINO,
-
144 * and then specifying all platform parameters in the section below. This will override automatic
-
145 * platform detection.
-
146 */
-
147
-
148 // uncomment to enable custom platform definition
-
149 //#define RADIOLIB_CUSTOM_ARDUINO
-
150
-
151#if defined(RADIOLIB_CUSTOM_ARDUINO)
-
152 // name for your platform
-
153 #define RADIOLIB_PLATFORM "Custom"
+
121#if !defined(RADIOLIB_LINE_FEED)
+
122 #define RADIOLIB_LINE_FEED "\r\n"
+
123#endif
+
124
+
125#if ARDUINO >= 100
+
126 // Arduino build
+
127 #include "Arduino.h"
+
128 #define RADIOLIB_BUILD_ARDUINO
+
129#else
+
130 // generic build
+
131 #include <stdio.h>
+
132 #define RADIOLIB_BUILD_GENERIC
+
133#endif
+
134
+
135#if defined(RADIOLIB_BUILD_ARDUINO)
+
136/*
+
137 * Platform-specific configuration.
+
138 *
+
139 * RADIOLIB_PLATFORM - platform name, used in debugging to quickly check the correct platform is detected.
+
140 * RADIOLIB_NC - alias for unused pin, usually the largest possible value of uint32_t.
+
141 * RADIOLIB_DEFAULT_SPI - default SPIClass instance to use.
+
142 * RADIOLIB_NONVOLATILE - macro to place variable into program storage (usually Flash).
+
143 * RADIOLIB_NONVOLATILE_READ_BYTE - function/macro to read variables saved in program storage (usually Flash).
+
144 * RADIOLIB_TYPE_ALIAS - construct to create an alias for a type, usually via the `using` keyword.
+
145 * RADIOLIB_TONE_UNSUPPORTED - some platforms do not have tone()/noTone(), which is required for AFSK.
+
146 *
+
147 * Users may also specify their own configuration by uncommenting the RADIOLIB_CUSTOM_ARDUINO,
+
148 * and then specifying all platform parameters in the section below. This will override automatic
+
149 * platform detection.
+
150 */
+
151
+
152 // uncomment to enable custom platform definition
+
153 //#define RADIOLIB_CUSTOM_ARDUINO
154
-
155 // the following must be defined if the Arduino core does not support tone or yield function
-
156 //#define RADIOLIB_TONE_UNSUPPORTED
-
157 //#define RADIOLIB_YIELD_UNSUPPORTED
+
155#if defined(RADIOLIB_CUSTOM_ARDUINO)
+
156 // name for your platform
+
157 #define RADIOLIB_PLATFORM "Custom"
158
-
159 // in addition, the following macros may be defined if the Arduino core differs from the defaults
-
160 #define RADIOLIB_NC (0xFFFFFFFF)
-
161 #define RADIOLIB_DEFAULT_SPI SPI
-
162 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
-
163 #define RADIOLIB_NONVOLATILE PROGMEM
-
164 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
-
165 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
-
166 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
167
-
168 // you might also have to define these if the Arduino core has some uncommon pin mode/status types
-
169 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
-
170 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
-
171 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
-
172
-
173 // some of RadioLib drivers may be excluded, to prevent collisions with platforms (or to speed up build process)
-
174 // the following is a complete list of all possible exclusion macros, uncomment any of them to disable that driver
-
175 // NOTE: Some of the exclusion macros are dependent on each other. For example, it is not possible to exclude RF69
-
176 // while keeping SX1231 (because RF69 is the base class for SX1231). The dependency is always uni-directional,
-
177 // so excluding SX1231 and keeping RF69 is valid.
-
178 //#define RADIOLIB_EXCLUDE_CC1101 (1)
-
179 //#define RADIOLIB_EXCLUDE_NRF24 (1)
-
180 //#define RADIOLIB_EXCLUDE_RF69 (1)
-
181 //#define RADIOLIB_EXCLUDE_SX1231 (1) // dependent on RADIOLIB_EXCLUDE_RF69
-
182 //#define RADIOLIB_EXCLUDE_SI443X (1)
-
183 //#define RADIOLIB_EXCLUDE_RFM2X (1) // dependent on RADIOLIB_EXCLUDE_SI443X
-
184 //#define RADIOLIB_EXCLUDE_SX127X (1)
-
185 //#define RADIOLIB_EXCLUDE_SX126X (1)
-
186 //#define RADIOLIB_EXCLUDE_STM32WLX (1) // dependent on RADIOLIB_EXCLUDE_SX126X
-
187 //#define RADIOLIB_EXCLUDE_SX128X (1)
-
188 //#define RADIOLIB_EXCLUDE_AFSK (1)
-
189 //#define RADIOLIB_EXCLUDE_AX25 (1)
-
190 //#define RADIOLIB_EXCLUDE_HELLSCHREIBER (1)
-
191 //#define RADIOLIB_EXCLUDE_MORSE (1)
-
192 //#define RADIOLIB_EXCLUDE_RTTY (1)
-
193 //#define RADIOLIB_EXCLUDE_SSTV (1)
-
194 //#define RADIOLIB_EXCLUDE_DIRECT_RECEIVE (1)
-
195
-
196#elif defined(__AVR__) && !(defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(ARDUINO_ARCH_MEGAAVR))
-
197 // Arduino AVR boards (except for megaAVR) - Uno, Mega etc.
-
198 #define RADIOLIB_PLATFORM "Arduino AVR"
+
159 // the following must be defined if the Arduino core does not support tone or yield function
+
160 //#define RADIOLIB_TONE_UNSUPPORTED
+
161 //#define RADIOLIB_YIELD_UNSUPPORTED
+
162
+
163 // in addition, the following macros may be defined if the Arduino core differs from the defaults
+
164 #define RADIOLIB_NC (0xFFFFFFFF)
+
165 #define RADIOLIB_DEFAULT_SPI SPI
+
166 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
+
167 #define RADIOLIB_NONVOLATILE PROGMEM
+
168 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+
169 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
+
170 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
171
+
172 // you might also have to define these if the Arduino core has some uncommon pin mode/status types
+
173 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
+
174 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
+
175 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
176
+
177 // some of RadioLib drivers may be excluded, to prevent collisions with platforms (or to speed up build process)
+
178 // the following is a complete list of all possible exclusion macros, uncomment any of them to disable that driver
+
179 // NOTE: Some of the exclusion macros are dependent on each other. For example, it is not possible to exclude RF69
+
180 // while keeping SX1231 (because RF69 is the base class for SX1231). The dependency is always uni-directional,
+
181 // so excluding SX1231 and keeping RF69 is valid.
+
182 //#define RADIOLIB_EXCLUDE_CC1101 (1)
+
183 //#define RADIOLIB_EXCLUDE_NRF24 (1)
+
184 //#define RADIOLIB_EXCLUDE_RF69 (1)
+
185 //#define RADIOLIB_EXCLUDE_SX1231 (1) // dependent on RADIOLIB_EXCLUDE_RF69
+
186 //#define RADIOLIB_EXCLUDE_SI443X (1)
+
187 //#define RADIOLIB_EXCLUDE_RFM2X (1) // dependent on RADIOLIB_EXCLUDE_SI443X
+
188 //#define RADIOLIB_EXCLUDE_SX127X (1)
+
189 //#define RADIOLIB_EXCLUDE_SX126X (1)
+
190 //#define RADIOLIB_EXCLUDE_STM32WLX (1) // dependent on RADIOLIB_EXCLUDE_SX126X
+
191 //#define RADIOLIB_EXCLUDE_SX128X (1)
+
192 //#define RADIOLIB_EXCLUDE_AFSK (1)
+
193 //#define RADIOLIB_EXCLUDE_AX25 (1)
+
194 //#define RADIOLIB_EXCLUDE_HELLSCHREIBER (1)
+
195 //#define RADIOLIB_EXCLUDE_MORSE (1)
+
196 //#define RADIOLIB_EXCLUDE_RTTY (1)
+
197 //#define RADIOLIB_EXCLUDE_SSTV (1)
+
198 //#define RADIOLIB_EXCLUDE_DIRECT_RECEIVE (1)
199
-
200 #if !(defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
-
201 #define RADIOLIB_LOWEND_PLATFORM
-
202 #endif
+
200#elif defined(__AVR__) && !(defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(ARDUINO_ARCH_MEGAAVR))
+
201 // Arduino AVR boards (except for megaAVR) - Uno, Mega etc.
+
202 #define RADIOLIB_PLATFORM "Arduino AVR"
203
-
204#elif defined(ESP8266)
-
205 // ESP8266 boards
-
206 #define RADIOLIB_PLATFORM "ESP8266"
+
204 #if !(defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
+
205 #define RADIOLIB_LOWEND_PLATFORM
+
206 #endif
207
-
208#elif defined(ESP32) || defined(ARDUINO_ARCH_ESP32)
-
209 #define RADIOLIB_ESP32
-
210
-
211 // ESP32 boards
-
212 #define RADIOLIB_PLATFORM "ESP32"
-
213
-
214 // ESP32 doesn't support tone(), but it can be emulated via LED control peripheral
-
215 #define RADIOLIB_TONE_UNSUPPORTED
-
216 #define RADIOLIB_TONE_ESP32_CHANNEL (1)
-
217
-
218#elif defined(ARDUINO_ARCH_STM32)
-
219 // official STM32 Arduino core (https://github.com/stm32duino/Arduino_Core_STM32)
-
220 #define RADIOLIB_PLATFORM "Arduino STM32 (official)"
+
208#elif defined(ESP8266)
+
209 // ESP8266 boards
+
210 #define RADIOLIB_PLATFORM "ESP8266"
+
211
+
212#elif defined(ESP32) || defined(ARDUINO_ARCH_ESP32)
+
213 #define RADIOLIB_ESP32
+
214
+
215 // ESP32 boards
+
216 #define RADIOLIB_PLATFORM "ESP32"
+
217
+
218 // ESP32 doesn't support tone(), but it can be emulated via LED control peripheral
+
219 #define RADIOLIB_TONE_UNSUPPORTED
+
220 #define RADIOLIB_TONE_ESP32_CHANNEL (1)
221
-
222#elif defined(SAMD_SERIES)
-
223 // Adafruit SAMD boards (M0 and M4)
-
224 #define RADIOLIB_PLATFORM "Adafruit SAMD"
+
222#elif defined(ARDUINO_ARCH_STM32)
+
223 // official STM32 Arduino core (https://github.com/stm32duino/Arduino_Core_STM32)
+
224 #define RADIOLIB_PLATFORM "Arduino STM32 (official)"
225
-
226#elif defined(ARDUINO_ARCH_SAMD)
-
227 // Arduino SAMD (Zero, MKR, etc.)
-
228 #define RADIOLIB_PLATFORM "Arduino SAMD"
-
229 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
230 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
231 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
232
-
233#elif defined(__SAM3X8E__)
-
234 // Arduino Due
-
235 #define RADIOLIB_PLATFORM "Arduino Due"
-
236 #define RADIOLIB_TONE_UNSUPPORTED
-
237
-
238#elif (defined(NRF52832_XXAA) || defined(NRF52840_XXAA)) && !defined(ARDUINO_ARDUINO_NANO33BLE)
-
239 // Adafruit nRF52 boards
-
240 #define RADIOLIB_PLATFORM "Adafruit nRF52"
+
226#elif defined(SAMD_SERIES)
+
227 // Adafruit SAMD boards (M0 and M4)
+
228 #define RADIOLIB_PLATFORM "Adafruit SAMD"
+
229
+
230#elif defined(ARDUINO_ARCH_SAMD)
+
231 // Arduino SAMD (Zero, MKR, etc.)
+
232 #define RADIOLIB_PLATFORM "Arduino SAMD"
+
233 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
234 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
235 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
236
+
237#elif defined(__SAM3X8E__)
+
238 // Arduino Due
+
239 #define RADIOLIB_PLATFORM "Arduino Due"
+
240 #define RADIOLIB_TONE_UNSUPPORTED
241
-
242#elif defined(ARDUINO_ARC32_TOOLS)
-
243 // Intel Curie
-
244 #define RADIOLIB_PLATFORM "Intel Curie"
+
242#elif (defined(NRF52832_XXAA) || defined(NRF52840_XXAA)) && !defined(ARDUINO_ARDUINO_NANO33BLE)
+
243 // Adafruit nRF52 boards
+
244 #define RADIOLIB_PLATFORM "Adafruit nRF52"
245
-
246#elif defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(PORTDUINO)
-
247 // Arduino megaAVR boards - Uno Wifi Rev.2, Nano Every
-
248 #define RADIOLIB_PLATFORM "Arduino megaAVR"
-
249 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
250 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
251 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
252
-
253#elif defined(ARDUINO_ARCH_APOLLO3)
-
254 // Sparkfun Apollo3 boards
-
255 #define RADIOLIB_PLATFORM "Sparkfun Apollo3"
-
256 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (Arduino_PinMode)
-
257 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
258 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
259
-
260#elif defined(ARDUINO_ARDUINO_NANO33BLE)
-
261 // Arduino Nano 33 BLE
-
262 #define RADIOLIB_PLATFORM "Arduino Nano 33 BLE"
-
263 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
264 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
265 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
266
-
267 #if defined(ARDUINO_ARCH_MBED)
-
268 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
-
269 #define RADIOLIB_TONE_UNSUPPORTED
-
270 #define RADIOLIB_MBED_TONE_OVERRIDE
-
271 #endif
-
272
-
273#elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4) || defined(ARDUINO_PORTENTA_H7)
-
274 // Arduino Portenta H7
-
275 #define RADIOLIB_PLATFORM "Portenta H7"
-
276 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
277 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
278 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
279
-
280 #if defined(ARDUINO_ARCH_MBED)
-
281 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
-
282 #define RADIOLIB_TONE_UNSUPPORTED
-
283 #define RADIOLIB_MBED_TONE_OVERRIDE
-
284 #endif
-
285
-
286#elif defined(__STM32F4__) || defined(__STM32F1__)
-
287 // Arduino STM32 core by Roger Clark (https://github.com/rogerclarkmelbourne/Arduino_STM32)
-
288 #define RADIOLIB_PLATFORM "STM32duino (unofficial)"
-
289 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (WiringPinMode)
-
290 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (ExtIntTriggerMode)
-
291
-
292#elif defined(ARDUINO_ARCH_MEGAAVR)
-
293 // MegaCoreX by MCUdude (https://github.com/MCUdude/MegaCoreX)
-
294 #define RADIOLIB_PLATFORM "MegaCoreX"
+
246#elif defined(ARDUINO_ARC32_TOOLS)
+
247 // Intel Curie
+
248 #define RADIOLIB_PLATFORM "Intel Curie"
+
249
+
250#elif defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(PORTDUINO)
+
251 // Arduino megaAVR boards - Uno Wifi Rev.2, Nano Every
+
252 #define RADIOLIB_PLATFORM "Arduino megaAVR"
+
253 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
254 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
255 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
256
+
257#elif defined(ARDUINO_ARCH_APOLLO3)
+
258 // Sparkfun Apollo3 boards
+
259 #define RADIOLIB_PLATFORM "Sparkfun Apollo3"
+
260 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (Arduino_PinMode)
+
261 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
262 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
263
+
264#elif defined(ARDUINO_ARDUINO_NANO33BLE)
+
265 // Arduino Nano 33 BLE
+
266 #define RADIOLIB_PLATFORM "Arduino Nano 33 BLE"
+
267 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
268 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
269 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
270
+
271 #if defined(ARDUINO_ARCH_MBED)
+
272 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
+
273 #define RADIOLIB_TONE_UNSUPPORTED
+
274 #define RADIOLIB_MBED_TONE_OVERRIDE
+
275 #endif
+
276
+
277#elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4) || defined(ARDUINO_PORTENTA_H7)
+
278 // Arduino Portenta H7
+
279 #define RADIOLIB_PLATFORM "Portenta H7"
+
280 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
281 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
282 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
283
+
284 #if defined(ARDUINO_ARCH_MBED)
+
285 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
+
286 #define RADIOLIB_TONE_UNSUPPORTED
+
287 #define RADIOLIB_MBED_TONE_OVERRIDE
+
288 #endif
+
289
+
290#elif defined(__STM32F4__) || defined(__STM32F1__)
+
291 // Arduino STM32 core by Roger Clark (https://github.com/rogerclarkmelbourne/Arduino_STM32)
+
292 #define RADIOLIB_PLATFORM "STM32duino (unofficial)"
+
293 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (WiringPinMode)
+
294 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (ExtIntTriggerMode)
295
-
296#elif defined(ARDUINO_ARCH_MBED_RP2040)
-
297 // Raspberry Pi Pico (official mbed core)
-
298 #define RADIOLIB_PLATFORM "Raspberry Pi Pico"
-
299 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
300 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
301 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
302
-
303 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
-
304 #define RADIOLIB_TONE_UNSUPPORTED
-
305 #define RADIOLIB_MBED_TONE_OVERRIDE
+
296#elif defined(ARDUINO_ARCH_MEGAAVR)
+
297 // MegaCoreX by MCUdude (https://github.com/MCUdude/MegaCoreX)
+
298 #define RADIOLIB_PLATFORM "MegaCoreX"
+
299
+
300#elif defined(ARDUINO_ARCH_MBED_RP2040)
+
301 // Raspberry Pi Pico (official mbed core)
+
302 #define RADIOLIB_PLATFORM "Raspberry Pi Pico"
+
303 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
304 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
305 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
306
-
307#elif defined(ARDUINO_ARCH_RP2040)
-
308 // Raspberry Pi Pico (unofficial core)
-
309 #define RADIOLIB_PLATFORM "Raspberry Pi Pico (unofficial)"
-
310 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
311 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
312 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
313
-
314#elif defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X) || defined(DARDUINO_ARCH_ASR6601)
-
315 // CubeCell
-
316 #define RADIOLIB_PLATFORM "CubeCell"
-
317 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(1000000, MSBFIRST, SPI_MODE0) // see issue #709
-
318 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PINMODE)
-
319 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (IrqModes)
-
320
-
321 // CubeCell doesn't seem to define nullptr, let's do something like that now
-
322 #define nullptr NULL
-
323
-
324 // ... and also defines pinMode() as a macro, which is by far the stupidest thing I have seen on Arduino
-
325 #undef pinMode
-
326
-
327 // ... and uses an outdated GCC which does not support type aliases
-
328 #define RADIOLIB_TYPE_ALIAS(type, alias) typedef class type alias;
-
329
-
330 // ... and it also has no tone(). This platform was designed by an idiot.
-
331 #define RADIOLIB_TONE_UNSUPPORTED
-
332
-
333 // ... AND as the (hopefully) final nail in the coffin, IT F*CKING DEFINES YIELD() AS A MACRO THAT DOES NOTHING!!!
-
334 #define RADIOLIB_YIELD_UNSUPPORTED
-
335 #if defined(yield)
-
336 #undef yield
-
337 #endif
-
338
-
339#elif defined(RASPI)
-
340 // RaspiDuino framework (https://github.com/me-no-dev/RasPiArduino)
-
341 #define RADIOLIB_PLATFORM "RasPiArduino"
+
307 // Arduino mbed OS boards have a really bad tone implementation which will crash after a couple seconds
+
308 #define RADIOLIB_TONE_UNSUPPORTED
+
309 #define RADIOLIB_MBED_TONE_OVERRIDE
+
310
+
311#elif defined(ARDUINO_ARCH_RP2040)
+
312 // Raspberry Pi Pico (unofficial core)
+
313 #define RADIOLIB_PLATFORM "Raspberry Pi Pico (unofficial)"
+
314 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
315 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
316 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
317
+
318#elif defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X) || defined(DARDUINO_ARCH_ASR6601)
+
319 // CubeCell
+
320 #define RADIOLIB_PLATFORM "CubeCell"
+
321 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(1000000, MSBFIRST, SPI_MODE0) // see issue #709
+
322 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PINMODE)
+
323 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (IrqModes)
+
324
+
325 // CubeCell doesn't seem to define nullptr, let's do something like that now
+
326 #define nullptr NULL
+
327
+
328 // ... and also defines pinMode() as a macro, which is by far the stupidest thing I have seen on Arduino
+
329 #undef pinMode
+
330
+
331 // ... and uses an outdated GCC which does not support type aliases
+
332 #define RADIOLIB_TYPE_ALIAS(type, alias) typedef class type alias;
+
333
+
334 // ... and it also has no tone(). This platform was designed by an idiot.
+
335 #define RADIOLIB_TONE_UNSUPPORTED
+
336
+
337 // ... AND as the (hopefully) final nail in the coffin, IT F*CKING DEFINES YIELD() AS A MACRO THAT DOES NOTHING!!!
+
338 #define RADIOLIB_YIELD_UNSUPPORTED
+
339 #if defined(yield)
+
340 #undef yield
+
341 #endif
342
-
343 // let's start off easy - no tone on this platform, that can happen
-
344 #define RADIOLIB_TONE_UNSUPPORTED
-
345
-
346 // hmm, no yield either - weird on something like Raspberry PI, but sure, we can handle it
-
347 #define RADIOLIB_YIELD_UNSUPPORTED
-
348
-
349 // aight, getting to the juicy stuff - PGM_P seems missing, that's the first time
-
350 #define PGM_P const char *
-
351
-
352 // ... and for the grand finale, we have millis() and micros() DEFINED AS MACROS!
-
353 #if defined(millis)
-
354 #undef millis
-
355 inline RadioLibTime_t millis() { return((RadioLibTime_t)(STCV / 1000)); };
-
356 #endif
-
357
-
358 #if defined(micros)
-
359 #undef micros
-
360 inline RadioLibTime_t micros() { return((RadioLibTime_t)(STCV)); };
-
361 #endif
-
362
-
363#elif defined(TEENSYDUINO)
-
364 // Teensy
-
365 #define RADIOLIB_PLATFORM "Teensy"
+
343#elif defined(RASPI)
+
344 // RaspiDuino framework (https://github.com/me-no-dev/RasPiArduino)
+
345 #define RADIOLIB_PLATFORM "RasPiArduino"
+
346
+
347 // let's start off easy - no tone on this platform, that can happen
+
348 #define RADIOLIB_TONE_UNSUPPORTED
+
349
+
350 // hmm, no yield either - weird on something like Raspberry PI, but sure, we can handle it
+
351 #define RADIOLIB_YIELD_UNSUPPORTED
+
352
+
353 // aight, getting to the juicy stuff - PGM_P seems missing, that's the first time
+
354 #define PGM_P const char *
+
355
+
356 // ... and for the grand finale, we have millis() and micros() DEFINED AS MACROS!
+
357 #if defined(millis)
+
358 #undef millis
+
359 inline RadioLibTime_t millis() { return((RadioLibTime_t)(STCV / 1000)); };
+
360 #endif
+
361
+
362 #if defined(micros)
+
363 #undef micros
+
364 inline RadioLibTime_t micros() { return((RadioLibTime_t)(STCV)); };
+
365 #endif
366
-
367#elif defined(ARDUINO_ARCH_RENESAS)
-
368 // Arduino Renesas (UNO R4)
-
369 #define RADIOLIB_PLATFORM "Arduino Renesas (UNO R4)"
-
370 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
371 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
372 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
373
-
374#elif defined(ARDUINO_ARCH_SILABS)
-
375 // Silicon Labs Arduino
-
376 #define RADIOLIB_PLATFORM "Arduino Silicon Labs"
-
377 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
-
378 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
-
379 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
380
-
381#else
-
382 // other Arduino platforms not covered by the above list - this may or may not work
-
383 #define RADIOLIB_PLATFORM "Unknown Arduino"
-
384 #define RADIOLIB_UNKNOWN_PLATFORM
-
385
-
386#endif
-
387
-
388 // set the default values for all macros
-
389 // these will be applied if they were not defined above
-
390 #if !defined(RADIOLIB_NC)
-
391 #define RADIOLIB_NC (0xFFFFFFFF)
-
392 #endif
-
393
-
394 #if !defined(RADIOLIB_DEFAULT_SPI)
-
395 #define RADIOLIB_DEFAULT_SPI SPI
+
367#elif defined(TEENSYDUINO)
+
368 // Teensy
+
369 #define RADIOLIB_PLATFORM "Teensy"
+
370
+
371#elif defined(ARDUINO_ARCH_RENESAS)
+
372 // Arduino Renesas (UNO R4)
+
373 #define RADIOLIB_PLATFORM "Arduino Renesas (UNO R4)"
+
374 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
375 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
376 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
377
+
378#elif defined(ARDUINO_ARCH_SILABS)
+
379 // Silicon Labs Arduino
+
380 #define RADIOLIB_PLATFORM "Arduino Silicon Labs"
+
381 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+
382 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+
383 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
384
+
385#else
+
386 // other Arduino platforms not covered by the above list - this may or may not work
+
387 #define RADIOLIB_PLATFORM "Unknown Arduino"
+
388 #define RADIOLIB_UNKNOWN_PLATFORM
+
389
+
390#endif
+
391
+
392 // set the default values for all macros
+
393 // these will be applied if they were not defined above
+
394 #if !defined(RADIOLIB_NC)
+
395 #define RADIOLIB_NC (0xFFFFFFFF)
396 #endif
397
-
398 #if !defined(RADIOLIB_DEFAULT_SPI_SETTINGS)
-
399 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
+
398 #if !defined(RADIOLIB_DEFAULT_SPI)
+
399 #define RADIOLIB_DEFAULT_SPI SPI
400 #endif
401
-
402 #if !defined(RADIOLIB_NONVOLATILE)
-
403 #define RADIOLIB_NONVOLATILE PROGMEM
+
402 #if !defined(RADIOLIB_DEFAULT_SPI_SETTINGS)
+
403 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
404 #endif
405
-
406 #if !defined(RADIOLIB_NONVOLATILE_PTR)
-
407 #define RADIOLIB_NONVOLATILE_PTR PGM_P
+
406 #if !defined(RADIOLIB_NONVOLATILE)
+
407 #define RADIOLIB_NONVOLATILE PROGMEM
408 #endif
409
-
410 #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
-
411 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+
410 #if !defined(RADIOLIB_NONVOLATILE_PTR)
+
411 #define RADIOLIB_NONVOLATILE_PTR PGM_P
412 #endif
413
-
414 #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
-
415 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
+
414 #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
+
415 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
416 #endif
417
-
418 #if !defined(RADIOLIB_TYPE_ALIAS)
-
419 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
418 #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
+
419 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
420 #endif
421
-
422 #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
-
423 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
+
422 #if !defined(RADIOLIB_TYPE_ALIAS)
+
423 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
424 #endif
425
-
426 #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
-
427 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
+
426 #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
+
427 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
428 #endif
429
-
430 #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
-
431 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
430 #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
+
431 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
432 #endif
433
-
434#else
-
435 // generic non-Arduino platform
-
436 #define RADIOLIB_PLATFORM "Generic"
+
434 #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
+
435 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
436 #endif
437
-
438 #define RADIOLIB_NC (0xFFFFFFFF)
-
439 #define RADIOLIB_NONVOLATILE
-
440 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*(reinterpret_cast<uint8_t *>(reinterpret_cast<void *>(addr))))
-
441 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*(reinterpret_cast<uint32_t *>(reinterpret_cast<void *>(addr))))
-
442 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
443
-
444 #define DEC 10
-
445 #define HEX 16
-
446 #define OCT 8
-
447 #define BIN 2
-
448
-
449 #include <stdint.h>
-
450
-
451#endif
+
438#else
+
439 // generic non-Arduino platform
+
440 #define RADIOLIB_PLATFORM "Generic"
+
441
+
442 #define RADIOLIB_NC (0xFFFFFFFF)
+
443 #define RADIOLIB_NONVOLATILE
+
444 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*(reinterpret_cast<uint8_t *>(reinterpret_cast<void *>(addr))))
+
445 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*(reinterpret_cast<uint32_t *>(reinterpret_cast<void *>(addr))))
+
446 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
447
+
448 #define DEC 10
+
449 #define HEX 16
+
450 #define OCT 8
+
451 #define BIN 2
452
-
453// This only compiles on STM32 boards with SUBGHZ module, but also
-
454// include when generating docs
-
455#if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
-
456 #define RADIOLIB_EXCLUDE_STM32WLX (1)
-
457#endif
-
458
-
459// if verbose assert is enabled, enable basic debug too
-
460#if RADIOLIB_VERBOSE_ASSERT
-
461 #define RADIOLIB_DEBUG (1)
-
462#endif
-
463
-
464// set the global debug mode flag
-
465#if RADIOLIB_DEBUG_BASIC || RADIOLIB_DEBUG_PROTOCOL || RADIOLIB_DEBUG_SPI
-
466 #define RADIOLIB_DEBUG (1)
-
467#else
-
468 #define RADIOLIB_DEBUG (0)
-
469#endif
-
470
-
471#if RADIOLIB_DEBUG
-
472 #if defined(RADIOLIB_BUILD_ARDUINO)
-
473 #define RADIOLIB_DEBUG_PRINT(...) rlb_printf(__VA_ARGS__)
-
474 #define RADIOLIB_DEBUG_PRINTLN(M, ...) rlb_printf(M "\n", ##__VA_ARGS__)
-
475 #define RADIOLIB_DEBUG_PRINT_LVL(LEVEL, M, ...) rlb_printf(LEVEL "" M, ##__VA_ARGS__)
-
476 #define RADIOLIB_DEBUG_PRINTLN_LVL(LEVEL, M, ...) rlb_printf(LEVEL "" M "\n", ##__VA_ARGS__)
-
477
-
478 // some platforms do not support printf("%f"), so it has to be done this way
-
479 #define RADIOLIB_DEBUG_PRINT_FLOAT(LEVEL, VAL, DECIMALS) RADIOLIB_DEBUG_PRINT(LEVEL); RADIOLIB_DEBUG_PORT.print(VAL, DECIMALS)
-
480 #else
-
481 #if !defined(RADIOLIB_DEBUG_PRINT)
-
482 #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
-
483 #define RADIOLIB_DEBUG_PRINT_LVL(LEVEL, M, ...) fprintf(RADIOLIB_DEBUG_PORT, LEVEL "" M, ##__VA_ARGS__)
-
484 #endif
-
485 #if !defined(RADIOLIB_DEBUG_PRINTLN)
-
486 #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "\n", ##__VA_ARGS__)
-
487 #define RADIOLIB_DEBUG_PRINTLN_LVL(LEVEL, M, ...) fprintf(RADIOLIB_DEBUG_PORT, LEVEL "" M "\n", ##__VA_ARGS__)
+
453 #include <stdint.h>
+
454
+
455#endif
+
456
+
457// This only compiles on STM32 boards with SUBGHZ module, but also
+
458// include when generating docs
+
459#if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
+
460 #define RADIOLIB_EXCLUDE_STM32WLX (1)
+
461#endif
+
462
+
463// if verbose assert is enabled, enable basic debug too
+
464#if RADIOLIB_VERBOSE_ASSERT
+
465 #define RADIOLIB_DEBUG (1)
+
466#endif
+
467
+
468// set the global debug mode flag
+
469#if RADIOLIB_DEBUG_BASIC || RADIOLIB_DEBUG_PROTOCOL || RADIOLIB_DEBUG_SPI
+
470 #define RADIOLIB_DEBUG (1)
+
471#else
+
472 #define RADIOLIB_DEBUG (0)
+
473#endif
+
474
+
475#if RADIOLIB_DEBUG
+
476 #if defined(RADIOLIB_BUILD_ARDUINO)
+
477 #define RADIOLIB_DEBUG_PRINT(...) rlb_printf(__VA_ARGS__)
+
478 #define RADIOLIB_DEBUG_PRINTLN(M, ...) rlb_printf(M "" RADIOLIB_LINE_FEED, ##__VA_ARGS__)
+
479 #define RADIOLIB_DEBUG_PRINT_LVL(LEVEL, M, ...) rlb_printf(LEVEL "" M, ##__VA_ARGS__)
+
480 #define RADIOLIB_DEBUG_PRINTLN_LVL(LEVEL, M, ...) rlb_printf(LEVEL "" M "" RADIOLIB_LINE_FEED, ##__VA_ARGS__)
+
481
+
482 // some platforms do not support printf("%f"), so it has to be done this way
+
483 #define RADIOLIB_DEBUG_PRINT_FLOAT(LEVEL, VAL, DECIMALS) RADIOLIB_DEBUG_PRINT(LEVEL); RADIOLIB_DEBUG_PORT.print(VAL, DECIMALS)
+
484 #else
+
485 #if !defined(RADIOLIB_DEBUG_PRINT)
+
486 #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
+
487 #define RADIOLIB_DEBUG_PRINT_LVL(LEVEL, M, ...) fprintf(RADIOLIB_DEBUG_PORT, LEVEL "" M, ##__VA_ARGS__)
488 #endif
-
489 #define RADIOLIB_DEBUG_PRINT_FLOAT(LEVEL, VAL, DECIMALS) RADIOLIB_DEBUG_PRINT(LEVEL "%.3f", VAL)
-
490 #endif
-
491
-
492 #define RADIOLIB_DEBUG_HEXDUMP(LEVEL, ...) rlb_hexdump(LEVEL, __VA_ARGS__)
-
493#else
-
494 #define RADIOLIB_DEBUG_PRINT(...) {}
-
495 #define RADIOLIB_DEBUG_PRINTLN(...) {}
-
496 #define RADIOLIB_DEBUG_PRINT_FLOAT(VAL, DECIMALS) {}
-
497 #define RADIOLIB_DEBUG_HEXDUMP(...) {}
-
498#endif
-
499
-
500#if RADIOLIB_DEBUG_BASIC
-
501 #define RADIOLIB_DEBUG_BASIC_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_DBG: ", __VA_ARGS__)
-
502 #define RADIOLIB_DEBUG_BASIC_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
-
503 #define RADIOLIB_DEBUG_BASIC_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_DBG: ", __VA_ARGS__)
-
504 #define RADIOLIB_DEBUG_BASIC_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_DBG: ", __VA_ARGS__);
-
505 #define RADIOLIB_DEBUG_BASIC_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_DBG: ", __VA_ARGS__);
-
506#else
-
507 #define RADIOLIB_DEBUG_BASIC_PRINT(...) {}
-
508 #define RADIOLIB_DEBUG_BASIC_PRINT_NOTAG(...) {}
-
509 #define RADIOLIB_DEBUG_BASIC_PRINTLN(...) {}
-
510 #define RADIOLIB_DEBUG_BASIC_PRINT_FLOAT(...) {}
-
511 #define RADIOLIB_DEBUG_BASIC_HEXDUMP(...) {}
-
512#endif
-
513
-
514#if RADIOLIB_DEBUG_PROTOCOL
-
515 #define RADIOLIB_DEBUG_PROTOCOL_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_PRO: ", __VA_ARGS__)
-
516 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
-
517 #define RADIOLIB_DEBUG_PROTOCOL_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_PRO: ", __VA_ARGS__)
-
518 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_PRO: ", __VA_ARGS__);
-
519 #define RADIOLIB_DEBUG_PROTOCOL_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_PRO: ", __VA_ARGS__);
-
520#else
-
521 #define RADIOLIB_DEBUG_PROTOCOL_PRINT(...) {}
-
522 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_NOTAG(...) {}
-
523 #define RADIOLIB_DEBUG_PROTOCOL_PRINTLN(...) {}
-
524 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_FLOAT(...) {}
-
525 #define RADIOLIB_DEBUG_PROTOCOL_HEXDUMP(...) {}
-
526#endif
-
527
-
528#if RADIOLIB_DEBUG_SPI
-
529 #define RADIOLIB_DEBUG_SPI_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_SPI: ", __VA_ARGS__)
-
530 #define RADIOLIB_DEBUG_SPI_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
-
531 #define RADIOLIB_DEBUG_SPI_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_SPI: ", __VA_ARGS__)
-
532 #define RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG(...) RADIOLIB_DEBUG_PRINTLN_LVL("", __VA_ARGS__)
-
533 #define RADIOLIB_DEBUG_SPI_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_SPI: ", __VA_ARGS__);
-
534 #define RADIOLIB_DEBUG_SPI_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_SPI: ", __VA_ARGS__);
-
535#else
-
536 #define RADIOLIB_DEBUG_SPI_PRINT(...) {}
-
537 #define RADIOLIB_DEBUG_SPI_PRINT_NOTAG(...) {}
-
538 #define RADIOLIB_DEBUG_SPI_PRINTLN(...) {}
-
539 #define RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG(...) {}
-
540 #define RADIOLIB_DEBUG_SPI_PRINT_FLOAT(...) {}
-
541 #define RADIOLIB_DEBUG_SPI_HEXDUMP(...) {}
-
542#endif
-
543
-
544// debug info strings
-
545#define RADIOLIB_VALUE_TO_STRING(x) #x
-
546#define RADIOLIB_VALUE(x) RADIOLIB_VALUE_TO_STRING(x)
+
489 #if !defined(RADIOLIB_DEBUG_PRINTLN)
+
490 #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "" RADIOLIB_LINE_FEED, ##__VA_ARGS__)
+
491 #define RADIOLIB_DEBUG_PRINTLN_LVL(LEVEL, M, ...) fprintf(RADIOLIB_DEBUG_PORT, LEVEL "" M "" RADIOLIB_LINE_FEED, ##__VA_ARGS__)
+
492 #endif
+
493 #define RADIOLIB_DEBUG_PRINT_FLOAT(LEVEL, VAL, DECIMALS) RADIOLIB_DEBUG_PRINT(LEVEL "%.3f", VAL)
+
494 #endif
+
495
+
496 #define RADIOLIB_DEBUG_HEXDUMP(LEVEL, ...) rlb_hexdump(LEVEL, __VA_ARGS__)
+
497#else
+
498 #define RADIOLIB_DEBUG_PRINT(...) {}
+
499 #define RADIOLIB_DEBUG_PRINTLN(...) {}
+
500 #define RADIOLIB_DEBUG_PRINT_FLOAT(VAL, DECIMALS) {}
+
501 #define RADIOLIB_DEBUG_HEXDUMP(...) {}
+
502#endif
+
503
+
504#if RADIOLIB_DEBUG_BASIC
+
505 #define RADIOLIB_DEBUG_BASIC_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_DBG: ", __VA_ARGS__)
+
506 #define RADIOLIB_DEBUG_BASIC_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
+
507 #define RADIOLIB_DEBUG_BASIC_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_DBG: ", __VA_ARGS__)
+
508 #define RADIOLIB_DEBUG_BASIC_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_DBG: ", __VA_ARGS__);
+
509 #define RADIOLIB_DEBUG_BASIC_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_DBG: ", __VA_ARGS__);
+
510#else
+
511 #define RADIOLIB_DEBUG_BASIC_PRINT(...) {}
+
512 #define RADIOLIB_DEBUG_BASIC_PRINT_NOTAG(...) {}
+
513 #define RADIOLIB_DEBUG_BASIC_PRINTLN(...) {}
+
514 #define RADIOLIB_DEBUG_BASIC_PRINT_FLOAT(...) {}
+
515 #define RADIOLIB_DEBUG_BASIC_HEXDUMP(...) {}
+
516#endif
+
517
+
518#if RADIOLIB_DEBUG_PROTOCOL
+
519 #define RADIOLIB_DEBUG_PROTOCOL_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_PRO: ", __VA_ARGS__)
+
520 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
+
521 #define RADIOLIB_DEBUG_PROTOCOL_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_PRO: ", __VA_ARGS__)
+
522 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_PRO: ", __VA_ARGS__);
+
523 #define RADIOLIB_DEBUG_PROTOCOL_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_PRO: ", __VA_ARGS__);
+
524#else
+
525 #define RADIOLIB_DEBUG_PROTOCOL_PRINT(...) {}
+
526 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_NOTAG(...) {}
+
527 #define RADIOLIB_DEBUG_PROTOCOL_PRINTLN(...) {}
+
528 #define RADIOLIB_DEBUG_PROTOCOL_PRINT_FLOAT(...) {}
+
529 #define RADIOLIB_DEBUG_PROTOCOL_HEXDUMP(...) {}
+
530#endif
+
531
+
532#if RADIOLIB_DEBUG_SPI
+
533 #define RADIOLIB_DEBUG_SPI_PRINT(...) RADIOLIB_DEBUG_PRINT_LVL("RLB_SPI: ", __VA_ARGS__)
+
534 #define RADIOLIB_DEBUG_SPI_PRINT_NOTAG(...) RADIOLIB_DEBUG_PRINT_LVL("", __VA_ARGS__)
+
535 #define RADIOLIB_DEBUG_SPI_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN_LVL("RLB_SPI: ", __VA_ARGS__)
+
536 #define RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG(...) RADIOLIB_DEBUG_PRINTLN_LVL("", __VA_ARGS__)
+
537 #define RADIOLIB_DEBUG_SPI_PRINT_FLOAT(...) RADIOLIB_DEBUG_PRINT_FLOAT("RLB_SPI: ", __VA_ARGS__);
+
538 #define RADIOLIB_DEBUG_SPI_HEXDUMP(...) RADIOLIB_DEBUG_HEXDUMP("RLB_SPI: ", __VA_ARGS__);
+
539#else
+
540 #define RADIOLIB_DEBUG_SPI_PRINT(...) {}
+
541 #define RADIOLIB_DEBUG_SPI_PRINT_NOTAG(...) {}
+
542 #define RADIOLIB_DEBUG_SPI_PRINTLN(...) {}
+
543 #define RADIOLIB_DEBUG_SPI_PRINTLN_NOTAG(...) {}
+
544 #define RADIOLIB_DEBUG_SPI_PRINT_FLOAT(...) {}
+
545 #define RADIOLIB_DEBUG_SPI_HEXDUMP(...) {}
+
546#endif
547
-
548#define RADIOLIB_INFO "\nRadioLib Info\nVersion: \"" \
-
549 RADIOLIB_VALUE(RADIOLIB_VERSION_MAJOR) "." \
-
550 RADIOLIB_VALUE(RADIOLIB_VERSION_MINOR) "." \
-
551 RADIOLIB_VALUE(RADIOLIB_VERSION_PATCH) "." \
-
552 RADIOLIB_VALUE(RADIOLIB_VERSION_EXTRA) "\"\n" \
-
553 "Platform: " RADIOLIB_VALUE(RADIOLIB_PLATFORM) "\n" \
-
554 "Compiled: " RADIOLIB_VALUE(__DATE__) " " RADIOLIB_VALUE(__TIME__)
-
555
-
561#if RADIOLIB_VERBOSE_ASSERT
-
562#define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { RADIOLIB_DEBUG_BASIC_PRINTLN("%d at %s:%d", STATEVAR, __FILE__, __LINE__); return(STATEVAR); } }
-
563#define RADIOLIB_ASSERT_PTR(PTR) { if((PTR) == NULL) { RADIOLIB_DEBUG_BASIC_PRINTLN("NULL at %s:%d", __FILE__, __LINE__); return(RADIOLIB_ERR_MEMORY_ALLOCATION_FAILED); } }
-
564#else
-
565#define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
-
566#define RADIOLIB_ASSERT_PTR(PTR) { if((PTR) == NULL) { return(RADIOLIB_ERR_MEMORY_ALLOCATION_FAILED); } }
-
567#endif
-
568
-
572#if RADIOLIB_CHECK_PARAMS
-
573 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
-
574#else
-
575 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
-
576#endif
-
577
-
578#if RADIOLIB_FIX_ERRATA_SX127X
-
579 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
-
580#else
-
581 #define RADIOLIB_ERRATA_SX127X(...) {}
-
582#endif
-
583
-
584// these macros are usually defined by Arduino, but some platforms undef them, so its safer to use our own
-
585#define RADIOLIB_MIN(a,b) ((a)<(b)?(a):(b))
-
586#define RADIOLIB_MAX(a,b) ((a)>(b)?(a):(b))
-
587#define RADIOLIB_ABS(x) ((x)>0?(x):-(x))
-
588
-
589// version definitions
-
590#define RADIOLIB_VERSION_MAJOR 7
-
591#define RADIOLIB_VERSION_MINOR 1
-
592#define RADIOLIB_VERSION_PATCH 2
-
593#define RADIOLIB_VERSION_EXTRA 0
-
594
-
595#define RADIOLIB_VERSION (((RADIOLIB_VERSION_MAJOR) << 24) | ((RADIOLIB_VERSION_MINOR) << 16) | ((RADIOLIB_VERSION_PATCH) << 8) | (RADIOLIB_VERSION_EXTRA))
-
596
-
597#endif
+
548// debug info strings
+
549#define RADIOLIB_VALUE_TO_STRING(x) #x
+
550#define RADIOLIB_VALUE(x) RADIOLIB_VALUE_TO_STRING(x)
+
551
+
552#define RADIOLIB_INFO "" RADIOLIB_LINE_FEED "RadioLib Info" RADIOLIB_LINE_FEED "Version: \"" \
+
553 RADIOLIB_VALUE(RADIOLIB_VERSION_MAJOR) "." \
+
554 RADIOLIB_VALUE(RADIOLIB_VERSION_MINOR) "." \
+
555 RADIOLIB_VALUE(RADIOLIB_VERSION_PATCH) "." \
+
556 RADIOLIB_VALUE(RADIOLIB_VERSION_EXTRA) "\"" RADIOLIB_LINE_FEED \
+
557 "Platform: " RADIOLIB_VALUE(RADIOLIB_PLATFORM) "" RADIOLIB_LINE_FEED \
+
558 "Compiled: " RADIOLIB_VALUE(__DATE__) " " RADIOLIB_VALUE(__TIME__)
+
559
+
565#if RADIOLIB_VERBOSE_ASSERT
+
566#define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { RADIOLIB_DEBUG_BASIC_PRINTLN("%d at %s:%d", STATEVAR, __FILE__, __LINE__); return(STATEVAR); } }
+
567#define RADIOLIB_ASSERT_PTR(PTR) { if((PTR) == NULL) { RADIOLIB_DEBUG_BASIC_PRINTLN("NULL at %s:%d", __FILE__, __LINE__); return(RADIOLIB_ERR_MEMORY_ALLOCATION_FAILED); } }
+
568#else
+
569#define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
+
570#define RADIOLIB_ASSERT_PTR(PTR) { if((PTR) == NULL) { return(RADIOLIB_ERR_MEMORY_ALLOCATION_FAILED); } }
+
571#endif
+
572
+
576#if RADIOLIB_CHECK_PARAMS
+
577 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
+
578#else
+
579 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
+
580#endif
+
581
+
582#if RADIOLIB_FIX_ERRATA_SX127X
+
583 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
+
584#else
+
585 #define RADIOLIB_ERRATA_SX127X(...) {}
+
586#endif
+
587
+
588// these macros are usually defined by Arduino, but some platforms undef them, so its safer to use our own
+
589#define RADIOLIB_MIN(a,b) ((a)<(b)?(a):(b))
+
590#define RADIOLIB_MAX(a,b) ((a)>(b)?(a):(b))
+
591#define RADIOLIB_ABS(x) ((x)>0?(x):-(x))
+
592
+
593// version definitions
+
594#define RADIOLIB_VERSION_MAJOR 7
+
595#define RADIOLIB_VERSION_MINOR 1
+
596#define RADIOLIB_VERSION_PATCH 2
+
597#define RADIOLIB_VERSION_EXTRA 0
+
598
+
599#define RADIOLIB_VERSION (((RADIOLIB_VERSION_MAJOR) << 24) | ((RADIOLIB_VERSION_MINOR) << 16) | ((RADIOLIB_VERSION_PATCH) << 8) | (RADIOLIB_VERSION_EXTRA))
+
600
+
601#endif
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition TypeDef.h:642
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 903d0133..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-10 07:36:45Functions:33100.0 %
-
- -
- - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN13EmulatedRadio7connectEP13EmulatedPin_tS1_S1_S1_4
_ZN13EmulatedRadio10HandleGPIOEv2932
_ZN13EmulatedRadio9HandleSPIEh4195
-
-
- - - -
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 273b59f7..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-10 07:36:45Functions:33100.0 %
-
- -
- - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN13EmulatedRadio10HandleGPIOEv2932
_ZN13EmulatedRadio7connectEP13EmulatedPin_tS1_S1_S1_4
_ZN13EmulatedRadio9HandleSPIEh4195
-
-
- - - -
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 9ce94c2c..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-10 07:36:45Functions: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        4195 :     virtual uint8_t HandleSPI(uint8_t b) {
-      53             :       (void)b;
-      54             :       // handle the SPI input and generate output here
-      55        4195 :       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 1d10ba0c..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-10 07:36:45Functions: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
_ZN7TestHal11digitalReadEj848
_ZN7TestHal6millisEv848
_ZN7TestHal6microsEv1462
_ZN7TestHal11spiTransferEPhmS0_1464
_ZN7TestHal17spiEndTransactionEv1464
_ZN7TestHal19spiBeginTransactionEv1464
_ZN7TestHal12digitalWriteEjj2932
_ZN7TestHal17delayMicrosecondsEm4619
-
-
- - - -
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 4c4dd233..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-10 07:36:45Functions:152462.5 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN7TestHal10spiLogWipeEv16
_ZN7TestHal11digitalReadEj848
_ZN7TestHal11spiTransferEPhmS0_1464
_ZN7TestHal12connectRadioEP13EmulatedRadio4
_ZN7TestHal12digitalWriteEjj2932
_ZN7TestHal12spiLogMemcmpEPKvm12
_ZN7TestHal15attachInterruptEjPFvvEj0
_ZN7TestHal15detachInterruptEj0
_ZN7TestHal17delayMicrosecondsEm4619
_ZN7TestHal17spiEndTransactionEv1464
_ZN7TestHal19spiBeginTransactionEv1464
_ZN7TestHal4initEv4
_ZN7TestHal4termEv4
_ZN7TestHal4toneEjjm0
_ZN7TestHal5delayEm0
_ZN7TestHal5yieldEv0
_ZN7TestHal6microsEv1462
_ZN7TestHal6millisEv848
_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 859e3651..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-10 07:36:45Functions: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         848 :     uint32_t digitalRead(uint32_t pin) override {
-      94             :       HAL_LOG("TestHal::digitalRead(pin=" << pin << ")");
-      95             : 
-      96             :       // check the range
-      97         848 :       BOOST_ASSERT_MSG(pin < TEST_HAL_NUM_GPIO_PINS, "Pin number out of range");
-      98             : 
-      99             :       // check it is input
-     100         848 :       BOOST_ASSERT_MSG(this->gpio[pin].mode == TEST_HAL_INPUT, "GPIO is not input");
-     101             : 
-     102             :       // read the value
-     103         848 :       uint32_t value = this->gpio[pin].value;
-     104             :       HAL_LOG("TestHal::digitalRead(pin=" << pin << ")=" << value << " [" << ((value == TEST_HAL_LOW) ? "LOW" : "HIGH") << "]");
-     105         848 :       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        4619 :     void delayMicroseconds(unsigned long us) override {
-     138             :       HAL_LOG("TestHal::delayMicroseconds(us=" << us << ")");
-     139        4619 :       const auto start = std::chrono::high_resolution_clock::now();
-     140             : 
-     141             :       // busy wait is needed for microseconds precision
-     142        4619 :       const auto len = std::chrono::microseconds(us);
-     143     6705832 :       while(std::chrono::high_resolution_clock::now() - start < len);
-     144             : 
-     145             :       // measure and print
-     146        4619 :       const auto end = std::chrono::high_resolution_clock::now();
-     147        4619 :       const std::chrono::duration<double, std::micro> elapsed = end - start;
-     148             :       HAL_LOG("TestHal::delayMicroseconds(us=" << us << ")=" << elapsed.count() << "us");
-     149        4619 :     }
-     150             : 
-     151           0 :     void yield() override {
-     152             :       HAL_LOG("TestHal::yield()");
-     153           0 :     }
-     154             : 
-     155         848 :     unsigned long millis() override {
-     156             :       HAL_LOG("TestHal::millis()");
-     157         848 :       std::chrono::time_point now = std::chrono::high_resolution_clock::now();
-     158         848 :       auto res = std::chrono::duration_cast<std::chrono::milliseconds>(now - this->start);
-     159             :       HAL_LOG("TestHal::millis()=" << res.count());
-     160         848 :       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        5659 :       for(size_t i = 0; i < len; i++) {
-     193             :         // append to log
-     194        4195 :         (*this->spiLogPtr++) = out[i];
-     195             : 
-     196             :         // process the SPI byte
-     197        4195 :         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        4195 :         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 6c3df0b0..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-10 07:36:45Functions: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 691fee53..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-10 07:36:45Functions: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 e8bcbd45..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-10 07:36:45Functions: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 35187da4..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-10 07:36:45Functions: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 2b2c656b..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-10 07:36:45Functions: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 a67e8b9d..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-10 07:36:45Functions: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 ea785ffa..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-10 07:36:45Functions: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 62fb6f7a..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-10 07:36:45Functions: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 8025554e..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-10 07:36:45Functions: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 d5a9e31d..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-10 07:36:45Functions: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 0da2c01d..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-10 07:36:45Functions: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 b7017bea..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-10 07:36:45Functions: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 c5268843..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-10 07:36:45Functions: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 2fbe79e9..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-10 07:36:45Functions: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 9e57770e..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-10 07:36:45Functions: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 e474c992..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-10 07:36:45Functions: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_Phmb424
_ZN6Module11SPItransferEtjPKhPhm1040
_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 552d93c7..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-10 07:36:45Functions:92339.1 %
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Function Name Sort by function nameHit count Sort by hit count
_ZN6Module11SPItransferEtjPKhPhm1040
_ZN6Module13SPIreadStreamEPKhhPhmbb0
_ZN6Module13SPIreadStreamEtPhmbb0
_ZN6Module14SPIcheckStreamEv0
_ZN6Module14SPIgetRegValueEjhh10
_ZN6Module14SPIsetRegValueEjhhhhhb16
_ZN6Module14SPIwriteStreamEPKhhS1_mbb0
_ZN6Module14SPIwriteStreamEtPKhmbb0
_ZN6Module15SPIreadRegisterEj1454
_ZN6Module15setRfSwitchPinsEjj0
_ZN6Module16SPIwriteRegisterEjh10
_ZN6Module16setRfSwitchStateEh0
_ZN6Module16setRfSwitchTableERA5_KjPKNS_14RfSwitchMode_tE0
_ZN6Module17SPItransferStreamEPKhhbS1_Phmb424
_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 6788a23e..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-10 07:36:45Functions: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        1035 :     SPItransfer(this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ], reg, NULL, &resp, 1);
-     131             :   } else {
-     132             :     uint8_t cmd[6];
-     133         419 :     uint8_t* cmdPtr = cmd;
-     134         838 :     for(int8_t i = (int8_t)this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_CMD]/8 - 1; i >= 0; i--) {
-     135         419 :       *(cmdPtr++) = (this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ] >> 8*i) & 0xFF;
-     136             :     }
-     137        1257 :     for(int8_t i = (int8_t)((this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR]/8) - 1); i >= 0; i--) {
-     138         838 :       *(cmdPtr++) = (reg >> 8*i) & 0xFF;
-     139             :     }
-     140         419 :     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        1040 : void Module::SPItransfer(uint16_t cmd, uint32_t reg, const uint8_t* dataOut, uint8_t* dataIn, size_t numBytes) {
-     178             :   // prepare the buffers
-     179        1040 :   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        1040 :     uint8_t* buffOut = new uint8_t[buffLen];
-     185        1040 :     uint8_t* buffIn = new uint8_t[buffLen];
-     186             :   #endif
-     187        1040 :   uint8_t* buffOutPtr = buffOut;
-     188             : 
-     189             :   // copy the command
-     190             :   // TODO properly handle variable commands and addresses
-     191        1040 :   if(this->spiConfig.widths[RADIOLIB_MODULE_SPI_WIDTH_ADDR] <= 8) {
-     192        1040 :     *(buffOutPtr++) = reg | cmd;
-     193             :   } else {
-     194           0 :     *(buffOutPtr++) = (reg >> 8) | cmd;
-     195           0 :     *(buffOutPtr++) = reg & 0xFF;
-     196             :   }
-     197             : 
-     198             :   // copy the data
-     199        1040 :   if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_WRITE]) {
-     200           5 :     memcpy(buffOutPtr, dataOut, numBytes);
-     201             :   } else {
-     202        1035 :     memset(buffOutPtr, this->spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_NOP], numBytes);
-     203             :   }
-     204             : 
-     205             :   // do the transfer
-     206        1040 :   this->hal->spiBeginTransaction();
-     207        1040 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelLow);
-     208        1040 :   this->hal->spiTransfer(buffOut, buffLen, buffIn);
-     209        1040 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelHigh);
-     210        1040 :   this->hal->spiEndTransaction();
-     211             :   
-     212             :   // copy the data
-     213        1040 :   if(cmd == spiConfig.cmds[RADIOLIB_MODULE_SPI_COMMAND_READ]) {
-     214        1035 :     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        1040 :     delete[] buffOut;
-     235        1040 :     delete[] buffIn;
-     236             :   #endif
-     237        1040 : }
-     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         424 : 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         424 :   size_t buffLen = cmdLen + numBytes;
-     321         424 :   if(!write) {
-     322         419 :     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         424 :     uint8_t* buffOut = new uint8_t[buffLen];
-     328             :   #endif
-     329         424 :   uint8_t* buffOutPtr = buffOut;
-     330             : 
-     331             :   // copy the command
-     332        1696 :   for(uint8_t n = 0; n < cmdLen; n++) {
-     333        1272 :     *(buffOutPtr++) = cmd[n];
-     334             :   }
-     335             : 
-     336             :   // copy the data
-     337         424 :   if(write) {
-     338           5 :     memcpy(buffOutPtr, dataOut, numBytes);
-     339             :   } else {
-     340         419 :     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         424 :   if(waitForGpio) {
-     345         424 :     if(this->gpioPin == RADIOLIB_NC) {
-     346           0 :       this->hal->delay(50);
-     347             :     } else {
-     348         424 :       RadioLibTime_t start = this->hal->millis();
-     349         424 :       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         424 :     uint8_t* buffIn = new uint8_t[buffLen];
-     371             :   #endif
-     372             : 
-     373             :   // do the transfer
-     374         424 :   this->hal->spiBeginTransaction();
-     375         424 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelLow);
-     376         424 :   this->hal->spiTransfer(buffOut, buffLen, buffIn);
-     377         424 :   this->hal->digitalWrite(this->csPin, this->hal->GpioLevelHigh);
-     378         424 :   this->hal->spiEndTransaction();
-     379             : 
-     380             :   // wait for GPIO to go high and then low
-     381         424 :   if(waitForGpio) {
-     382         424 :     if(this->gpioPin == RADIOLIB_NC) {
-     383           0 :       this->hal->delay(1);
-     384             :     } else {
-     385         424 :       this->hal->delayMicroseconds(1);
-     386         424 :       RadioLibTime_t start = this->hal->millis();
-     387         424 :       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         424 :   int16_t state = RADIOLIB_ERR_NONE;
-     407         424 :   if((this->spiConfig.parseStatusCb != nullptr) && (numBytes > 0)) {
-     408           0 :     state = this->spiConfig.parseStatusCb(buffIn[this->spiConfig.statusPos]);
-     409             :   }
-     410             :   
-     411             :   // copy the data
-     412         424 :   if(!write) {
-     413             :     // skip the status bytes if present
-     414         419 :     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         424 :     delete[] buffOut;
-     450         424 :     delete[] buffIn;
-     451             :   #endif
-     452             : 
-     453         424 :   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 6ee13c73..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-10 07:36:45Functions: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 46786983..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-10 07:36:45Functions: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 4c473e69..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-10 07:36:45Functions: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`+