Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -r20c821bd230fc7689a0275a2918981669ff5cc19 -rfc671af6d1a18c900812e68c42ca14da3280e4f1 --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision 20c821bd230fc7689a0275a2918981669ff5cc19) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision fc671af6d1a18c900812e68c42ca14da3280e4f1) @@ -23,7 +23,7 @@ from leahi_dialin.common 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 @@ -55,7 +55,11 @@ td_enum_repository.TDAirPumpNames.H12_AIR_PUMP.name: { td_enum_repository.TDAirPumpAttributes.STATE.name: 0, td_enum_repository.TDAirPumpAttributes.DUTY_CYCLE.name: 0, - td_enum_repository.TDAirPumpAttributes.RPM.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 } } @@ -70,8 +74,12 @@ """ sensor_list =[] sensor_list.append((td_enum_repository.TDAirPumpAttributes.STATE.name, 'i')) - sensor_list.append((td_enum_repository.TDAirPumpAttributes.DUTY_CYCLE.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: @@ -118,13 +126,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,