Index: dialin/common/alarm_defs.py =================================================================== diff -u -r7b7307787fcbb8eca336006b3dc9b0269644bb47 -rc1ea1df3705c31440c25aba6cb39ea94974a2cb7 --- dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 7b7307787fcbb8eca336006b3dc9b0269644bb47) +++ dialin/common/alarm_defs.py (.../alarm_defs.py) (revision c1ea1df3705c31440c25aba6cb39ea94974a2cb7) @@ -8,9 +8,9 @@ # @file alarm_defs.py # # @author (last) Peter Lucia -# @date (last) 29-May-2021 +# @date (last) 10-Jun-2021 # @author (original) Peter Lucia -# @date (original) 29-May-2021 +# @date (original) 10-Jun-2021 # ############################################################################ from enum import unique Index: dialin/dg/samplewater.py =================================================================== diff -u -r300390c34a81a42b5eb606e4f4499a1439bfc432 -rc1ea1df3705c31440c25aba6cb39ea94974a2cb7 --- dialin/dg/samplewater.py (.../samplewater.py) (revision 300390c34a81a42b5eb606e4f4499a1439bfc432) +++ dialin/dg/samplewater.py (.../samplewater.py) (revision c1ea1df3705c31440c25aba6cb39ea94974a2cb7) @@ -8,7 +8,7 @@ # @file samplewater.py # # @author (last) Quang Nguyen -# @date (last) 02-Mar-2021 +# @date (last) 29-May-2021 # @author (original) Quang Nguyen # @date (original) 02-Mar-2021 # @@ -17,6 +17,7 @@ from ..protocols.CAN import DenaliChannels from ..utils.base import _AbstractSubSystem, _publish from ..common.msg_defs import MsgIds, MsgFieldPositions +from .constants import NO_RESET from logging import Logger @@ -64,7 +65,7 @@ "filter_flush_timeout", "filter_flush_time_countdown" ]) - def _handler_filter_flush_progress_sync(self, message): + def _handler_filter_flush_progress_sync(self, message: dict) -> None: """ Handles published filter flush progress data messages. Filter flush progress data are captured for reference. @@ -77,3 +78,31 @@ self.filter_flush_time_countdown = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + def cmd_filter_flush_time_period_override(self, ms: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends the filter flush time periodoverride command + + @param ms: integer - time period (in ms) to override with + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + + payload = integer_to_bytearray(reset) + integer_to_bytearray(ms) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_FILTER_FLUSH_TIME_PERIOD_OVERRIDE.value, + payload=payload) + + self.logger.debug("override DG filter flush time period") + + # 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 +