Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение порта в потоке - как лучше? 
:(
    Опции темы
Korman
Дата 28.9.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.9.2006
Где: г. Смоленск

Репутация: нет
Всего: нет



У меня такая проблема.. не знаю как мне к ней подступиться... Я читаю с железки данные в потоке... пише в едите команду... жму кнопочку (тут запускается поток) и моя команда уходит порту, жду Sleep(500)  и читаю данные с порта. Всё хорошо когда команды не связаны с поиском данных в железке... но если надо что-то найти 0,5 с - оказывается недостаточным!!!  железка долго ищет данные и я не могу их считать... временни не хватает! 
  На разные запросы - этой железки треба разное время! ВОПРОС: Как мне организовать чтение данных с железа так чтобы всегда получать все данные - не думая о том, какое время нужно железу для ответа.  Может есть смысл создать второй поток - для чтения.??? Читаю синхронно. Помогоите плиз....
PM MAIL   Вверх
_hunter
Дата 28.9.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



это, вообще-то, железки проблема -- она должна уметь рапортовать о готовности к приему/передаче данных.
а может она умеет это делать, но ты об этом не знаеш?..


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Romikgy
Дата 28.9.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



Цитата(Korman @  28.9.2006,  08:22 Найти цитируемый пост)
Читаю синхронно

а че не асинхроно?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Korman
Дата 28.9.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 12.9.2006
Где: г. Смоленск

Репутация: нет
Всего: нет



Когда я опрашиваю железку через гипертерминал, она пишет там Serach.. потом думает от 3 до 7 сек и выводит инфу. Я глянул документацию.. там по этому повыоду ничего не сказано.  
   Если через гипер работает и у меня тоже должна.. понимаете..
  А чем лучше читать асинхронно ? что я выйграю ?

Добавлено @ 11:00 
и ещё я так глянул... может здесь можно как то WaitCommEvent задействовать ??? как вы думаете ?
PM MAIL   Вверх
_hunter
Дата 28.9.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



так в чем, тогда проблема?
сразу после записи читай. в зависимости от метода чтения вункция или залочится (до появления данных) или вернет "нет данных" (в этом случае читай еще раз)
еще это:
http://www.izone.kiev.ua/articles/delphi/16/282.htm
почитай (там delphi, но API, так что понять, думаю, будет не сложно)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Romikgy
Дата 28.9.2006, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 7
Всего: 146



Цитата(Korman @  28.9.2006,  09:57 Найти цитируемый пост)
А чем лучше читать асинхронно ? что я выйграю ?

не надо городить потоки , оно сообщит само когда есть данные


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0448 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.