有字符收到触发OnCommunication函数,如果没有收到字符,OnCommunication函数收不到字符信息,怎么判断?希望实现这样的功能:如果在规定的时间范围(比如5分钟)内,没有收到字符,就假定串口断开、重新发送串口连接命令。PS:貌似串口有设置超时,一点没起到作用

解决方案 »

  1.   

    PS:貌似串口有设置超时,一点没起到作用
    // 串口超时设置肯定有作用的。
    // CSerialPort是用Comm Event出发的,看看Comm Event注册了哪几个?超时的标志注册了没?
      

  2.   

    可以这么用:
    当发送数据后,用
    DWORD dwEnd = ::GetTickCount() ;
    得到当前时间,ms级然后实时判断是否超时即可。
    1、用For/While判断
    2、在OnTimer()里比较发送时时间
      

  3.   

    自己手写一个Ontimer事件处理函数,来处理超时处理吧