Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r396e5d3fdfdcdabca9cc7434de0fcee52036aaa1 -r1cbdfad03c3619801033745980a6a7018fc6546a --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 396e5d3fdfdcdabca9cc7434de0fcee52036aaa1) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 1cbdfad03c3619801033745980a6a7018fc6546a) @@ -207,12 +207,12 @@ "d26_valv", "d22_valv", "d79_pmp_valv", - "D83_valv", - "D91_valv", + "d83_valv", + "d91_valv", "spare3_valv", "spare4_valv", "spare5_valv", - "D100_valv", + "d100_valv", "spare7_valv", "valve_states_enum", "valves_sensed_states", Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -rc5bfcf84ed942ca5841bf9de155aa0f495b4d28d -r1cbdfad03c3619801033745980a6a7018fc6546a --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision c5bfcf84ed942ca5841bf9de155aa0f495b4d28d) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 1cbdfad03c3619801033745980a6a7018fc6546a) @@ -65,6 +65,7 @@ } self.pressure_limits_state = 0 self.tmp_pressure = 0.0 + self.tmp_long_filtered_pressure = 0.0 self.tmp_min_limit = 0.0 self.tmp_max_limit = 0.0 @@ -74,6 +75,7 @@ "td_pressure_sensors", "pressure_limits_state", "tmp_pressure", + "tmp_long_filtered_pressure", "tmp_min_limit", "tmp_max_limit", "td_pressure_timestamp" @@ -86,46 +88,29 @@ @param message: published pressure & occlusion data message @return: none """ - art = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - ven = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2])) - pls = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3])) - apl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4])) - apu = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5])) - vpl = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6])) - vpu = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7])) - lfa = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) - lfv = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9])) - tps = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10])) - tmin = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11])) - tmax = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12])) - baro = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13])) + sensor_list =[] + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) + sensor_list.append((self.pressure_limits_state, 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name], 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name], 'f')) + sensor_list.append((self.tmp_pressure, 'f')) + sensor_list.append((self.tmp_long_filtered_pressure, 'f')) + sensor_list.append((self.tmp_min_limit, 'f')) + sensor_list.append((self.tmp_max_limit, 'f')) + sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = art[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = ven[0] - self.pressure_limits_state = pls[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = apl[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = apu[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = vpl[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = vpu[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfa[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfv[0] - self.tmp_pressure = tps[0] - self.tmp_min_limit = tmin[0] - self.tmp_max_limit = tmax[0] - self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = baro[0] + i = 1 + for sensor in sensor_list: + start_pos = eval(f'MsgFieldPositions.START_POS_FIELD_{i}') + end_pos = eval(f'MsgFieldPositions.END_POS_FIELD_{i}') + sensor[0] = struct.unpack(sensor[1],bytearray(message['message'][start_pos:end_pos]))[0] + i += 1 + self.td_pressure_timestamp = timestamp @@ -203,3 +188,29 @@ override_text = str(prs) + " mmHg. ", logger = self.logger, can_interface = self.can_interface) + + + def cmd_tmp_long_filtered_sensor_override(self, pressure: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the tmp long filtered sensor override command + . + Constraints: + Must be logged into TD. + + @param pressure: float - measured pressure (in mmHg) to override with + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + rst = integer_to_bytearray(reset) + prs = float_to_bytearray(pressure) + payload = rst + prs + + return cmd_generic_override( + payload = payload, + reset = reset, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_TMP_LONG_FILTERED_PRESSURE_OVERRIDE_REQUEST, + entity_name = 'TD TMP Pressure Sensor pressure', + override_text = str(prs) + " mmHg. ", + logger = self.logger, + can_interface = self.can_interface)