Skip to content

Commit

Permalink
float change callback temp fix
Browse files Browse the repository at this point in the history
  • Loading branch information
openshwprojects committed Mar 5, 2025
1 parent 8c01b0c commit 49a466a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
4 changes: 4 additions & 0 deletions src/new_pins.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)
Expand Down
19 changes: 8 additions & 11 deletions src/selftest/selftest_changeHandlers.c
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down

0 comments on commit 49a466a

Please sign in to comment.