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

Вниз

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

 
AlekseyK   (2002-07-15 18:32) [0]

Кто пользовалься компонентом Com Port. Как получит только ответ без запроса

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
comport1.ReadStr(a,count);
label8.Caption:=label8.Caption+a;
end;
дает
at

ok

если было
procedure TForm1.Button2Click(Sender: TObject);
begin
post := "at";
post := post+#13;
ComPort1.WriteStr(post);
end;
как получить только ОК
и есть ли другие компоненты которыми можно получить только ответ?


 
Pingo   (2002-07-16 05:10) [1]

Если просто, то можно так.
На форму кинь Terminal. Соедини с ComPort1. На OnChar:

procedure TForm1.TerminalChar(Sender: TObject; Ch: Char);
begin
if Ch<>#13 then
begin
if Ch<>#10 then Edit1.Text:=Edit1.Text+Ch;
end else
begin
Memo1.Lines.Add(Edit1.Text);
Edit1.Text:="";
end;
end;

Получишь в Memo построчно поток с COM"a.
А вообще-то с этой компонентой демки неплохие идут...
И вопрос формулируй четче, может я и не понял что ты хотел.


 
-=Sergeante=-   (2002-07-16 10:21) [2]

Я так понял, что ты работаешь с модемом? Тогда если модем посылает тебе ответ на твою команду, то просто анализируй ответ модема на вхождение строки OK


 
AlekseyK   (2002-07-16 13:00) [3]

Дело в том что в OnRxChar процедура readstr выдает все принятые и посланные Char
Здесь мажет быть и модем и миниАТС и все остальное
когда устройство отвечает мне, после посланной мной командой, мне нужен только ответ а не запрос+какието символы+ответ
В приведенный выше примере если в место label8 будет edit то результат выходит AT |||OK ||
тоже самое если мне на циске нужно получить список сидящих юзерав
посылаю who
потом читаю методом AlekseyK © (15.07.02 18:32)
получу
who
User1
User2
хотя who мне не нужен


 
-=Sergeante=-   (2002-07-16 14:04) [4]

Чесно говоря, не замечал такого за этим компанентом. Работаю с ним довольно давно, и он весьма успешно справлялся. Такое впечатление, что где-то каким-то образом зылазит эхо передаваемых данных.

Напиши значения свойств TComPort, используешь ли TComDataPacket

И что там за переменка такая "a"
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
comport1.ReadStr( a,count);
label8.Caption:=label8.Caption+ a;
end;


 
AlekseyK   (2002-07-16 16:21) [5]

a это переменная типа string
TComDataPacket не использую

object ComPort1: TComPort
BaudRate = br9600
Port = "COM2"
Parity.Bits = prNone
StopBits = sbOneStopBit
DataBits = dbEight
Events = [evRxChar, evTxEmpty, evRxFlag, evRing, evBreak, evCTS, evDSR, evError, evRLSD, evRx80Full]
FlowControl.OutCTSFlow = False
FlowControl.OutDSRFlow = False
FlowControl.ControlDTR = dtrEnable
FlowControl.ControlRTS = rtsEnable
FlowControl.XonXoffOut = True
FlowControl.XonXoffIn = True
OnAfterOpen = ComPort1AfterOpen
OnAfterClose = ComPort1AfterClose
OnRxChar = ComPort1RxChar
OnError = ComPort1Error
Left = 424
Top = 8
end


 
-=Sergeante=-   (2002-07-17 11:40) [6]

Что она стринг - это понятно...
Честно говоря, логика такого поведения компоенента мне не ясна.


 
wal   (2002-07-17 13:06) [7]


> Дело в том что в OnRxChar процедура readstr выдает все принятые
> и посланные Char

В корне ошибочное утверждение. Просто модем сам выдает (по умолчанию) то, что бринял от тебя, то есть эхо.



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
4-95629
Voland!
2002-05-21 03:29
2002.07.29
Снова про Крысу!!!


1-95371
xyz
2002-07-15 21:02
2002.07.29
objects а что это такое?


3-95264
Doctor
2002-07-09 14:53
2002.07.29
DBLookUpComboBox


4-95628
Andrew_A
2002-05-21 14:04
2002.07.29
Message from service to desktop window


3-95269
Loco
2002-07-09 15:43
2002.07.29
Query