.NET2.0時代のRS232Cシリアルポートプログラミング(2)

.NET2.0のSerialPortクラスを実際に使って、モデム等のRS232Cインタフェース機器を制御する場合、SerialPortクラスのDtrEnableプロパティのデフォルトはtrueではなくfalseであることに注意する。

public bool DtrEnable { get; set; }

true to enable Data Terminal Ready (DTR); otherwise, false. The default is false.

この場合のData Terminal Ready (DTR)は日本語では"データ端末レディ"と言われているシリアルポートの信号線の一つであり、通信状態であることを知らせる為に使用するが、機器によっては常時Onである。従って、そのような機器の場合このプロパティをEnabledにしないとSerialPortクラスの各種イベントが正しく発生しない。

...なんてことはない、これで一日はまってたんだけどね。機器の仕様はちゃんと見ようぜ -> 俺