Определение использования последовательного порта - PullRequest
0 голосов
/ 17 февраля 2012

Я хочу программно проверить наличие доступных последовательных портов, которые не связаны ни с одним устройством.

Я попробовал следующий код и смог получить доступные com-порты, но не знаю, используется ли он. как это определить?

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  

   }  

1 Ответ

0 голосов
/ 17 февраля 2012

В отличие от USB, нет надежного способа проверить, подключен ли последовательный порт (RS232). Весьма распространено использовать только TD, RD и Ground (передача / прием). Даже когда подключены другие контакты, их использование не очень хорошо стандартизировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...