Название: Событие Win32 Отправлено: alek от Декабрь 17, 2013, 12:56 Доброго времени суток!
Есть плата от которой приходит прерывание через событие Win32 API. В VS код на С++: Код: HANDLE hBcEvent; Но на Qt такой код срабатывает только 1 раз. Дольше выдает "Interrupt timeout error". Подскажите пожалуйста в чем может быть проблема? Вырезка из документации на плату: Цитировать В драйверах Windows работа с прерываниями осуществляется через механизм событий Win32. Прежде всего, процесс должен сообщить драйверу идентификатор (handle) используемого события для текущего выбранного ТМК через вызов функции tmkdefevent, которой передается в качестве первого параметра идентификатор события Win32, полученный из Win32 вызова CreateEvent: void tmkdefevent(HANDLE hEvent, BOOL fEventSet); Нулевое значение hEvent отменяет использование события. Значение параметра fEventSet равное TRUE указывает на необходимость установки события драйвером через вызовы SetEvent, а значение FALSE - через вызовы PulseEvent. Внимание! В текущей версии драйвера значение переменной fEventSet игнорируется (принимается равным TRUE). Название: Re: Событие Win32 Отправлено: kuzulis от Декабрь 17, 2013, 14:53 Qt здесь ни при чем, скорее всего tmkdefevent(hBcEvent, TRUE) нужно перевызывать каждый раз после срабатывания события (или таймаута или ошибки).
Можешь еще так попробовать: Код
Название: Re: Событие Win32 Отправлено: alek от Декабрь 18, 2013, 08:40 Не знаю, может у меня руки кривые, но работать все равно не стало.
Название: Re: Событие Win32 Отправлено: alek от Декабрь 18, 2013, 13:21 В общем получилось, написал функцию инициализации устройства не там :)
|