2012-02-17 14 views
0

デバイスに接続されていない利用可能なシリアルポートをプログラム的にチェックしたい。シリアルポートの使用方法を調べる

私は次のコードを試して、使用可能なCOMポートを取得できましたが、使用されているかどうかはわかりません。それをどうやって決めるの? USBとは異なり

TCHAR szComPort[8]; 
HANDLE hCom = NULL; 

for (int i = 1; i <= 10; ++i) 
{ 
    if (i < 10) 
     wsprintf(szComPort, _T("COM%d"), i); 
    else 
     wsprintf(szComPort, _T("\\\\.\\COM%d"), i); 

    hCom = CreateFile(szComPort, 
     GENERIC_READ|GENERIC_WRITE, // desired access should be read&write 
     0,       // COM port must be opened in non-sharing mode 
     NULL,      // don't care about the security 
     OPEN_EXISTING,    // IMPORTANT: must use OPEN_EXISTING for a COM port 
     0,       // usually overlapped but non-overlapped for existance test 
     NULL);      // always NULL for a general purpose COM port 

    } 
+0

問題を解決するには、次の2つの問題があります。1)シリアルポートがデバイスに接続されているかどうかを確認するにはどのような方法がありますか? 2)その方法を実装するためにどのようなコードを使用しますか?最初の質問に正解はありません。それはあなたの外の問題にかかっていますが、それは言及していません。 –

+0

それは10時に停止しません。接続されていないポートを探すのはかなり無意味です。彼らは何も役に立たないだろう。 –

答えて

0

、シリアル(RS232)ポートが接続されているかどうかを確認するための信頼できる方法はありません。 TD、RD、グラウンド(送信/受信)だけを使用するのはかなり一般的です。他のピンが接続されている場合でも、それらの使用は十分に標準化されていません。

関連する問題