webbusb API,用于通过webApp向设备推送命令/配置



我正在为我们公司做一些关于webbusb API的研究,因为我们要开始自己制造设备。

我们目前的设备制造商附带了一个应用程序,因此团队可以将设备插入计算机并进行诊断。它们的应用程序允许我们从设备读取输出,以及通过有线连接向设备推送命令/配置。

由于这个设备是100%我们的,我们也负责建立诊断工具。我们需要某种接口,允许用户读取输出通过有线USB连接发送命令/配置到设备。

webUSB是正确的API吗?如果没有,有什么建议可以达到这个要求?我们是否仅限于构建某种桌面或移动应用程序?

我建议您阅读以下资源,以帮助您了解webbusb API是否符合您的需求:

  • https://web.dev/devices-introduction/帮助您选择合适的API来与您选择的硬件设备通信。
  • https://web.dev/build-for-webusb/解释了如何构建一个设备来充分利用webbusb API。

从你的描述来看,webbusb不是严格要求的,但也不会有坏处。

首先,您需要实现USB接口读取数据和发送配置。它将是一个自定义协议,而不是一个标准的USB设备类,如HID,视频或大容量存储。协议的细节,如果你使用控制,中断或批量传输是你的选择。

我假设你将设备连接到Windows pc,你可能不想把钱花在编写设备驱动程序上。如果是这样,最简单的方法是添加必需的描述符和Microsoft OS 2.0描述符所需的控制请求。这样,WinUSB驱动程序将在设备插入时自动安装。

使用WinUSB API, Windows应用程序将能够与USB设备通信。不需要额外的驱动程序。(在macOS和Linux上,这甚至更容易,因为你不需要Microsoft OS 2.0 Descriptors。)

在此之上,您可以实现额外的描述符和控制请求WebUSB。它将提供额外的好处,你可以编写一个web应用程序(而不是一个本地应用程序)与USB设备通信。(目前你只能使用Chrome浏览器。)webbus设备应该实现WinUSB描述符作为可选的(。INF文件,手动安装过程)是一种痛苦。

已经提到的网页https://web.dev/build-for-webusb/是如何实现它的一个完整的例子。

最新更新