Updated Debug mode (markdown)

master
Jan Gromeš 2024-03-10 09:52:35 +01:00
rodzic c19b7eaebc
commit 8371806513
1 zmienionych plików z 15 dodań i 7 usunięć

@ -2,21 +2,29 @@ When something isn't working as expected, it might be useful to take a peek "und
## Enabling debug ## Enabling debug
To enable debug, you can go to the [BuildOptUser.h](https://github.com/jgromes/RadioLib/blob/master/src/BuildOptUser.h) file, and uncomment either one or both of these lines: To enable debug, you can go to the [BuildOptUser.h](https://github.com/jgromes/RadioLib/blob/master/src/BuildOptUser.h) file, and uncomment any of these lines:
```c++ ```c++
//#define RADIOLIB_DEBUG (1) //#define RADIOLIB_DEBUG_BASIC (1) // basic debugging (e.g. reporting GPIO timeouts or module not being found)
//#define RADIOLIB_VERBOSE (1) //#define RADIOLIB_DEBUG_PROTOCOL (1) // protocol information (e.g. LoRaWAN internal information)
//#define RADIOLIB_DEBUG_SPI (1) // verbose transcription of all SPI communication - produces large debug logs!
``` ```
Any combination of debug levels may be enabled, information from different levels are distinguished by a prefix.
The default debug port is set to `Serial`, on most Arduino boards, this should correspond to the Serial port connected to USB. If you want to use a different port, simply change the value of `RADIOLIB_DEBUG_PORT` macro to e.g. `Serial2`, or whichever Serial port you want to use. `SoftwareSerial` ports are supported as well. The default debug port is set to `Serial`, on most Arduino boards, this should correspond to the Serial port connected to USB. If you want to use a different port, simply change the value of `RADIOLIB_DEBUG_PORT` macro to e.g. `Serial2`, or whichever Serial port you want to use. `SoftwareSerial` ports are supported as well.
__NOTE:__ RadioLib DOES NOT automatically initialize the debug port with `Serial.begin()`. This is done to prevent collisions when user already calls the `begin()` method from Arduino sketch. For that reason, debug interface initialization MUST be done prior to RadioLib module initialization (e.g. `lora.begin()`, otherwise there will be no debug output from the `begin()` method. __NOTE:__ RadioLib DOES NOT automatically initialize the debug port with `Serial.begin()`. This is done to prevent collisions when user already calls the `begin()` method from Arduino sketch. For that reason, debug interface initialization MUST be done prior to RadioLib module initialization (e.g. `lora.begin()`, otherwise there will be no debug output from the `begin()` method.
On non-Arduino platforms, `RADIOLIB_DEBUG_PORT` defaults to `stdout`.
## Debug levels ## Debug levels
### RADIOLIB_DEBUG ### RADIOLIB_DEBUG_BASIC ("RLB_DBG")
Enabling this macro will only print out basic debug info - for example, when writing to an SPI register fails. This is useful on modules like SX127x or RF69, which use direct SPI register access. Enabling this macro will only print out basic debug info - for example, timeouts when waiting for GPIO signals or radio module not being found due to version register mismatch.
### RADIOLIB_VERBOSE ### RADIOLIB_DEBUG_PROTOCOL ("RLB_PRO")
Enabling this macro will print out full transcript of all SPI or UART communication. This is useful on modules like SX126x or UART-based modules, which have command-based interface (instead of SPI register transfers). Enabling this macro will print information important for debugging protocols. This is very useful when debugging LoRaWAN.
### RADIOLIB_DEBUG_SPI ("RLB_SPI")
Enabling this macro will print out full transcript of all SPI communication. It should be noted that this outputs A LOT of information in the debug log. This can make debugging higher levels (e.g. protocols) cumbersome, so it should only be used when investigating issues with the radio module itself.