Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -rac11d0b19db5a1fe024699081a2b472ae27a5357 -re588b280318c1ac5233cf2e28019f05796ac0f2b --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision ac11d0b19db5a1fe024699081a2b472ae27a5357) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision e588b280318c1ac5233cf2e28019f05796ac0f2b) @@ -580,12 +580,14 @@ class TDAirPumpAttributes(DialinEnum): STATE = 0 # TD Air Pump State to command attribute POWER = 1 # TD Air Pump Power attribute - NUM_OF_AIR_PUMP_ATTRIBUTES = 2 # Number of Air Pump attributes + RPM = 2 # TD Air Pump RPM attribute + NUM_OF_AIR_PUMP_ATTRIBUTES = 3 # Number of Air Pump attributes TDAirPumpAttributes._str_list = { # Official Name : Accepted strings 'STATE': [], 'POWER': [], + 'RPM': [], 'NUM_OF_AIR_PUMP_ATTRIBUTES': [], } Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -rc5bfcf84ed942ca5841bf9de155aa0f495b4d28d -re588b280318c1ac5233cf2e28019f05796ac0f2b --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision c5bfcf84ed942ca5841bf9de155aa0f495b4d28d) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision e588b280318c1ac5233cf2e28019f05796ac0f2b) @@ -50,7 +50,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 } } @@ -65,13 +66,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