LowPowerLab Forum

Hardware support => Moteino => Topic started by: K1JOS on August 13, 2014, 10:51:20 PM

Title: ACKRequested problem in new RFM69 Lib (For Mega) [SOLVED]
Post by: K1JOS on August 13, 2014, 10:51:20 PM
Hi Felix,

I got my two MoteinoMega's today.  Beautiful work.  I removed the old RFM69 library and installed the Github latest RFM69.  I tried the  examples (Gateway/Node or struct receive/send.  I get the following errors:


Node:122: error: 'class RFM69' has no member named 'ACKRequested'

or

Gateway:135: error: 'class RFM69' has no member named 'ACKRequested'



I do see it in the RFM69.cpp:


//check whether an ACK was requested in the last received packet (non-broadcasted packet)
bool RFM69::ACKRequested() {
  return ACK_REQUESTED && (TARGETID != RF69_BROADCAST_ADDR);
}



However, when I run my own sketches with the new library using a Moteino Mega on one end and a Moteino on the other, it all works fine.  I am certain I have the new RFM69 library installed correctly.

Any advice appreciated to get this working. 

jerry
Title: Re: Problem with new RFM69 Lib (For Mega) with ACKRequested
Post by: Felix on August 14, 2014, 09:37:45 AM
Hey Jerry,
Did you restart your IDE after installing the new lib?
Also make sure you don't rename the old lib and keep it in the Arduino/libraries folder, this is a common mistake. It needs to be completely removed from the Arduino/libraries folder.
Title: Re: Problem with new RFM69 Lib (For Mega) with ACKRequested
Post by: K1JOS on August 14, 2014, 09:54:11 AM
That was it !  I renamed the old library but never deleted it.  After deleting, the new RFM69 examples compiled fine.  I noticed that your library still supports the old "radio.ACK_REQUESTED" as well as the new "radio.ACK_Requested()" .  I updated my code to the new call and it works fine.

again many thanks, I needed the extra serial ports and I/O of the Mega.

jerry
Title: Re: ACKRequested problem in new RFM69 Lib (For Mega) [SOLVED]
Post by: Felix on August 14, 2014, 10:20:04 AM
Yep, so what happens when you just rename, is the new .header file replaces the previous one and the new functionality is thus replaced with the old one, making it appear that the new library does not work. This can be very subtle especially when you make changes in the actual library (not the renamed one) and it ends up not behaving according to the changes you made, and can drive one crazy.