2013年9月17日火曜日

Win32APIによるシリアル通信・その②

  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 件のコメント:

コメントを投稿