From f7408111c74e037f863224027e362f9e386644e0 Mon Sep 17 00:00:00 2001 From: Florian Didron Date: Wed, 4 Dec 2019 18:50:52 +0900 Subject: fix: chibios handle disconnections gracefully --- tmk_core/protocol/chibios/usb_main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 57b9d74d38..0acb78c9ad 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -869,7 +869,12 @@ void raw_hid_task(void) { #endif #ifdef WEBUSB_ENABLE -void webusb_send(uint8_t *data, uint8_t length) { chnWrite(&drivers.webusb_driver.driver, data, length); } +void webusb_send(uint8_t *data, uint8_t length) { + if(chnWriteTimeout(&drivers.webusb_driver.driver, data, length, TIME_IMMEDIATE) != length){ + webusb_state.paired = false; + webusb_state.pairing = false; + } +} __attribute__((weak)) void webusb_receive_kb(uint8_t *data, uint8_t length) { // Users should #include "raw_hid.h" in their own code -- cgit v1.2.3