Перейти к содержанию
    

Событие в d2xx.dll

Кто работал с встроенными функциями FTDI, подскажите пожалуйста.

Как правильно организовать постоянный мониторинг состояния порта, чтобы по приему байта выполнялись определенные действия?

При использовании FT_SetEventNotification(ftHandle,EventMask,hEvent); и WaitForSingleObject(hEvent,INFINITE); (как сказано в документации) возникает зависание программы до прихода байта. Как создать событие чтобы приложение не зависало в его ожидании?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.. Как создать событие чтобы приложение не зависало в его ожидании?

 

Спасибо.

 

Magic word - thread.

Организовать ожидание в отдельном потоке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто функции FTDI у меня почему-то не работают в разных потоках (дескриптор порта не переносится в другой поток, пишет NULL)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут уже похоже вопрос програмирования а не конкретно FTDI

хендл содержащий дескриптор порта обьявлен как глобальный?

может его чего то портит?

 

вот мой пример прада для COM

в начале текта
HANDLE hPortThr;
DWORD PortThreadID;
HANDLE hPort;
HANDLE port;
int Nport


main ()
{
    hPort=OpenCP(Nport);
    if (hPort== INVALID_HANDLE_VALUE) Nport=0;
    if (Nport)
    {
    hPortThr=CreateThread (NULL,0,(LPTHREAD_START_ROUTINE)PortThreadProc,0,CREATE_SUSPENDED,&PortThreadID);
    SetThreadPriority (hPortThr,THREAD_PRIORITY_NORMAL);
    ResumeThread(hPortThr);
    }

}

void PortThreadProc(void)
{

while (1)
{
charsRead=0;
while (!charsRead)
    {
    ReadFile (hPort, &recb, 1, &charsRead, NULL);
    Sleep (1);
    }
...............
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дескриптор можно продублировать через функцию DuplicateHandle

http://www.vsokovikov.narod.ru/New_MSDN_AP...icatehandle.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...