@@ -58,11 +58,12 @@ STATIC const mp_obj_str_t pyb_usb_hid_mouse_desc_obj = {
5858};
5959const mp_obj_tuple_t pyb_usb_hid_mouse_obj = {
6060 {& mp_type_tuple },
61- 4 ,
61+ 5 ,
6262 {
6363 MP_OBJ_NEW_SMALL_INT (1 ), // subclass: boot
6464 MP_OBJ_NEW_SMALL_INT (2 ), // protocol: mouse
6565 MP_OBJ_NEW_SMALL_INT (USBD_HID_MOUSE_MAX_PACKET ),
66+ MP_OBJ_NEW_SMALL_INT (8 ), // polling interval: 8ms
6667 (mp_obj_t )& pyb_usb_hid_mouse_desc_obj ,
6768 },
6869};
@@ -76,11 +77,12 @@ STATIC const mp_obj_str_t pyb_usb_hid_keyboard_desc_obj = {
7677};
7778const mp_obj_tuple_t pyb_usb_hid_keyboard_obj = {
7879 {& mp_type_tuple },
79- 4 ,
80+ 5 ,
8081 {
8182 MP_OBJ_NEW_SMALL_INT (1 ), // subclass: boot
8283 MP_OBJ_NEW_SMALL_INT (1 ), // protocol: keyboard
8384 MP_OBJ_NEW_SMALL_INT (USBD_HID_KEYBOARD_MAX_PACKET ),
85+ MP_OBJ_NEW_SMALL_INT (8 ), // polling interval: 8ms
8486 (mp_obj_t )& pyb_usb_hid_keyboard_desc_obj ,
8587 },
8688};
@@ -184,7 +186,7 @@ void usb_vcp_send_strn_cooked(const char *str, int len) {
184186 pyb.usb_mode('VCP+HID', vid=0xf055, pid=0x9800) # specify VID and PID
185187 pyb.usb_mode('VCP+HID', hid=pyb.hid_mouse)
186188 pyb.usb_mode('VCP+HID', hid=pyb.hid_keyboard)
187- pyb.usb_mode('VCP+HID', pid=0x1234, hid=(subclass, protocol, max_packet_len, report_desc))
189+ pyb.usb_mode('VCP+HID', pid=0x1234, hid=(subclass, protocol, max_packet_len, polling_interval, report_desc))
188190
189191 vcp = pyb.USB_VCP() # get the VCP device for read/write
190192 hid = pyb.USB_HID() # get the HID device for write/poll
@@ -265,17 +267,18 @@ STATIC mp_obj_t pyb_usb_mode(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_
265267 USBD_HID_ModeInfoTypeDef hid_info ;
266268 if (mode & USBD_MODE_HID ) {
267269 mp_obj_t * items ;
268- mp_obj_get_array_fixed_n (args [3 ].u_obj , 4 , & items );
270+ mp_obj_get_array_fixed_n (args [3 ].u_obj , 5 , & items );
269271 hid_info .subclass = mp_obj_get_int (items [0 ]);
270272 hid_info .protocol = mp_obj_get_int (items [1 ]);
271273 hid_info .max_packet_len = mp_obj_get_int (items [2 ]);
274+ hid_info .polling_interval = mp_obj_get_int (items [3 ]);
272275 mp_buffer_info_t bufinfo ;
273- mp_get_buffer_raise (items [3 ], & bufinfo , MP_BUFFER_READ );
276+ mp_get_buffer_raise (items [4 ], & bufinfo , MP_BUFFER_READ );
274277 hid_info .report_desc = bufinfo .buf ;
275278 hid_info .report_desc_len = bufinfo .len ;
276279
277280 // need to keep a copy of this so report_desc does not get GC'd
278- MP_STATE_PORT (pyb_hid_report_desc ) = items [3 ];
281+ MP_STATE_PORT (pyb_hid_report_desc ) = items [4 ];
279282 }
280283
281284 // init the USB device
0 commit comments