Index: leahi_dialin/td/modules/ejector.py =================================================================== diff -u -r9ccbc0c7610d431e94566f93014f3a9663c4488c -r956757fac807b52aec078e84127089db5dff069f --- leahi_dialin/td/modules/ejector.py (.../ejector.py) (revision 9ccbc0c7610d431e94566f93014f3a9663c4488c) +++ leahi_dialin/td/modules/ejector.py (.../ejector.py) (revision 956757fac807b52aec078e84127089db5dff069f) @@ -19,6 +19,7 @@ from .constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.common.td_defs import EjectorNames, EjectorAttributes from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish from leahi_dialin.utils.checks import check_broadcast_interval_override_ms @@ -47,22 +48,25 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_ejector_sync) - - self.h5_state = 0 - self.h5_set_speed = 0.0 + self.h5_motor = { + EjectorNames.H5_MOTOR.name: { + EjectorAttributes.STATE.name: 0, + EjectorAttributes.SET_SPEED.name: 0.0 + } + } self.td_ejector_timestamp = 0 - @publish(["td_ejector_timestamp", "h5_state", "h5_set_speed"]) + @publish(["td_ejector_timestamp", "h5_motor"]) def _handler_ejector_sync(self, message, timestamp=0.0): """ Handles published ejector data messages. @param message: published ejector data message as: ejector state @return: None """ - self.h5_state = struct.unpack('i', bytearray( + self.h5_motor[EjectorNames.H5_MOTOR.name][EjectorAttributes.STATE.name] = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.h5_set_speed = struct.unpack('f', bytearray( + self.h5_motor[EjectorNames.H5_MOTOR.name][EjectorAttributes.SET_SPEED.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] self.td_ejector_timestamp = timestamp