Index: dialin/dg/dialysate_generator.py =================================================================== diff -u -r52a4421a9b93a31a6484ec78ef61e58ac910c03c -r59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5 --- dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 52a4421a9b93a31a6484ec78ef61e58ac910c03c) +++ dialin/dg/dialysate_generator.py (.../dialysate_generator.py) (revision 59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5) @@ -22,6 +22,7 @@ from .valves import DGValves from .ro_pump import DGROPump from .heaters import Heaters +from .temperature_sensors import TemperatureSensors from ..protocols.CAN import (DenaliCanMessenger, DenaliMessage, DenaliChannels) @@ -97,7 +98,7 @@ msg_id = self.MSG_ID_DG_OPERATION_MODE_BROADCAST self.can_interface.register_receiving_publication_function(channel_id, msg_id, self.handler_dg_op_mode_sync) - self.can_interface.register_receiving_publication_function(DenaliChannels.dg_to_dialin_ch_id, + self.can_interface.register_receiving_publication_function(DenaliChannels.dg_sync_broadcast_ch_id, self.MSG_ID_DG_DG_VERSION_RESPONSE, self.handler_dg_version) @@ -108,14 +109,15 @@ self.dg_operation_sub_mode = 0 # Create command groups - self.hd_proxy = DGHDProxy(self.can_interface) - self.load_cells = DGLoadCells(self.can_interface) - self.pressures = DGPressures(self.can_interface) - self.reservoirs = DGReservoirs(self.can_interface) - self.valves = DGValves(self.can_interface) - self.ro_pump = DGROPump(self.can_interface) - self.drain_pump = DGDrainPump(self.can_interface) + #self.hd_proxy = DGHDProxy(self.can_interface) + #self.load_cells = DGLoadCells(self.can_interface) + #self.pressures = DGPressures(self.can_interface) + #self.reservoirs = DGReservoirs(self.can_interface) + #self.valves = DGValves(self.can_interface) + #self.ro_pump = DGROPump(self.can_interface) + #self.drain_pump = DGDrainPump(self.can_interface) self.heaters = Heaters(self.can_interface) + self.temperature_sensors = TemperatureSensors(self.can_interface) def handler_dg_version(self, message): """ @@ -141,6 +143,7 @@ if len(major) > 0 and len(minor) > 0 and len(micro) > 0 and len(build) > 0: self.dg_version = f"v{major[0]}.{minor[0]}.{micro[0]}-{build[0]}" print(self.dg_version) + return self.dg_version def handler_dg_op_mode_sync(self, message): Index: dialin/dg/heaters.py =================================================================== diff -u -r52a4421a9b93a31a6484ec78ef61e58ac910c03c -r59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5 --- dialin/dg/heaters.py (.../heaters.py) (revision 52a4421a9b93a31a6484ec78ef61e58ac910c03c) +++ dialin/dg/heaters.py (.../heaters.py) (revision 59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5) @@ -47,3 +47,4 @@ print(heatersData[0]) + Index: dialin/dg/temperature_sensors.py =================================================================== diff -u --- dialin/dg/temperature_sensors.py (revision 0) +++ dialin/dg/temperature_sensors.py (revision 59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5) @@ -0,0 +1,42 @@ +########################################################################### +# +# Copyright (c) 2019-2020 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 temperature_sensors.py +# +# @date 28-May-2020 +# @author dnavaei +# +# @brief +# +# +############################################################################ +import struct +from ..protocols.CAN import (DenaliMessage, DenaliChannels) + +class TemperatureSensors: + + MSG_ID_DG_TEMPERATURE_DATA = 0x2D + + START_POS_HEATER_STATES = DenaliMessage.PAYLOAD_START_INDEX + END_POS_HEATER_STATES = START_POS_HEATER_STATES + 2 #3 duty cycles are published each are 32bits so 12 bytes + + def __init__(self, can_interface=None): + + self.can_interface = can_interface + + self.temperatureSensorsData = 0.0 + + if self.can_interface is not None: + channel_id = DenaliChannels.dg_sync_broadcast_ch_id + msg_id = self.MSG_ID_DG_TEMPERATURE_DATA + self.can_interface.register_receiving_publication_function(channel_id, msg_id, self.handler_temperature_sensors_sync) + + def handler_temperature_sensors_sync(self, message): + + sensorsData = struct.unpack('H', bytearray(message['message'][self.START_POS_HEATER_STATES:self.END_POS_HEATER_STATES])) + self.temperatureSensorsData = sensorsData[0] + print("Sensor {}".format(sensorsData[0])) \ No newline at end of file Index: tests/dg_heaters_test.py =================================================================== diff -u -rdd4bcb0650407d4ca6842efef1a7ee041f92c7ce -r59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5 --- tests/dg_heaters_test.py (.../dg_heaters_test.py) (revision dd4bcb0650407d4ca6842efef1a7ee041f92c7ce) +++ tests/dg_heaters_test.py (.../dg_heaters_test.py) (revision 59cde4f29ed4a5f31caf00ca7687ee7c531ba2c5) @@ -8,8 +8,14 @@ dg = DG() - test = dg.heaters.heatersData + #test = dg.heaters.heatersData + dg.cmd_ui_request_dg_version() + sleep(2) + print('DG Version {}'.format(dg.dg_version)) + + while True: #print(dg.heaters.heatersData) + print(dg.temperature_sensors.temperatureSensorsData) sleep(2)