Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -rcd27cd828b37e7e0c8a77b63594456f308887ae8 -rb5dd582bf53a0b479c273de643759f6dfec3d2de --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision cd27cd828b37e7e0c8a77b63594456f308887ae8) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision b5dd582bf53a0b479c273de643759f6dfec3d2de) @@ -51,7 +51,8 @@ self.td_air_pump = { td_enum_repository.TDAirPumpNames.H12_AIR_PUMP.name: { td_enum_repository.TDAirPumpAttributes.STATE.name: 0, - td_enum_repository.TDAirPumpAttributes.POWER.name: 0 + td_enum_repository.TDAirPumpAttributes.POWER.name: 0, + td_enum_repository.TDAirPumpAttributes.RPM.name: 0 } } @@ -66,13 +67,18 @@ @param message: published air pump data message as: air pump state @return: None """ - aps = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - app = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2])) + sensor_list =[] + sensor_list.append((td_enum_repository.TDAirPumpAttributes.STATE.name, 'i')) + sensor_list.append((td_enum_repository.TDAirPumpAttributes.POWER.name, 'i')) + sensor_list.append((td_enum_repository.TDAirPumpAttributes.RPM.name, 'i')) + + 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}') + self.td_air_pump[td_enum_repository.TDAirPumpNames.H12_AIR_PUMP.name][sensor[0]] = struct.unpack(sensor[1], bytearray(message['message'][start_pos:end_pos]))[0] + i += 1 - self.td_air_pump[td_enum_repository.TDAirPumpNames.H12_AIR_PUMP.name][td_enum_repository.TDAirPumpAttributes.STATE.name] = aps[0] - self.td_air_pump[td_enum_repository.TDAirPumpNames.H12_AIR_PUMP.name][td_enum_repository.TDAirPumpAttributes.POWER.name] = app[0] self.td_air_pump_timestamp = timestamp