Index: leahi_dialin/ui/td_messaging.py =================================================================== diff -u -r8e4aaad616c518d42a01e0720988b59119f1fd50 -r05102999615f657437bb8cf2c568eb61bf68cfd7 --- leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 8e4aaad616c518d42a01e0720988b59119f1fd50) +++ leahi_dialin/ui/td_messaging.py (.../td_messaging.py) (revision 05102999615f657437bb8cf2c568eb61bf68cfd7) @@ -53,178 +53,222 @@ self.can_interface.send(message, 0) - def td_temperatures(self, op_mode: int, sub_mode: int = 0): + def td_temperatures(self, board_temp: float = 0): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD Temperatures Data + @param board_temp : TD Board temperature @return: None """ - + # TODO: replace with proper payload and message ID once message is defined if not self.can_enabled: raise ValueError("CAN Interface is not enabled") + payload = conversions.float_to_bytearray(board_temp) - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) - message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=0x91, payload=payload) self.can_interface.send(message, 0) - def td_blood_pump(self, op_mode: int, sub_mode: int = 0): + def td_blood_pump(self, set_flow: int, meas_flow: float, rot_speed: float, mot_speed: float, set_rpm: float, rot_count: int, pres_flow: int, rot_hall_state: int = 0): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD Blood Pump Data + @param set_flow : set flow rate + @param meas_flow : meaured speed + @param rot_speed : measured rotor speed + @param mot_speed : measured blood pump speed + @param set_rpm : set rpm + @param pres_flow : pres_flow + @param rot_count : rotation count + @param rot_hall_state : rotor hall state @return: None """ if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray (set_flow ) + payload += conversions.float_to_bytearray (meas_flow ) + payload += conversions.float_to_bytearray (rot_speed ) + payload += conversions.float_to_bytearray (mot_speed ) + payload += conversions.float_to_bytearray (set_rpm ) + payload += conversions.unsigned_integer_to_bytearray(rot_count ) + payload += conversions.unsigned_integer_to_bytearray(pres_flow ) + payload += conversions.unsigned_integer_to_bytearray(rot_hall_state ) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=msg_ids.MsgIds.MSG_ID_TD_BLOOD_PUMP_DATA.value, payload=payload) self.can_interface.send(message, 0) - def td_air_trap(self, op_mode: int, sub_mode: int = 0): + def td_air_trap(self, low_level: int, upper_level: int, lower_level_raw: int, upper_level_raw: int, valve_state: int, controlling: bool): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD air trap data + @param low_level : lower level value + @param upper_level : upper level value + @param low_level_raw : lower level raw value + @param upper_level_raw : upper level raw value + @param valve_state : air valve state + @param controlling : air control @return: None """ if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray(low_level ) + payload += conversions.integer_to_bytearray(upper_level ) + payload += conversions.integer_to_bytearray(lower_level_raw ) + payload += conversions.integer_to_bytearray(upper_level_raw ) + payload += conversions.integer_to_bytearray(valve_state ) + payload += conversions.integer_to_bytearray(controlling ) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=msg_ids.MsgIds.MSG_ID_TD_AIR_TRAP_DATA.value, payload=payload) self.can_interface.send(message, 0) - def td_ejector(self, op_mode: int, sub_mode: int = 0): + def td_ejector(self, position: int, steps_per_min: int = 0): """ Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + @param position : ejector position + @param steps_per_min : ejector steps per min @return: None """ - + # TODO: replace with proper payload and message ID once message is defined if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray(position ) + payload += conversions.integer_to_bytearray(steps_per_min) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=0x92, payload=payload) self.can_interface.send(message, 0) - def td_switches(self, op_mode: int, sub_mode: int = 0): + def td_switches(self, door: int, rot_1: int = 0, rot_2: int = 0): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD switch Data + @param door : door status + @param rot_1 : rot_1 status + @param rot_2 : rot_2 status @return: None """ - + # TODO: replace with proper payload and message ID once message is defined if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray(door ) + payload += conversions.integer_to_bytearray(rot_1) + payload += conversions.integer_to_bytearray(rot_2) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=0x93, payload=payload) self.can_interface.send(message, 0) - def td_battery(self, op_mode: int, sub_mode: int = 0): + def td_battery(self, capacity: int, ac_power: int = 0): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD Battery Data + @param capacity : battery capacity + @param ac_power : a/c power status @return: None """ - + # TODO: replace with proper payload and message ID once message is defined if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray(capacity) + payload += conversions.integer_to_bytearray(ac_power) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=0x94, payload=payload) self.can_interface.send(message, 0) - def td_voltages(self, op_mode: int, sub_mode: int = 0): + def td_voltages(self, line_1_2v: float = 1.2, line_3_3v: float = 3.3, line_logic_5v: float = 5.0, + line_sensors_5v: float = 5.0, line_24v: float = 24.0, line_regen_24v: float = 24.0, + fpga_adc_ref: float = 1.0, res_ref: float = 3.0, fpga_vcc: float = 3.0, + fpga_vaux: float = 3.0, fpga_vpvn: float = 1.0): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD voltage data + @param line_1_2v : 1.2V line + @param line_3_3v : 3.3V line + @param line_logic_5v : Logic voltage (5V) + @param line_sensors_5v : Sensors voltage (5V) + @param line_24v : Actuators voltage (24V) + @param line_regen_24v : Actuators regen voltage (24V) + @param fpga_adc_ref : FPGA ADC reference voltage (1V) + @param res_ref : PBA ADC reference voltage (3V) + @param fpga_vcc : FPGA Vcc (3V) + @param fpga_vaux : FPGA Vaux (3V) + @param fpga_vpvn : FPGA Vpvn (1V) @return: None """ if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.float_to_bytearray(line_1_2v ) + payload += conversions.float_to_bytearray(line_3_3v ) + payload += conversions.float_to_bytearray(line_logic_5v ) + payload += conversions.float_to_bytearray(line_sensors_5v ) + payload += conversions.float_to_bytearray(line_24v ) + payload += conversions.float_to_bytearray(line_regen_24v ) + payload += conversions.float_to_bytearray(fpga_adc_ref ) + payload += conversions.float_to_bytearray(res_ref ) + payload += conversions.float_to_bytearray(fpga_vcc ) + payload += conversions.float_to_bytearray(fpga_vaux ) + payload += conversions.float_to_bytearray(fpga_vpvn ) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=msg_ids.MsgIds.MSG_ID_TD_VOLTAGES_DATA.value, payload=payload) self.can_interface.send(message, 0) - def td_versions(self, op_mode: int, sub_mode: int = 0): + def td_versions(self, firmware: str, FPGA: str, compatibility: str, serial: str): """ - Broadcasts the current TD operation mode - @param op_mode : operation mode - @param sub_mode : operation sub-mode + Broadcasts the current TD Version Data + @param firmware : TD firmware version + @param FPGA : TD FPGA version + @param compatibility: Firmware compatibility + @param serial : TD Serial Number @return: None """ - + # TODO: Place holder for versions, not all information for versions may be in the same message so structure will vary if not self.can_enabled: raise ValueError("CAN Interface is not enabled") - payload = conversions.integer_to_bytearray(op_mode ) - payload += conversions.integer_to_bytearray(sub_mode) + payload = conversions.integer_to_bytearray(firmware ) + payload += conversions.integer_to_bytearray(FPGA ) + payload += conversions.integer_to_bytearray(compatibility ) + payload += conversions.integer_to_bytearray(serial ) message = CAN.DenaliMessage.build_message( channel_id=CAN.DenaliChannels.td_sync_broadcast_ch_id, - message_id=msg_ids.MsgIds.MSG_ID_TD_OP_MODE_DATA.value, + message_id=msg_ids.MsgIds.MSG_ID_TD_VERSION_REPONSE.value, payload=payload) self.can_interface.send(message, 0) \ No newline at end of file