Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r01af2d84b2cb4aa87c58f10eb8af669820e71f49 -r2d1aa1133cbaac4adbf4b6f7b2512f6b9255063f --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 01af2d84b2cb4aa87c58f10eb8af669820e71f49) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 2d1aa1133cbaac4adbf4b6f7b2512f6b9255063f) @@ -362,6 +362,7 @@ MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST = 0x8060 MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST = 0x8061 MSG_ID_TD_ALARM_PROPERTIES_RESPONSE = 0x8062 + MSG_ID_TD_AIR_PUMP_RPM_OVERRIDE_REQUEST = 0x8067 MSG_ID_TD_TRAINING_TEST_OVERRIDE_REQUEST = 0x8999 Index: leahi_dialin/td/modules/air_pump.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -r2d1aa1133cbaac4adbf4b6f7b2512f6b9255063f --- leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/td/modules/air_pump.py (.../air_pump.py) (revision 2d1aa1133cbaac4adbf4b6f7b2512f6b9255063f) @@ -139,3 +139,27 @@ override_text = f'{power_value}', logger = self.logger, can_interface = self.can_interface) + + + def cmd_air_pump_rpm_override(self, rpm: int, reset: int=NO_RESET) -> int: + """ + Constructs and sends the air pump RPM override command. + + Constraints: + Must be logged into TD. + @param rpm: (Integer) The desired RPM value + @return: 1 if successful, zero otherwise + """ + rst = integer_to_bytearray(reset) + spd = integer_to_bytearray(rpm) + payload = rst + spd + + return cmd_generic_override( + payload = payload, + reset = NO_RESET, + channel_id = CanChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_AIR_PUMP_RPM_OVERRIDE_REQUEST, + entity_name = f'TD Air Pump RPM', + override_text = f'{rpm}', + logger = self.logger, + can_interface = self.can_interface)