Index: dialin/common/msg_ids.py =================================================================== diff -u -r4dfa4d2eae8484e5079aa4ca7eff93ffe0c0abf0 -r866ecd5e5986d13f05c0187afa7061ee80845767 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 4dfa4d2eae8484e5079aa4ca7eff93ffe0c0abf0) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision 866ecd5e5986d13f05c0187afa7061ee80845767) @@ -502,6 +502,7 @@ MSG_ID_DG_RESERVOIR_BROADCAST_INTERVAL_OVERRIDE = 0xA074 MSG_ID_DG_STATE_TIMER_77C_OVERRIDE = 0xA075 MSG_ID_DG_STATE_TIMER_82C_OVERRIDE = 0xA076 + MSG_ID_DG_CHEM_DISINFECT_ACID_OVERRIDE = 0xA077 MSG_ID_HD_DEBUG_EVENT = 0xFFF1 MSG_ID_DG_DEBUG_EVENT = 0xFFF2 Index: dialin/dg/chemical_disinfect.py =================================================================== diff -u -ra476acd4f668b4e591f4f0296f09df6745e9ae8f -r866ecd5e5986d13f05c0187afa7061ee80845767 --- dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision a476acd4f668b4e591f4f0296f09df6745e9ae8f) +++ dialin/dg/chemical_disinfect.py (.../chemical_disinfect.py) (revision 866ecd5e5986d13f05c0187afa7061ee80845767) @@ -20,6 +20,7 @@ from ..protocols.CAN import DenaliChannels, DenaliMessage from ..utils.base import AbstractSubSystem, publish, DialinEnum from ..utils.conversions import * +from .constants import RESET, NO_RESET @unique class ChemCancellationModes(DialinEnum): @@ -194,3 +195,34 @@ @return: (int) """ return self.r2_level + + def cmd_acid_moving_average_override(self, conductivity: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the chem disinfect acid moving average override command + + @param conductivity: float - conductivity value to override sensor with + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + + """ + + reset_byte_array = integer_to_bytearray(reset) + cond_byte_array = float_to_bytearray(conductivity) + payload = reset_byte_array + cond_byte_array + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_CHEM_DISINFECT_ACID_OVERRIDE.value, + payload=payload) + + self.logger.debug("override CD2 average value for sensor to" + str(conductivity)) + + # 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