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

Вниз

Циклический опрос COM порта   Найти похожие ветки 

 
belenkov ©   (2006-01-17 17:10) [0]

Доброго время суток уважаемые Мастера!

Повторно хочу задать вопрос о циклическом опросе (по таймеру) железяки, подключенной к COM порту.

В железяку засылается команда из 23 байт, железяка должна выдать ответ тоже 23 байта.

Пользуюсь TViaCom (собственно один из множества аналогичных)


var   RBuf, Buf: Array[0..22] of Byte;

procedure TfMain.Timer1Timer(Sender: TObject);
begin
 Comm1.WriteBuf(Buf,23); // Посылаем команду
 Sleep(100); //Ждемс ..
 Comm1.ReadBuf(RBuf,23);// Читаем ответ
end;


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


 
MBo ©   (2006-01-17 17:33) [1]

читать нужно по событию прихода данных с порта. Есть у этого класса такое?


 
belenkov ©   (2006-01-17 18:33) [2]

Есть OnRxChar

Но он срабатывает по приему первого байта


 
Darvin ©   (2006-01-17 19:10) [3]

Организуй поток TThread и читай в нем :
Comm1.WriteBuf(Buf,23); // Посылаем команду
Comm1.ReadBuf(RBuf,23);// Читаем ответ

Кстати, зачем задержка?
Sleep(100); //Ждемс ..
Она не нужна. Умный компонент не вернет управление, пока не прочитает твои 23 байта


 
belenkov ©   (2006-01-17 19:11) [4]

Если быть точнее в железяке 2 канала


Comm1.WriteBuf(код опроса канала 1,23);
Comm1.ReadBuf(RBuf,23);//
//проводим действия с данными 1 канала

Comm1.WriteBuf(код опроса канала 2,23);
Comm1.ReadBuf(RBuf,23);//
//проводим действия с данными 2 канала



 
Darvin ©   (2006-01-17 19:14) [5]

>Если быть точнее в железяке 2 канала

Это ничего не меняет


 
belenkov ©   (2006-01-17 19:15) [6]

Если можно пример, как организовать поток


 
Darvin ©   (2006-01-17 19:20) [7]

TThread + F1


 
belenkov ©   (2006-01-17 19:23) [8]

;-) спасибо



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

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

Наверх




Память: 0.48 MB
Время: 0.055 c
15-1138610774
Opilki_Inside
2006-01-30 11:46
2006.02.19
Посоветуйте хороший XML-редактор.


2-1138978461
Дмитрий_177
2006-02-03 17:54
2006.02.19
Повторить какуюнибудь процедуру или функцию несколько раз


2-1138633347
De
2006-01-30 18:02
2006.02.19
Как в [ ] впихнуть отрицательные значения?


1-1137584481
UnDISCOvery
2006-01-18 14:41
2006.02.19
NTFS - Как быстро заполнить жесткий диск?


15-1138267295
Чапаев
2006-01-26 12:21
2006.02.19
восстановление файлов с NTFS