当前位置:首页 » 《关注互联网》 » 正文

使用 Web HID API 在浏览器中进行HID设备交互(纯前端)

17 人参与  2024年03月28日 08:01  分类 : 《关注互联网》  评论

点击全文阅读


文章目录

目的基础说明示例工程(HID透传测试工具)总结

目的

最近在搞HID透传 《STM32 USB使用记录:HID类设备(后篇)》 。

市面上的各种测试工具都或多或少存在问题,所以就自己写一个工具进行测试。目前来说纯前端方案编写这个工具应该是最方便的,这里对 Web HID API 相关内容做个记录。

基础说明

Web HID API 相关内容参考如下:
https://developer.mozilla.org/en-US/docs/Web/API/WebHID_API
https://developer.mozilla.org/en-US/docs/Web/API/HID
https://developer.mozilla.org/en-US/docs/Web/API/HIDDevice
https://developer.mozilla.org/en-US/docs/Web/API/HIDInputReportEvent
https://wicg.github.io/webhid/

这个API目前还处于实验性质,只有电脑上的Chrome、Edge、Opera等浏览器支持:
在这里插入图片描述

另外还需要注意的是从网页操作设备是比较容易产生安全风险的,所以这个API只支持本地调用或者是HTTPS方式调用。

使用下面方法可以侦测电脑上HID设备插入与拔出:

// 全局HID设备插入事件navigator.hid.onconnect = (event) => {    console.log("HID connected: ", event.device);};// 全局HID设备拔出事件navigator.hid.ondisconnect = (event) => {    console.log("HID connected: ", event.device);};

使用下面方法可以显示电脑上的HID设备选择授权,或者显示已授权的HID设备列表:

// requestDevice方法将显示一个包含已连接设备列表的对话框,用户选择可以并授予其中一个设备访问权限const devices = await navigator.hid.requestDevice({ filters: [] });// 注意这里返回的是一个数组// const devices = await navigator.hid.requestDevice({//     filters: [{//         vendorId: 0xabcd,  // 根据VID进行过滤//         productId: 0x1234, // 根据PID进行过滤//         usagePage: 0x0c,   // 根据usagePage进行过滤//         usage: 0x01,       // 根据usage进行过滤//     },],// });// getDevices方法可以返回已连接的授权过的设备列表// let devices = await navigator.hid.getDevices(); 

使用下面方法可以打开或关闭HID设备等:

if (!device.opened) { // 检查设备是否打开    await device.open(); // 打开设备}// await device.close(); // 关闭设备// await device.forget() // 遗忘设备

使用下面可以读写数据:
对于HID设备而言主要有 featureinputoutput 三项可以用来数据读写交互的当然前提是设备自身支持。

// 读取Featureconst dataView = await device.receiveFeatureReport(reportId);// 写Featureawait device.sendFeatureReport(reportId, data);// 向HID设备发送数据await device.sendReport(reportId, data); // reportId写0表示不适用reportId// 监听来自HID设备的数据(input)device.oninputreport = (event) => {    console.log(event); // event中包含device、reportId、data等内容};

示例工程(HID透传测试工具)

代码与说明:《基于 Web HID API 的HID透传测试工具(纯前端)》
项目地址:https://github.com/NaisuXu/HID_Passthrough_Tool
在这里插入图片描述

总结

使用 Web HID API 访问HID设备非常方便,目前来说唯一的问题是这还是实验性质的功能,可能之后接口还会变动,等根据实际情况进行调整。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/86892.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 留下离婚协议后,傅总失控求复合:结局+番外宝藏美文阮娆傅晏洲完本_留下离婚协议后,傅总失控求复合:结局+番外宝藏美文(阮娆傅晏洲)
  • [情碎爱灭,永与君绝]最新章节目录番外+全文_「萧靖轩林月瑶兰心」节选免费试读
  • 清明老公前女友撒我爸妈骨灰,我转眼将他变前夫(李岩)_清明老公前女友撒我爸妈骨灰,我转眼将他变前夫李岩
  • 雪漫青山梦成空:番外+版(孟泾川虞清漾)全书在线_(孟泾川虞清漾)雪漫青山梦成空:番外+版在线列表_笔趣阁(孟泾川虞清漾)
  • 留下离婚协议后,傅总失控求复合:结局+番外优质全章(阮娆傅晏洲)_留下离婚协议后,傅总失控求复合:结局+番外优质全章阮娆傅晏洲
  • 全文重生八零清冷营长好缠人:结局+番外情感纠葛(苏墨南程婉倾)列表_全文重生八零清冷营长好缠人:结局+番外情感纠葛
  • 乔幼兮顾既枭(落花风雨更伤春乔幼兮顾既枭:结局+后续全面完结)免费在线_(落花风雨更伤春乔幼兮顾既枭:结局+后续全面完结)乔幼兮顾既枭免费精彩片段
  • (番外)+(结局)乔曦念贺屿深(荼靡开尽爱成灰:+全书+后续)_(乔曦念贺屿深)列表_笔趣阁(荼靡开尽爱成灰:+全书+后续)
  • (番外)+(全书)八零年代之忠于国家忠于她:全书+后续+结局下载_(段沉野阮寒卿)八零年代之忠于国家忠于她:全书+后续+结局列表_笔趣阁(段沉野阮寒卿)
  • [男友的妹妹爱吃醋]人气小说未删减节选_林婉莹林宇妹妹全角色番外合集包
  • 全文等你在暮色深处:结局+番外文章简述(迟清婉宋宽砚)列表_全文等你在暮色深处:结局+番外文章简述
  • 重生八零清冷营长好缠人:结局+番外苏墨南程婉倾:结局+番外免费_(苏墨南程婉倾)苏墨南程婉倾列表_笔趣阁(苏墨南程婉倾)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1