Index: dialin/dg/dialysate_flow_sensor.py =================================================================== diff -u -recca3e1c3c23264c32aad0edb6c1ff89bd253ac0 -r2dbe3df84ab5f68cea1ac6bce9a3727ac1dbe72a --- dialin/dg/dialysate_flow_sensor.py (.../dialysate_flow_sensor.py) (revision ecca3e1c3c23264c32aad0edb6c1ff89bd253ac0) +++ dialin/dg/dialysate_flow_sensor.py (.../dialysate_flow_sensor.py) (revision 2dbe3df84ab5f68cea1ac6bce9a3727ac1dbe72a) @@ -1,11 +1,11 @@ ########################################################################### # -# Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. +# Copyright (c) 2021 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # -# @file load_cells.py +# @file dialysate_flow_sensor.py # # @author (last) H. Nguyen # @date (last) 25-Oct-2021 @@ -20,7 +20,7 @@ from .constants import RESET, NO_RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import DenaliMessage, DenaliChannels -from ..utils.base import AbstractSubSystem, publish, DialinEnum +from ..utils.base import AbstractSubSystem, publish from ..utils.checks import check_broadcast_interval_override_ms from ..utils.conversions import integer_to_bytearray, float_to_bytearray @@ -32,8 +32,10 @@ def __init__(self, can_interface, logger: Logger): """ - + Initialize CAN interface and logger @param can_interface: Denali CAN Messenger object + @param: logger: (Logger) object + @return: The dialysate flow rate L/min of a flow sensor """ super().__init__() @@ -43,7 +45,6 @@ # The flow rate of the sensor L/min self.flow_rate = 0.0 - if self.can_interface is not None: channel_id = DenaliChannels.dg_sync_broadcast_ch_id msg_id = MsgIds.MSG_ID_DG_DIALYSATE_FLOW_METER_DATA.value @@ -59,7 +60,7 @@ """ return self.flow_rate - @publish(['sensor']) + @publish(['flow_rate']) def _handler_flow_sensor_sync(self, message): """ Handles published flow sensor message. @@ -70,15 +71,15 @@ flow = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - self.flow_value = flow + self.flow_value = flow[0] def cmd_flow_sensor_value_override(self, rate: float, reset: int = NO_RESET) -> int: """ Constructs and sends the flow sensor value override command Constraints: Must be logged into DG. - @param rate: float the sensor flow rate to be set + @param rate: (float) the sensor flow rate to be set @param reset: (int) 1 to reset a previous override, 0 to override @return 1 if successful, zero otherwise """ @@ -89,6 +90,8 @@ message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, message_id=MsgIds.MSG_ID_DIALYSATE_MEASURED_FLOW_OVERRIDE.value, payload=payload) + self.logger.debug("Overriding dialysate flow sensor broadcast value override") + # Send message received_message = self.can_interface.send(message) @@ -105,7 +108,7 @@ Constructs and sends the flow sensor data publish interval command. Constraints: Must be logged into DG. - Given interval must be non-zero and a multiple of the DG priority task interval (10 ms). + Given interval must be non-zero and a multiple of the DG priority task interval (50 ms). @param ms: (int) interval (in ms) to override with @param reset: (int) 1 to reset a previous override, 0 to override Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -rdff977d40c350edae117aa44775e38783efe0a05 -r2dbe3df84ab5f68cea1ac6bce9a3727ac1dbe72a --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision dff977d40c350edae117aa44775e38783efe0a05) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 2dbe3df84ab5f68cea1ac6bce9a3727ac1dbe72a) @@ -25,6 +25,7 @@ from .constants import RESET, NO_RESET from .drain_pump import DGDrainPump from .fans import Fans +from .flow_rate import DialysateFlowSensor from .fluid_leak import DGFluidLeak from .flush import FlushMode from .hd_proxy import DGHDProxy @@ -158,6 +159,7 @@ self.chemical_disinfect = ChemicalDisinfect(self.can_interface, self.logger) self.concentrate_pumps = ConcentratePumps(self.can_interface, self.logger) self.conductivity_sensors = ConductivitySensors(self.can_interface, self.logger) + self.dialysate_flow_sensor = DialysateFlowSensor(self.can_interface, self.logger) self.drain_pump = DGDrainPump(self.can_interface, self.logger) self.fans = Fans(self.can_interface, self.logger) self.fluid_leak = DGFluidLeak(self.can_interface, self.logger) @@ -177,7 +179,6 @@ self.system_record = DGSystemNVRecord(self.can_interface, self.logger) self.temperature_sensors = TemperatureSensors(self.can_interface, self.logger) self.thermistors = Thermistors(self.can_interface, self.logger) - self.dialysate_flow_sensor = DialysateFlowSensor(self.can_interface, self.logger) self.uv_reactors = UVReactors(self.can_interface, self.logger) self.valves = DGValves(self.can_interface, self.logger) self.voltages = DGVoltages(self.can_interface, self.logger)