Closed gomond closed 6 months ago
Sebastian is it possible to read 2 different length packets? i.e. 32 bits and 40 bits.
As the Bed Remote that I am using uses 1 button to output a pairing packet of 40 bits and all of the others are 32. It Is a Reverie bed.
> #include "RF433recv.h" > #include <Arduino.h> > > #define PIN_RFINPUT 2 > // Specifying the interrupt number is optional, you can leave it to the > // constructor to work it out. > #define INT_RFINPUT 0 > > void callback_anycode(const BitVector *recorded) { > Serial.print(F("Code received: ")); > char *printed_code = recorded->to_str(); > > if (printed_code) { > Serial.print(recorded->get_nb_bits()); > Serial.print(F(" bits: [")); > Serial.print(printed_code); > Serial.print(F("]\n")); > > free(printed_code); > } > } > > void callback_head_up(const BitVector *recorded) { > Serial.print(F("Head Up pressed\n")); > } > > void callback_head_down(const BitVector *recorded) { > Serial.print(F("Head Down pressed\n")); > } > > RF_manager rf(PIN_RFINPUT, INT_RFINPUT); > // Second parameter is optional. Could also be: > //RF_manager rf(PIN_RFINPUT); > > void setup() { > pinMode(PIN_RFINPUT, INPUT); > Serial.begin(115200); > > > // 40 Bit registration > // Data: 78 10 d6 be be > > rf.register_Receiver( > RFMOD_TRIBIT_INVERTED, // mod > 19468, // initseq > 4968, // lo_prefix > 5512, // hi_prefix > 1018, // first_lo_ign > 506, // lo_short > 1018, // lo_long > 0, // hi_short (0 => take lo_short) > 0, // hi_long (0 => take lo_long) > 968, // lo_last > 19468, // sep > 40 // nb_bits > ); > > rf.register_callback(callback_head_down, 500, > new BitVector(40, 5, 0x78, 0x10, 0xd6, 0xbe, 0xbe)); > > // 32 Bit registration > // Data: 78 10 d7 bf > > rf.register_Receiver( > RFMOD_TRIBIT_INVERTED, // mod > 19468, // initseq > 0, // lo_prefix > 0, // hi_prefix > 1020, // first_lo_ign > 512, // lo_short > 1020, // lo_long > 0, // hi_short (0 => take lo_short) > 0, // hi_long (0 => take lo_long) > 968, // lo_last > 19468, // sep > 32 // nb_bits > ); > > rf.register_callback(callback_head_up, 500, > new BitVector(32, 4, 0x78, 0x10, 0xd7, 0xbf)); > > > Serial.print(F("Waiting for signal\n")); > > rf.activate_interrupts_handler(); > } > > void loop() { > rf.do_events(); > }
/**/ this is what I am attempting but there are 18 buttons and I need to read them all.
Thank You
I apologise I was programming with my brain switched off. Worked it out. Thanks.
ok good ;-)
Sebastian is it possible to read 2 different length packets? i.e. 32 bits and 40 bits.
As the Bed Remote that I am using uses 1 button to output a pairing packet of 40 bits and all of the others are 32. It Is a Reverie bed.
/**/ this is what I am attempting but there are 18 buttons and I need to read them all.
Thank You