Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Циклический опрос COM порта [D7, WinXP]


belenkov ©   (2006-01-17 17:10:00) 

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

Повторно хочу задать вопрос о циклическом опросе (по таймеру) железяки, подключенной к 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;


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


belenkov   (2006-01-17 19:23:00) [1]

;-)спасибо


Darvin   (2006-01-17 19:20:00) [2]

TThread + F1


belenkov   (2006-01-17 19:15:00) [3]

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


Darvin   (2006-01-17 19:14:00) [4]

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

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


belenkov   (2006-01-17 19:11:00) [5]

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


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

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


Darvin   (2006-01-17 19:10:00) [6]

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

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


belenkov   (2006-01-17 18:33:00) [7]

Есть OnRxChar

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


MBo   (2006-01-17 17:33:00) [8]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо