""" 鼠标 Report Map 定义,Report ID 为 2 """ REPORT_MAP_DATA = [ 0x05, 0x01, # USAGE_PAGE (Generic Desktop) 0x09, 0x02, # USAGE (Mouse) 0xa1, 0x01, # COLLECTION (Application) 0x85, 0x02, # REPORT_ID (2) 0x09, 0x01, # USAGE (Pointer) 0xa1, 0x00, # COLLECTION (Physical) 0x05, 0x09, # USAGE_PAGE (Button) 0x19, 0x01, # USAGE_MINIMUM (Button 1) 0x29, 0x03, # USAGE_MAXIMUM (Button 3) 0x15, 0x00, # LOGICAL_MINIMUM (0) 0x25, 0x01, # LOGICAL_MAXIMUM (1) 0x95, 0x03, # REPORT_COUNT (3) 0x75, 0x01, # REPORT_SIZE (1) 0x81, 0x02, # INPUT (Data,Var,Abs) 0x95, 0x01, # REPORT_COUNT (1) 0x75, 0x05, # REPORT_SIZE (5) 0x81, 0x03, # INPUT (Cnst,Var,Abs) 0x05, 0x01, # USAGE_PAGE (Generic Desktop) 0x09, 0x30, # USAGE (X) 0x09, 0x31, # USAGE (Y) 0x15, 0x81, # LOGICAL_MINIMUM (-127) 0x25, 0x7f, # LOGICAL_MAXIMUM (127) 0x75, 0x08, # REPORT_SIZE (8) 0x95, 0x02, # REPORT_COUNT (2) 0x81, 0x06, # INPUT (Data,Var,Rel) 0xc0, # END_COLLECTION ] """ 用于发送鼠标左键按下一次 """ def send_mouse_click(self): if self.__conn_handle is not None: # 0x2 为 REPORT_MAP_DATA 中定义的 Report ID # 0x1 代表鼠标 左键 按下 # 2 个 0x0 代表鼠标 右键、中键 未按下 self.__write(self.__handle_report, bytes([0x2, 0x1, 0x0, 0x0])) self.__notify(self.__conn_handle, self.__handle_report) self.__write(self.__handle_report, bytes([0x2, 0x0, 0x0, 0x0])) self.__notify(self.__conn_handle, self.__handle_report)