» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[其他] 还是发这吧@@VB编程问题,串口通讯相关。。@@

水区沉的太快。。还是发这吧。。

控件MSComm1,触发OnComm()事件条件是啥?如果设置正确的话,是不是有数据接受就触发?

VB里,有没有办法让一个过程无限次循环执行?
比如说,有一个command1_click()被触发,一条判断语句无限次的执行,不间断的对某一变量的值进行判断,并且做出相应的操作。
如何实现这个功能?

初学者。。

请高手指点

[ 本帖最后由 shixn 于 2008-12-13 16:45 编辑 ]


TOP

1.控件MSComm1,触发OnComm()事件条件是啥?如果设置正确的话,是不是有数据接受就触发?
是的,但是控件你还是要启动的,才能监听RS232的,缓冲区设小,最好是1,否则长时间的话容易堵塞的

2.VB里,有没有办法让一个过程无限次循环执行?
这个......... 用个for 然后把条件设为不可能,不就可以无限循环么?
注意,这个地方请起一个新线程,否是FORM程序会让前台无响应的...........



TOP

新起线程。。。?这个好复杂。。。BAIDU了一下完全没有头绪。。。


TOP

要简单的实现对一个变量的轮询,可以使用定时器。

TOP

引用:
原帖由 xphi 于 2008-12-13 17:51 发表
要简单的实现对一个变量的轮询,可以使用定时器。
轮询 这个词好专业。。。

定时器我试过。但是又有新的问题出现。就是发送过来的数据,是一个变化值,在不停的变化,间隔不定,且很小。。。用定时器的话容易漏掉数值。

TOP

lz还是赶快找本书恶补吧,你要搞明白的东西太多了,论坛三两句说不清的

TOP

引用:
原帖由 愈液愈美丽 于 2008-12-13 18:05 发表
lz还是赶快找本书恶补吧,你要搞明白的东西太多了,论坛三两句说不清的
求指点方向。。。老板在后面催,实在没时间系统学习。。。得先应付差事。。。

TOP

定时器判断吧。
把时间间隔设置小点。

另外我觉得这种设计很失败的。
变量怎么改变的,为什么是不可控的?
在改变的同时调用相应方法不更好?

TOP

引用:
原帖由 cc0128 于 2008-12-13 18:53 发表
定时器判断吧。
把时间间隔设置小点。

另外我觉得这种设计很失败的。
变量怎么改变的,为什么是不可控的?
在改变的同时调用相应方法不更好?
嗯。。。串口连接一个欧姆龙的PLC,串口通讯程序是现成的,我在它的基础上改。PLC程序是编好的,我动不了,所以PLC传过来的数据,也就无法掌控。

在改变的同时调用,这个主意不错!!我去试一下~~谢谢了!!

TOP

对一个变量的改变做监控,有两种基本的办法,一是中断,二是轮询。如果变量改变时会发生中断、事件、消息或者一切可以挂钩子的东西,就最好采用中断的办法写响应函数。如果变量的改变是不可预测的,那就只能轮询,在轮询过程中,如果变量的值不能缓冲到一个队列中,那就要将轮询的时间间隔设到比变量最小的改变时间间隔还要小,但是这样往往过于浪费资源,所以轮询是没有办法的办法,可以用中断的话尽量用中断。我印象中串口应该是可以工作在中断模式下的。
系统基本的定时器精度很低,我记得好像无论将触发间隔设为多小,每秒也最多只能触发18.5次,要想更高精度的定时,需要专用的高精度定时器。

TOP

别简单问题复杂化,LZ的问题就是不会用mscomm控件,自己看下msdn中关于mscomm的说明就明白了,它自己有工作模式有缓冲区有响应事件的

TOP

发新话题
     
官方公众号及微博