Index: dialin/dg/accelerometer.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/accelerometer.py (.../accelerometer.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/accelerometer.py (.../accelerometer.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -20,6 +20,7 @@ from .constants import RESET, NO_RESET from ..utils.base import _AbstractSubSystem, _publish from ..common.msg_defs import MsgIds, MsgFieldPositions +from ..utils.checks import check_broadcast_interval_override_ms from logging import Logger class DGAccelerometer(_AbstractSubSystem): @@ -216,6 +217,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/concentrate_pumps.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/concentrate_pumps.py (.../concentrate_pumps.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/concentrate_pumps.py (.../concentrate_pumps.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from .constants import RESET,NO_RESET from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, DialinEnum from ..common.msg_defs import MsgIds @@ -212,6 +213,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + reset_byte_array = integer_to_bytearray(reset) ms_byte_array = integer_to_bytearray(ms) payload = reset_byte_array + ms_byte_array Index: dialin/dg/conductivity_sensors.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/conductivity_sensors.py (.../conductivity_sensors.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/conductivity_sensors.py (.../conductivity_sensors.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from .constants import RESET,NO_RESET from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, DialinEnum from ..common.msg_defs import MsgIds, MsgFieldPositions @@ -148,6 +149,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + reset_byte_array = integer_to_bytearray(reset) ms_byte_array = integer_to_bytearray(ms) payload = reset_byte_array + ms_byte_array Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -30,18 +30,14 @@ from .ro_pump import DGROPump from .samplewater import DGSampleWater from .temperature_sensors import TemperatureSensors -from .conductivity_sensors import ConductivitySensors -from .heat_disinfect import HeatDisinfect from .thermistors import Thermistors from .uv_reactors import UVReactors -from .concentrate_pumps import ConcentratePumps from .calibration_record import DGCalibrationNVRecord from .system_record import DGSystemNVRecord from .service_record import DGServiceNVRecord from .scheduled_runs_record import DGScheduledRunsNVRecord from .valves import DGValves from .voltages import DGVoltages -from ..utils.conversions import integer_to_bytearray from ..protocols.CAN import (DenaliCanMessenger, DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, _LogManager from ..common.msg_defs import MsgIds, MsgFieldPositions @@ -139,6 +135,7 @@ # create properties self.dg_operation_mode = self.DG_OP_MODE_INIT_POST self.dg_operation_sub_mode = 0 + self.dg_logged_in = False # Create command groups self.accel = DGAccelerometer(self.can_interface, self.logger) @@ -201,6 +198,14 @@ """ return self.dg_operation_sub_mode + def get_dg_logged_in(self): + """ + Gets the logged in status of the DG + + @return: True if DG is logged in, False if not + """ + return self.dg_logged_in + @_publish(["dg_version", "fpga_version"]) def _handler_dg_version(self, message): """ @@ -275,6 +280,7 @@ if received_message is not None: if received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] == 1: self.logger.info("Successfully logged in to the DG.") + self.dg_logged_in = True else: self.logger.error("Log In Failed.") return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] @@ -342,3 +348,4 @@ # Send message self.can_interface.send(message, 0) self.logger.debug("Sent request to DG to reset...") + self.dg_logged_in = False Index: dialin/dg/drain_pump.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/drain_pump.py (.../drain_pump.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/drain_pump.py (.../drain_pump.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -19,6 +19,7 @@ from .constants import RESET, NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, DialinEnum +from ..utils.checks import check_broadcast_interval_override_ms from logging import Logger from enum import unique @@ -157,6 +158,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/fans.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/fans.py (.../fans.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/dg/fans.py (.../fans.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -1,6 +1,7 @@ import struct from ..utils.conversions import integer_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import NO_RESET, RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -149,6 +150,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/fluid_leak.py =================================================================== diff -u -r79b47911f0ea424cd8dc10c1e1f150b84d4dfa54 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/fluid_leak.py (.../fluid_leak.py) (revision 79b47911f0ea424cd8dc10c1e1f150b84d4dfa54) +++ dialin/dg/fluid_leak.py (.../fluid_leak.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import RESET, NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -118,6 +119,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/heaters.py =================================================================== diff -u -r18c04cbcd10619250868cec39470a2b29c86121b -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/heaters.py (.../heaters.py) (revision 18c04cbcd10619250868cec39470a2b29c86121b) +++ dialin/dg/heaters.py (.../heaters.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ import struct from ..utils.conversions import integer_to_bytearray from ..utils.conversions import float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -176,6 +177,9 @@ @param reset: (int) 1 to reset a previous override, 0 to override @returns 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + resetValue = integer_to_bytearray(reset) intervalValue = integer_to_bytearray(ms) payload = resetValue + intervalValue Index: dialin/dg/load_cells.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/load_cells.py (.../load_cells.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/load_cells.py (.../load_cells.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import RESET,NO_RESET from ..protocols.CAN import (DenaliMessage, @@ -140,6 +141,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/pressures.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/pressures.py (.../pressures.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/pressures.py (.../pressures.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, @@ -149,6 +150,9 @@ """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) ivl = integer_to_bytearray(ms) payload = rst + ivl Index: dialin/dg/reservoirs.py =================================================================== diff -u -r5120ddfc3108ba5b8280adf73c4523c11feb935b -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/reservoirs.py (.../reservoirs.py) (revision 5120ddfc3108ba5b8280adf73c4523c11feb935b) +++ dialin/dg/reservoirs.py (.../reservoirs.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,7 +15,6 @@ ############################################################################ import struct from logging import Logger - from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish Index: dialin/dg/ro_pump.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/ro_pump.py (.../ro_pump.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/dg/ro_pump.py (.../ro_pump.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import RESET, NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -236,6 +237,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/temperature_sensors.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/temperature_sensors.py (.../temperature_sensors.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/dg/temperature_sensors.py (.../temperature_sensors.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from ..utils.conversions import integer_to_bytearray from ..utils.conversions import float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -212,6 +213,9 @@ @param reset: (int) 1 to reset a previous override, 0 to override @returns 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + reset_value = integer_to_bytearray(reset) interval_value = integer_to_bytearray(ms) payload = reset_value + interval_value Index: dialin/dg/thermistors.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/thermistors.py (.../thermistors.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/thermistors.py (.../thermistors.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -4,6 +4,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, DialinEnum from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from logging import Logger from enum import unique @@ -110,6 +111,9 @@ @param reset: (int) 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/uv_reactors.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/uv_reactors.py (.../uv_reactors.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/dg/uv_reactors.py (.../uv_reactors.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -1,6 +1,7 @@ import struct from ..utils.conversions import integer_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import NO_RESET, RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -123,6 +124,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/dg/valves.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/valves.py (.../valves.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/dg/valves.py (.../valves.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from ..utils.conversions import integer_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -346,6 +347,9 @@ """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) ivl = integer_to_bytearray(ms) payload = rst + ivl Index: dialin/dg/voltages.py =================================================================== diff -u -ra6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/dg/voltages.py (.../voltages.py) (revision a6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547) +++ dialin/dg/voltages.py (.../voltages.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from enum import unique from ..utils.base import DialinEnum +from ..utils.checks import check_broadcast_interval_override_ms from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray @@ -187,6 +188,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/accelerometer.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/accelerometer.py (.../accelerometer.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/accelerometer.py (.../accelerometer.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from ..utils.base import _AbstractSubSystem, _publish from ..common.msg_defs import MsgIds, MsgFieldPositions @@ -216,6 +217,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/air_trap.py =================================================================== diff -u -raf21ad6b590a05515b33e573d1c9236f21cafa3e -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/air_trap.py (.../air_trap.py) (revision af21ad6b590a05515b33e573d1c9236f21cafa3e) +++ dialin/hd/air_trap.py (.../air_trap.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET,NO_RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, @@ -149,6 +150,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/alarms.py =================================================================== diff -u -rdcc724fe28fdd2600c916f6e6ac4a9ad6f0b4a9b -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/alarms.py (.../alarms.py) (revision dcc724fe28fdd2600c916f6e6ac4a9ad6f0b4a9b) +++ dialin/hd/alarms.py (.../alarms.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -22,6 +22,7 @@ DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms class HDAlarms(_AbstractSubSystem): @@ -504,6 +505,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/blood_flow.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/blood_flow.py (.../blood_flow.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/blood_flow.py (.../blood_flow.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from .constants import PUMP_CONTROL_MODE_CLOSED_LOOP, PUMP_CONTROL_MODE_OPEN_LOOP from ..utils.base import _AbstractSubSystem, _publish @@ -456,6 +457,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/dialysate_inlet_flow.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/dialysate_inlet_flow.py (.../dialysate_inlet_flow.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from .constants import PUMP_CONTROL_MODE_CLOSED_LOOP, PUMP_CONTROL_MODE_OPEN_LOOP from ..utils.base import _AbstractSubSystem, _publish @@ -461,6 +462,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/dialysate_outlet_flow.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/dialysate_outlet_flow.py (.../dialysate_outlet_flow.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/dialysate_outlet_flow.py (.../dialysate_outlet_flow.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from .constants import PUMP_CONTROL_MODE_CLOSED_LOOP, PUMP_CONTROL_MODE_OPEN_LOOP from ..utils.base import _AbstractSubSystem, _publish @@ -446,6 +447,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/fluid_leak.py =================================================================== diff -u -ra6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/fluid_leak.py (.../fluid_leak.py) (revision a6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547) +++ dialin/hd/fluid_leak.py (.../fluid_leak.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from ..common.msg_defs import MsgIds, MsgFieldPositions from .constants import RESET, NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) @@ -118,6 +119,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/hemodialysis_device.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/hemodialysis_device.py (.../hemodialysis_device.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/hd/hemodialysis_device.py (.../hemodialysis_device.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -88,6 +88,7 @@ # create properties self.hd_operation_mode = HDOpModes.MODE_INIT.value self.hd_operation_sub_mode = 0 + self.hd_logged_in = False # Create command groups self.accel = HDAccelerometer(self.can_interface, self.logger) @@ -119,6 +120,14 @@ """ return self.hd_operation_mode + def get_hd_logged_in(self): + """ + Gets the logged in status of the HD + + @return: True if HD is logged in, False if not + """ + return self.hd_logged_in + @_publish(["hd_operation_mode"]) def _handler_hd_op_mode_sync(self, message): """ @@ -157,6 +166,7 @@ if received_message is not None: if received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] == 1: self.logger.debug("Success: Logged In") + self.hd_logged_in = True else: self.logger.debug("Failure: Log In Failed.") return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] @@ -297,3 +307,4 @@ # Send message self.can_interface.send(message, 0) self.logger.debug("Sent request to HD to reset...") + self.hd_logged_in = False Index: dialin/hd/pressure_occlusion.py =================================================================== diff -u -r4ff3b2874eb12aee034d1f85ae32c161d05efc00 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/pressure_occlusion.py (.../pressure_occlusion.py) (revision 4ff3b2874eb12aee034d1f85ae32c161d05efc00) +++ dialin/hd/pressure_occlusion.py (.../pressure_occlusion.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET, NO_RESET from ..utils.base import _AbstractSubSystem, _publish from ..common.msg_defs import MsgIds, MsgFieldPositions @@ -326,6 +327,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/syringe_pump.py =================================================================== diff -u -r1b768bf4593cd29f00a5e07546c3e7b16d7a646c -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/syringe_pump.py (.../syringe_pump.py) (revision 1b768bf4593cd29f00a5e07546c3e7b16d7a646c) +++ dialin/hd/syringe_pump.py (.../syringe_pump.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -15,6 +15,7 @@ ############################################################################ import struct from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import RESET,NO_RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import (DenaliMessage, @@ -299,6 +300,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/hd/ui_proxy.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -240,9 +240,9 @@ self.treatment_end_cmd_reject_reason = 0 self.reject_reasons = OrderedDict() - for attr in dir(self): - if not callable(getattr(self, attr)) and attr.startswith("REQUEST_REJECT"): - self.reject_reasons[attr] = getattr(self, attr) + for attr in RequestRejectReasons.__members__: + attr: RequestRejectReasons = attr + self.reject_reasons[attr.name] = attr.value self.reject_reasons = OrderedDict(sorted(self.reject_reasons.items(), key=lambda key: key[1])) def get_hd_version(self): Index: dialin/hd/valves.py =================================================================== diff -u -rf89093ee0f0b9159df2ae4e0b86971f0e0e1b448 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/valves.py (.../valves.py) (revision f89093ee0f0b9159df2ae4e0b86971f0e0e1b448) +++ dialin/hd/valves.py (.../valves.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -17,6 +17,7 @@ import struct from ..utils.conversions import integer_to_bytearray +from ..utils.checks import check_broadcast_interval_override_ms from .constants import NO_RESET from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.base import _AbstractSubSystem, _publish, DialinEnum @@ -148,6 +149,9 @@ @param reset: integer - 1 to reset a previous override, 0 to override @returns 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + reset_value = integer_to_bytearray(reset) interval_value = integer_to_bytearray(ms) payload = reset_value + interval_value Index: dialin/hd/voltages.py =================================================================== diff -u -ra6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547 -ra2d44432a913537ca0627cd7dde7dcb1154f2156 --- dialin/hd/voltages.py (.../voltages.py) (revision a6d0b0a53d05e1e6458c75f2ab77ac5bbf82b547) +++ dialin/hd/voltages.py (.../voltages.py) (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -16,6 +16,7 @@ import struct from enum import unique from ..utils.base import DialinEnum +from ..utils.checks import check_broadcast_interval_override_ms from ..protocols.CAN import (DenaliMessage, DenaliChannels) from ..utils.conversions import integer_to_bytearray, float_to_bytearray @@ -159,6 +160,9 @@ @return: 1 if successful, zero otherwise """ + if not check_broadcast_interval_override_ms(ms): + return False + rst = integer_to_bytearray(reset) mis = integer_to_bytearray(ms) payload = rst + mis Index: dialin/utils/checks.py =================================================================== diff -u --- dialin/utils/checks.py (revision 0) +++ dialin/utils/checks.py (revision a2d44432a913537ca0627cd7dde7dcb1154f2156) @@ -0,0 +1,27 @@ +########################################################################### +# +# Copyright (c) 2019-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 checks.py +# +# @author (last) Sean Nash +# @date (last) 27-May-2021 +# @author (original) Sean Nash +# @date (original) 27-May-2021 +# +############################################################################ + +def check_broadcast_interval_override_ms(ms:int): + """ + Checks whether a given broadcast interval override (in ms) is valid. + + @param ms: (int) number of ms being used to override a broadcast interval + @return: True if valid, False if not + """ + result = False + if ms > 0 and ms % 50 == 0: + result = True + return result