我写了个多线程串口通讯程序,有一个县城专门用来接收串口事件,并且读取串口返回的数据,现问我如何才知道读取的串口数据已经完成呢!

解决方案 »

  1.   

    这个就是规约的问题了,你需要协商解决的问题。例如104规约。规定。
    68d2d26828320a812a32fef100940901010704010000563b
    0902010704010000008009030107040100007e3b09040107
    0401000000800905010704010000013b0906010704010000
    00800907010704010000e33b090801070401000000800909
    0107040100003f3b090a0107040100000080090b01070401
    00004f3b090c0107040100000080090d010704010000b03a
    090e0107040100000080090f0107040100008c3b09100107
    0401000000800911010704010000153b0912010704010000
    00800913010704010000a63a09140107040100000080d716看见68 68 然后收长度,然后看到16就代表数据传输结束了。程序可以参考我的修改。
      

  2.   

    串口通讯,一般在规约或者协议里,会定义提出报文的长度,当然,COMM通讯的规约里也会有报文校验字(一位或N位),可以根据这些来判断报文是否结束
    如果你想知道的是设备是否准备好,应该用SELECT之类的函数去判断,一般只用三根线的232接口是判断不出来的,三线接线法会在232接头上短接设备准备好信号(不好意思,好久不用忘了缩写:))