Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с непрерывным потоком данных, от COM порта 
:(
    Опции темы
Felan
Дата 28.1.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Virtuals @  28.1.2009,  14:40 Найти цитируемый пост)
хош скажу?
на всех виндах начиная от нт4 и до ХРsp3 если в порт идут данные непрерывным потоком, а ни одно приложение их не забирает, то !:
переполняется какойто там буфер, у драйвера порта сносит крышу, и все!!! порт неработает до перезагрузки виндов.
ЗЫ проверено лично и не раз.

Возможно... хотя и странно как-то...
А сколько надо ждать?
Интересно как-нибудь попробовать... как появится что-нибудь, что будет в порт писать...

Цитата(RinOSpro @  28.1.2009,  16:01 Найти цитируемый пост)
Пишу примерно так же...

Вот сомнение возникло, а может ли запись в порт как то что то сбивать? Особенно если всегда идет сплошной поток данных.

Ну вроде нормально все...
Сравним с моим исходником. Он в неизменном виде используется уже 3 года. Может там и не все красиво и "круто", но надежно smile

А что она может сбивать? Ни идет они и идет... че такого?


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
RinOSpro
Дата 3.2.2009, 13:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Блин... дело было в железе... Ненавижу.... 
  Вверх
Robus
Дата 16.2.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Entire



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 15.12.2005

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



Я думаю, что если ты сделаешь вот так:
Код

     COMMTIMEOUTS.ReadIntervalTimeout         := $FFFFFFFF;
     COMMTIMEOUTS.ReadTotalTimeoutMultiplier  := 0;
     COMMTIMEOUTS.ReadTotalTimeoutConstant    := 0;
     COMMTIMEOUTS.WriteTotalTimeoutMultiplier := 0;
     COMMTIMEOUTS.WriteTotalTimeoutConstant   := 0;


То, твоя проблема исчезнет ... В твоём примере стоят "1", а это как минимум два такта UART'а ... Поэтому со временем ты вычитываешь медленее чем буфер заполняется, и в какой-то момент теряешь данные !!! Лучше всего поставить "0", это будет минимальная задержка.

Так же я у тебя заметил скорость 115200х2 !!! Круто берёшь !!! А позволяет ли твой UART такое ??? Просто проверь ... 2 мегагерца это круто для RS-232 !!!

И ещё ... Я заметил, что после получания пачки данных ты улетаешь на обработку это пачки !!! А тем временем новой пачке всего 512 байт отдано ... Винда, конечно, калечаня, поскольку застваляет извращаться, но я бы на твоём месте перебросил бы это всё ещё в один мега буффер, эдак на 65536 байт, и отпустил бы поток. а уже в ещё одном потоке обрабатывал бы последний буфер.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

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


 




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


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

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