Google chrome chrome navigator.serial的初学者问题
我正在使用“navigator.serial”在chrome浏览器上使用串口访问 我最初的实验基于stackoverflow之前的一次过账: 我复制了上面提到的代码示例,并进行了必要的配置更改#启用实验性web平台功能,同样如上所述 我在Ubuntu 18.04上做这些。有两个USB串行端口连接到机器上,我已经使用gtkterm验证了我可以在两个端口之间发送和接收数据 从给出的示例(下面重复的代码)中,我发现我可以打开串行端口并建立一个“读取器”,步骤wait reader.read()会一直等到串行端口上出现一个传入字符,但此时变量器/对象“data”仍然未定义。 两个问题:Google chrome chrome navigator.serial的初学者问题,google-chrome,navigator,Google Chrome,Navigator,我正在使用“navigator.serial”在chrome浏览器上使用串口访问 我最初的实验基于stackoverflow之前的一次过账: 我复制了上面提到的代码示例,并进行了必要的配置更改#启用实验性web平台功能,同样如上所述 我在Ubuntu 18.04上做这些。有两个USB串行端口连接到机器上,我已经使用gtkterm验证了我可以在两个端口之间发送和接收数据 从给出的示例(下面重复的代码)中,我发现我可以打开串行端口并建立一个“读取器”,步骤wait reader.read()会一直
const{done,data}=wait reader.read()时弹出代码>继续,但是对话框显示“数据”在该点未定义。数据是我未能等待兑现的承诺吗
<html>
<script>
var port;
var buffy = new ArrayBuffer(1);
var writer;
buffy[0]=10;
const test = async function () {
const requestOptions = {
// Filter on devices with the Arduino USB vendor ID.
//filters: [{ vendorId: 0x2341 }],
};
// Request an Arduino from the user.
port = await navigator.serial.requestPort(requestOptions);
// Open and begin reading.
await port.open({ baudrate: 115200 });
//const reader = port.in.getReader();
const reader = port.readable.getReader();
writer = port.writable.getWriter();
//const writer = port.writable.getWriter();
//writer.write(buffy);
while (true) {
const {done, data} = await reader.read();
if (done) break;
console.log(data);
}
} // end of function
</script>
<button onclick="test()">Click It</button>
</html>
var端口;
var buffy=新阵列缓冲(1);
var编写器;
巴菲[0]=10;
常量测试=异步函数(){
常量请求选项={
//在具有Arduino USB供应商ID的设备上进行筛选。
//筛选器:[{vendorId:0x2341}],
};
//向用户请求Arduino。
port=wait navigator.serial.requestPort(requestOptions);
//打开并开始阅读。
等待端口打开({波特率:115200});
//const reader=port.in.getReader();
const reader=port.readable.getReader();
writer=port.writable.getWriter();
//常量writer=port.writeable.getWriter();
//作家,作家(巴菲);
while(true){
const{done,data}=wait reader.read();
如果(完成)中断;
控制台日志(数据);
}
}//函数结束
点击它
谢谢您的帮助!我遇到了完全相同的问题,并设法解决了它 改变
const {done, data} = await reader.read();
到
你从(和其他一些人)那里得到这个的例子是错误的,参数是错误的。
还有,不太清楚为什么,但我用
const {data, done} = await reader.read();
它也不起作用,它不喜欢var数据
关于navigator.serial的文档不是很好。下面是一些帮助链接
API(注意这是草稿,与Chrome实现不完全匹配)
port.readable.getReader()是一个ReadableStream
使用ReadableStreamDefaultReader的,其定义为
dictionary ReadableStreamDefaultReadResult {
any value;
boolean done;
};
解释者
教程
铬跟踪器
Web串行API工作项
我遇到了完全相同的问题,并设法解决了它 改变
const {done, data} = await reader.read();
到
你从(和其他一些人)那里得到这个的例子是错误的,参数是错误的。
还有,不太清楚为什么,但我用
const {data, done} = await reader.read();
它也不起作用,它不喜欢var数据
关于navigator.serial的文档不是很好。下面是一些帮助链接
API(注意这是草稿,与Chrome实现不完全匹配)
port.readable.getReader()是一个ReadableStream
使用ReadableStreamDefaultReader的,其定义为
dictionary ReadableStreamDefaultReadResult {
any value;
boolean done;
};
解释者
教程
铬跟踪器
Web串行API工作项