Форум: "Система";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Вниз(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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c