找回密码
 立即注册

QQ登录

只需一步,快速开始

用友ERP瑞泽

初级会员

22

主题

84

帖子

208

积分

初级会员

积分
208
用友ERP瑞泽
初级会员   /  发表于:2022-6-15 14:21  /   查看:2469  /  回复:5
10金币

如图所示,现在按123的步骤操作,是能正常取数的,但是我想打开界面自动取数,每隔1秒自动取一次,把三个JS放一起不好使...请教各位大神,我应该怎么操作?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

这里涉及一个问题,就是一秒可能无法完成打开串口、取数、再关闭串口的操作,然后抛出异常该怎么处理呢,那么此时这个JS代码就处于error的状态,没办法正常运行。而且不能有alert操作,它会打断JS代码的执行。 可以将打开串口和取数放到页面加载时命令中,然后关闭串口的话,也可以通过定时器融入到一个JS命令中,但是定时器最好间隔大一些,保证打开->取数->关闭这个过程都可以执行完毕再进行下一步操作。

5 个回复

倒序浏览
最佳答案
最佳答案
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-6-15 14:21:20
来自 4#
本帖最后由 Howie.Sun 于 2022-7-1 11:47 编辑
用友ERP瑞泽 发表于 2022-6-16 13:36
但是也需要先打开串口,再取数,再关闭串口,需要点三下,我把这三条JS都同时放在页面加载里运行,不好使 ...

这里涉及一个问题,就是一秒可能无法完成打开串口、取数、再关闭串口的操作,然后抛出异常该怎么处理呢,那么此时这个JS代码就处于error的状态,没办法正常运行。而且不能有alert操作,它会打断JS代码的执行。
可以将打开串口和取数放到页面加载时命令中,然后关闭串口的话,也可以通过定时器融入到一个JS命令中,但是定时器最好间隔大一些,保证打开->取数->关闭这个过程都可以执行完毕再进行下一步操作。



本帖子中包含更多资源

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

x
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-6-15 16:26:46
2#
您好,这个没必要把三个JS写在一起,每隔1秒自动取一次这个只要对获取数据的逻辑设置一个每秒执行的定时器就可以了的。
  1. var timer = setInterval(function(){
  2.     doItPerSecond();
  3. },1000)

  4. var num = 0;
  5. function doItPerSecond() {
  6.    $.get(Forguncy.ForguncyData.ForguncyRoot + 'customapi/comConnect/getPortValue', null, function(res){
  7.    Forguncy.Page.getCell("comData").setValue(res);
  8. })
  9.     num++;
  10.     console.log(num);
  11. }
复制代码
这样的话,就可以每秒钟取一次数据了的。

本帖子中包含更多资源

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

x
回复 使用道具 举报
用友ERP瑞泽
初级会员   /  发表于:2022-6-16 13:36:28
3#
Howie.Sun 发表于 2022-6-15 16:26
您好,这个没必要把三个JS写在一起,每隔1秒自动取一次这个只要对获取数据的逻辑设置一个每秒执行的定时器 ...

但是也需要先打开串口,再取数,再关闭串口,需要点三下,我把这三条JS都同时放在页面加载里运行,不好使,总报错,经常串口都连不上了,需要重启串口,再重启电脑才能好使!!!
回复 使用道具 举报
用友ERP瑞泽
初级会员   /  发表于:2022-6-17 16:39:28
5#
Howie.Sun 发表于 2022-6-16 16:50
这里涉及一个问题,就是一秒可能无法完成打开串口、取数、再关闭串口的操作,然后抛出异常该怎么处理呢, ...

哦哦,原来是这样,我试一下,谢谢老师!
回复 使用道具 举报
Howie.Sun讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-6-17 16:49:07
6#
用友ERP瑞泽 发表于 2022-6-17 16:39
哦哦,原来是这样,我试一下,谢谢老师!

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