From f4762ff0128b6d856fd002f11064091b2eb34336 Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 23 May 2019 10:59:43 +0700 Subject: [PATCH 1/3] host fix address alloc when it reach max devices --- src/host/usbh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/host/usbh.c b/src/host/usbh.c index 7dcb5920..f370b62f 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -636,7 +636,7 @@ static inline uint8_t get_new_address(void) { if (_usbh_devices[addr].state == TUSB_DEVICE_STATE_UNPLUG) return addr; } - return CFG_TUSB_HOST_DEVICE_MAX; + return CFG_TUSB_HOST_DEVICE_MAX+1; } static inline uint8_t get_configure_number_for_device(tusb_desc_device_t* dev_desc) From 231773cae92991c9e16675bfb3772fb19d214f84 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 24 May 2019 12:04:47 +0700 Subject: [PATCH 2/3] move all build into folder _build --- examples/make.mk | 2 +- examples/rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/make.mk b/examples/make.mk index b71c7528..73e339d8 100644 --- a/examples/make.mk +++ b/examples/make.mk @@ -27,7 +27,7 @@ else endif # Build directory -BUILD = build-$(BOARD) +BUILD = _build/build-$(BOARD) # Board specific include $(TOP)/hw/bsp/$(BOARD)/board.mk diff --git a/examples/rules.mk b/examples/rules.mk index 213d9a5a..07840f6f 100644 --- a/examples/rules.mk +++ b/examples/rules.mk @@ -100,7 +100,7 @@ size: $(BUILD)/$(BOARD)-firmware.elf -@echo '' clean: - rm -rf build-$(BOARD) + rm -rf $(BUILD) # Flash binary using Jlink ifeq ($(OS),Windows_NT) From 5f34c63660348f422d1b3934fd03cee62cbf3092 Mon Sep 17 00:00:00 2001 From: hathach Date: Fri, 24 May 2019 12:33:56 +0700 Subject: [PATCH 3/3] should fix and work with #58 - add hid_test_js --- examples/device/hid_generic_inout/hid_test.js | 17 +++++++++++++++++ .../hid_generic_inout/src/usb_descriptors.c | 2 +- src/class/hid/hid_device.c | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 examples/device/hid_generic_inout/hid_test.js diff --git a/examples/device/hid_generic_inout/hid_test.js b/examples/device/hid_generic_inout/hid_test.js new file mode 100644 index 00000000..d4fc800c --- /dev/null +++ b/examples/device/hid_generic_inout/hid_test.js @@ -0,0 +1,17 @@ +var HID = require('node-hid'); +var devices = HID.devices(); +var deviceInfo = devices.find( function(d) { + var isNRF = d.vendorId===0Xcafe && d.productId===0X4004; + return isNRF; +}); +if( deviceInfo ) { + console.log(deviceInfo) + var device = new HID.HID( deviceInfo.path ); + device.on("data", function(data) {console.log(data)}); + + device.on("error", function(err) {console.log(err)}); + + setInterval(function () { + device.write([0x00, 0x01, 0x01, 0x05, 0xff, 0xff]); + },500) +} diff --git a/examples/device/hid_generic_inout/src/usb_descriptors.c b/examples/device/hid_generic_inout/src/usb_descriptors.c index 28a48754..3cf0f711 100644 --- a/examples/device/hid_generic_inout/src/usb_descriptors.c +++ b/examples/device/hid_generic_inout/src/usb_descriptors.c @@ -85,7 +85,7 @@ uint8_t const desc_configuration[] = TUD_CONFIG_DESCRIPTOR(ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100), // Interface number, string index, protocol, report descriptor len, EP In & Out address, size & polling interval - TUD_HID_INOUT_DESCRIPTOR(ITF_NUM_HID, 0, HID_PROTOCOL_NONE, sizeof(desc_hid_report), 0x80 | EPNUM_HID, EPNUM_HID, 16, 10) + TUD_HID_INOUT_DESCRIPTOR(ITF_NUM_HID, 0, HID_PROTOCOL_NONE, sizeof(desc_hid_report), 0x80 | EPNUM_HID, EPNUM_HID, CFG_TUD_HID_BUFSIZE, 10) }; diff --git a/src/class/hid/hid_device.c b/src/class/hid/hid_device.c index 9089ac6b..aea16efc 100644 --- a/src/class/hid/hid_device.c +++ b/src/class/hid/hid_device.c @@ -78,7 +78,7 @@ bool tud_hid_ready(void) bool tud_hid_report(uint8_t report_id, void const* report, uint8_t len) { - TU_VERIFY( tud_hid_ready() && (len < CFG_TUD_HID_BUFSIZE) ); + TU_VERIFY( tud_hid_ready() && (len <= CFG_TUD_HID_BUFSIZE) ); uint8_t itf = 0; hidd_interface_t * p_hid = &_hidd_itf[itf];