投稿者 shu  (社会人) 投稿日時 2015/4/13 14:04:52
STXとETXは開始と終了を表すマーカーなので
これらも含めて読込ます。

ReadLineはテキストとして改行が見つかるまで読込を
行いタイムアウトまで待ちます。今回の場合改行はないので
必ずタイムアウトしてしまいます。

ReadByteを使用して1byteづつチェックしてSTXの次から
読み始めETXで終了を判断します。間のByte列を
System.Text.Encoding.Ascii.GetStringにて文字列化します。

このような待ち受けの場合、
OpenのみをClickイベントで行い
SerialPortのDataReceivedイベントでデータを取得した方がよいです。
Closeはまた別のイベントで行うようにするとよいかと思います。