mirror of
https://github.com/openshwprojects/OpenBK7231T_App.git
synced 2026-02-20 00:32:37 +01:00
IR: change IR events to Event3 and include 'repeats' argument - this should not break anything, cause Event2 handlers will still be called as before, if not, let me know
This commit is contained in:
@@ -857,10 +857,11 @@ extern "C" void DRV_IR_RunFrame(){
|
||||
break;
|
||||
}
|
||||
|
||||
// we should include repeat here?
|
||||
// e.g. on/off button should not toggle on repeats, but up/down probably should eat them.
|
||||
uint32_t counter_in = ir_counter;
|
||||
EventHandlers_FireEvent2(tgType,ourReceiver->decodedIRData.address,ourReceiver->decodedIRData.command);
|
||||
// 2025.08.09 - include repeats, this should work also
|
||||
// with older scripts
|
||||
EventHandlers_FireEvent3(tgType, ourReceiver->decodedIRData.address,
|
||||
ourReceiver->decodedIRData.command, repeats);
|
||||
uint32_t counter_dur = ((ir_counter - counter_in)*50)/1000;
|
||||
ADDLOG_DEBUG(LOG_FEATURE_IR, (char *)"IR fire event took %dms", counter_dur);
|
||||
}
|
||||
|
||||
@@ -98,6 +98,36 @@ void Test_Events() {
|
||||
SELFTEST_ASSERT(EVENT_ParseEventName("UnknownEvent") == CMD_EVENT_NONE);
|
||||
SELFTEST_ASSERT(EVENT_ParseEventName("") == CMD_EVENT_NONE);
|
||||
SELFTEST_ASSERT(EVENT_ParseEventName(" ") == CMD_EVENT_NONE);
|
||||
|
||||
CMD_ExecuteCommand("setchannel 20 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(20, 0);
|
||||
CMD_ExecuteCommand("addEventHandler2 IR_RC6 0x11 0x23 addChannel 20 1", 0);
|
||||
// FireEvent 3 will call addEventHandler2
|
||||
// (it assumes that third argument is 'any')
|
||||
// So if we want RC6 events for 0x20 0x20 with ANY repeats (press or hold)
|
||||
// then both press and release calls event
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x11, 0x23, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(20, 1);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x11, 0x23, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(20, 2);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x11, 0x23, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(20, 3);
|
||||
|
||||
CMD_ExecuteCommand("setchannel 10 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 0);
|
||||
CMD_ExecuteCommand("addEventHandler3 IR_RC6 0x10 0x10 1 addChannel 10 1", 0);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x10, 0x10, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 0);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x10, 0x10, 1);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 1);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x10, 0x10, 1);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 2);
|
||||
EventHandlers_FireEvent3(CMD_EVENT_IR_RC6, 0x10, 0x10, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 2);
|
||||
EventHandlers_FireEvent2(CMD_EVENT_IR_RC6, 0x10, 0x10);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 3);
|
||||
EventHandlers_FireEvent2(CMD_EVENT_IR_RC6, 0x10, 0x10);
|
||||
SELFTEST_ASSERT_CHANNEL(10, 4);
|
||||
}
|
||||
|
||||
void Test_UART() {
|
||||
|
||||
Reference in New Issue
Block a user