mirror of
https://github.com/openshwprojects/OpenBK7231T_App.git
synced 2025-10-29 19:43:22 +00:00
delay_ms 50 test
This commit is contained in:
parent
689a97c3c9
commit
3a6d7bcecc
@ -361,20 +361,22 @@ void EventHandlers_AddEventHandler_String(byte eventCode, int type, const char *
|
||||
ev->requiredArgument = 0;
|
||||
ev->requiredArgument2 = 0;
|
||||
}
|
||||
void EventHandlers_FireEvent3(byte eventCode, int argument, int argument2, int argument3) {
|
||||
int EventHandlers_FireEvent3(byte eventCode, int argument, int argument2, int argument3) {
|
||||
struct eventHandler_s *ev;
|
||||
|
||||
ev = g_eventHandlers;
|
||||
|
||||
int ran = 0;
|
||||
while (ev) {
|
||||
if (eventCode == ev->eventCode) {
|
||||
if (argument == ev->requiredArgument && argument2 == ev->requiredArgument2 && argument3 == ev->requiredArgument3) {
|
||||
ADDLOG_INFO(LOG_FEATURE_EVENT, "EventHandlers_FireEvent3: executing command %s", ev->command);
|
||||
CMD_ExecuteCommand(ev->command, COMMAND_FLAG_SOURCE_SCRIPT);
|
||||
ran++;
|
||||
}
|
||||
}
|
||||
ev = ev->next;
|
||||
}
|
||||
return ran;
|
||||
}
|
||||
int EventHandlers_FireEvent2(byte eventCode, int argument, int argument2) {
|
||||
struct eventHandler_s *ev;
|
||||
|
||||
@ -235,7 +235,7 @@ void EventHandlers_FireEvent_String(byte eventCode, const char* argument);
|
||||
void EventHandlers_FireEvent(byte eventCode, int argument);
|
||||
int EventHandlers_FireEvent2(byte eventCode, int argument, int argument2);
|
||||
const char *EventHandlers_GetHandlerCommand2(byte eventCode, int argument, int argument2);
|
||||
void EventHandlers_FireEvent3(byte eventCode, int argument, int argument2, int argument3);
|
||||
int EventHandlers_FireEvent3(byte eventCode, int argument, int argument2, int argument3);
|
||||
// This is more advanced event handler. It will only fire handlers when a variable state changes from one to another.
|
||||
// For example, you can watch for Voltage from BL0942 to change below 230, and it will fire event only when it becomes below 230.
|
||||
void EventHandlers_ProcessVariableChange_Integer(byte eventCode, int oldValue, int newValue);
|
||||
|
||||
@ -65,6 +65,9 @@ void Test_Commands_Startup() {
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0xF));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0x10));
|
||||
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent3(CMD_EVENT_IR_NEC, 0xC7EA, 0x17, 0));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent3(CMD_EVENT_IR_NEC, 0xC7EA, 0xF, 0));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent3(CMD_EVENT_IR_NEC, 0xC7EA, 0x10, 0));
|
||||
}
|
||||
{
|
||||
SIM_ShutdownOBK();
|
||||
@ -95,6 +98,54 @@ void Test_Commands_Startup() {
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
SIM_ShutdownOBK();
|
||||
const char *t = "startDriver IR\n"
|
||||
"setFlag 1 1\n"
|
||||
"addEventHandler2 IR_NEC 0xC7EA 0x17 backlog IRSend NEC 0x0 0xA8; delay_ms 50; IRSend NEC 0x0 0xA8; IRSend NEC 0x0 0xA8; addChannel 1 1\n"
|
||||
"addEventHandler2 IR_NEC 0xC7EA 0xF backlog IRSend NEC 0x0 0x8C; delay_ms 50; IRSend NEC 0x0 0x8C; IRSend NEC 0x0 0x8C; IRSend NEC 0x0 0x8C; IRSend NEC 0x0 0x8C; addChannel 2 1\n"
|
||||
"addEventHandler2 IR_NEC 0xC7EA 0x10 backlog IRSend NEC 0x0 0x9C; delay_ms 50; IRSend NEC 0x0 0x9C; IRSend NEC 0x0 0x9C; IRSend NEC 0x0 0x9C; addChannel 3 1\n"
|
||||
"addEventHandler2 IR_NEC 0xC7EA 0x11 backlog IRSend NEC 0x0 0x9D; delay_ms 50; IRSend NEC 0x0 0x9D; IRSend NEC 0x0 0x9D; IRSend NEC 0x0 0x9D; addChannel 4 1\n";
|
||||
|
||||
CFG_SetShortStartupCommand(t);
|
||||
CFG_Save_IfThereArePendingChanges();
|
||||
// NOTE: THIS WILL RUN STARTUP COMMAND!!!!
|
||||
SIM_StartOBK(0);
|
||||
|
||||
CMD_ExecuteCommand("setChannel 1 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(1, 0);
|
||||
CMD_ExecuteCommand("setChannel 2 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(2, 0);
|
||||
CMD_ExecuteCommand("setChannel 3 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(3, 0);
|
||||
CMD_ExecuteCommand("setChannel 4 0", 0);
|
||||
SELFTEST_ASSERT_CHANNEL(4, 0);
|
||||
|
||||
printf("TEST 0x17: %s\n",
|
||||
EventHandlers_GetHandlerCommand2(CMD_EVENT_IR_NEC, 0xC7EA, 0x17));
|
||||
printf("TEST 0xF %s\n",
|
||||
EventHandlers_GetHandlerCommand2(CMD_EVENT_IR_NEC, 0xC7EA, 0xF));
|
||||
printf("TEST 0x10 %s\n",
|
||||
EventHandlers_GetHandlerCommand2(CMD_EVENT_IR_NEC, 0xC7EA, 0x10));
|
||||
printf("TEST 0x11 %s\n",
|
||||
EventHandlers_GetHandlerCommand2(CMD_EVENT_IR_NEC, 0xC7EA, 0x11));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0x17));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0xF));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0x10));
|
||||
SELFTEST_ASSERT(1 == EventHandlers_FireEvent2(CMD_EVENT_IR_NEC, 0xC7EA, 0x11));
|
||||
|
||||
// didn't get past delay_ms 50 yet
|
||||
SELFTEST_ASSERT_CHANNEL(1, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(2, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(3, 0);
|
||||
SELFTEST_ASSERT_CHANNEL(4, 0);
|
||||
// get past delay_ms 50
|
||||
Sim_RunMiliseconds(100, false);
|
||||
SELFTEST_ASSERT_CHANNEL(1, 1);
|
||||
SELFTEST_ASSERT_CHANNEL(2, 1);
|
||||
SELFTEST_ASSERT_CHANNEL(3, 1);
|
||||
SELFTEST_ASSERT_CHANNEL(4, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user