none
SirialPortのBytesToReadプロパティで1バイトなのに、読み出せないのは? RRS feed

  • 質問

  • If SerialPort1.BytesToRead() > 0 Then
                        MessageBox.Show("受信バイト数" + SerialPort1.BytesToRead.ToString())
                        SerialPort1.ReadLine()
    End If

    上記のようなプログラムでデータバイト数が1となったのに、readlineではタイムアウトになることが
    あります。一方で、データバイト数5となり、データ数値が正しい読めることもあります。

    この不具合はそのような原因で、どう解決すればよろしいでしょうか?

    よろしくお願いします。

    2009年7月20日 12:18

回答

  • ReadLine は NewLine プロパティで指定された改行文字列を読み取るまでブロックするわけですから、タイムアウトするまで改行文字列がこなかったってだけの話では?
    • 回答としてマーク BasicVisual 2009年7月21日 9:42
    2009年7月21日 0:55

すべての返信

  • ReadLine は NewLine プロパティで指定された改行文字列を読み取るまでブロックするわけですから、タイムアウトするまで改行文字列がこなかったってだけの話では?
    • 回答としてマーク BasicVisual 2009年7月21日 9:42
    2009年7月21日 0:55
  • 的確なご回答ありがとうございます。初心者には大変ありがたかったです。
    理解できました。

    2009年7月21日 9:41