Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
3-82076
RDA
2003-09-06 12:00
2003.09.25
Скорректированный набор данных


14-82495
Verg
2003-09-05 14:54
2003.09.25
Поиск на этом сайте и в частности по форумам.


3-82150
Юра
2003-09-03 16:06
2003.09.25
Как сделать запрос к двум базам?


1-82227
Александр1234
2003-09-12 10:10
2003.09.25
WebSnap и AdapterPageProducer


1-82258
alexus
2003-09-15 18:03
2003.09.25
DrawGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский