找回密码
 立即注册

QQ登录

只需一步,快速开始

xzq
中级会员   /  发表于:2023-2-10 09:40:57
11#
豪~豪 发表于 2023-2-10 09:30
你不是说串口精灵是好使

有2台电脑  都安装软件测试   
串口精灵接收 2台测试都好使,
活字格软件  在其中一台好使,能接收数据
活字格软件  在其中另一台不好使,接收不全,偶尔全,不好使得这台电脑得线是接出来的
回复 使用道具 举报
xzq
中级会员   /  发表于:2023-2-10 09:50:12
12#
Joe.xu 发表于 2023-2-10 09:27
是不是地磅传来的数据有问题,可以抛开活字格,发布一个代码程序检测一下吗

现在不太确定那的问题,客户白天忙,好使得那台电脑在使用没办法测试,晚上再试试,直接用好使电脑线连接电脑,不用接出来得试试,看看是不是后接出线得问题,因为没在现场,测试排除问题太难了
回复 使用道具 举报
豪~豪悬赏达人认证 活字格认证
银牌会员   /  发表于:2023-2-10 10:46:05
13#
xzq 发表于 2023-2-10 09:50
现在不太确定那的问题,客户白天忙,好使得那台电脑在使用没办法测试,晚上再试试,直接用好使电脑线连接 ...

稳定性不好,以串口精灵为准,可以用我前面
可以用下面这个,F12运行,看看控制台输出
  1. /*** butConnect listener below ***/
  2. let keepReading = true;
  3. let reader;
  4. let writer;
  5. // all data parsed are stored in a list ordered by received time of the data frame.
  6. let receivedframe = [];

  7. const port = await navigator.serial.requestPort();
  8.   await port.open({ baudRate: 9600 }); // set baud rate
  9.   keepReading = true;
  10.   reader = port.readable.getReader();
  11.   writer = port.writable.getWriter();

  12.   // set how to write to device intervally
  13.   const writeInt = setInterval(async () => {
  14.     const commandframe = new Uint8Array([
  15.       0x00,
  16.       0xff /*...some bytes to be sent*/,
  17.     ]);
  18.     await writer.write(commandframe);
  19.   }, 3000); // send a frame every 3000ms

  20.   while (port.readable && keepReading) {
  21.     try {
  22.       while (true) {
  23.         const { value, done } = await reader.read();
  24.         if (done) {
  25.           // Allow the serial port to be closed later.
  26.           reader.releaseLock();
  27.           // Allow the serial port to be closed later.
  28.           writer.releaseLock();
  29.           break;
  30.         }
  31.         if (value) {
  32.           /*** TODO: deal with the data value ***/
  33.           console.log(value);//输出数据
  34.         }
  35.       }
  36.     } catch (error) {
  37.       // Handle non-fatal read error.
  38.       console.error(error);
  39.     } finally {
  40.       console.log(port.readable, keepReading);
  41.     }
  42.   }
  43.   clearInterval(writeInt);
  44.   await port.close();
  45.   console.log("port closed");
  46. /*** butConnect listener above ***/
复制代码

评分

参与人数 1金币 +5 收起 理由
Lay.Li + 5 赞一个!

查看全部评分

回复 使用道具 举报
xzq
中级会员   /  发表于:2023-2-10 11:42:07
14#
豪~豪 发表于 2023-2-10 10:46
稳定性不好,以串口精灵为准,可以用我前面
可以用下面这个,F12运行,看看控制台输出

   

这个怎么看  运行结果是这样 代表接收不稳定

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
豪~豪悬赏达人认证 活字格认证
银牌会员   /  发表于:2023-2-10 13:06:14
15#
xzq 发表于 2023-2-10 11:42
这个怎么看  运行结果是这样 代表接收不稳定

重量是16560
回复 使用道具 举报
豪~豪悬赏达人认证 活字格认证
银牌会员   /  发表于:2023-2-10 13:07:42
16#
本帖最后由 豪~豪 于 2023-2-10 13:08 编辑

String.fromCharCode.apply(null,值);
输出数据用这个
这个,转换了一下数据
回复 使用道具 举报
xzq
中级会员   /  发表于:2023-2-10 14:49:46
17#
豪~豪 发表于 2023-2-10 13:07
String.fromCharCode.apply(null,值);
输出数据用这个
这个,转换了一下数据

对代码不怎么会,没太整明白
还是在控制台输出吗?
每行Uint8Array里的组成数都代表每次,都是代表每次获取数吗
回复 使用道具 举报
xzq
中级会员   /  发表于:2023-2-10 16:51:06
18#
好使了重起 设备管理器的端口,重启后就然好了
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2023-2-10 17:30:17
19#
感谢豪豪大佬的支持~
回复 使用道具 举报
sz_xd
金牌服务用户   /  发表于:2024-7-22 14:14:19
20#
豪~豪 发表于 2023-2-10 10:46
稳定性不好,以串口精灵为准,可以用我前面
可以用下面这个,F12运行,看看控制台输出

豪哥:您好!感谢你分享这个JS代码能实现在浏览器对串口读取,请问现你生产车间电脑对这使用效果(例如车间电子磅)如何?性能稳定吗?

我发现 不能进行端口选择,即这个语句没有效执行?
const port = await navigator.serial.requestPort();

烦请指教一下,谢谢!




回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部