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

Вниз

Com port   Найти похожие ветки 

 
Talla2k ©   (2003-11-12 01:01) [0]

В последнее время слышу много рекомендаций работать с Com портом через поток(Thread),ну я и решил попробовать.Имеется ввиду создание потока чтения из com-а,где принимается все.
Создал все работает,но есть вопрос.Предположим я выслал в Com какие-то данные,далее поток принял ответ от
девайса и далее в зависимости от ответа я опять должен чего-то высылать в Com.
Но после приема мой ответ com-у возможен ТОЛЬКО В ПОТОКЕ (а меня это не устраивает).
Слышал что есть какие-то методы борьбы с этим(возвожно через сообщения)???

procedure TForm1.Button1Click(Sender: TObject);
begin
// предположим все инициализировано и запущен некий поток для чтения из com
writecomm(CommHandle,chr($11)+chr($11)+"01");// имеется некая процедура записи в COM

И вот имеено ЗДЕСЬ я хотел-бы узнать что принято из потока
и соответственно принять какое-то решение для дальнейшей работы

end;

P.S. Процедура чтения не устраивает,т.к. заранее не известно сколько байт будет получено из девайса.
ReadIntervalTimeout тоже нельзя т.к. отвечать девайсу нужно немедленно!!!
И компоненты тоже нельзя(т.к. пробовал даже самый КРУТОЙ ApdComPort) и после приема и последующего
ответа слишком большая задержка и соответственно девайс не воспринимает мой ответ .


 
Talla2k ©   (2003-11-12 01:06) [1]

Ну пожалуйста!!!


 
Talla2k ©   (2003-11-13 01:23) [2]

Ну не ужели нет СПЕЦОВ?


 
Германн ©   (2003-11-13 03:37) [3]

Да, действительно есть много советов работать с Com-портом в отдельном потоке. Но нужно понять, что следовать этим советам есть смысл только там, где это действительно необходимо!
Это во-первых.
Во-вторых в сабже и в последующих дополнениях - совершенно непонятно: А в чем собственно проблема?
Может быть не понятна спецификация "девайса"? Так это не сюда, а к его создателям.



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
1-93508
romeo
2004-01-11 12:55
2004.01.29
Как нарисовать линию с Pen.Style = psDash и Pen.Width > 1?


1-93428
_none_
2004-01-16 15:29
2004.01.29
вывод графики через bitblt: мелькание (синхронизация?)


1-93439
Pavor
2004-01-12 14:58
2004.01.29
RichEdit не показывает картинку


1-93559
Pantera111
2004-01-16 02:02
2004.01.29
Компонент следящий за изменением файловой системы


7-93707
Magical
2003-11-06 18:01
2004.01.29
Работа с правами пользователей