RadioLibSmol/src/RadioLib.h
Jan Gromeš e86fb27649
[CI] Measure code coverage after unit test (#1417)
* [CI] Measure code coverage after unit test

* [CI] Update workflow

* [CI] Fix indentation

* [CI] Ignore geninfo errors

* [CI] Force gcov 11

* [CI] Install gcc 11

* [CI] Revert gcc-11

* Use ubuntu 22.04 as unit test runner

* Deploy coverage report to github pages

* Add coverage link

---------

Co-authored-by: jgromes <jan.gromes>
2025-02-10 08:35:52 +01:00

124 lines
3.7 KiB
C

#if !defined(_RADIOLIB_H)
#define _RADIOLIB_H
/*!
\mainpage RadioLib Documentation
Universal wireless communication library for embedded devices.
\par Currently Supported Wireless Modules and Protocols
- CC1101 FSK module
- LLCC68 LoRa/FSK module
- LR11x0 LoRa/FSK/LR-FHSS module
- nRF24 FSK module
- RF69 FSK module
- RFM2x FSK module
- Si443x FSK module
- SX126x LoRa/FSK module
- SX127x LoRa/FSK module
- SX128x LoRa/GFSK/BLE/FLRC module
- SX1231 FSK module
- PhysicalLayer protocols
- RTTY (RTTYClient)
- Morse Code (MorseClient)
- AX.25 (AX25Client)
- SSTV (SSTVClient)
- Hellschreiber (HellClient)
- 4-FSK (FSK4Client)
- APRS (APRSClient)
- POCSAG (PagerClient)
- LoRaWAN (LoRaWANNode)
\par Quick Links
Documentation for most common methods can be found in its reference page (see the list above).\n
Some methods (mainly configuration) are also overridden in derived classes, such as SX1272, SX1278, RFM96 etc. for SX127x.\n
\ref status_codes have their own page.\n
Some modules implement methods of one or more compatibility layers, loosely based on the ISO/OSI model:
- PhysicalLayer - FSK and LoRa radio modules
\see https://github.com/jgromes/RadioLib
\see https://jgromes.github.io/RadioLib/coverage/src/index.html
\copyright Copyright (c) 2019 Jan Gromes
*/
#include "TypeDef.h"
#include "Module.h"
#include "Hal.h"
#if defined(RADIOLIB_BUILD_ARDUINO)
#include "hal/Arduino/ArduinoHal.h"
#endif
// warnings are printed in this file since BuildOpt.h is compiled in multiple places
// check God mode
#if RADIOLIB_GODMODE
#warning "God mode active, I hope it was intentional. Buckle up, lads."
#endif
// print debug info
#if RADIOLIB_DEBUG
#pragma message(RADIOLIB_INFO)
#endif
// check unknown/unsupported platform
#if defined(RADIOLIB_UNKNOWN_PLATFORM)
#warning "RadioLib might not be compatible with this Arduino board - check supported platforms at https://github.com/jgromes/RadioLib!"
#endif
// print warning for low-end platforms
#if defined(RADIOLIB_LOWEND_PLATFORM)
#warning "Low-end platform detected, stability issues are likely!"
#endif
#include "modules/CC1101/CC1101.h"
#include "modules/LLCC68/LLCC68.h"
#include "modules/LR11x0/LR1110.h"
#include "modules/LR11x0/LR1120.h"
#include "modules/LR11x0/LR1121.h"
#include "modules/nRF24/nRF24.h"
#include "modules/RF69/RF69.h"
#include "modules/RFM2x/RFM22.h"
#include "modules/RFM2x/RFM23.h"
#include "modules/Si443x/Si4430.h"
#include "modules/Si443x/Si4431.h"
#include "modules/Si443x/Si4432.h"
#include "modules/SX123x/SX1231.h"
#include "modules/SX123x/SX1233.h"
#include "modules/SX126x/SX1261.h"
#include "modules/SX126x/SX1262.h"
#include "modules/SX126x/SX1268.h"
#include "modules/SX126x/STM32WLx.h"
#include "modules/SX127x/SX1272.h"
#include "modules/SX127x/SX1273.h"
#include "modules/SX127x/SX1276.h"
#include "modules/SX127x/SX1277.h"
#include "modules/SX127x/SX1278.h"
#include "modules/SX127x/SX1279.h"
#include "modules/SX128x/SX1280.h"
#include "modules/SX128x/SX1281.h"
#include "modules/SX128x/SX1282.h"
// physical layer protocols
#include "protocols/PhysicalLayer/PhysicalLayer.h"
#include "protocols/AFSK/AFSK.h"
#include "protocols/AX25/AX25.h"
#include "protocols/Hellschreiber/Hellschreiber.h"
#include "protocols/Morse/Morse.h"
#include "protocols/Pager/Pager.h"
#include "protocols/RTTY/RTTY.h"
#include "protocols/SSTV/SSTV.h"
#include "protocols/FSK4/FSK4.h"
#include "protocols/APRS/APRS.h"
#include "protocols/ExternalRadio/ExternalRadio.h"
#include "protocols/Print/Print.h"
#include "protocols/BellModem/BellModem.h"
#include "protocols/LoRaWAN/LoRaWAN.h"
// utilities
#include "utils/CRC.h"
#include "utils/Cryptography.h"
#endif