问题标签 [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.
javascript - 如何使用 Web Serial API 发送文件?
我是一个完全的新手,我今天才开始研究这个。我有一个运行 chrome 版本 96.0.4664.111(官方构建)(64 位)的 chromebook,还有一个我已经加载了 python 引导程序(拖放)的树莓派 pico。我试图从我的浏览器串行访问 pico 以加载我的源代码,因为我无法在我的 chromebook 上安装 thawny。我拼凑了这个使用 web 串行 api 连接到 pico 的 javascript 函数。
我找不到让这个程序上传文件的方法,如果有人能帮助我,我将不胜感激。如果我不清楚或非常愚蠢,请原谅,我对此完全陌生,昨晚过年我真的很累。谢谢!
javascript - 读取时写入串行端口
我可以使用两个单独的按钮(onclick)分别读取和写入串行端口。现在我尝试写入串行端口,当单击按钮从同一端口读取值('请发送文件')时。下面是我的代码,它显示错误
TypeError:无法在“UnderlyingSinkBase”上执行“write”:提供的值不是“(ArrayBuffer 或 ArrayBufferView)”类型。
未捕获(承诺中)类型错误:无法在“ReadableStream”上执行“pipeTo”:无法通过管道传输锁定的流。
// 写入端口 //
javascript - 在反应中使用 Web Serial 时如何定义 TextdecoderStream 和 TextEncoderStream?
我的代码在我运行它时的反应是这样的,它说 TextDecoderStream() & TextEncoderStream() 没有定义。
出错
如果我删除流并且只使用 TextDecoder() 和 TextEncoder() 那么它显示
javascript - 同时从javascript中的文件夹中选择随机未使用的文件
假设有 4 个客户同时使用我的网站。他们每个人都需要从“文件”文件夹中获取不同的随机文件。每个客户端要获取 4 个文件,所以总共 16 个文件。不应重复文件。如何使用 javascript fetch 方法做到这一点.....
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+ 棒。
任何想法为什么会这样?
javascript - 在javascript中使用web serial api读取USB串口数据
-我从事温度和湿度读取设备的开发。我们有自己的温湿度读取设备(基于 USB 的 COM(串行)端口设备)。目前,我们使用独立软件获取该软件,该软件使用虚拟 com 端口驱动器与设备进行通信。但是,我想使用“网络串行 API”在我的网络应用程序中读取这些记录的数据。
在编写代码以读取该数据时,我无法获取数据。我正在关注“ https://web.dev/serial/ ”这篇文章来读取数据。
- 我应该使用带有 Web 串行 API 的虚拟 comport 驱动程序来读取数据吗?
那么我该怎么做才能使用“web serial API”读取usb com端口设备数据。
--这是我的写入和读取数据的代码。
javascript - 如何关闭通过 TransformStream 传输的 Web 串行端口?
我有一个 Web 串行端口,我想从中读取一些数据。我想使用TransformStream
s 来做一些处理(例如将字节解码为字符串,分离出逻辑消息等),通过使用pipeThrough
来转换数据。但是,一旦我这样做了,我就不能再通过调用reader.releaseLock()
. 我在这里做错了什么?
这段代码按我的预期工作(在安全上下文中在浏览器中运行而没有依赖项):
但是,如果我pipeThrough
过去通过 do-nothing 发送输出TransformStream
,一切都会崩溃。锁没有被释放,releaseLock
最终close
无法工作。
我在这里做错了什么?释放锁TransformStream
真的不会向上游传播吗?我是否必须跟踪管道中每个变压器的实例,以便确保将它们全部解锁?
流规范说,管道在管道操作期间锁定可读和可写流。
管道锁定可读和可写流,防止它们在管道操作期间被操纵。这允许实现执行重要的优化,例如直接将数据从底层源传输到底层接收器,同时绕过许多中间队列。
是否有其他方式我必须表明“管道操作”已完成?