最近在忙一个课题,一点头绪都没有,希望高手能给我点提示。
课题是这样的:
   PC机通过多串口卡和8个下位机相连,用于采集数据。同时,PC机扫描每个下位机所在位置处的一个电路按钮是否按下。这些按钮是自己做的电路,采用TTL电平,通过数字采集卡传输至PC。如果按钮按下则采集此时对应的下位机数据,如果没有,则继续扫描。同时PC还连接一个CCD摄像头显示某一个采集区的图像。现在是这样,可以实现单独的图像采集显示,单独的多串口通讯,单独的外部按钮扫描可,但是如何将它们系统联调,同时又能保持外部按钮扫描的实时性呢?我想了几个方法,但是似乎都有问题
 1.ActiveX EXE:用另外一个进程扫描,扫描到变化后RaiseEvent。但是从理论上讲,只有在主进程没有其他操作时才能响应,否则,需要等待主进程执行完之后才能响应。
 2.Timer控件,实时性受到其他操作的干扰。
 3.SetTime等做精确的实时扫描。如果不能及时响应,系统会出问题。
 4.多线程。写的程序始终没有执行正常过,并且编译成P代码的速度比要本机代码要差很多。
 5.主程序做成死循环,每循环一次扫描端口。添加DoEvents响应其他事件。问题是在加了Sleep之后,CPU占用率依然在50%左右,并且随着程序运行,占有率会慢慢增长。希望高手们能给我点提示,在此十分感谢。还有一个问题,PC是如何实时扫描键盘的?因为这和我遇到的问题似乎很类似。