From 460a050a63710a8f01e9e55f2513951d004ce0a4 Mon Sep 17 00:00:00 2001 From: jgromes Date: Sun, 29 Dec 2019 10:37:04 +0100 Subject: [PATCH] [SX126x] Added methods to clear DIO actions --- keywords.txt | 6 +++++- src/modules/SX126x/SX126x.cpp | 4 ++++ src/modules/SX126x/SX126x.h | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/keywords.txt b/keywords.txt index c4f652a2..3b5fdf0f 100644 --- a/keywords.txt +++ b/keywords.txt @@ -62,6 +62,8 @@ receiveDirect KEYWORD2 packetMode KEYWORD2 setDio0Action KEYWORD2 setDio1Action KEYWORD2 +clearDio0Action KEYWORD2 +clearDio1Action KEYWORD2 startTransmit KEYWORD2 startReceive KEYWORD2 readData KEYWORD2 @@ -107,7 +109,9 @@ setAmbientTemperature KEYWORD2 # CC1101-specific getLQI KEYWORD2 setGdo0Action KEYWORD2 -setGdo1Action KEYWORD2 +setGdo2Action KEYWORD2 +clearGdo0Action KEYWORD2 +clearGdo2Action KEYWORD2 # SX126x-specific setTCXO KEYWORD2 diff --git a/src/modules/SX126x/SX126x.cpp b/src/modules/SX126x/SX126x.cpp index 15c460b7..ffd84d44 100644 --- a/src/modules/SX126x/SX126x.cpp +++ b/src/modules/SX126x/SX126x.cpp @@ -393,6 +393,10 @@ void SX126x::setDio1Action(void (*func)(void)) { attachInterrupt(digitalPinToInterrupt(_mod->getIrq()), func, RISING); } +void SX126x::clearDio1Action() { + detachInterrupt(digitalPinToInterrupt(_mod->getIrq())); +} + int16_t SX126x::startTransmit(uint8_t* data, size_t len, uint8_t addr) { // suppress unused variable warning (void)addr; diff --git a/src/modules/SX126x/SX126x.h b/src/modules/SX126x/SX126x.h index 52d486f0..ff282cca 100644 --- a/src/modules/SX126x/SX126x.h +++ b/src/modules/SX126x/SX126x.h @@ -481,6 +481,11 @@ class SX126x: public PhysicalLayer { */ void setDio1Action(void (*func)(void)); + /*! + \brief Clears interrupt service routine to call when DIO1 activates. + */ + void clearDio1Action(); + /*! \brief Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in PhysicalLayer.