Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

(com-порты) Кто тормозит - я или винда?   Найти похожие ветки 

 
Palex   (2003-07-11 01:01) [0]

Здравствуйте, товарищ ALL!
Есть такой вопрос – может кто поможет разобраться?..
Пишу программу для работы через COM с внешним устройством. Специфика его работы такова, что для работы с ним требуется постоянное поддержание коннекта (пакеты данных типа запрос (COM -> Device) – ответ (Device -> COM)) посылками через каждые 0.5 секунды. Внутри пакетов между байтами задержки по 1 милисекунде.
Но это так – для общего понимания вопроса! ;)
Так вот – во время работы если не дергаться мышкой – то все нормально. Но как только начинаешь клацать по менюшкам внутри программы – коннект срывается с 80% вероятностью. То есть, я понимаю, при нажатиях на кнопки/менюшки происходят события, и если оно попало при посылке пакета, то пауза между посылками отдельных байт превышает заданное время – и п…а коннекту ;)
Может, у кого-нить есть соображения по этому поводу?

З.Ы.: Посылку в порт всего пакета сразу не предлагать, т.к. на каждый принятый/отправленный байт получатель оного должен отправить подтверждение назад.

З.З.Ы.: Если по тексту встретились ламерские изречения – просьба не мате...ся – я только учусь ;)


 
Германн ©   (2003-07-11 01:58) [1]

В первую очередь "тормозишь" ты.
Поскольку как тогда понимать твое - З.Ы.: Посылку в порт всего пакета сразу не предлагать, т.к. на каждый принятый/отправленный байт получатель оного должен отправить подтверждение назад.


 
Крот ©   (2003-07-11 05:59) [2]

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


 
Nucl ©   (2003-07-11 09:54) [3]

вот пример класса, для асинхронной работы с портом, все рулится в потоке, бошку нигде не срывает.
http://soft.bel.ru/files/Source.zip


 
pasha676   (2003-07-11 09:59) [4]

Иногда винда сбивает порт, если порты мыши и порт рабочий идут на одном прерывании. Но так как мышь ПС делить на 2 у тебя скорее всего, то проблемма решается как сказал Nucl.

Почитай тут. Модифицированнй код у меня работал и в системе "запрос-квитанция" для управления видаком JVC.
http://www.delphimaster.ru/articles/comport2/index.html


 
Palex   (2003-07-11 20:50) [5]

2 Германн: Этот протокол придуман не мной, и девайс паял не я! А такой монстр, как корпорация "VAG" ;)

2 Крот: Может посоветуешь какую-нибудь доку по вопросу, бо в потоках я не силен (мягко сказано...)?

2 Крот, 2 Nucl, 2 pasha : Спасибо, сейчас покопаюсь - посмотрю


 
Германн ©   (2003-07-12 01:39) [6]

2 Palex (11.07.03 20:50)
2 Германн: Этот протокол придуман не мной, и девайс паял не я!

Это я понимаю. Я не понимаю как можно объединить:
З.Ы.: Посылку в порт всего пакета сразу не предлагать
и
( пакеты данных типа запрос (COM -> Device) 2 Palex (11.07.03 20:50)
2 Германн: Этот протокол придуман не мной, и девайс паял не я!

Это я понимаю. Я не понимаю как можно объединить:
З.Ы.: Посылку в порт всего пакета сразу не предлагать
и
(пакеты данных типа запрос (COM -> Device) – ответ (Device -> COM)) посылками через каждые 0.5 секунды


 
Palex   (2003-07-12 23:13) [7]

Обьясняю на пальцах:
Пакеты с подтверждением принятия каждого байта.
Компьютер . Tx: SS ww SS ww SS
Устройство. Rx: -- AA -- AA -- AA
Посылаю байт, жду ответа от девайса, посылаю следующий, жду ответа ...
Все байты высланы, жду пол секунды, посылаю следующий пакет.
Понятнее некуда. ;)




Страницы: 1 вся ветка

Текущий архив: 2003.09.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
3-82098
Charv
2003-09-06 20:44
2003.09.25
как в SQL хранить одну иерархическую структуру в другой?


14-82401
sniknik
2003-09-01 08:46
2003.09.25
Linux видеопамять, ищу примеры.


3-82146
Васёк
2003-09-03 18:09
2003.09.25
XPman


1-82231
Fortuna
2003-09-12 08:19
2003.09.25
разделитель целой и дробной части


14-82421
Vlad Oshin
2003-09-05 16:19
2003.09.25
Туплю что-то...Про сеть. Надо настроить....