问题标签 [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.

0 投票
1 回答
381 浏览

usb - 如何在设备上刷新 IN 批量端点缓冲区

我想确保在连接到 Chrome(通过 WebUSB)端点的设备上不包含来自以前批量传输的消息。我检查了 WebUSB 的 API: https ://wicg.github.io/webusb/ ,我没有看到任何允许清空缓冲区的刷新函数。我正在考虑在设备返回 NAK 之前读取数据 - 如下所示:

但不幸的是,看起来没有好的解决方案:

  • 当没有更多数据要读取时, transferIn() 成为阻塞函数 - 所以我们不能在异步调用 transferIn() 上进行中继
  • 当在超时的承诺中调用 transferIn() 时,我们可以以多个等待传入数据的承诺结束(这很糟糕,因为我们不知道哪个承诺会接收数据)

确保设备 IN 端点不包含数据的最佳方法是什么?

0 投票
1 回答
687 浏览

javascript - 如何使用 WebUSB 获取设备描述符?

我在 usbmon3 上使用 Wireshark 来分析进出 USB 的数据包。因此,当我插入设备时,Wireshark 会向我显示发送的内容和接收的内容。

发送发送USB设备描述请求

已收到: 在此处输入图像描述

我正在尝试做同样的事情,但使用 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)是我没有收到任何回复的原因。我不知道我在哪里做错了,我完全迷失了。

谢谢 !!

0 投票
1 回答
172 浏览

usb - 使用 Java 从浏览器与 USB 设备通信

我们有一个 java web 应用程序,现在我们有一个新请求:客户端希望使用我们的应用程序与他们的 USB 设备通信。他们将设备插入他们的 PC,打开我们的 Web 应用程序页面,该页面将与设备通信以获取一些输入。这里的通信意味着从设备读取一些输入。这应该在每个支持脚本的浏览器上都支持。有人可以给我一个指南或链接告诉我怎么做吗?感谢您的阅读。

0 投票
1 回答
720 浏览

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 上)?

0 投票
2 回答
817 浏览

javascript - 使用 WebUSB 从串行设备读取整个响应

我一直在尝试通过 WebUSB 使用串行设备。我可以使用transferIn和打开设备并对其进行读/写transferOut。由于 USB 设备不会一次性发送所有数据,因此我编写了一个发送命令然后通过transferIn递归调用读回结果的函数:

但是,这不起作用,因为transferIn在解决之前等待新数据可用。如何检查 USB 串行设备是否已完成发送响应?

0 投票
1 回答
892 浏览

reactjs - 带 webusb 的指纹扫描仪

是否可以使用 webusb ( https://wicg.github.io/webusb ) 连接/配对 USB 指纹扫描仪?

我有数字角色 U.are.U 4500,想用 react.js 连接到浏览器(chrome)并获取图像文件并可以比较图像

0 投票
1 回答
1468 浏览

angular - 角度的usb设备

每次使用时,我都无法访问我的 Angular 项目中的 USB 设备

它给了我一个空数组,我添加了监听器:

但是他们永远不会被调用,如果我在 navigator.usb 上登录,我会得到一个 USB 对象。

0 投票
1 回答
61 浏览

web-audio-api - WebUSB 和 groupId 识别

我试图找到一种方法来确定 WebUSB 是否是同一多功能设备(即打印机)的一部分。作为一个例子,我可以想象包含音频和 WebUSB 功能的设备。对于音频部分,我可以使用以下 API:

返回deviceIdgroupId。但是,在 WebUSB 的情况下,没有可以用于匹配两个设备的此类组标识符。唯一可以做的就是请求设备:

并检查序列号 - 但它无助于匹配由两个 API 检索到的设备。我在这里找到了关于设备唯一标识符的旧讨论: https ://github.com/w3ctag/design-reviews/issues/64

但是,这似乎没有任何结论。是否有任何机制可以验证 WebUSB 和 WebAudio(或其他 API)是否属于同一硬件?

0 投票
1 回答
1636 浏览

javascript - 在 Electron 应用程序中访问 USB 记忆棒失败,原因是:未选择设备异常

您好,我正在尝试从用 reactjs 编写的电子应用程序访问 USB 棒。

由于电子是谷歌铬,我认为我可以使用 USB Web-Api:https ://developer.mozilla.org/en-US/docs/Web/API/USB

所以我创建了一个这样的组件:

vendorId 是我的特定 USB 记忆棒的正确名称。但是当我单击按钮时,我收到如下错误:

但我想列出可用的设备,以便用户可以选择。所以也许我不理解文档的某些部分或者是什么导致了这里的问题?

更新:当我在我的默认 chrome 浏览器中运行这个应用程序时,我得到了在 USB 设备之间进行选择的对话。所以看起来这个错误更多地与电子本身有关。

0 投票
1 回答
1318 浏览

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 来禁用预渲染,但没有任何改变。