请问:
问题1: 在开发过程中,VC++ 串口通信往端口缓冲区写(Write)数据后,必须要延时50~60ms.再去读(Read)返回的数据包。能正常读到数据,如果把延时放到30ms或更短的时间,则读不到数据。虽然说跟下位机的硬件设备相关,但感觉大部分都是这样做的。这个时间是否是上位机软件读,写数据时必须延时的一个最基本的时间值。
问题2:   如果上位机读,写延时60ms,而一个上位机软件下挂载100台设备的时候,对每台设备实时的发包,那要做到实时通信的话,势必就不可行了。在上位机软件实时监控界面上要隔个7,8秒才能看到信息。那这样的实时通信就失去意义了。
  需要的是100台设备中任何一台设备在任何时间一有数据包送上来,在上位机软件实时监控界面上立即显示,不能有太多的延时。(从人眼的视觉感官上)有相关串口通信开发经验的朋友,能否指导下。如果要做,是否有实现的方法,或者说这种方法思路就是错误的。

解决方案 »

  1.   

    1.和硬件开发人员讨论下,看他里面用的是什么(单片机,flash,及代码实现流程),也可以简单的握手测一下速度(以前只用过232,没啥延时)
    2.试一下多线程连多设备
      

  2.   

    上位机,下位机,好熟悉的词啊!呵呵首先告诉你上位机实时显示不太可能,下位机还有可能,因为下位机一般挂载在实时操作系统上。详见操作系统课本“问题1: 在开发过程中,VC++ 串口通信往端口缓冲区写(Write)数据后,必须要延时50~60ms.再去读(Read)返回的数据包。能正常读到数据,如果把延时放到30ms或更短的时间,则读不到数据。虽然说跟下位机的硬件设备相关,但感觉大部分都是这样做的。这个时间是否是上位机软件读,写数据时必须延时的一个最基本的时间值。”这个跟你设置的串口波特率有关吧,还有不管你把串口波特率设置多高,还是会有延时我以前只搞过一小段时间下位机和上位机的软件,知道的可能错误,请楼下的指正
      

  3.   

    谁用延时呀,用事件通知不行吗?WaitCommEvent