簡単な質問。.NETSerialPort
クラスには、シリアル入力ラインを取得するための次のプロパティがあります。
CDHolding
-ポートのCarrierDetectラインの状態を取得します。CtsHolding
-Clear-to-Send行の状態を取得します。DsrHolding
-データセットレディ(DSR)信号の状態を取得します。
メモRIHolding
がありません。
さらに、PinChanged
イベントがあります。これはSerialPinChange
列挙値を提供します。これには次のメンバーがあり、Ringのメンバーが含まれています。
CtsChanged
-Clear to Send(CTS)信号の状態が変更されました...DsrChanged
-データセットレディ(DSR)信号の状態が変更されました。CDChanged
-Carrier Detect(CD)信号の状態が変化しました。Ring
-リングインジケータが検出されました。Break
-入力でブレークが検出されました。
だから私の質問は、なぜRIHolding
プロパティがないのですか?
内部SerialStream
クラスを見るとCDHolding
、、、CtsHolding
およびDsrHolding
すべてがWin32GetCommModemStatus
関数の呼び出しによって実装されていることがわかります。彼のlpModemStat
出力値は次のいずれかです。
MS_CTS_ON
0x0010
CTS(clear-to-send)信号がオンになっています。MS_DSR_ON
0x0020
DSR(データセット対応)信号がオンになっています。MS_RING_ON
0x0040
リングインジケータ信号がオンになっています。MS_RLSD_ON
0x0080
RLSD(受信ライン信号検出)信号がオンになっています。(これはにマップされますCDHolding
)
したがって、ビット6だけを見るプロパティを追加するのは簡単だったようRIHolding
です。なぜこれが省略されたのですか?