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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
14-95487
vads
2002-06-30 22:10
2002.07.29
Навеяно веткой


1-95387
AM
2002-07-16 09:17
2002.07.29
компонент ComboBox


3-95262
Макс
2002-07-09 14:31
2002.07.29
Хитрое выделение из списка


1-95448
strel
2002-07-16 20:09
2002.07.29
Ошибка при использовании DLL !!! беда :)


4-95594
nester
2002-05-20 23:01
2002.07.29
А если с другой стороны sleep() и микросекундный таймер?





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