现在通过RS232连接一个可以接收GPS数据的单元,进行数据的接收和分析。
客户反应了这样一个问题,就是在测试过程中收起GPS天线,
按照预想,此时将接收不到GPS信号,从而执行无GPS数据的运行逻辑。但是实际的结果是,差不多又按照有GPS数据的逻辑运行了大约1分钟,
我分析了我自己的程序,我程序中对数据是不做缓存的。所以我想这些数据应该是串口驱动在缓存的。
不知道我这个理解是否争取,
大家有什么想法?谢谢

解决方案 »

  1.   

    你的想法是对的。。因为串口接收,发送数据,内部是有一个接收缓存和发送缓存的,其实你可以这样做的,就是监听 EV_RXCHAR 事件,如果接收到数据长度为  0  则证明没有 GPS 信号(或者已经没有GPS信号一段时间了),这时候你就可以按照 无GPS 数据的运行逻辑执行了,但凡 我们 接收到EV_RXCHAR事件返回的数据长度 不等于 0 的。。我们都按照 有 GPS 数据的运行逻辑执行就 OK 了。不知道我说得对不对呵,说的不对了。。也不要见怪
      

  2.   

    收起GPS天线,有些模块会按最后一次的GPS数据发送。有些是直接发送一些无效的数据。
    xxxx,xx,0,0,0,0,0,xx
      

  3.   

    看来有两种可能,一种是在驱动有缓存
    另外就是GPS模块还会发一些数据
      

  4.   

    有时可能是GPS接收存在缓存。
      

  5.   

      既然是串口那就按It协议来,与GPS无关。