问题标签 [web-serial-api]

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 回答
78 浏览

javascript - 如何使用 Web Serial API 发送文件?

我是一个完全的新手,我今天才开始研究这个。我有一个运行 chrome 版本 96.0.4664.111(官方构建)(64 位)的 chromebook,还有一个我已经加载了 python 引导程序(拖放)的树莓派 pico。我试图从我的浏览器串行访问 pico 以加载我的源代码,因为我无法在我的 chromebook 上安装 thawny。我拼凑了这个使用 web 串行 api 连接到 pico 的 javascript 函数。

我找不到让这个程序上传文件的方法,如果有人能帮助我,我将不胜感激。如果我不清楚或非常愚蠢,请原谅,我对此完全陌生,昨晚过年我真的很累。谢谢!

0 投票
0 回答
71 浏览

javascript - 读取时写入串行端口

我可以使用两个单独的按钮(onclick)分别读取和写入串行端口。现在我尝试写入串行端口,当单击按钮从同一端口读取值('请发送文件')时。下面是我的代码,它显示错误

  1. TypeError:无法在“UnderlyingSinkBase”上执行“write”:提供的值不是“(ArrayBuffer 或 ArrayBufferView)”类型。

  2. 未捕获(承诺中)类型错误:无法在“ReadableStream”上执行“pipeTo”:无法通过管道传输锁定的流。

// 写入端口 //

0 投票
1 回答
55 浏览

javascript - 在反应中使用 Web Serial 时如何定义 TextdecoderStream 和 TextEncoderStream?

我的代码在我运行它时的反应是这样的,它说 TextDecoderStream() & TextEncoderStream() 没有定义。

出错

如果我删除流并且只使用 TextDecoder() 和 TextEncoder() 那么它显示

0 投票
0 回答
15 浏览

javascript - 同时从javascript中的文件夹中选择随机未使用的文件

假设有 4 个客户同时使用我的网站。他们每个人都需要从“文件”文件夹中获取不同的随机文件。每个客户端要获取 4 个文件,所以总共 16 个文件。不应重复文件。如何使用 javascript fetch 方法做到这一点.....

0 投票
1 回答
36 浏览

javascript - Google Chrome Web Serial API:意外行为

我能够证明以下 JavaScript 代码不会生成所需的 Modbus 信号。

我已将相应的 COM 端口连接到计算机的另一个 COM 端口。另一方面,HTerm 正在监听。HTerm 接收 11 40 13 25 88 而不是 11 01 00 13 00 25 0E 84。如果我用 HTerm 发送所需的信号,我会得到正确的信号。因此,硬件工作正常。

接收错误 从谷歌浏览器收到的错误信号 的命令 通过 HTerm 发送所需的 modbus 命令 HTerm 发送的命令 接收 HTerm 发送的所需命令从 HTerm 收到的正确命令

这里出了什么问题?我需要如何调整我的代码?还是谷歌浏览器有错误?

0 投票
0 回答
29 浏览

javascript - Chrome Web Serial 在 MacOS 上找不到兼容设备

我正在尝试使用 Google Chrome 中的 Web Serial API 连接到 ANT+ USB 记忆棒。在 linux (Ubuntu) 上,它开箱即用,但在 MacOS (v12.1) 上,该设备不会显示在搜索框中。它在使用 时会出现web-serial-polyfill,但它是未完成且缺少功能,并且由于navigator.serial存在我希望避免使用 polyfill。

var port = await navigator.serial.requestPort({ filters: [{ usbVendorId: 4047 }]});

让我“找不到兼容的设备”。不带参数的请求会显示其他设备,但不会显示 ANT+ 棒。

任何想法为什么会这样?

0 投票
1 回答
88 浏览

javascript - 在javascript中使用web serial api读取USB串口数据

-我从事温度和湿度读取设备的开发。我们有自己的温湿度读取设备(基于 USB 的 COM(串行)端口设备)。目前,我们使用独立软件获取该软件,该软件使用虚拟 com 端口驱动器与设备进行通信。但是,我想使用“网络串行 API”在我的网络应用程序中读取这些记录的数据。

在编写代码以读取该数据时,我无法获取数据。我正在关注“ https://web.dev/serial/ ”这篇文章来读取数据。

- 我应该使用带有 Web 串行 API 的虚拟 comport 驱动程序来读取数据吗?

那么我该怎么做才能使用“web serial API”读取usb com端口设备数据。

--这是我的写入和读取数据的代码。

在此处输入图像描述

0 投票
1 回答
20 浏览

javascript - 如何关闭通过 TransformStream 传输的 Web 串行端口?

我有一个 Web 串行端口,我想从中读取一些数据。我想使用TransformStreams 来做一些处理(例如将字节解码为字符串,分离出逻辑消息等),通过使用pipeThrough来转换数据。但是,一旦我这样做了,我就不能再通过调用reader.releaseLock(). 我在这里做错了什么?

这段代码按我的预期工作(在安全上下文中在浏览器中运行而没有依赖项):

但是,如果我pipeThrough过去通过 do-nothing 发送输出TransformStream,一切都会崩溃。锁没有被释放,releaseLock最终close无法工作。

我在这里做错了什么?释放锁TransformStream真的不会向上游传播吗?我是否必须跟踪管道中每个变压器的实例,以便确保将它们全部解锁?

规范说,管道在管道操作期间锁定可读和可写流。

管道锁定可读和可写流,防止它们在管道操作期间被操纵。这允许实现执行重要的优化,例如直接将数据从底层源传输到底层接收器,同时绕过许多中间队列。

是否有其他方式我必须表明“管道操作”已完成?

0 投票
1 回答
12 浏览

javascript - 如何自定义可用串行设备的弹出窗口?

我正在使用 Web 串行 API 与串行设备通信?当我单击连接按钮时,打开的窗口打开了可用的串行设备。那么如何自定义这个小窗口(链接背景颜色、宽度、高度、位置等...)。

在此处输入图像描述