[RF69] Implemented generic actions

This commit is contained in:
jgromes 2023-06-21 22:15:54 +02:00
parent 43b9b13903
commit df126c92f9
4 changed files with 40 additions and 2 deletions

View file

@ -41,7 +41,7 @@ void setup() {
// set the function that will be called // set the function that will be called
// when new packet is received // when new packet is received
radio.setDio0Action(setFlag); radio.setPacketReceivedAction(setFlag);
// start listening for packets // start listening for packets
Serial.print(F("[RF69] Starting to listen ... ")); Serial.print(F("[RF69] Starting to listen ... "));

View file

@ -47,7 +47,7 @@ void setup() {
// set the function that will be called // set the function that will be called
// when packet transmission is finished // when packet transmission is finished
radio.setDio0Action(setFlag); radio.setPacketSentAction(setFlag);
// NOTE: some RF69 modules use high power output, // NOTE: some RF69 modules use high power output,
// those are usually marked RF69H(C/CW). // those are usually marked RF69H(C/CW).

View file

@ -294,6 +294,22 @@ void RF69::clearDio1Action() {
this->mod->hal->detachInterrupt(this->mod->hal->pinToInterrupt(this->mod->getGpio())); this->mod->hal->detachInterrupt(this->mod->hal->pinToInterrupt(this->mod->getGpio()));
} }
void RF69::setPacketReceivedAction(void (*func)(void)) {
this->setDio0Action(func);
}
void RF69::clearPacketReceivedAction() {
this->clearDio0Action();
}
void RF69::setPacketSentAction(void (*func)(void)) {
this->setDio0Action(func);
}
void RF69::clearPacketSentAction() {
this->clearDio0Action();
}
void RF69::setFifoEmptyAction(void (*func)(void)) { void RF69::setFifoEmptyAction(void (*func)(void)) {
// set DIO1 to the FIFO empty event (the register setting is done in startTransmit) // set DIO1 to the FIFO empty event (the register setting is done in startTransmit)
if(this->mod->getGpio() == RADIOLIB_NC) { if(this->mod->getGpio() == RADIOLIB_NC) {

View file

@ -617,6 +617,28 @@ class RF69: public PhysicalLayer {
*/ */
void clearDio1Action(); void clearDio1Action();
/*!
\brief Sets interrupt service routine to call when a packet is received.
\param func ISR to call.
*/
void setPacketReceivedAction(void (*func)(void));
/*!
\brief Clears interrupt service routine to call when a packet is received.
*/
void clearPacketReceivedAction();
/*!
\brief Sets interrupt service routine to call when a packet is sent.
\param func ISR to call.
*/
void setPacketSentAction(void (*func)(void));
/*!
\brief Clears interrupt service routine to call when a packet is sent.
*/
void clearPacketSentAction();
/*! /*!
\brief Set interrupt service routine function to call when FIFO is empty. \brief Set interrupt service routine function to call when FIFO is empty.
\param func Pointer to interrupt service routine. \param func Pointer to interrupt service routine.