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

Вниз

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

 
M@X_1   (2006-01-10 16:59) [0]

Доброго время суток!
Подскажите, как правильно циклически опрашивать COM порт(пользуюсь TVaComm)

Есть железяка, которая передает данные при посылке на нее комманды
Делаю:



procedure TfMain.Timer1Timer(Sender: TObject);
begin
  Comm1.WriteBuf(WriteBuffer, 23);
  Sleep(100);
  Comm1.ReadBuf(ReadBuffer,23);
end;


Чего то отвратительно работает.
Если вместо Sleep(100) использую ручками нарисованную Delay(100) - работает лучше, но все равно нестабильно.

А послать комманду отдельно и привязаться к событию получения первого символа OnRxChar чего то никак не получается.


procedure TfMain.Comm1RxChar(Sender: TObject; Count: Integer);
begin
  Comm1.ReadBuf(ReadBuffer,23);
end;



Чего не так делаю


 
YurikGL ©   (2006-01-10 17:13) [1]

Я делал примерно так:

Command1wasSend:boolean
GlobalST:string;

Посылаешь комманду, и выставляешь глобальный флаг типа
Comm1.WriteBuf("...")
Command1wasSend:true;
GlobalST:="";

В процедуре
procedure TfMain.Comm1RxChar(Sender: TObject; Count: Integer);
begin
 //автоматически вызовется, когда придут данные, если я правильно помню
 Comm1.ReadBuf(ReadBuffer,23);
 //кстати, что за число 23?
 if Command1wasSend then GlobalST:=GlobalST+ReadBufferl;

 if "признак окончания ответа от Command1" then begin
   Command1wasSend:=false;
   Обработать строку GlobalST учитывая то, что там хранится весь ответ от  Command1
end;
end;


 
M@X_1   (2006-01-17 11:46) [2]

Да вот так что  то не получается.

23 - количество принимаемых/передаваемых байт.

OnRxChar срабатывает когда первый байт из 23 в буфере и ReadBuf считывает именно один, после этого следует опять событие OnRxChar с остальными 22 байтами.

А по скольку опрос циклицццский по таймеру в буфере уже могут быть следующие 23 байта ...

Как это преодолеть ?



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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
3-1133526802
Vedun
2005-12-02 15:33
2006.02.05
Структура файлов баз данных


15-1137017293
Цукор5
2006-01-12 01:08
2006.02.05
Source


2-1137502635
pathfinder
2006-01-17 15:57
2006.02.05
Delphi&Excel


15-1137489290
Некто
2006-01-17 12:14
2006.02.05
Корпоративная ICQ


8-1124860193
Darkwing
2005-08-24 09:09
2006.02.05
Как устроен визуализатор звуков (например из SoundForge)?