From 9a68a3c9012e1ffe5dc94cb4d116cbe71ad3d3ea Mon Sep 17 00:00:00 2001 From: Mestery Date: Sun, 16 Apr 2023 21:39:00 +0200 Subject: [PATCH] use uint32 instead of uint8 for pin type --- .../STM32WLx_Receive/STM32WLx_Receive.ino | 2 +- .../STM32WLx_Receive_Interrupt.ino | 2 +- .../STM32WLx_Transmit/STM32WLx_Transmit.ino | 2 +- .../STM32WLx_Transmit_Interrupt.ino | 2 +- src/ArduinoHal.cpp | 18 ++++----- src/ArduinoHal.h | 24 +++++++----- src/BuildOpt.h | 2 +- src/Hal.cpp | 8 ++-- src/Hal.h | 37 +++++++++++-------- src/Module.cpp | 16 ++++---- src/Module.h | 32 ++++++++-------- src/modules/CC1101/CC1101.cpp | 8 ++-- src/modules/CC1101/CC1101.h | 8 ++-- src/modules/RF69/RF69.cpp | 8 ++-- src/modules/RF69/RF69.h | 8 ++-- src/modules/SX126x/STM32WLx_Module.cpp | 6 +-- src/modules/SX126x/SX126x.cpp | 6 +-- src/modules/SX126x/SX126x.h | 6 +-- src/modules/SX127x/SX127x.cpp | 8 ++-- src/modules/SX127x/SX127x.h | 8 ++-- src/modules/SX128x/SX128x.cpp | 6 +-- src/modules/SX128x/SX128x.h | 6 +-- src/modules/Si443x/Si443x.cpp | 6 +-- src/modules/Si443x/Si443x.h | 6 +-- src/modules/nRF24/nRF24.cpp | 2 +- src/modules/nRF24/nRF24.h | 2 +- src/protocols/AFSK/AFSK.cpp | 2 +- src/protocols/AFSK/AFSK.h | 4 +- src/protocols/Pager/Pager.cpp | 4 +- src/protocols/Pager/Pager.h | 2 +- src/protocols/PhysicalLayer/PhysicalLayer.cpp | 4 +- src/protocols/PhysicalLayer/PhysicalLayer.h | 4 +- 32 files changed, 135 insertions(+), 124 deletions(-) diff --git a/examples/STM32WLx/STM32WLx_Receive/STM32WLx_Receive.ino b/examples/STM32WLx/STM32WLx_Receive/STM32WLx_Receive.ino index 2b96d157..b5f15965 100644 --- a/examples/STM32WLx/STM32WLx_Receive/STM32WLx_Receive.ino +++ b/examples/STM32WLx/STM32WLx_Receive/STM32WLx_Receive.ino @@ -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}}, diff --git a/examples/STM32WLx/STM32WLx_Receive_Interrupt/STM32WLx_Receive_Interrupt.ino b/examples/STM32WLx/STM32WLx_Receive_Interrupt/STM32WLx_Receive_Interrupt.ino index 0bb54513..2ce57212 100644 --- a/examples/STM32WLx/STM32WLx_Receive_Interrupt/STM32WLx_Receive_Interrupt.ino +++ b/examples/STM32WLx/STM32WLx_Receive_Interrupt/STM32WLx_Receive_Interrupt.ino @@ -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}}, diff --git a/examples/STM32WLx/STM32WLx_Transmit/STM32WLx_Transmit.ino b/examples/STM32WLx/STM32WLx_Transmit/STM32WLx_Transmit.ino index cd1577d6..7455cafd 100644 --- a/examples/STM32WLx/STM32WLx_Transmit/STM32WLx_Transmit.ino +++ b/examples/STM32WLx/STM32WLx_Transmit/STM32WLx_Transmit.ino @@ -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}}, diff --git a/examples/STM32WLx/STM32WLx_Transmit_Interrupt/STM32WLx_Transmit_Interrupt.ino b/examples/STM32WLx/STM32WLx_Transmit_Interrupt/STM32WLx_Transmit_Interrupt.ino index 6e4e361b..900e52d2 100644 --- a/examples/STM32WLx/STM32WLx_Transmit_Interrupt/STM32WLx_Transmit_Interrupt.ino +++ b/examples/STM32WLx/STM32WLx_Transmit_Interrupt/STM32WLx_Transmit_Interrupt.ino @@ -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}}, diff --git a/src/ArduinoHal.cpp b/src/ArduinoHal.cpp index 98ef02c8..6688a4f8 100644 --- a/src/ArduinoHal.cpp +++ b/src/ArduinoHal.cpp @@ -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 diff --git a/src/ArduinoHal.h b/src/ArduinoHal.h index 8a0044c5..cc6da0ea 100644 --- a/src/ArduinoHal.h +++ b/src/ArduinoHal.h @@ -14,6 +14,12 @@ #include +/*! + \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: diff --git a/src/BuildOpt.h b/src/BuildOpt.h index cf219cfd..b0a74076 100644 --- a/src/BuildOpt.h +++ b/src/BuildOpt.h @@ -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 diff --git a/src/Hal.cpp b/src/Hal.cpp index 088665a6..56d8905a 100644 --- a/src/Hal.cpp +++ b/src/Hal.cpp @@ -1,7 +1,7 @@ #include #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; }; diff --git a/src/Hal.h b/src/Hal.h index 1ee240d7..3c940e46 100644 --- a/src/Hal.h +++ b/src/Hal.h @@ -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 diff --git a/src/Module.cpp b/src/Module.cpp index c05bd1fc..5ff133cf 100644 --- a/src/Module.cpp +++ b/src/Module.cpp @@ -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; diff --git a/src/Module.h b/src/Module.h index 4ff07380..effc7140 100644 --- a/src/Module.h +++ b/src/Module.h @@ -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) diff --git a/src/modules/CC1101/CC1101.cpp b/src/modules/CC1101/CC1101.cpp index 578be439..9e7664ba 100644 --- a/src/modules/CC1101/CC1101.cpp +++ b/src/modules/CC1101/CC1101.cpp @@ -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; diff --git a/src/modules/CC1101/CC1101.h b/src/modules/CC1101/CC1101.h index 7d3e6f7f..775659d0 100644 --- a/src/modules/CC1101/CC1101.h +++ b/src/modules/CC1101/CC1101.h @@ -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: diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index ce10e304..9d46c308 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -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); } diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index d8b43473..3b7e7129 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -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: diff --git a/src/modules/SX126x/STM32WLx_Module.cpp b/src/modules/SX126x/STM32WLx_Module.cpp index 44d61a88..1336325b 100644 --- a/src/modules/SX126x/STM32WLx_Module.cpp +++ b/src/modules/SX126x/STM32WLx_Module.cpp @@ -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); diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index c1b7d165..b6745caf 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -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 diff --git a/src/modules/SX126x/SX126x.h b/src/modules/SX126x/SX126x.h index 560ca570..8db7d536 100644 --- a/src/modules/SX126x/SX126x.h +++ b/src/modules/SX126x/SX126x.h @@ -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 /*! diff --git a/src/modules/SX127x/SX127x.cpp b/src/modules/SX127x/SX127x.cpp index 7394f42b..331364fb 100644 --- a/src/modules/SX127x/SX127x.cpp +++ b/src/modules/SX127x/SX127x.cpp @@ -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; diff --git a/src/modules/SX127x/SX127x.h b/src/modules/SX127x/SX127x.h index 489b2efc..02f64ed3 100644 --- a/src/modules/SX127x/SX127x.h +++ b/src/modules/SX127x/SX127x.h @@ -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. diff --git a/src/modules/SX128x/SX128x.cpp b/src/modules/SX128x/SX128x.cpp index 47fb7d85..268a4e22 100644 --- a/src/modules/SX128x/SX128x.cpp +++ b/src/modules/SX128x/SX128x.cpp @@ -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; diff --git a/src/modules/SX128x/SX128x.h b/src/modules/SX128x/SX128x.h index 5a36b07b..8ff947d6 100644 --- a/src/modules/SX128x/SX128x.h +++ b/src/modules/SX128x/SX128x.h @@ -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) diff --git a/src/modules/Si443x/Si443x.cpp b/src/modules/Si443x/Si443x.cpp index 8fa4c505..445a3ff0 100644 --- a/src/modules/Si443x/Si443x.cpp +++ b/src/modules/Si443x/Si443x.cpp @@ -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 diff --git a/src/modules/Si443x/Si443x.h b/src/modules/Si443x/Si443x.h index 924ad936..595b0d91 100644 --- a/src/modules/Si443x/Si443x.h +++ b/src/modules/Si443x/Si443x.h @@ -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 /*! diff --git a/src/modules/nRF24/nRF24.cpp b/src/modules/nRF24/nRF24.cpp index a2f8792f..9f4cea9c 100644 --- a/src/modules/nRF24/nRF24.cpp +++ b/src/modules/nRF24/nRF24.cpp @@ -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; diff --git a/src/modules/nRF24/nRF24.h b/src/modules/nRF24/nRF24.h index 574685c5..5f683c87 100644 --- a/src/modules/nRF24/nRF24.h +++ b/src/modules/nRF24/nRF24.h @@ -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) diff --git a/src/protocols/AFSK/AFSK.cpp b/src/protocols/AFSK/AFSK.cpp index 080ebe7e..003c729d 100644 --- a/src/protocols/AFSK/AFSK.cpp +++ b/src/protocols/AFSK/AFSK.cpp @@ -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; } diff --git a/src/protocols/AFSK/AFSK.h b/src/protocols/AFSK/AFSK.h index d84e40fb..bd125784 100644 --- a/src/protocols/AFSK/AFSK.h +++ b/src/protocols/AFSK/AFSK.h @@ -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; diff --git a/src/protocols/Pager/Pager.cpp b/src/protocols/Pager/Pager.cpp index 14bf78d2..9d2aa8f1 100644 --- a/src/protocols/Pager/Pager.cpp +++ b/src/protocols/Pager/Pager.cpp @@ -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; diff --git a/src/protocols/Pager/Pager.h b/src/protocols/Pager/Pager.h index 7992c005..c0dc4960 100644 --- a/src/protocols/Pager/Pager.h +++ b/src/protocols/Pager/Pager.h @@ -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! diff --git a/src/protocols/PhysicalLayer/PhysicalLayer.cpp b/src/protocols/PhysicalLayer/PhysicalLayer.cpp index 66e139fb..eeabf806 100644 --- a/src/protocols/PhysicalLayer/PhysicalLayer.cpp +++ b/src/protocols/PhysicalLayer/PhysicalLayer.cpp @@ -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); diff --git a/src/protocols/PhysicalLayer/PhysicalLayer.h b/src/protocols/PhysicalLayer/PhysicalLayer.h index 0df9fb66..9dca1f23 100644 --- a/src/protocols/PhysicalLayer/PhysicalLayer.h +++ b/src/protocols/PhysicalLayer/PhysicalLayer.h @@ -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.