Вниз
Скачать: CL | DM;

Работа с com портом   Найти похожие ветки 

 
Замученный ©   (2003-04-02 17:38) [0]

Здравствуйте, уважаемые.

Имеется следующая проблема.
Имеется устройство(датчик), подключенный к com порту.

Данное устройство реагирует на определенный команды и, в соответствии с командой выполняет определенные действия.

Проблема в следующем:
Посылаю ему определенную команду. Далее при заполнении буфера, принимаю ответ. Но вот ответ приходит через определенный период времени, хотя прибор должен выдавать его сразу. Подсчитал, задержка составляет около 20 мс. Ее надо убрать, подскажите, как это можно сделать.


Заранее благодарен


 
Soft ©   (2003-04-02 17:52) [1]

Скачай и пользуйся

http://sourceforge.net/projects/tpapro/


 
Замученный ©   (2003-04-03 12:44) [2]

Я уже использую компонент ComPort.

С ним идет задержка, с твоим его не будет?


 
N114   (2003-04-03 14:45) [3]

1200 бод, 12 бит туда, 12 бит оттуда -> 24 бита, Tmin=24*1000/1200=20 мс.

T faq = Tmin + N*Tsys_quant = 20 + N*10, [мс]
где N=1,2,3,4...


 
pasha676   (2003-04-03 15:06) [4]

В API можно реагировать (ставить эвент) на прием 1-го байта в буфер или на определенный байт (отлавливать конец пакета) и не нужно мудрить с таймерами и с задержками.


 
Замученный ©   (2003-04-03 17:54) [5]

У меня 2400 бод 3 байта туда, 3 оттуда, общее время 56 мс
Итого 10 + специально внесенная задержка 12 мс, т.е. получаем 24 мс. Остальные откуда?


 
N114   (2003-04-04 14:26) [6]

WaitForSingleObject(), которая внутри WaitForCommEvent(), которая в свою очередь внутри компонента ComPort, даёт дискретность срабатывания 10 мс (один системный квант). Логично!
-- должно сказаться при чтении.

Ещё 10 мс - затрудняюсь сказать. 2 проверки подряд, первая статистически неудачна, вторая статистически удачна? 2 события последовательно? асинхронная передача с синхронизацией по event-у и использованием всё того же WaitForSingleObject()?

В общем, дело тёмное...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.018 c
3-13086
I.Ru.Ru
2003-05-19 09:11
2003.06.05
Про DBGrid, Query и временные поля в одном флаконе!


9-12984
konstantionov
2002-12-27 23:25
2003.06.05
Статистика игроков


3-13101
Алекс
2003-05-19 11:07
2003.06.05
Простой SQL запрос


4-13513
Allex
2003-04-08 11:38
2003.06.05
Слияние файлов


1-13229
kah68
2003-05-27 12:55
2003.06.05
Как выполнить запрос в отдельном процессе




   Наверх