Здравствуйте! Очень требуется помощь. Есть устройство, в котором FT232 по СОМ порту регулярно высылает массивы данных. Время между массивами не известно, может быть в секунду несколько раз. Мне надо написать свою DLL, в которой были реализованы функции Открыть порт, Закрыть порт, записать в порт, и прочитать с порта. Используя ftd2xx.dll. Среда разработки Borland CBuilder 6. Если FT_Read вызывается в DLL внутри функции, ну скажем ReadPort(...), то чтение происходит правильно, а если я в моей DLL создаю поток, и вызываю FT_Read внутри потока, то данные не считываются: ftStatus = FT_Read( ftHandle, buf, CountW, &numout); ftStatus = 4, и numOut = 0; Аналогично внутри потока не работает пара ftStatus = FT_SetEventNotification(ftHandle,EventMask,hEv); DWORD dwRetCode = WaitForSingleObject(hEv,50); Т.е данные в буфере передачи есть, а event не срабатывает. Поскольку данные приходят с утройства без запроса, то мне предпочтительно делать независимый поток, который бы занимался чтением данных и сигналил в вызывающий процесс. Других вариантов я не знаю. Собственно,опыта у меня негусто. Вопрос. Почему из потока внутри DLL не читаются данные? Возможны ли другие варианты чтения в данной конфигурации? Спасибо откликнувшимся заранее.
|