Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -rfa63b92d3d3a3f2870833583bff12729e180e2d1 -rd2697fb12fc381fed6e7fb0820ec6486513243f6 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision fa63b92d3d3a3f2870833583bff12729e180e2d1) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision d2697fb12fc381fed6e7fb0820ec6486513243f6) @@ -15,16 +15,15 @@ ############################################################################ import struct -from enum import unique from logging import Logger from collections import OrderedDict -from .constants import NO_RESET +from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.msg_defs import MsgIds -from leahi_dialin.common.dd_defs import DDValveStates, DDValveNames +from leahi_dialin.common.dd_defs import DDValveNames +from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels -from leahi_dialin.utils.base import AbstractSubSystem, publish, DialinEnum -from leahi_dialin.utils.checks import check_broadcast_interval_override_ms +from leahi_dialin.utils.base import AbstractSubSystem, publish from leahi_dialin.utils.conversions import integer_to_bytearray # Valve states @@ -80,6 +79,11 @@ self.d3_valv = {"id": DDValveNames.D3_VALV.value, "state": DEENERGIZED} self.d80_valv = {"id": DDValveNames.D80_VALV.value, "state": DEENERGIZED} self.d81_valv = {"id": DDValveNames.D81_VALV.value, "state": DEENERGIZED} + self.d83_valv = {"id": DDValveNames.D83_VALV.value, "state": DEENERGIZED} + self.d88_valv = {"id": DDValveNames.D88_VALV.value, "state": DEENERGIZED} + self.d91_valv = {"id": DDValveNames.D91_VALV.value, "state": DEENERGIZED} + self.d95_valv = {"id": DDValveNames.D95_VALV.value, "state": DEENERGIZED} + self.d100_valv = {"id": DDValveNames.D100_VALV.value, "state": DEENERGIZED} self.rsvrd1 = {"id": DDValveNames.RSRVD_SPACE1.value, "state": DEENERGIZED} self.d23_valv = {"id": DDValveNames.D23_VALV.value, "state": DEENERGIZED} @@ -129,6 +133,11 @@ self.d3_valv.get("state", None), self.d80_valv.get("state", None), self.d81_valv.get("state", None), + self.d83_valv.get("state", None), + self.d88_valv.get("state", None), + self.d91_valv.get("state", None), + self.d95_valv.get("state", None), + self.d100_valv.get("state", None), self.rsvrd1.get("state", None), self.d23_valv.get("state", None), @@ -142,12 +151,7 @@ self.d79_pmp_valv.get("state", None), self.spare1_valv.get("state", None), - self.spare2_valv.get("state", None), - self.spare3_valv.get("state", None), - self.spare4_valv.get("state", None), - self.spare5_valv.get("state", None), - self.spare6_valv.get("state", None), - self.spare7_valv.get("state", None) + self.spare2_valv.get("state", None) ] @staticmethod @@ -197,6 +201,11 @@ "d3_valv", "d80_valv", "d81_valv", + "D83_valv", + "D88_valv", + "D91_valv", + "D95_valv", + "D100_valv", "rsvrd1", "d23_valv", "d19_valv", @@ -209,11 +218,6 @@ "d79_pmp_valv", "spare1_valv", "spare2_valv", - "spare3_valv", - "spare4_valv", - "spare5_valv", - "spare6_valv", - "spare7_valv", "valve_states_enum", "valves_sensed_states", "dd_valves_states_timestamp" @@ -259,14 +263,14 @@ self.d22_valv["state"] = self._binary_to_valve_state(bcv[0] & 128) spv = struct.unpack('B', bytearray(message['message'][self.START_POS_SPARE_VALVES_STATES:self.END_POS_SPARE_VALVES_STATES])) - self.d79_pmp_valv["state"] = self._binary_to_valve_state(bcv[0] & 1) - self.spare1_valv["state"] = self._binary_to_valve_state(bcv[0] & 2) - self.spare2_valv["state"] = self._binary_to_valve_state(bcv[0] & 4) - self.spare3_valv["state"] = self._binary_to_valve_state(bcv[0] & 8) - self.spare4_valv["state"] = self._binary_to_valve_state(bcv[0] & 16) - self.spare5_valv["state"] = self._binary_to_valve_state(bcv[0] & 32) - self.spare6_valv["state"] = self._binary_to_valve_state(bcv[0] & 64) - self.spare7_valv["state"] = self._binary_to_valve_state(bcv[0] & 128) + self.d79_pmp_valv["state"] = self._binary_to_valve_state(spv[0] & 1) + self.d83_valv["state"] = self._binary_to_valve_state(spv[0] & 2) + self.d88_valv["state"] = self._binary_to_valve_state(spv[0] & 4) + self.d91_valv["state"] = self._binary_to_valve_state(spv[0] & 8) + self.d95_valv["state"] = self._binary_to_valve_state(spv[0] & 16) + self.d100_valv["state"] = self._binary_to_valve_state(spv[0] & 32) + self.spare1_valv["state"] = self._binary_to_valve_state(spv[0] & 64) + self.spare2_valv["state"] = self._binary_to_valve_state(spv[0] & 128) start = self.END_POS_SPARE_VALVES_STATES end = start + 1 @@ -416,31 +420,15 @@ """ - if not check_broadcast_interval_override_ms(ms): - return False + cmd_generic_broadcast_interval_override( + ms = ms, + reset = reset, + channel_id = DenaliChannels.dialin_to_dd_ch_id, + msg_id = MsgIds.MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, + module_name = 'DD valve', + logger = self.logger, + can_interface = self.can_interface) - rst = integer_to_bytearray(reset) - ivl = integer_to_bytearray(ms) - payload = rst + ivl - - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, - message_id=MsgIds.MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, - payload=payload) - - self.logger.debug("override valves states publish interval") - - # Send message - received_message = self.can_interface.send(message) - - # If there is content in message - if received_message is not None: - # Response payload is OK or not - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - 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 @@ -472,4 +460,4 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.error("Timeout!!!!") - return False \ No newline at end of file + return False