Great question. There would be another connection for the message "Treatment Parameters validation" and that will update the properties here when that message with parameters received. It would be an extra : ACTION_VIEW_CONNECTION(AdjustPressuresLimitsResponseData); with the correct model as a parameter and another: void VTreatmentAdjustmentPressuresLimits::onActionReceive(const AdjustPressuresLimitsResponseData &vData) with that model as parameter.
Software faults should have data to distinguish which s/w fault is being triggered (helps when looking at event logs). This may be a moot point if you change pumpTargetSpeed to non-override which would make this function obsolete.
If pumpTargetSpeed is an override, then why would we destroy the override when f/w wants to stop the pumps? Shouldn't this function only zero the .data field and let the override remain? I would consider removing the override aspect of pumpTargetSpeed[]. Let Dialin set the target speed by having "test" function call setConcentratePumpTargetSpeed() with given rate for given pump. Then leave this function to stop pumps as currently structured.
I notice the 2 concentrate pumps are always turned off/on together - no way to command 1 pump and not the other. Assume this is by design and that there are no use cases for individual pump control? Rename function to ...PumpsOn().
Why do we need both target and calculated. Looking at how these are used, they both appear to be calculated. Consider consolidating target and calculated PWM. Also, at least in comments, do not abbreviate PWM duty cycle % to just "PWM". It's important to keep description and units clear.
The persistent alarm relies on both condition (in range and out of range) to work. So we only need to call it such as "checkPersistentAlarm( persist_alarm_id, temperature < MIN_ALLOWED_TEMPERATURE, temperature, MIN_ALLOWED_TEMPERATURE )" without the if condition.
No absolute value. I don't think we want measured delta here anyway (we can get that from the published pressure sensors from the Pressures module. I think we want target delta pressure.
To keep dialin consistent, for all new functions please make them snake_case instead of camelCase. Also please remove the v prefix as this is not used anywhere else in dialin