Delphi 7 ComPort library

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Delphi 7 ComPort library

Сообщение kotriks »

Господа кто в делфи 7 мучил библу http://sourceforge.net/projects/comport/ Терминал сам легко создать, получать данные с него, отправлять, но как получить данные с терминала в буфер и сохранением данных в файл, кто то может реализовывал подскажите? Вроде это делается через функцию.

Код: Выделить всё

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort1.ReadStr(Str, Count);
// do something with Str variable
end;
Может ошибаюсь, помогите .
Реклама
Аватара пользователя
minakan
Поставщик валерьянки для Кота
Сообщения: 2209
Зарегистрирован: Вт июл 27, 2010 11:31:59
Откуда: Кххх

Re: Delphi 7 ComPort library

Сообщение minakan »

Рабочая либа. Там есть примеры, все рабочее. Надо еще чтобы в обжект инспекторе выставить, чтоб был вызов этой штуки on_rx или как там оно.
Реклама
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: Delphi 7 ComPort library

Сообщение kotriks »

Там нет примеров с сохранением лога с порта на ПК, я бы не интересовался как это осуществить!
Аватара пользователя
minakan
Поставщик валерьянки для Кота
Сообщения: 2209
Зарегистрирован: Вт июл 27, 2010 11:31:59
Откуда: Кххх

Re: Delphi 7 ComPort library

Сообщение minakan »

А че тут сложного?

Код: Выделить всё

procedure Ttonarm_label.ComPortRxChar(Sender: TObject; Count: Integer);
var
  S     : String;
  buf   : byte;
  res   : integer;
begin
       comport.read(Buf, 1);
       blockwrite(f,buf,1,res);
end;
Ну тут у меня шло побайтно. Получили и скинули в файл.
У вас построчно, т.е. файл надо открыть другой, текстовый.
Файл надо открыть там, где вы открываете порт, и закрыть там, где вы закрываете программу.
Реклама
Эиком - электронные компоненты и радиодетали
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: Delphi 7 ComPort library

Сообщение kotriks »

Может тогда так

Код: Выделить всё

procedure TFMComunication.comportRxChar(Sender: TObject; Count: Integer);
var
  S, Buf : String;
  f: file;
begin
AssignFile(f, SaveDialog1.FileName);
  Rewrite(f);
  comport.ReadStr(S, Count);
  Buf := Buf + S;
  blockwrite(f,Buf,1,Count);
CloseFile(f);
end;
тока я не понимаю как вызывается процедура comportRxChar, вот добавил кнопку она появилась слева в трее в окне а этой функции нет, как её вызвать или она автоматом прикручивается или как то эту процедуру на кнопку надо кидать?

Добавлено after 2 hours 27 minutes 31 second:
Так наверное будет лучше прикреплю исходник терминала и эмулятор протеуса с виртуальным ком.
Вложения
TESTCOM.rar
(366.87 КБ) 363 скачивания
Реклама
Аватара пользователя
minakan
Поставщик валерьянки для Кота
Сообщения: 2209
Зарегистрирован: Вт июл 27, 2010 11:31:59
Откуда: Кххх

Re: Delphi 7 ComPort library

Сообщение minakan »

Нет. Эта процедура вызывается когда приходит каждая посылка....
Т.е. вы каждый раз открываете файл и закрывается.
На второй раз винда вывалит месягу, что такое файло такое уже есть, и так на каждую посылку, заколдобитесь эти месаджбоксы закрывать...
Файл надо открывать, когда вы вызываете если прошло успешноComPortOpen, и закрывать, там, где ComPortClose...
Зы. Посмотрю проект.
Если надо только логить данные может терратерм про поставить?
Реклама
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: Delphi 7 ComPort library

Сообщение kotriks »

Дело в том что я свой терминал пишу, так бы мне конечно теры хватило бы.
Ответить

Вернуться в «Интеграция с ПК»