シリアル通信のポートオープン
シリアル通信のテストプログラムを作成中でして、一通り動作するようになったのでエラー処理を確認しようとしたところ、存在しないCOMポート?なのにオープンが成功したと処理してしまいます。
環境
P社のノートパソコン
Windows XP Pro SP3
Visual C++6.0 SP6
USB接続のRS-232C変換アダプタを使用
デバイスマネージャでは、拡張ポートはCOM4のみとなっている
ハイパーターミナルの「接続の設定」では、接続方法の選択肢にCOM3とCOM4の2つがある
・COM4を使うと、オープン後、正常に通信できます。
・COM3を使うと、オープンは出来るが、通信は出来ません。
ソースを記載します。
if(HANDLE_CHECK(m_hComm) == FALSE){
ss.Format("COM%d", m_nRsPort);
m_hComm = ::CreateFile(ss, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(HANDLE_CHECK(m_hComm) == TRUE){
dcb.DCBlength = sizeof(DCB);
if(::GetCommState(m_hComm, &dcb) != FALSE){
dcb.BaudRate = m_nRsBaudrate;
dcb.Parity = m_nRsParity;
・ ・
・ ・
・ ・
if(::SetCommState(m_hComm, &dcb) != FALSE){
COM3の場合もCOM4の場合もここを通っている。
}
else{
}
}
}
}
COM3のオープン時、エラーの検知は出来ないのでしょうか?
よろしくお願いします。