Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -rf4c08ccd4729e3e1758ab4d7bc2723a66ffec3c1 -r03936b9327b52b7ea33aecb5aa2129f33583bc35 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision f4c08ccd4729e3e1758ab4d7bc2723a66ffec3c1) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 03936b9327b52b7ea33aecb5aa2129f33583bc35) @@ -398,3 +398,36 @@ else: self.logger.debug("Timeout!!!!") return False + + + def cmd_valve_set_open_close(self, valve: int, state: int) -> int: + """ + Constructs and sends the valve open close command + + @param valve: unsigned int - dialysate pump ID + @param command: int - value to command the dialysate pump + @param speed: integer - rpm to set the speed to + @return: 1 if successful, zero otherwise + + """ + + vlv = integer_to_bytearray(valve) + sts = integer_to_bytearray(state) + payload = vlv + sts + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_VALVES_OPEN_CLOSE_STATE_OVERRIDE_REQUEST.value, + payload=payload) + + self.logger.debug("setting " + str(state) + " - for valve: " + str(valve)) + + # Send message + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.error("Timeout!!!!") + return False \ No newline at end of file