问题标签 [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 投票
2 回答
4202 浏览

javascript - 未能声明接口 0:设备或资源繁忙

我正在尝试使用WEBUSB API. 但是当我试图声明接口时,它显示

“DOMException:无法声明接口”

bConfigurationvalueis1和接口号是0。我在lsusb -v下面添加命令的输出

为什么显示设备或资源繁忙。如何声明接口?

0 投票
4 回答
2759 浏览

google-chrome - Webusb 扫描文件

有人成功配置了 webusb 来扫描文档吗?我能够连接到 USB 扫描仪,但找不到有关扫描文档的命令的任何文档:

$lsusb -v

下面的代码测试了一个低级别的传输,但是即使 PromiseStatus 被标记为已解决,状态也是停止并且 device.transferIn 状态保持挂起。我无法更进一步,因为我没有找到我的扫描仪或任何其他扫描仪的任何文档。

谢谢 !

0 投票
0 回答
492 浏览

javascript - WebUSB 支持是否需要确切的设备描述符?

我在 Windows 7 上运行 Chrome 的 WebUSB 来尝试打开智能卡读卡器。当我使用没有过滤器的 navigator.usb.requestDevices() 时,设备有时会出现。如果我在过滤器中包含 vendorId 和 productId,则该设备无法在 Chrome 中选择/列出。此外,当我尝试使用

我被拒绝访问(权限不足)。在实践中,为了将设备连接到 Chrome 并对其进行操作,是否真的需要每个设备都具有与WebUSB 文档上发布的设备描述符格式完全相同的设备描述符?我也尝试过使用 Zadig 将驱动程序更改为 WinUSB,但这并没有改变任何东西。

0 投票
1 回答
1388 浏览

google-chrome - WebUSB 限制控制TransferOut?

我使用 usbmon 来分析 usb 数据包,并在 webusb 中实现它,但是我无法找到解决方案。这是 Sane 发送到 USB 的内容:

这类似于 controlTransferOut() 命令,requestType=Standard,receiver: 'endpoint', request: 1, index: 0x00, value:129

这里的“值”非常棘手,因为根据文档,所有其他参数都应该是正确的,但是发送 value:129 应该发送如下内容:

但是我得到的是:

而 value 是一个无符号的 short,最大 0xffff !所以显然值应该是0,下一个半字节0x0081。我的问题是如何用第二个半字节的值触发控制输出(Co)?

代码是这样的:

例如,所有其他组合都与响应“Stall”一起发送(类,接口:21 - 供应商,设备:40 ...等)。

设备描述和端点描述符可在此处获得

谢谢

0 投票
1 回答
1814 浏览

android - WebUSB API 错误:设备已断开连接

我正在尝试使用 WebUSB API 通过 Web 与三星 J7 通信。我目前正在使用这个基本代码:

电话device.open()正在返回

DOMException:设备已断开连接

我用 Chrome 在 Windows 和 Ubuntu 机器上测试了代码。两者都给出了相同的结果。对问题原因有任何帮助吗?

0 投票
1 回答
1940 浏览

dart - 使用 chromebook 时 USBdevice.open() 访问被拒绝

我正在尝试使用 WebUS,或者更准确地说,通过使用 DART(Angular DART)编写的网页访问 USB 设备。

在摆弄了一下之后,我了解了在 Windows 10 台式电脑上使用 Chrome V63 的基本概念。它允许我向 USB 端点发送和接收数据。到目前为止,一切都很好 :-)

但是,当在运行 Chrome 版本 63 的 (Samsung 500C) Chromebook上尝试相同的 URL时,调用时会出现问题USBdevice.open(),我收到“未捕获的 DOMException:访问被拒绝”异常。

在调试器中,查看 USB 设备属性,opened: false并且接口claimed: false指示没有其他人正在使用 USB 适配器。

再看一些,device_event_log它下面的 Chrome://system 显示一个USB EVENT: usb_device_linux.cc:99 Permission broker failed to open the device: org.freedesktop.DBus.Error.Failed: permission_broker/permission_denied:Permission to open '/dev/bus/001/032' denied (2)

欢迎任何建议。

0 投票
1 回答
895 浏览

webusb - WebUSB - 这只是一个在现有 JavaScript API 之上工作的 USB 库吗?

假设:

  • 所有网络浏览器都可以使用 JavaScript 与 HID 设备通信
  • 当某些 JavaScript 代码正在与 HID 设备通信时,Web 浏览器不会告诉用户
  • WebUSB 是一个 JavaScript 库。

我的假设在这里正确吗?或者,我错过了什么?

我问这个问题是因为 WebUSB 声称它将使 USB 通信更安全。但是,我不得不想知道如果用户不知道它是否/何时发生,USB 通信会有多安全。我的理解是,现在,网站可以与 USB 设备通信,而浏览器不必告诉用户这种情况正在发生。

WebUSB 看起来会让事情变得更安全,因为用户将被引导到一个安全的网站,有一个安全的界面等等,但在我看来,它似乎并没有解决恶意网站可以攻击你的 USB 的巨大问题你永远不知道的设备。我错了吗?

0 投票
1 回答
1546 浏览

serial-port - 防止 cdc-acm 驱动程序加载设备

我正在尝试在 linux 下将串行设备与 Webusb 连接。

我已经能够列出设备并打开它,但我无法声明接口。Chrome 抱怨设备很忙,为了解决这个问题,我需要取消注册 CDC-ACM 驱动程序。

有没有办法防止 CDC-ACM 驱动程序加载设备,而无需更改 destkop?也许我可以更改 USB 描述符?

0 投票
2 回答
2039 浏览

webusb - WebUSB 和 FTDI232

我尝试连接到串行 USB 接口(FT232),但找不到任何关于如何配置它的信息......

我有什么:

我需要的 :

我需要使用 WebUSB 连接到这个接口,发送消息,阅读消息。

我所取得的成就:

现在,我可以连接到界面并“读取”一些东西。

我的问题 :

我在网上找不到任何关于如何配置 USB 接口的信息,串口配置必须是 57600 baud/s, E, 8, 1 但我找不到任何关于如何配置这些值的信息...

请参阅以下代码,据我了解,我必须在其中添加一些价值,controlTransferOut但我找不到要放置的内容以及原因..

我可以从“我已经取得的成就”部分读到的是单个字符,因为串行配置不正确。

我对其进行了调整以使其正常工作,我用另一个软件打开了串口,配置它,关闭了另一个软件,然后用 webusb 连接到 USB 接口并读取消息。那行得通,但是方法很复杂...

任何帮助将非常感激 :)

0 投票
0 回答
295 浏览

javascript - WebUSB:如何通过 Arduino 按下按钮来调用事件监听器

我正在尝试使用 WebUSB API 制作一个外部控制器。我想从我的 Arduino 板上获取按钮状态并将其转换为 chrome 中的按钮按下。(例如:当我按下引脚 8 上的按钮时,我想让一个 div 元素变为红色,当我释放它时它会变回原来的状态。)唯一的问题是我不知道如何调用这样的事件。

到目前为止,我一直在使用 webUSB 页面给出的示例:https ://webusb.github.io/arduino/