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 |
|