mirror of
https://github.com/hathach/tinyusb.git
synced 2025-03-30 22:20:17 +00:00
Merge pull request #1011 from hathach/correct-hid-inout-example
Correct hid inout example
This commit is contained in:
commit
70b26b561a
@ -1,4 +1,4 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
"Feather_nRF52840":[0X239A,0X8029],
|
"Adafruit Boards":[0x239A,0xFFFF],
|
||||||
"Metro_nRF52840":[0X239A,0X803F],
|
"TinyUSB example":[0xCAFE,0xFFFF]
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,6 @@ var HID = require('node-hid');
|
|||||||
var os = require('os')
|
var os = require('os')
|
||||||
// list of supported devices
|
// list of supported devices
|
||||||
var boards = require('./boards.js')
|
var boards = require('./boards.js')
|
||||||
|
|
||||||
var isWin = (os.platform() === 'win32');
|
|
||||||
var devices = HID.devices();
|
var devices = HID.devices();
|
||||||
|
|
||||||
// this will choose any device found in the boards.js file
|
// this will choose any device found in the boards.js file
|
||||||
@ -19,10 +17,8 @@ var message = "Hello World!"
|
|||||||
// This means if you have characters in your string that are not Latin-1 you will have to add additional logic for character codes above 255
|
// This means if you have characters in your string that are not Latin-1 you will have to add additional logic for character codes above 255
|
||||||
var messageBuffer = Array.from(message, function(c){return c.charCodeAt(0)});
|
var messageBuffer = Array.from(message, function(c){return c.charCodeAt(0)});
|
||||||
|
|
||||||
// Windows wants you to prepend a 0 to whatever you send
|
// HIDAPI requires us to prepend a 0 for single hid report as dummy reportID
|
||||||
if(isWin){
|
messageBuffer.unshift(0)
|
||||||
messageBuffer.unshift(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Some OSes expect that you always send a buffer that equals your report length
|
// Some OSes expect that you always send a buffer that equals your report length
|
||||||
// So lets fill up the rest of the buffer with zeros
|
// So lets fill up the rest of the buffer with zeros
|
||||||
@ -66,6 +62,7 @@ function anySupportedBoard(d) {
|
|||||||
|
|
||||||
|
|
||||||
function isDevice(board,d){
|
function isDevice(board,d){
|
||||||
return d.vendorId==board[0] && d.productId==board[1];
|
// product id 0xff is matches all
|
||||||
|
return d.vendorId==board[0] && (d.productId==board[1] || board[1] == 0xFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,10 @@ for dict in hid.enumerate(USB_VID):
|
|||||||
if dev:
|
if dev:
|
||||||
while True:
|
while True:
|
||||||
# Get input from console and encode to UTF8 for array of chars.
|
# Get input from console and encode to UTF8 for array of chars.
|
||||||
str_out = input("Send text to HID Device : ").encode('utf-8')
|
# hid generic inout is single report therefore by HIDAPI requirement
|
||||||
|
# it must be preceeded with 0x00 as dummy reportID
|
||||||
|
str_out = b'\x00'
|
||||||
|
str_out += input("Send text to HID Device : ").encode('utf-8')
|
||||||
dev.write(str_out)
|
dev.write(str_out)
|
||||||
str_in = dev.read(64)
|
str_in = dev.read(64)
|
||||||
print("Received from HID Device:", str_in, '\n')
|
print("Received from HID Device:", str_in, '\n')
|
||||||
|
@ -36,16 +36,24 @@
|
|||||||
*
|
*
|
||||||
* There are 2 ways to test the sketch
|
* There are 2 ways to test the sketch
|
||||||
* 1. Using nodejs
|
* 1. Using nodejs
|
||||||
* - Install nodejs and npm to your PC
|
* - Install nodejs and npm to your PC
|
||||||
* - Install excellent node-hid (https://github.com/node-hid/node-hid) by
|
|
||||||
* $ npm install node-hid
|
|
||||||
* - Run provided hid test script
|
|
||||||
* $ node hid_test.js
|
|
||||||
*
|
*
|
||||||
* 2. Using python hidRun
|
* - Install excellent node-hid (https://github.com/node-hid/node-hid) by
|
||||||
* - Python and `hid` package is required, for installation please follow https://pypi.org/project/hid/
|
* $ npm install node-hid
|
||||||
* - Run provided hid test script to send and receive data to this device.
|
*
|
||||||
* $ python3 hid_test.py
|
* - Run provided hid test script
|
||||||
|
* $ node hid_test.js
|
||||||
|
*
|
||||||
|
* 2. Using python
|
||||||
|
* - Install `hid` package (https://pypi.org/project/hid/) by
|
||||||
|
* $ pip install hid
|
||||||
|
*
|
||||||
|
* - hid package replies on hidapi (https://github.com/libusb/hidapi) for backend,
|
||||||
|
* which already available in Linux. However on windows, you may need to download its dlls from their release page and
|
||||||
|
* copy it over to folder where python is installed.
|
||||||
|
*
|
||||||
|
* - Run provided hid test script to send and receive data to this device.
|
||||||
|
* $ python3 hid_test.py
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
Loading…
x
Reference in New Issue
Block a user