The current design is for each mode to set actuators on entry to a new mode/sub-mode (e.g. this function) per that mode's initial state. Then, while in that mode/sub-mode, the mode's state machine will change actuators as required when moving from one state to another.
Yes, if drain pump is pumping too fast, the combined flow from drain pump and from RO pump is too much for the length of tubing after the two merge and go to drain. Starts to cavitate and causes a lot of turbulence.
The available log levels are listed in the docstring of the HD constructor. It simplifies debugging someone's script to not have to import dialin logging levels when we need to debug their code. Since the HD/DG logging is not intended to be used by dialin script writers, and is a dialin developer-only capability, adding enum imports to user scripts when we want to debug their code would be an unnecessary hindrance.
How come this module doesn't have "HDSimulator = HDSimulator()" and still is using an instance of the HDSimulator? it shows that : 1 - The name of the object has to be different than the class name itself so we will understand which one is used. (class or instance) 2 - If this one doesn't require defining the HDSimulator, then why it has been defined in the other ones.
Reinstalled the case statement back to where it was. case MSG_ID_HD_FAN_RPM_ALARM_START_TIME_OFFSET_OVERRIDE: handleTestFansRPMAlarmStartTimeOffsetOverrideRequest( message );
Please use the SquishQt recommended syntax and functions as has been explained and described in their examples.
In this change I am actually correcting a misuse of the squishqt api. waitForObjectExists will always return true after the first call without using utils.dict_update. This is because the text is omitted from the object that is being waited for. So, the object holding the text will always exist, and each successive call will not wait for the text to be updated. To pass, you were basically relying on the long delay added by cansend that occurs between each call to test_values. That delay happened to be longer than it takes for the text to be updated in the UI, allowing the tests to pass by accident. This kind of test design is fragile, as the test could fail at any time depending on how long cansend takes to send a message.
I would rather let SquishQt test and check the existence of the properties (in this case ".text") instead of another function adding a property to the dictionary without making sure that the object actually has the property and not checking the object tree.
I'm not sure that QSettings does that for us. But the design, for now, is that the settings are for reading only at boot up and no to write. Later when we decided to have it save the settings will do the rest for the write/read protection.