Вот код (из процедур, завернутых в функции Дельфи, модуль находится на сайте FTDI http://www.ftdichip.com/Projects/CodeExamp...hi/D2XXUnit.zip
Код
FT_Event_Handle := CreateEvent(nil, false, True, 'FDTIEvent');
Set_USB_Device_Event_Notification(FT_EVENT_RXCHAR);
Set_USB_Device_Event_Notification(FT_EVENT_RXCHAR);
Затем в отдельном потоке ожидание
Код
repeat
if WaitForSingleObject(FT_Event_Handle,1000)=WAIT_OBJECT_0 then
begin
Get_USB_Device_Status;
if FT_Event_Status=FT_EVENT_RXCHAR then
begin
//чтение данных
end;
end;
until False;
if WaitForSingleObject(FT_Event_Handle,1000)=WAIT_OBJECT_0 then
begin
Get_USB_Device_Status;
if FT_Event_Status=FT_EVENT_RXCHAR then
begin
//чтение данных
end;
end;
until False;
WaitForSingleObject всегда возвращает WAIT_TIMEOUT, если поставить INFINITE - просто начинается бесконечное ожидание.
Может быть, кто-то сталкивался со схожей проблемой? Почему может не генерироваться событие?
p.s. В режиме VCP работает нормально.