Index: dialin/dg/hd_proxy.py =================================================================== diff -u -r92ba68da956156e22596a1dec25bebde27beb60a -r7c24cff28bfdc1cc675d6a408cb3b96a019fd2c0 --- dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision 92ba68da956156e22596a1dec25bebde27beb60a) +++ dialin/dg/hd_proxy.py (.../hd_proxy.py) (revision 7c24cff28bfdc1cc675d6a408cb3b96a019fd2c0) @@ -18,7 +18,7 @@ from ..common.msg_defs import MsgIds from ..protocols.CAN import DenaliMessage, DenaliChannels from ..utils.base import AbstractSubSystem -from ..utils.conversions import integer_to_bytearray, float_to_bytearray +from ..utils.conversions import integer_to_bytearray, float_to_bytearray, byte_to_bytearray from ..dg import NO_RESET, RESET @@ -545,3 +545,22 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_send_hd_power_off_response(self, usr_response: int ) -> None: + """ + Constructs and sends HD user response to power off request to the UI. + + OFF_BUTTON_RSP_USER_REQUESTS_POWER_OFF = 0, ///< User requests power off response + OFF_BUTTON_RSP_USER_CONFIRMS_POWER_OFF = 1, ///< User confirms power off response + OFF_BUTTON_RSP_USER_REJECTS_POWER_OFF = 2, ///< User rejects power off response + NUM_OF_OFF_BUTTON_RSPS ///< Number of off button responses from UI + + @param usr_response: (int) - user response defined in enum + @return: none + """ + payload = byte_to_bytearray(usr_response) + message = DenaliMessage.build_message(channel_id=DenaliChannels.hd_to_ui_ch_id, + message_id=MsgIds.MSG_ID_OFF_BUTTON_PRESS_REQUEST.value, + payload=payload) + # No ACK required + self.can_interface.send(message, 0)