掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
シリアル通信で受信するには? (ID:113150)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>BytesWrittenで指定したバイト数以上のデータがある場合は取得することができました。 >BytesWrittenで指定したバイト数以下のデータしかなかった場合に呼んでしまうと、 >以前のようにReadFileの行で止まってしまいます(関数から制御が返ってこない?)。 そうなるでしょうね。 ReadFileの3番目の引数がBytesWrittenとなっているのは、サンプルコードが書き込みと同じ 長さの読み込みを期待している為で、ReadFileのレファレンスではnNumberOfBytesToRead となっています。つまりnNumberOfBytesToRead が指定に長さになった時に読み込み完了と なるのでは。 「A&D製の電子天秤EW-1500i」のデータ-の仕様がわかりませんので何とも言えないのですが、 データーが定型の長さで送られてくるのであれば、nNumberOfBytesToReadをその長さに データーがデリミタで区切られているのなら、1Byteずつ読み込んでデリミタを検出するとか そんなことになると思います。 >1:Commポートからデータが送られてきたことを察知 >2:受信バッファに格納されているデータの量を確認して受信 こちらの方は、非同期の読み取り方法でバッファをポーリングする方法になるのですかね。 ただしどこがデーターの区切りかは判りません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.