问题标签 [webusb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
usb - 如何在设备上刷新 IN 批量端点缓冲区
我想确保在连接到 Chrome(通过 WebUSB)端点的设备上不包含来自以前批量传输的消息。我检查了 WebUSB 的 API: https ://wicg.github.io/webusb/ ,我没有看到任何允许清空缓冲区的刷新函数。我正在考虑在设备返回 NAK 之前读取数据 - 如下所示:
但不幸的是,看起来没有好的解决方案:
- 当没有更多数据要读取时, transferIn() 成为阻塞函数 - 所以我们不能在异步调用 transferIn() 上进行中继
- 当在超时的承诺中调用 transferIn() 时,我们可以以多个等待传入数据的承诺结束(这很糟糕,因为我们不知道哪个承诺会接收数据)
确保设备 IN 端点不包含数据的最佳方法是什么?
javascript - 如何使用 WebUSB 获取设备描述符?
我在 usbmon3 上使用 Wireshark 来分析进出 USB 的数据包。因此,当我插入设备时,Wireshark 会向我显示发送的内容和接收的内容。
我正在尝试做同样的事情,但使用 Webusb。这是我在javascript中的代码:
当然,我知道如果我只是console.log(device)
在我的控制台中收到设备描述。但我试图了解函数本身,主要是requestType, recipient, request, value, index
通过发送相同的GET DESCRIPTOR (0x06)
命令(如第一张图片)并接收该console.log('Received: ' + decoder.decode(result.data));
部分中的设备描述来了解应该进入字段的内容。我尝试做这么简单的事情的原因是因为我将沿着连接到此 USB 设备的其他设备进行更多传输,所以我需要了解在这些参数中发送什么。
使用该功能后,我再次查看 Wireshark 以了解为什么我没有得到任何东西,然后我得到了这个:
我假设这Broken pipe (-EPIPE) (-32)
是我没有收到任何回复的原因。我不知道我在哪里做错了,我完全迷失了。
谢谢 !!
usb - 使用 Java 从浏览器与 USB 设备通信
我们有一个 java web 应用程序,现在我们有一个新请求:客户端希望使用我们的应用程序与他们的 USB 设备通信。他们将设备插入他们的 PC,打开我们的 Web 应用程序页面,该页面将与设备通信以获取一些输入。这里的通信意味着从设备读取一些输入。这应该在每个支持脚本的浏览器上都支持。有人可以给我一个指南或链接告诉我怎么做吗?感谢您的阅读。
windows - WebUSB 和 Windows 驱动程序
我想在 Windows 上将 WebUSB 与 libusbK 一起使用。
看起来 WebUSB 仅适用于 WinUSB 驱动程序。我无法让它与 libusbK 一起工作。
我搜索了一份详细的论文,但找不到任何东西。我在https://wicg.github.io/webusb/
上没有看到任何关于此的信息
是否可以在 Windows 上将 WebUSB 与 libusbK 一起使用?
我有 FTDI FT232H 芯片,我使用 libusbK 驱动程序。
下面是代码
Chrome 会打开一个弹出窗口,其中包含不存在的设备,但我的设备不在列表中。我通过 Zadig 将驱动程序重新安装到 WinUSb。重新启动计算机。开始我的代码。我在列表中看到我的设备。
WebUSB 是否仅适用于 WinUSB 驱动程序(在 Windows 上)?
javascript - 使用 WebUSB 从串行设备读取整个响应
我一直在尝试通过 WebUSB 使用串行设备。我可以使用transferIn
和打开设备并对其进行读/写transferOut
。由于 USB 设备不会一次性发送所有数据,因此我编写了一个发送命令然后通过transferIn
递归调用读回结果的函数:
但是,这不起作用,因为transferIn
在解决之前等待新数据可用。如何检查 USB 串行设备是否已完成发送响应?
reactjs - 带 webusb 的指纹扫描仪
是否可以使用 webusb ( https://wicg.github.io/webusb ) 连接/配对 USB 指纹扫描仪?
我有数字角色 U.are.U 4500,想用 react.js 连接到浏览器(chrome)并获取图像文件并可以比较图像
angular - 角度的usb设备
每次使用时,我都无法访问我的 Angular 项目中的 USB 设备
它给了我一个空数组,我添加了监听器:
但是他们永远不会被调用,如果我在 navigator.usb 上登录,我会得到一个 USB 对象。
web-audio-api - WebUSB 和 groupId 识别
我试图找到一种方法来确定 WebUSB 是否是同一多功能设备(即打印机)的一部分。作为一个例子,我可以想象包含音频和 WebUSB 功能的设备。对于音频部分,我可以使用以下 API:
返回deviceId和groupId。但是,在 WebUSB 的情况下,没有可以用于匹配两个设备的此类组标识符。唯一可以做的就是请求设备:
并检查序列号 - 但它无助于匹配由两个 API 检索到的设备。我在这里找到了关于设备唯一标识符的旧讨论: https ://github.com/w3ctag/design-reviews/issues/64
但是,这似乎没有任何结论。是否有任何机制可以验证 WebUSB 和 WebAudio(或其他 API)是否属于同一硬件?
javascript - 在 Electron 应用程序中访问 USB 记忆棒失败,原因是:未选择设备异常
您好,我正在尝试从用 reactjs 编写的电子应用程序访问 USB 棒。
由于电子是谷歌铬,我认为我可以使用 USB Web-Api:https ://developer.mozilla.org/en-US/docs/Web/API/USB
所以我创建了一个这样的组件:
vendorId 是我的特定 USB 记忆棒的正确名称。但是当我单击按钮时,我收到如下错误:
但我想列出可用的设备,以便用户可以选择。所以也许我不理解文档的某些部分或者是什么导致了这里的问题?
更新:当我在我的默认 chrome 浏览器中运行这个应用程序时,我得到了在 USB 设备之间进行选择的对话。所以看起来这个错误更多地与电子本身有关。
asp.net-core - 从 Blazor 调用 javascript 会导致错误
我有一个基于 .NET Core 3.1 构建的 Blazor 应用程序,我需要能够访问 USB 端口资源。我不断收到错误:
此时无法发出 JavaScript 互操作调用。这是因为组件是静态渲染的。启用预呈现后,JavaScript 互操作调用只能在 OnAfterRenderAsync 生命周期方法期间执行。
我有一个非常简单的 Blazor 组件,其中包含 Blazor.Extensions.WebUSB 库
即使我按照建议在 OnAfterRenderAsync 中执行 JS 互操作,我仍然会遇到相同的错误。我尝试延迟对 _usb.Initialize 的调用,直到按下按钮(这意味着组件肯定应该已经完成渲染。
我尝试通过将 _Host.cshtml 中的渲染模式属性设置为 Server 而不是 ServerPrerendered 来禁用预渲染,但没有任何改变。