- PR -

SerialPortのReadメソッドとReadLineメソッド

1
投稿者投稿内容
tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2008-01-14 00:28
VisualBasic.Net 2008を使って、シリアルポートからデータを取得するプログラムを作っています。

応答の結果がCRLFによる複数行の場合があり、SerialPortのReadLineメソッドで1行ずつ読み込んで処理してもいいのですが、とりあえずSerialPort.Readで全文受け取って一時ファイルに出力し、別のスレッドでそのファイルを読み込んで処理するつもりです。

ところが複数行の応答の時には取得できるのですが、1行だけの応答の時はReadメソッドでは何も取得できません。
しかし、ReadLineメソッドに変えれば取得できます。
応答の仕様では、1行だけの応答でも末尾にはCRLFが付加されています。

何がだめなんでしょうか?
tim10
会議室デビュー日: 2003/07/31
投稿数: 10
投稿日時: 2008-01-16 23:32
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article2.aspx


ここの説明を見たらReadLineメソッドはデータを受信するまで待ち、Readメソッドは待たないという説明がありました。
私が書いたプログラムが、WriteLineメソッドで送信した直後に応答を受信するようにしていたので、上記の仕様で動作の違いが発生したようです。
1

スキルアップ/キャリアアップ(JOB@IT)