Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];

Вниз

Циклический опрос 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
15-1138276779
Dec
2006-01-26 14:59
2006.02.19
Работа с Excel


2-1138951731
Just a man
2006-02-03 10:28
2006.02.19
Утилитка для проверки наличия дискетты


15-1138237006
vidiv
2006-01-26 03:56
2006.02.19
Спам...


15-1138300689
Sergey Masloff
2006-01-26 21:38
2006.02.19
Новое это хорошо забытое старое. "Новинки" книжного рынка


15-1138447094
Piter
2006-01-28 14:18
2006.02.19
Как правильно: Тюнер или Тьюнер?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский