SPComm放入线程中运用(200分)

  • 主题发起人 主题发起人 bafjvj
  • 开始时间 开始时间
B

bafjvj

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在设计一串口数据传输中遇到以下问题
开始我是用Timer来定时发送接收数据的,在主Form中放一SPComm, Timer 控件完成,与
仪器交换完成数据 Timer 要运行15次, Timer的时间定为 10ms 发送一次, 当SPComm的接收
到数据(OnReceiveData)就允许Timer 发送下一次指令, 如此不断循环, 以实现仪器戌PC的
数据通信。 做完之后发现,PC机要接收到仪器一次全数据耗时几秒, 实时性太差了。这是
为什呢,是主程序占有了大部分时间??
因此我考虑用线程来实现PC与仪器的通信, 看了一些资料, 对线程有了些了解,但是找
了很久,都不知如何将SPComm放入线程中, 因为我不想写与串口的相关操作, 只想调用SPcomm
的方法, 事件来完成通信.
谁能给出把SPComm作控件用的线程代码,包括 SPComm 控件的生成, WriteCommData方法
的调用, OnReceiveData事件的执行. Thanks


 
晕! SPcomm本来就是用线程来完成对串口数据的读写的啊!
还要什么线程?!
 
不清楚就不要答!
 
SPComm的read and write是线程来的, 但是我的发送timer中完成,接收的数据处理是
在OnReceiveData事件中执行, 不是线程,我的意思是把这些做成一个线程, 而它要用到
SPComm这个控捉,如何做!!!
 
哈哈,那我不答了。
 
何必用控件,直接用API好了。。。。这个控件我也在DLL的线程中用过。。。不好用,换成API了。。。
如果在EXE的主线程里用sPCOMM还是不错的。。。
 
是不是我访问的数据太多了, ?? ,,
 
我这里有Tcomm控件比spcomm好用!用onreceivedata事件就可以!
 
我不支持你用線程,因為你的數據要交換幾次才得出來,
如果用線程在這個過程中出現了問題那你的數據準確度就會大大減少;
如:1號線程第一次沒發完,2號線程又發了一次取數據,那收到的數據是什麼?
我覺得發數據和取數據的步驟都不能出錯,
一次要幾秒鐘是你的仪器的波特率太慢,沒辦法的;
你能不能把你的代碼貼出來看看?
 
后退
顶部