Do you want to update the TD and RO FPGA compatiable rev as zero? looks currently FPGA returning them as zero and will fail in init mode - FPGA self test.
The user stop alarm drops the recirc state machine into the stopped state (stop alarm property is true). To full resume requires that "OK" is pressed, then "Resume", to continue with recirculation. Is that the behavior we want, or do we want to continue with only the "OK" acknowledgment?
Should blood recirc blocked be based on alarm properties (as you've written here) or based on whether user stopped (specifically)? My feeling is that since there is no blood in blood side of circuit (because rinseback was completed before we got to recirc), the NoBloodRecirc alarm property maybe doesn't apply here and we should only stop BP if the user stop alarm is active.
This is non-standard override record and approach. Is there any reason why you didn't just create a separate override command and message to override raw flow?
Consider calling a (new) function in ConcentratePumps.c that would do all of this (decides whether to accept or reject command and parks the pumps if accepting, sets reject reason code if rejecting). Function would also create and send the cmd response message and return TRUE/FALSE which would set local result here for the ack response message below. We should reject cmd if pumps are busy/on and/or if current DG mode is fill or fault mode.
Wouldn't we want to stop if an alarm occurred during recirculation, which affected the blood circuit? My inclination would be to manage which alarms were enabled in this state rather than not implement the mechanism to stop the pumps.