RadioLibSmol/src/modules/SX128x/SX1280.h
2025-01-18 17:48:25 +01:00

56 lines
1.5 KiB
C++

#if !defined(_RADIOLIB_SX1280_H)
#define _RADIOLIB_SX1280_H
#include "../../TypeDef.h"
#if !RADIOLIB_EXCLUDE_SX128X
#include "../../Module.h"
#include "SX128x.h"
#include "SX1281.h"
/*!
\class SX1280
\brief Derived class for %SX1280 modules.
*/
class SX1280: public SX1281 {
public:
/*!
\brief Default constructor.
\param mod Instance of Module that will be used to communicate with the radio.
*/
SX1280(Module* mod); // cppcheck-suppress noExplicitConstructor
/*!
\brief Blocking ranging method.
\param master Whether to execute ranging in master mode (true) or slave mode (false).
\param addr Ranging address to be used.
\param calTable Ranging calibration table - set to NULL to use the default.
\returns \ref status_codes
*/
int16_t range(bool master, uint32_t addr, uint16_t calTable[3][6] = NULL);
/*!
\brief Interrupt-driven ranging method.
\param master Whether to execute ranging in master mode (true) or slave mode (false).
\param addr Ranging address to be used.
\param calTable Ranging calibration table - set to NULL to use the default.
\returns \ref status_codes
*/
int16_t startRanging(bool master, uint32_t addr, const uint16_t calTable[3][6] = NULL);
/*!
\brief Gets ranging result of the last ranging exchange.
\returns Ranging result in meters.
*/
float getRangingResult();
#if !RADIOLIB_GODMODE
private:
#endif
};
#endif
#endif