Index: leahi_dialin/fp/modules/ro_pump.py =================================================================== diff -u -rb4df138485c0c52360b6f43d7bd9e92e1c15969a -re7d16bd6881619e5fc2a0bc1a7fd578a9978498e --- leahi_dialin/fp/modules/ro_pump.py (.../ro_pump.py) (revision b4df138485c0c52360b6f43d7bd9e92e1c15969a) +++ leahi_dialin/fp/modules/ro_pump.py (.../ro_pump.py) (revision e7d16bd6881619e5fc2a0bc1a7fd578a9978498e) @@ -21,6 +21,7 @@ from leahi_dialin.utils.base import DialinEnum from .constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.common.fp_defs import ROPumpNames, ROPumpAttributes from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish, DialinEnum from leahi_dialin.utils.checks import check_broadcast_interval_override_ms @@ -44,20 +45,24 @@ msg_id = MsgIds.MSG_ID_FP_RO_PUMP_DATA.value self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_pump_sync) + + self.ro_pump = { + ROPumpNames.P12_PUMP.name: { + ROPumpAttributes.STATE.name: 0, + ROPumpAttributes.DUTY_CYCLE.name: 0, + ROPumpAttributes.FB_DUTY_CYCLE.name: 0, + ROPumpAttributes.SPEED.name: 0.0, + ROPumpAttributes.TARGET_PRES.name: 0.0, + ROPumpAttributes.TARGET_FLOW.name: 0.0, + ROPumpAttributes.TARGET_DUTY_CYCLE.name: 0.0, + ROPumpAttributes.DUTY_CYCLE_PCT.name: 0.0, + ROPumpAttributes.FB_DUTY_CYCLE_PCT.name: 0.0 + } + } + self.ro_pump_timestamp = 0.0 - self.p12_pump_state = 0 - self.p12_pump_duty_cycle = 0 - self.p12_pump_fb_duty_cycle = 0 - self.p12_pump_speed = 0.0 - self.p12_target_pressure = 0.0 - self.p12_target_flow = 0.0 - self.p12_target_duty_cycle = 0.0 - self.p12_pump_duty_cycle_pct = 0.0 - self.p12_pump_fb_duty_cycle_pct = 0.0 - @publish(["ro_pump_timestamp", "p12_pump_state", "p12_pump_duty_cycle", "p12_pump_fb_duty_cycle", - "p12_pump_speed", "p12_target_pressure", "p12_target_flow", "p12_target_duty_cycle", - "p12_pump_duty_cycle_pct", "p12_pump_fb_duty_cycle_pct" ]) + @publish(["ro_pump_timestamp", "ro_pump" ]) def _handler_pump_sync(self, message, timestamp=0.0): """ Handles published FP ro pump data messages. FP ro pump data is captured @@ -67,23 +72,23 @@ @return: none """ - self.p12_pump_state = struct.unpack('i', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.STATE.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.p12_pump_duty_cycle = struct.unpack('i', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.DUTY_CYCLE.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.p12_pump_fb_duty_cycle = struct.unpack('i', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.FB_DUTY_CYCLE.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.p12_pump_speed = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.SPEED.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.p12_target_pressure = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.TARGET_PRES.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - self.p12_target_flow = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.TARGET_FLOW.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - self.p12_target_duty_cycle = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.TARGET_DUTY_CYCLE.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] - self.p12_pump_duty_cycle_pct = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.DUTY_CYCLE_PCT.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] - self.p12_pump_fb_duty_cycle_pct = struct.unpack('f', bytearray( + self.ro_pump[ROPumpNames.P12_PUMP.name][ROPumpAttributes.FB_DUTY_CYCLE_PCT.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] self.ro_pump_timestamp = timestamp