我编了一个程序,自己定义了一个Ttime_thread类(from:Tthread)
我想实现自动数据采集和手动数据采集,手动的优先级高于自动的,
我的设计思路如下:
在主程序中,点击‘启动’——>自动采集(timer1每定时一秒,去输入缓冲区取一次数据)。主程序中还有动画在运行。然后点击‘手动采集’——>挂起‘自动’——>输出命令——>等待接收发送成功的消息——>等待接收数据——>“手动”挂起——>‘自动’启用。
我不知道该怎么实现!
请大虾帮忙,不胜感激!!!
我想实现自动数据采集和手动数据采集,手动的优先级高于自动的,
我的设计思路如下:
在主程序中,点击‘启动’——>自动采集(timer1每定时一秒,去输入缓冲区取一次数据)。主程序中还有动画在运行。然后点击‘手动采集’——>挂起‘自动’——>输出命令——>等待接收发送成功的消息——>等待接收数据——>“手动”挂起——>‘自动’启用。
我不知道该怎么实现!
请大虾帮忙,不胜感激!!!
解决方案 »
- Delphi7求助各位大侠!!! 高手进
- 麻烦大家帮我看看,有关Emgu OpenCV的设置和安装的问题
- 7年工作经验,想换工作,请问能值多少钱?
- 谁能帮我推荐一个帮助文件的制作工具,谢谢!!!!!!!!
- 遇到一个难题,谁能帮我,万分感谢!!!!
- 如何用ShellExecute发送邮件时附加文件?
- 我刚装上XPMenu控件,觉得不爽,怎么卸掉它,有谁知道金山词霸2002具体是哪一套XPMenu做的吗?请告诉我详细下载地址?
- 在delphi中怎样拖动无标题栏的窗口?
- 关于imagelist.getbitmap的一点简单的问题大家来吧~!~!~!~!
- 请大家说说ado加access的优缺点,比如速度、稳定性、大数据量环境下等等,希望经验指导。
- 字节转换问题,请指教!
- 为什么服务器ADODataSet的表已改变,可是客户ClientDataSet还是没变?
2 你可以用互斥体来实现event, segment等等来实现同步阿
用timer的话,直接判断状态,然后分别执行就行了
改变状态岂不是很简单?
将采集的部分,单独做成个模块,至于,模块是用线程,还是什么实现,不在这里讨论,原理一样;
该模块可接收控制(消息,信号量..),接到控制,就采集一次;注意要处理上次通信未结束,就收到新的控制的情况;
然后,用个timer控件做定时控制,在button中也同样做手动控制,两边代码应该是一样,或差不多的
可以设三种线程,基线程定义公用的方法和变量,再有一个定时线程一个手动线程,定时线程执行时检测时间到了并且手动没有干预,则执行定时流程,手动线程在手动控制确定后开启,线程执行时先KIll或暂停定时线程。