Главная страница
    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.011 c
1-95372
jen_bond
2002-07-15 11:19
2002.07.29
Возможно ли??


7-95588
kmc
2002-05-11 09:16
2002.07.29
Как закрыть очередь на спуле?


3-95179
Oleon
2002-07-05 13:13
2002.07.29
Переход с Local InterBase на InterBase Server


1-95293
BlackGrin
2002-07-15 11:06
2002.07.29
Определение нажатого кнопки


3-95254
jen_bond
2002-07-09 11:33
2002.07.29
Реализация связи многие-ко-многим





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