| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 233 人关注过本帖
标题:timer定时器的问题
只看楼主 加入收藏
pjtyzyq
Rank: 2
等 级:论坛游民
帖 子:159
专家分:75
注 册:2016-2-14
结帖率:100%
  已结贴   问题点数:20  回复次数:11   
timer定时器的问题
程序中利用定时器循环进行数据采集,定时器时间为2秒,采集到的数据进行处理后保存到TXT文件中,但从采集的数据记录看时间间隔不全是2秒,而且长时间运行时间间隔会递增,怎么回事?如何处理可以保持时间间隔?
1804022013    2058
1804022015    2103
1804022023    1991
1804022025    2070
1804022027    2049
1804022029    2126
1804022031    2070
1804022033    2082
1804022035    2077
1804022037    2085
1804022039    2054
1804022041    2088
1804022044    2064
1804022046    2049
1804022047    2077
2019-05-17 10:04
schtg
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:23
帖 子:650
专家分:936
注 册:2012-2-29
  得分:7 
若方便的画,请放置采集的原始数据。
附件: 您没有浏览附件的权限,请 登录注册
2019-05-17 13:08
schtg
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:23
帖 子:650
专家分:936
注 册:2012-2-29
  得分:0 
若方便的画,请放置采集的原始数据。
附件: 您没有浏览附件的权限,请 登录注册
2019-05-17 13:08
xuminxz
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:148
专家分:407
注 册:2011-5-8
  得分:7 
在timer事件第一行重新指定计时值试试
即加上语句
this.Interval=2000

dBase有人接盘了。
2019-05-17 13:33
pjtyzyq
Rank: 2
等 级:论坛游民
帖 子:159
专家分:75
注 册:2016-2-14
  得分:0 
回复 4楼 xuminxz
有这个语句
2019-05-17 15:56
pjtyzyq
Rank: 2
等 级:论坛游民
帖 子:159
专家分:75
注 册:2016-2-14
  得分:0 
回复 3楼 schtg
194319483951394139593928396122392782397417612723392239603934396439782483269239600015001100110012001100140015001500130010001000100010000400050005001300100010001000160011001100110011001400140014001300100010001000110014001300130018001100100010
这是从串口每次采集的原始数据,其中每4位为一组(一个通道)进行分解,每一组采集60次进行滤波,滤波规则是对60个数据排序,保留中间两个求平均值形成一楼那样的一个数据
2019-05-17 16:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:188
帖 子:6512
专家分:28770
注 册:2014-5-20
  得分:7 
“定时器”不定时,定时消息优先级很低,更严重的是在某些情况下甚至会出现定时器消息被丢弃,此时定时器会失效,对定时要求较高不能采用“定时器”。
2019-05-17 16:23
pjtyzyq
Rank: 2
等 级:论坛游民
帖 子:159
专家分:75
注 册:2016-2-14
  得分:0 
回复 7楼 吹水佬
吹版给个思路好吗?谢谢!
2019-05-17 16:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:188
帖 子:6512
专家分:28770
注 册:2014-5-20
  得分:0 
以下是引用pjtyzyq在2019-5-17 16:57:22的发言:

吹版给个思路好吗?谢谢!

单独用一个线程来计时处理,可惜VFP的多线程编程不是一般的麻烦。
可以考虑用多进程,用一个进程来专门处理时间问题,只是要考虑进程间的通信问题,这比多线程来说实现起来比较简单。
2019-05-17 20:39
pjtyzyq
Rank: 2
等 级:论坛游民
帖 子:159
专家分:75
注 册:2016-2-14
  得分:0 
回复 9楼 吹水佬
吹版主说的对,我也尝试这个方法,但没成功,我现在采用timer时间自动调整的办法,把时间误差始终控制在1秒,运行几天看看,如果能够消除误差累积就可以啦。
2019-05-17 21:18







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053221 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved