float change callback temp fix

This commit is contained in:
Tester23
2025-03-05 08:51:37 +01:00
parent 8c01b0cf83
commit 49a466aecb
2 changed files with 12 additions and 11 deletions

View File

@ -1376,6 +1376,7 @@ void CHANNEL_ClearAllChannels() {
void CHANNEL_Set_FloatPWM(int ch, float fVal, int iFlags) {
int i;
float prevValue = g_channelValuesFloats[ch];
g_channelValues[ch] = (int)fVal;
g_channelValuesFloats[ch] = fVal;
@ -1390,6 +1391,9 @@ void CHANNEL_Set_FloatPWM(int ch, float fVal, int iFlags) {
}
}
}
// TODO: support float
EventHandlers_FireEvent(CMD_EVENT_CHANNEL_ONCHANGE, ch);
EventHandlers_ProcessVariableChange_Integer(CMD_EVENT_CHANGE_CHANNEL0 + ch, prevValue, fVal);
}
void CHANNEL_SetSmart(int ch, float fVal, int iFlags) {
if (ch < 0 || ch >= CHANNEL_MAX)

View File

@ -106,24 +106,21 @@ void Test_ChangeHandlers2() {
SIM_ClearOBK(0);
SIM_ClearAndPrepareForMQTTTesting("handlerTester", "bekens");
CMD_ExecuteCommand("setChannel 20 0", 0);
CMD_ExecuteCommand("setChannel 1 0", 0);
CMD_ExecuteCommand("setChannelFloat 20 0", 0); CMD_ExecuteCommand("setChannel 1 0", 0);
CMD_ExecuteCommand("addChangeHandler Channel20 != 0 addChannel 1 1", 0);
SELFTEST_ASSERT_CHANNEL(20, 0); SELFTEST_ASSERT_CHANNEL(1, 0);
// change handler will fire
CMD_ExecuteCommand("setChannel 20 3", 0);
// change handler will fire-> added 1 to channel 1, now 1
CMD_ExecuteCommand("setChannelFloat 20 3", 0);
SELFTEST_ASSERT_CHANNEL(20, 3); SELFTEST_ASSERT_CHANNEL(1, 1);
// change handler will not fire
CMD_ExecuteCommand("setChannel 20 4", 0);
CMD_ExecuteCommand("setChannelFloat 20 4", 0);
SELFTEST_ASSERT_CHANNEL(20, 4); SELFTEST_ASSERT_CHANNEL(1, 1);
// change handler will not fire
CMD_ExecuteCommand("setChannel 20 0", 0);
CMD_ExecuteCommand("setChannelFloat 20 0", 0);
SELFTEST_ASSERT_CHANNEL(20, 0); SELFTEST_ASSERT_CHANNEL(1, 1);
// change handler will fire
CMD_ExecuteCommand("setChannel 20 5", 0);
SELFTEST_ASSERT_CHANNEL(20, 5); SELFTEST_ASSERT_CHANNEL(1, 2);
// change handler will fire -> added 1 to channel 1, now 2
CMD_ExecuteCommand("setChannelFloat 20 5", 0);
SELFTEST_ASSERT_CHANNEL(20, 5); SELFTEST_ASSERT_CHANNEL(1, 2);
}
void Test_ChangeHandlers_EnsureThatChannelVariableIsExpandedAtHandlerRunTime() {