Top > Win32APIによるシリアル通信 > Win32APIによるシリアル通信。続き。
前回(http://the-united-front.blogspot.jp/2013/09/windows-api-rs232c-usb23-win7-x64.html)
より、シリアル通信はできるようになったが、このままではデータの受信が今一だった。そのため、今回はデータの受信処理を書いてみた。
前回より、
>下記のようなデータを送信した場合、
>「"□□□□□\r\n△△△△△\r\n\0\0\0……"」
>受信したデータが、
>「"□□□□□\r\n△△\0\0\0……"」「"△△△\r\n\0\0\0……"」のようにデータが二つの
>バッファに分かれてしまう場合があるので、きちんと処理しないとバグを
>引き起こします。
と言うのが、ほかのアプリケーションのCPU使用率などが引き金となって結構頻繁に発生します。
要は、受信したデータの最後に終了コードがきちんと挿入されている事を確認してから、
次の処理へデータを引き渡たさないとバグを引き起こすので、
確認しましょう、と言う話です。
終了コードを「\r\n」としているが、一つ注意してほしいのは、もしかしたら「\n\r」の間違いだったかもしれない。(一まず私の環境ではこれで動くので良しとしています。(SH7144Fとの通信ですが……))
見難いのでファイルとして置いておく。
http://ux.getuploader.com/ADMIS/download/9/Serial_Communication_Interface_Ver1.1%E3%82%88%E3%82%8A%E6%8A%9C%E7%B2%8B.cpp
主な変更点
全体
Top > Win32APIによるシリアル通信 > Win32APIによるシリアル通信。続き。
0 件のコメント:
コメントを投稿