Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -rb5dd582bf53a0b479c273de643759f6dfec3d2de -re8bdeec38984b4b800f6d0eca8b9097800efbf40 --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision b5dd582bf53a0b479c273de643759f6dfec3d2de) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision e8bdeec38984b4b800f6d0eca8b9097800efbf40) @@ -23,7 +23,7 @@ from leahi_dialin.common.td_defs import td_enum_repository from leahi_dialin.protocols.CAN import DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish -from leahi_dialin.utils.conversions import integer_to_bytearray +from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray MAX_AIR_PUMP_POWER_LEVEL = 255 #Maximum air pump power allowed @@ -51,8 +51,12 @@ 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.RPM.name: 0 + td_enum_repository.TDAirPumpAttributes.DUTY_CYCLE.name: 0, + td_enum_repository.TDAirPumpAttributes.RPM.name: 0, + # TODO remove after FPGA air pump speed validation + td_enum_repository.TDAirPumpAttributes.FPGA_RPM.name: 0, + # TODO remove after FPGA air pump speed validation + td_enum_repository.TDAirPumpAttributes.SCALAR_POWER.name: 0 } } @@ -69,8 +73,12 @@ """ 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.DUTY_CYCLE.name, 'f')) sensor_list.append((td_enum_repository.TDAirPumpAttributes.RPM.name, 'i')) + # TODO remove after FPGA air pump speed validation + sensor_list.append((td_enum_repository.TDAirPumpAttributes.FPGA_RPM.name, 'i')) + # TODO remove after FPGA air pump speed validation + sensor_list.append((td_enum_repository.TDAirPumpAttributes.SCALAR_POWER.name, 'i')) i = 1 for sensor in sensor_list: @@ -117,13 +125,12 @@ if dutyCycle < 0 or dutyCycle > 100: return 0 - power = int((dutyCycle/100) * MAX_AIR_PUMP_POWER_LEVEL) sts = integer_to_bytearray(state) - pwr = integer_to_bytearray(power) + pwr = float_to_bytearray(dutyCycle) payload = sts + pwr state_name = 'start with power' if state == 2 else 'stopped' - power_value = f'{str(power)}' if state == 2 else '' + power_value = f'{str(dutyCycle)}' if state == 2 else '' return cmd_generic_override( payload = payload, reset = NO_RESET,