From 536829452faea43b04c9531a395a8f55833a5669 Mon Sep 17 00:00:00 2001 From: jgromes Date: Mon, 14 Jun 2021 21:14:55 +0200 Subject: [PATCH] [RF69] Added direct reception support --- src/modules/RF69/RF69.cpp | 8 ++++++++ src/modules/RF69/RF69.h | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/modules/RF69/RF69.cpp b/src/modules/RF69/RF69.cpp index 70eef785..d641c261 100644 --- a/src/modules/RF69/RF69.cpp +++ b/src/modules/RF69/RF69.cpp @@ -819,6 +819,14 @@ uint8_t RF69::random() { return(randByte); } +void RF69::setDirectAction(void (*func)(void)) { + setDio1Action(func); +} + +void RF69::readBit(RADIOLIB_PIN_TYPE pin) { + updateDirectBuffer((uint8_t)digitalRead(pin)); +} + int16_t RF69::getChipVersion() { return(_mod->SPIgetRegValue(RF69_REG_VERSION)); } diff --git a/src/modules/RF69/RF69.h b/src/modules/RF69/RF69.h index fab56900..78239054 100644 --- a/src/modules/RF69/RF69.h +++ b/src/modules/RF69/RF69.h @@ -869,6 +869,20 @@ class RF69: public PhysicalLayer { */ int16_t getChipVersion(); + /*! + \brief Set interrupt service routine function to call when data bit is receveid in direct mode. + + \param func Pointer to interrupt service routine. + */ + void setDirectAction(void (*func)(void)); + + /*! + \brief Function to read and process data bit in direct reception mode. + + \param pin Pin on which to read. + */ + void readBit(RADIOLIB_PIN_TYPE pin); + #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL) protected: #endif