spcomm控件的接收间隔问题请教(200)

  • 主题发起人 主题发起人 gyj163nt
  • 开始时间 开始时间
G

gyj163nt

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用spcomm控件接收仪表数据,仪表每5ms发送一帧数据,每帧连续的5个字节,我希望控件每收到完整的5个连续字节后再产生一次 Comm1ReceiveData 事件,请问应该如何任何设置控件的 ReadIntervalTimeout、ReadTotalTimeoutMultiplier、ReadTotalTimeoutConstant 三个属性值?我设置的是5,0,0,发现不行(不产生接收事件),将5改为8也不行,感觉这个控件对于帧间隔小于10ms的就不能按间隔产生事件了,请大家给点建议吧,谢谢了。
 
干脆就接收到5个连续字节之后就执行Comm1ReceiveData 事件
 
这个和控件没有关系,而是握手的问题,不论你使用任何COM口控件,如果没有握手,那么只有用线程来实现你的问题了:Var GlobeVar : Boolean = False; // 全局变量线程里面: While Not Teminated Do Begin [用spcomm读出连续5个字节]; GlobeVar:=True; End;Form里面TTimer事件(最好Interval=1): If GlobeVar Then Begin GlobeVar:=False; 你的调用,例如 MyProc(); End;但是估计时间不够,因为5ms,没有握手,会导致数据不同步!
 

Similar threads

后退
顶部