Why does confirm msg have duration again? If UI resends duration, we have to validate it again. If UI just sends confirmation of previously sent duration, we don't have to validate it again.
Invalid payload length shouldn't be a reject reason, it should cause a s/w fault (because it suggests the UI and TD software are not compatible versions).
What is this flag for? And why is it only set here and not above where test passed. Also, we are going to the loaded check state, but we are not requesting a scan first.
The resetPIController is already invoked in InitializePIController with the InitialControlSignal. Instead of 0.0F, pass the STD_BICARB_DOSING as initialControlSignal ( in InitializePIController)
Remove values in the comment, as they are changing during development (200ms persistence, 4 PSI low pressure, 17 PSI high pressure etc.,), instead use defined persistence, low or high threshold pressure etc.,