use uint32 instead of uint8 for pin type

This commit is contained in:
Mestery 2023-04-16 21:39:00 +02:00
parent 6695133576
commit 9a68a3c901
32 changed files with 135 additions and 124 deletions

View file

@ -32,7 +32,7 @@ STM32WLx radio = new STM32WLx_Module();
// set RF switch configuration for Nucleo WL55JC1
// NOTE: other boards may be different!
static const uint8_t rfswitch_pins[] =
static const uint32_t rfswitch_pins[] =
{PC3, PC4, PC5};
static const Module::RfSwitchMode_t rfswitch_table[] = {
{STM32WLx::MODE_IDLE, {LOW, LOW, LOW}},

View file

@ -31,7 +31,7 @@ STM32WLx radio = new STM32WLx_Module();
// set RF switch configuration for Nucleo WL55JC1
// NOTE: other boards may be different!
static const uint8_t rfswitch_pins[] =
static const uint32_t rfswitch_pins[] =
{PC3, PC4, PC5};
static const Module::RfSwitchMode_t rfswitch_table[] = {
{STM32WLx::MODE_IDLE, {LOW, LOW, LOW}},

View file

@ -28,7 +28,7 @@ STM32WLx radio = new STM32WLx_Module();
// set RF switch configuration for Nucleo WL55JC1
// NOTE: other boards may be different!
static const uint8_t rfswitch_pins[] =
static const uint32_t rfswitch_pins[] =
{PC3, PC4, PC5};
static const Module::RfSwitchMode_t rfswitch_table[] = {
{STM32WLx::MODE_IDLE, {LOW, LOW, LOW}},

View file

@ -23,7 +23,7 @@ STM32WLx radio = new STM32WLx_Module();
// set RF switch configuration for Nucleo WL55JC1
// NOTE: other boards may be different!
static const uint8_t rfswitch_pins[] =
static const uint32_t rfswitch_pins[] =
{PC3, PC4, PC5};
static const Module::RfSwitchMode_t rfswitch_table[] = {
{STM32WLx::MODE_IDLE, {LOW, LOW, LOW}},

View file

@ -18,31 +18,31 @@ void ArduinoHal::term() {
}
}
void inline ArduinoHal::pinMode(uint8_t pin, uint8_t mode) {
void inline ArduinoHal::pinMode(uint32_t pin, uint32_t mode) {
if (pin == RADIOLIB_NC) {
return;
}
::pinMode(pin, RADIOLIB_ARDUINOHAL_PIN_MODE_CAST mode);
}
void inline ArduinoHal::digitalWrite(uint8_t pin, uint8_t value) {
void inline ArduinoHal::digitalWrite(uint32_t pin, uint32_t value) {
if (pin == RADIOLIB_NC) {
return;
}
::digitalWrite(pin, RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST value);
}
uint8_t inline ArduinoHal::digitalRead(uint8_t pin) {
uint32_t inline ArduinoHal::digitalRead(uint32_t pin) {
if (pin == RADIOLIB_NC) {
return 0;
}
return ::digitalRead(pin);
}
void inline ArduinoHal::attachInterrupt(uint8_t interruptNum, void (*interruptCb)(void), uint8_t mode) {
void inline ArduinoHal::attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) {
if (interruptNum == RADIOLIB_NC) {
return;
}
::attachInterrupt(interruptNum, interruptCb, RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST mode);
}
void inline ArduinoHal::detachInterrupt(uint8_t interruptNum) {
void inline ArduinoHal::detachInterrupt(uint32_t interruptNum) {
if (interruptNum == RADIOLIB_NC) {
return;
}
@ -60,7 +60,7 @@ unsigned long inline ArduinoHal::millis() {
unsigned long inline ArduinoHal::micros() {
return ::micros();
}
long inline ArduinoHal::pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) {
long inline ArduinoHal::pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) {
if (pin == RADIOLIB_NC) {
return 0;
}
@ -81,7 +81,7 @@ void inline ArduinoHal::spiEndTransaction() {
void inline ArduinoHal::spiEnd() {
_spi->end();
}
void inline ArduinoHal::tone(uint8_t pin, unsigned int frequency, unsigned long duration) {
void inline ArduinoHal::tone(uint32_t pin, unsigned int frequency, unsigned long duration) {
#if !defined(RADIOLIB_TONE_UNSUPPORTED)
if (pin == RADIOLIB_NC) {
return;
@ -107,7 +107,7 @@ void inline ArduinoHal::tone(uint8_t pin, unsigned int frequency, unsigned long
pwmPin->write(0.5);
#endif
}
void inline ArduinoHal::noTone(uint8_t pin) {
void inline ArduinoHal::noTone(uint32_t pin) {
#if !defined(RADIOLIB_TONE_UNSUPPORTED) and defined(ARDUINO_ARCH_STM32)
if (pin == RADIOLIB_NC) {
return;
@ -140,7 +140,7 @@ void inline ArduinoHal::yield() {
::yield();
#endif
}
uint8_t inline ArduinoHal::pinToInterrupt(uint8_t pin) {
uint32_t inline ArduinoHal::pinToInterrupt(uint32_t pin) {
return digitalPinToInterrupt(pin);
}
#endif

View file

@ -14,6 +14,12 @@
#include <SPI.h>
/*!
\class ArduinoHal
\brief Arduino default hardware abstraction library implementation.
This class can be extended to support other Arduino platform or change behaviour of the default implementation
*/
class ArduinoHal : public Hal {
public:
/*!
@ -33,25 +39,25 @@ class ArduinoHal : public Hal {
void init() override;
void term() override;
void pinMode(uint8_t pin, uint8_t mode) override;
void digitalWrite(uint8_t pin, uint8_t value) override;
uint8_t digitalRead(uint8_t pin) override;
void attachInterrupt(uint8_t interruptNum, void (*interruptCb)(void), uint8_t mode) override;
void detachInterrupt(uint8_t interruptNum) override;
void pinMode(uint32_t pin, uint32_t mode) override;
void digitalWrite(uint32_t pin, uint32_t value) override;
uint32_t digitalRead(uint32_t pin) override;
void attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) override;
void detachInterrupt(uint32_t interruptNum) override;
void delay(unsigned long ms) override;
void delayMicroseconds(unsigned long us) override;
unsigned long millis() override;
unsigned long micros() override;
long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) override;
long pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) override;
void spiBegin() override;
void spiBeginTransaction() override;
uint8_t spiTransfer(uint8_t b) override;
void spiEndTransaction() override;
void spiEnd() override;
void tone(uint8_t pin, unsigned int frequency, unsigned long duration = 0) override;
void noTone(uint8_t pin) override;
void tone(uint32_t pin, unsigned int frequency, unsigned long duration = 0) override;
void noTone(uint32_t pin) override;
void yield() override;
uint8_t pinToInterrupt(uint8_t pin) override;
uint32_t pinToInterrupt(uint32_t pin) override;
#if !defined(RADIOLIB_GODMODE)
private:

View file

@ -221,7 +221,7 @@
#endif
#if !defined(RADIOLIB_NC)
#define RADIOLIB_NC (0xFF)
#define RADIOLIB_NC (0xFFFFFFFF)
#endif
#if !defined(RADIOLIB_DEFAULT_SPI)
#define RADIOLIB_DEFAULT_SPI SPI

View file

@ -1,7 +1,7 @@
#include <stdint.h>
#include "Hal.h"
Hal::Hal(const uint8_t input, const uint8_t output, const uint8_t low, const uint8_t high, const uint8_t rising, const uint8_t falling)
Hal::Hal(const uint32_t input, const uint32_t output, const uint32_t low, const uint32_t high, const uint32_t rising, const uint32_t falling)
: GpioModeInput(input),
GpioModeOutput(output),
GpioLevelLow(low),
@ -11,15 +11,15 @@ Hal::Hal(const uint8_t input, const uint8_t output, const uint8_t low, const uin
void Hal::init(){};
void Hal::term(){};
void Hal::tone(uint8_t pin, unsigned int frequency, unsigned long duration){
void Hal::tone(uint32_t pin, unsigned int frequency, unsigned long duration){
(void)pin;
(void)frequency;
(void)duration;
};
void Hal::noTone(uint8_t pin){
void Hal::noTone(uint32_t pin){
(void)pin;
};
void Hal::yield(){};
uint8_t Hal::pinToInterrupt(uint8_t pin) {
uint32_t Hal::pinToInterrupt(uint32_t pin) {
return pin;
};

View file

@ -3,40 +3,45 @@
#if !defined(_RADIOLIB_HAL_H)
#define _RADIOLIB_HAL_H
/*!
\class Hal
\brief Hardware abstraction library base interface.
*/
class Hal {
public:
const uint8_t GpioModeInput;
const uint8_t GpioModeOutput;
const uint8_t GpioLevelLow;
const uint8_t GpioLevelHigh;
const uint8_t GpioInterruptRising;
const uint8_t GpioInterruptFalling;
const uint32_t GpioModeInput;
const uint32_t GpioModeOutput;
const uint32_t GpioLevelLow;
const uint32_t GpioLevelHigh;
const uint32_t GpioInterruptRising;
const uint32_t GpioInterruptFalling;
Hal(const uint8_t input, const uint8_t output, const uint8_t low, const uint8_t high, const uint8_t rising, const uint8_t falling);
Hal(const uint32_t input, const uint32_t output, const uint32_t low, const uint32_t high, const uint32_t rising, const uint32_t falling);
virtual void init();
virtual void term();
virtual void pinMode(uint8_t pin, uint8_t mode) = 0;
virtual void digitalWrite(uint8_t pin, uint8_t value) = 0;
virtual uint8_t digitalRead(uint8_t pin) = 0;
virtual void attachInterrupt(uint8_t interruptNum, void (*interruptCb)(void), uint8_t mode) = 0;
virtual void detachInterrupt(uint8_t interruptNum) = 0;
virtual void pinMode(uint32_t pin, uint32_t mode) = 0;
virtual void digitalWrite(uint32_t pin, uint32_t value) = 0;
virtual uint32_t digitalRead(uint32_t pin) = 0;
virtual void attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) = 0;
virtual void detachInterrupt(uint32_t interruptNum) = 0;
virtual void delay(unsigned long ms) = 0;
virtual void delayMicroseconds(unsigned long us) = 0;
virtual unsigned long millis() = 0;
virtual unsigned long micros() = 0;
virtual long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout) = 0;
virtual long pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) = 0;
virtual void spiBegin() = 0;
virtual void spiBeginTransaction() = 0;
virtual uint8_t spiTransfer(uint8_t b) = 0;
virtual void spiEndTransaction() = 0;
virtual void spiEnd() = 0;
virtual void tone(uint8_t pin, unsigned int frequency, unsigned long duration = 0);
virtual void noTone(uint8_t pin);
virtual void tone(uint32_t pin, unsigned int frequency, unsigned long duration = 0);
virtual void noTone(uint32_t pin);
virtual void yield();
virtual uint8_t pinToInterrupt(uint8_t pin);
virtual uint32_t pinToInterrupt(uint32_t pin);
};
#endif

View file

@ -6,16 +6,16 @@
#if defined(RADIOLIB_BUILD_ARDUINO)
#include "ArduinoHal.h"
Module::Module(uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
Module::Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
this->hal = new ArduinoHal;
}
Module::Module(uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio, SPIClass& spi, SPISettings spiSettings) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
Module::Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio, SPIClass& spi, SPISettings spiSettings) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
this->hal = new ArduinoHal(spi, spiSettings);
}
#endif
Module::Module(Hal *hal, uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
Module::Module(Hal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio) : _cs(cs), _irq(irq), _rst(rst), _gpio(gpio) {
this->hal = hal;
}
@ -465,9 +465,9 @@ size_t Module::serialPrintf(const char* format, ...) {
}
#endif
void Module::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void Module::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
// This can be on the stack, setRfSwitchTable copies the contents
const uint8_t pins[] = {
const uint32_t pins[] = {
rxEn, txEn, RADIOLIB_NC,
};
// This must be static, since setRfSwitchTable stores a reference.
@ -480,7 +480,7 @@ void Module::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
setRfSwitchTable(pins, table);
}
void Module::setRfSwitchTable(const uint8_t (&pins)[3], const RfSwitchMode_t table[]) {
void Module::setRfSwitchTable(const uint32_t (&pins)[3], const RfSwitchMode_t table[]) {
memcpy(_rfSwitchPins, pins, sizeof(_rfSwitchPins));
_rfSwitchTable = table;
for(size_t i = 0; i < RFSWITCH_MAX_PINS; i++)
@ -505,9 +505,9 @@ void Module::setRfSwitchState(uint8_t mode) {
}
// set pins
const uint8_t *value = &row->values[0];
const uint32_t *value = &row->values[0];
for(size_t i = 0; i < RFSWITCH_MAX_PINS; i++) {
uint8_t pin = _rfSwitchPins[i];
uint32_t pin = _rfSwitchPins[i];
if (pin != RADIOLIB_NC)
this->hal->digitalWrite(pin, *value);
++value;

View file

@ -46,7 +46,7 @@ class Module {
*/
struct RfSwitchMode_t {
uint8_t mode;
uint8_t values[RFSWITCH_MAX_PINS];
uint32_t values[RFSWITCH_MAX_PINS];
};
/*!
@ -81,7 +81,7 @@ class Module {
\param gpio Arduino pin to be used as additional interrupt/GPIO.
*/
Module(uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio = RADIOLIB_NC);
Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
/*!
\brief Arduino Module constructor. Will not attempt SPI interface initialization.
@ -98,7 +98,7 @@ class Module {
\param spiSettings SPI interface settings.
*/
Module(uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio, SPIClass& spi, SPISettings spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS);
Module(uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio, SPIClass& spi, SPISettings spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS);
#endif
/*!
@ -114,7 +114,7 @@ class Module {
\param gpio Pin to be used as additional interrupt/GPIO.
*/
Module(Hal *hal, uint8_t cs, uint8_t irq, uint8_t rst, uint8_t gpio = RADIOLIB_NC);
Module(Hal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio = RADIOLIB_NC);
/*!
\brief Copy constructor.
@ -410,28 +410,28 @@ class Module {
\returns Pin number of SPI chip select configured in the constructor.
*/
uint8_t getCs() const { return(_cs); }
uint32_t getCs() const { return(_cs); }
/*!
\brief Access method to get the pin number of interrupt/GPIO.
\returns Pin number of interrupt/GPIO configured in the constructor.
*/
uint8_t getIrq() const { return(_irq); }
uint32_t getIrq() const { return(_irq); }
/*!
\brief Access method to get the pin number of hardware reset pin.
\returns Pin number of hardware reset pin configured in the constructor.
*/
uint8_t getRst() const { return(_rst); }
uint32_t getRst() const { return(_rst); }
/*!
\brief Access method to get the pin number of second interrupt/GPIO.
\returns Pin number of second interrupt/GPIO configured in the constructor.
*/
uint8_t getGpio() const { return(_gpio); }
uint32_t getGpio() const { return(_gpio); }
/*!
\brief Some modules contain external RF switch controlled by pins.
@ -449,7 +449,7 @@ class Module {
\param rxEn RX enable pin.
\param txEn TX enable pin.
*/
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*!
\brief Some modules contain external RF switch controlled by pins.
@ -495,7 +495,7 @@ class Module {
\code
// In global scope, define the pin array and mode table
static const uint8_t rfswitch_pins[] =
static const uint32_t rfswitch_pins[] =
{PA0, PA1, RADIOLIB_NC};
static const Module::RfSwitchMode_t rfswitch_table[] = {
{Module::MODE_IDLE, {LOW, LOW}},
@ -513,7 +513,7 @@ class Module {
\endcode
*/
void setRfSwitchTable(const uint8_t (&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[]);
/*!
* \brief Find a mode in the RfSwitchTable.
@ -581,13 +581,13 @@ class Module {
#if !defined(RADIOLIB_GODMODE)
private:
#endif
uint8_t _cs = RADIOLIB_NC;
uint8_t _irq = RADIOLIB_NC;
uint8_t _rst = RADIOLIB_NC;
uint8_t _gpio = RADIOLIB_NC;
uint32_t _cs = RADIOLIB_NC;
uint32_t _irq = RADIOLIB_NC;
uint32_t _rst = RADIOLIB_NC;
uint32_t _gpio = RADIOLIB_NC;
// RF switch pins and table
uint8_t _rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
uint32_t _rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
const RfSwitchMode_t *_rfSwitchTable = nullptr;
#if defined(RADIOLIB_INTERRUPT_TIMING)

View file

@ -899,11 +899,11 @@ int16_t CC1101::setEncoding(uint8_t encoding) {
}
}
void CC1101::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void CC1101::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void CC1101::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void CC1101::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -936,12 +936,12 @@ void CC1101::setDirectAction(void (*func)(void)) {
setGdo0Action(func, _mod->hal->GpioInterruptRising);
}
void CC1101::readBit(uint8_t pin) {
void CC1101::readBit(uint32_t pin) {
updateDirectBuffer((uint8_t)_mod->hal->digitalRead(pin));
}
#endif
int16_t CC1101::setDIOMapping(uint8_t pin, uint8_t value) {
int16_t CC1101::setDIOMapping(uint32_t pin, uint32_t value) {
if (pin > 2)
return RADIOLIB_ERR_INVALID_DIO_PIN;

View file

@ -953,10 +953,10 @@ class CC1101: public PhysicalLayer {
int16_t setEncoding(uint8_t encoding) override;
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Get one truly random byte from RSSI noise.
@ -985,7 +985,7 @@ class CC1101: public PhysicalLayer {
\param pin Pin on which to read.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
/*!
@ -997,7 +997,7 @@ class CC1101: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setDIOMapping(uint8_t pin, uint8_t value);
int16_t setDIOMapping(uint32_t pin, uint32_t value);
#if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
protected:

View file

@ -917,11 +917,11 @@ int16_t RF69::setRSSIThreshold(float dbm) {
return _mod->SPIsetRegValue(RADIOLIB_RF69_REG_RSSI_THRESH, (uint8_t)(-2.0 * dbm), 7, 0);
}
void RF69::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void RF69::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void RF69::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void RF69::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -949,12 +949,12 @@ void RF69::setDirectAction(void (*func)(void)) {
setDio1Action(func);
}
void RF69::readBit(uint8_t pin) {
void RF69::readBit(uint32_t pin) {
updateDirectBuffer((uint8_t)_mod->hal->digitalRead(pin));
}
#endif
int16_t RF69::setDIOMapping(uint8_t pin, uint8_t value) {
int16_t RF69::setDIOMapping(uint32_t pin, uint32_t value) {
if(pin > 5) {
return(RADIOLIB_ERR_INVALID_DIO_PIN);
}

View file

@ -1035,10 +1035,10 @@ class RF69: public PhysicalLayer {
int16_t setRSSIThreshold(float dbm);
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Get one truly random byte from RSSI noise.
@ -1067,7 +1067,7 @@ class RF69: public PhysicalLayer {
\param pin Pin on which to read.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
/*!
@ -1079,7 +1079,7 @@ class RF69: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setDIOMapping(uint8_t pin, uint8_t value);
int16_t setDIOMapping(uint32_t pin, uint32_t value);
#if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
protected:

View file

@ -26,7 +26,7 @@ class Stm32wlxHal : public ArduinoHal {
public:
Stm32wlxHal(): ArduinoHal(SubGhz.SPI, SubGhz.spi_settings) {}
void pinMode(uint8_t dwPin, uint8_t dwMode) {
void pinMode(uint32_t dwPin, uint32_t dwMode) {
switch(dwPin) {
case RADIOLIB_STM32WLx_VIRTUAL_PIN_NSS:
case RADIOLIB_STM32WLx_VIRTUAL_PIN_BUSY:
@ -40,7 +40,7 @@ class Stm32wlxHal : public ArduinoHal {
}
}
void digitalWrite(uint8_t dwPin, uint8_t dwVal) {
void digitalWrite(uint32_t dwPin, uint32_t dwVal) {
switch (dwPin) {
case RADIOLIB_STM32WLx_VIRTUAL_PIN_NSS:
SubGhz.setNssActive(dwVal == LOW);
@ -61,7 +61,7 @@ class Stm32wlxHal : public ArduinoHal {
}
}
uint8_t digitalRead(uint8_t ulPin) {
uint32_t digitalRead(uint32_t ulPin) {
switch (ulPin) {
case RADIOLIB_STM32WLx_VIRTUAL_PIN_BUSY:
return(SubGhz.isBusy() ? HIGH : LOW);

View file

@ -1359,11 +1359,11 @@ int16_t SX126x::setEncoding(uint8_t encoding) {
return(setWhitening(encoding));
}
void SX126x::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void SX126x::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void SX126x::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void SX126x::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -1435,7 +1435,7 @@ void SX126x::setDirectAction(void (*func)(void)) {
setDio1Action(func);
}
void SX126x::readBit(uint8_t pin) {
void SX126x::readBit(uint32_t pin) {
updateDirectBuffer((uint8_t)_mod->hal->digitalRead(pin));
}
#endif

View file

@ -1031,10 +1031,10 @@ class SX126x: public PhysicalLayer {
int16_t setEncoding(uint8_t encoding) override;
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method, LDRO will always be set to
@ -1083,7 +1083,7 @@ class SX126x: public PhysicalLayer {
\param pin Pin on which to read.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
/*!

View file

@ -1267,11 +1267,11 @@ uint8_t SX127x::getModemStatus() {
return(_mod->SPIreadRegister(RADIOLIB_SX127X_REG_MODEM_STAT));
}
void SX127x::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void SX127x::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void SX127x::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void SX127x::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -1508,7 +1508,7 @@ void SX127x::setDirectAction(void (*func)(void)) {
setDio1Action(func, _mod->hal->GpioInterruptRising);
}
void SX127x::readBit(uint8_t pin) {
void SX127x::readBit(uint32_t pin) {
updateDirectBuffer((uint8_t)_mod->hal->digitalRead(pin));
}
#endif
@ -1534,7 +1534,7 @@ void SX127x::clearFHSSInt(void) {
}
}
int16_t SX127x::setDIOMapping(uint8_t pin, uint8_t value) {
int16_t SX127x::setDIOMapping(uint32_t pin, uint32_t value) {
if (pin > 5)
return RADIOLIB_ERR_INVALID_DIO_PIN;

View file

@ -1155,10 +1155,10 @@ class SX127x: public PhysicalLayer {
int8_t getTempRaw();
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Get one truly random byte from RSSI noise.
@ -1196,7 +1196,7 @@ class SX127x: public PhysicalLayer {
\param pin Pin on which to read.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
/*!
@ -1236,7 +1236,7 @@ class SX127x: public PhysicalLayer {
\returns \ref status_codes
*/
int16_t setDIOMapping(uint8_t pin, uint8_t value);
int16_t setDIOMapping(uint32_t pin, uint32_t value);
/*!
\brief Configure DIO mapping to use RSSI or Preamble Detect for pins that support it.

View file

@ -1266,11 +1266,11 @@ int16_t SX128x::setEncoding(uint8_t encoding) {
return(setWhitening(encoding));
}
void SX128x::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void SX128x::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void SX128x::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void SX128x::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -1300,7 +1300,7 @@ void SX128x::setDirectAction(void (*func)(void)) {
(void)func;
}
void SX128x::readBit(uint8_t pin) {
void SX128x::readBit(uint32_t pin) {
// SX128x is unable to perform direct mode reception
// this method is implemented only for PhysicalLayer compatibility
(void)pin;

View file

@ -817,10 +817,10 @@ class SX128x: public PhysicalLayer {
int16_t setEncoding(uint8_t encoding) override;
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Dummy random method, to ensure PhysicalLayer compatibility.
@ -851,7 +851,7 @@ class SX128x: public PhysicalLayer {
\param pin Ignored.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
#if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)

View file

@ -576,11 +576,11 @@ int16_t Si443x::setDataShaping(uint8_t sh) {
}
}
void Si443x::setRfSwitchPins(uint8_t rxEn, uint8_t txEn) {
void Si443x::setRfSwitchPins(uint32_t rxEn, uint32_t txEn) {
_mod->setRfSwitchPins(rxEn, txEn);
}
void Si443x::setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
void Si443x::setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]) {
_mod->setRfSwitchTable(pins, table);
}
@ -612,7 +612,7 @@ void Si443x::setDirectAction(void (*func)(void)) {
setIrqAction(func);
}
void Si443x::readBit(uint8_t pin) {
void Si443x::readBit(uint32_t pin) {
updateDirectBuffer((uint8_t)_mod->hal->digitalRead(pin));
}
#endif

View file

@ -810,10 +810,10 @@ class Si443x: public PhysicalLayer {
int16_t setDataShaping(uint8_t sh) override;
/*! \copydoc Module::setRfSwitchPins */
void setRfSwitchPins(uint8_t rxEn, uint8_t txEn);
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn);
/*! \copydoc Module::setRfSwitchTable */
void setRfSwitchTable(const uint8_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
void setRfSwitchTable(const uint32_t (&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[]);
/*!
\brief Get one truly random byte from RSSI noise.
@ -842,7 +842,7 @@ class Si443x: public PhysicalLayer {
\param pin Pin on which to read.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
/*!

View file

@ -559,7 +559,7 @@ void nRF24::setDirectAction(void (*func)(void)) {
(void)func;
}
void nRF24::readBit(uint8_t pin) {
void nRF24::readBit(uint32_t pin) {
// nRF24 is unable to perform direct mode actions
// this method is implemented only for PhysicalLayer compatibility
(void)pin;

View file

@ -528,7 +528,7 @@ class nRF24: public PhysicalLayer {
\param pin Ignored.
*/
void readBit(uint8_t pin);
void readBit(uint32_t pin);
#endif
#if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)

View file

@ -1,7 +1,7 @@
#include "AFSK.h"
#if !defined(RADIOLIB_EXCLUDE_AFSK)
AFSKClient::AFSKClient(PhysicalLayer* phy, uint8_t pin): _pin(pin) {
AFSKClient::AFSKClient(PhysicalLayer* phy, uint32_t pin): _pin(pin) {
_phy = phy;
}

View file

@ -23,7 +23,7 @@ class AFSKClient {
\param pin The pin that will be used for audio output.
*/
AFSKClient(PhysicalLayer* phy, uint8_t pin);
AFSKClient(PhysicalLayer* phy, uint32_t pin);
/*!
\brief Initialization method.
@ -56,7 +56,7 @@ class AFSKClient {
private:
#endif
PhysicalLayer* _phy;
uint8_t _pin;
uint32_t _pin;
// allow specific classes access the private PhysicalLayer pointer
friend class RTTYClient;

View file

@ -7,7 +7,7 @@
// this is a massive hack, but we need a global-scope ISR to manage the bit reading
// let's hope nobody ever tries running two POCSAG receivers at the same time
static PhysicalLayer* _readBitInstance = NULL;
static uint8_t _readBitPin = RADIOLIB_NC;
static uint32_t _readBitPin = RADIOLIB_NC;
#if defined(ESP8266) || defined(ESP32)
ICACHE_RAM_ATTR
@ -223,7 +223,7 @@ int16_t PagerClient::transmit(uint8_t* data, size_t len, uint32_t addr, uint8_t
}
#if !defined(RADIOLIB_EXCLUDE_DIRECT_RECEIVE)
int16_t PagerClient::startReceive(uint8_t pin, uint32_t addr, uint32_t mask) {
int16_t PagerClient::startReceive(uint32_t pin, uint32_t addr, uint32_t mask) {
// save the variables
_readBitPin = pin;
_filterAddr = addr;

View file

@ -157,7 +157,7 @@ class PagerClient {
\returns \ref status_codes
*/
int16_t startReceive(uint8_t pin, uint32_t addr, uint32_t mask = 0xFFFFF);
int16_t startReceive(uint32_t pin, uint32_t addr, uint32_t mask = 0xFFFFF);
/*!
\brief Get the number of POCSAG batches available in buffer. Limited by the size of direct mode buffer!

View file

@ -380,13 +380,13 @@ void PhysicalLayer::setDirectAction(void (*func)(void)) {
(void)func;
}
void PhysicalLayer::readBit(uint8_t pin) {
void PhysicalLayer::readBit(uint32_t pin) {
(void)pin;
}
#endif
int16_t PhysicalLayer::setDIOMapping(uint8_t pin, uint8_t value) {
int16_t PhysicalLayer::setDIOMapping(uint32_t pin, uint32_t value) {
(void)pin;
(void)value;
return(RADIOLIB_ERR_UNSUPPORTED);

View file

@ -360,7 +360,7 @@ class PhysicalLayer {
\param pin Pin on which to read.
*/
virtual void readBit(uint8_t pin);
virtual void readBit(uint32_t pin);
/*!
\brief Get the number of direct mode bytes currently available in buffer.
@ -393,7 +393,7 @@ class PhysicalLayer {
\returns \ref status_codes
*/
virtual int16_t setDIOMapping(uint8_t pin, uint8_t value);
virtual int16_t setDIOMapping(uint32_t pin, uint32_t value);
/*!
\brief Sets interrupt service routine to call when DIO1 activates.