Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -r38e8dd31728056dbb7f9304c98ab16d7147b75a2 -rddff9b411685f2a08790ae47ff691d9d32937a7a --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 38e8dd31728056dbb7f9304c98ab16d7147b75a2) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision ddff9b411685f2a08790ae47ff691d9d32937a7a) @@ -64,6 +64,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 @@ -73,6 +74,7 @@ "td_pressure_sensors", "pressure_limits_state", "tmp_pressure", + "tmp_long_filtered_pressure", "tmp_min_limit", "tmp_max_limit", "td_pressure_timestamp" @@ -85,46 +87,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