реклама на сайте
подробности

 
 
> Кому-нибудь приходилось писать в Builder C++ программу для работы с FTDI?
zheka
сообщение Feb 7 2012, 17:07
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Кому-нибудь приходилось писать в Builder C++ программу для работы с FTDI?

Господа, я застрял...
По нажатию кнопки я должен дождаться прихода символа и ответить на него в течение не более 70 мсек.
Стандартная конструкция типа терминала не подходит.

Я отправляю символ и пытаюсь читать ответ:
Код
USBStat=FT_Write(hUSB,TxBuffer,dwBytesToWrite,&dwBytesWritten);

if (!USBStat==FT_OK)
{
USBErr(USBStat);
return;
};

        USBStat=FT_GetStatus(hUSB,&RxBytes,&TxBytes,&EventDWord);



Естественно, читаю ноль байт, так как комп переходит к чтению мгновенно, а ответ не успевает прийти.

Если же ставлю
Код
while(RxBytes==0)
{
Application->ProcessMessages();
USBStat=FT_GetStatus(hUSB,&RxBytes,&TxBytes,&EventDWord);
}

ShowMessage(RxBytes);


То получаю гигантское число. ПРочие манипуляции приводят к зависанию программы.

Как подружить контроллер, FT232RL и этот долбаный Builder C++ ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
follow_me
сообщение Feb 7 2012, 19:19
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



Не хорошо как то , грубо по отношению к даме которая хочет вам помочь

ProcessMessages - функция диспетчера сообщений приложения на отработку очереди
система повиснет пока не получит обратно управление т.к. процесс блокирован ожиданием ввода

тут возникает вопрос - почему вы выполняете эту функцию в том же потоке что и основное приложение - выполните в отдельном потоке, это решит вопрос с потерей отзывчивости
и как сказала Xenia - держать вот так в цикле ожидания ввода это совсем неправильно
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 09:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.02151 секунд с 7
ELECTRONIX ©2004-2016