Q2.RTS,CTSなどの制御線の状態はわからないのですか?

A2.出力信号線であるRTSとDTRの制御線の状態は、以下のイベントを検索すれば知る事が出来ます。トリガー機能を使用してマーカーを設定すれば、よりわかりやすくなります。

 制御線の状態

イベント

信号線 状態
IOCTL_SERIAL_SET_RTS  RTS ON
IOCTL_SERIAL_CLR_RTS  RTS OFF
IOCTL_SERIAL_SET_DTR  DTR ON
IOCTL_SERIAL_CLR_DTR  DTR OFF

入力信号線の状態はIOCTL_GET_MODEMSTATUSの値に示されます。このイベントはアプリケーションがGetCommModemStatus関数を使用した場合に発生します。又、信号線の状態が及ぼした影響(待ち状態)が検出されればIOCTL_SERIAL_GET_COMMSTATUSのHoldReasonsにその理由が示されます。

通常STATUS_TIMEOUTが発生したイベントの直後のIOCTL_GETCOMMSTATUSに以下の理由が示されます。
STATUS_TIMEOUTが発生すると、マーカーに表示されますので検出は容易です。

HoldReasonsの値

待機要因
SERIAL_TX_WAITING_FOR_CTS CTS
SERIAL_TX_WAITING_FOR_DSR DSR
SERIAL_TX_WAITING_FOR_DCD DCD
SERIAL_TX_WAITING_FOR_XON XON
SERIAL_TX_WAITING_XOFF_SENT XOFF
SERIAL_TX_WAITING_ON_BREAK BREAK
SERIAL_RX_WAITING_FOR_DSR DSR
 

Top Page

Copyright (C) 2004-2007 Hideki Kurihara