Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Comport Haberleşme Nasıl Yapılır?
#1
cportlib adında bir comport componenti indirim ve kurdum.Bu arada delphi xe7 kullanıyorum.BU component ile ilgili örnek bir kod parçasıda buldum ama bende çalışmadı hatada vermedi.

Örnek Kod parçası

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, CPort, Vcl.StdCtrls, Vcl.ExtCtrls;



type

  TFTerazi = class(TForm)

    ComPort1: TComPort;

    BtnGonder: TButton;

    Timer1: TTimer;

    Memo1: TMemo;

    Label1: TLabel;

    procedure BtnGonderClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    cRcvBuffer         : PChar;

    CharCntReceived    : Integer;

    { Public declarations }

  end;



var

  FTerazi: TFTerazi;



implementation



{$R *.dfm}



procedure TFTerazi.BtnGonderClick(Sender: TObject);

begin

CharCntReceived := 0;

comport1.WriteStr('@00RD0000001552*'+#13+#0);

end;



procedure TFTerazi.FormCreate(Sender: TObject);

begin

cRcvBuffer := StrAlloc(512);

CharCntReceived := 0;

end;



procedure TFTerazi.Timer1Timer(Sender: TObject);

var x,y:integer;

    a:string;

begin

  x:=comport1.read(cRcvBuffer[CharCntReceived],512);



if x>0 then begin

  a:='';

  for y:=CharCntReceived to CharCntReceived+x-1 do a:=a+crcvbuffer[y];

  Memo1.Lines.Add('Alınan : '+ a);

  Label1.Caption:='Alınan : '+ a;

  //Lines.Add ('Alınan : '+ a); //Denemek iiçin ana ekrana memo ekle

end;

CharCntReceived := CharCntReceived +x;
end;

.dfm dosyası

object ComPort1: TComPort
   Connected = True
   BaudRate = br9600
   Port = 'COM1'
   Parity.Bits = prEven
   StopBits = sbTwoStopBits
   DataBits = dbSeven
   Events = [evRxChar, evTxEmpty, evRxFlag, evRing, evBreak, evCTS, evDSR, evError, evRLSD, evRx80Full]
   FlowControl.OutCTSFlow = False
   FlowControl.OutDSRFlow = False
   FlowControl.ControlDTR = dtrDisable
   FlowControl.ControlRTS = rtsDisable
   FlowControl.XonXoffOut = False
   FlowControl.XonXoffIn = False
   Left = 48
   Top = 32
 end


Yardımcı olursanız sevinirim
Cevapla
#2
Nasıl bir test veya deneme yaptınızda çalışmadı ?
Haberleştiğiniz cihaz varsa protokolü, kablolama, port ayarları... vb. bir çok nokta çalışmamasının nedeni olabilir.

Programınızla ilgili basit bir testi şu şekilde yapabilirsiniz. Rs232 portunun 2 ve 3 nolu pinlerini kısa devre yapın. Gönderdiğiniz datayı tekrar geri alabiliyorsanız yazılımınız ve porta erişimde sorun yok demektir.
Cevapla
#3
var
write,read:string;
begin

write:= '@00RD0000001552*'
comport1.WriteStr(write+#13#10);
ComPort1.ReadStr(read, 50);
showmessage(read);
Cevapla
#4
https://www.youtube.com/watch?v=fhLW9IVq1Pg

Kardeşim ben bu videodaki bilgilerle cihazdan gelen bilgiyi okuyabildim belki işine yarar bir göz at istersen.
Cevapla
#5
Hercules.exe isminde portu test edeceğiniz bir progam var. Önce onunla test et, portlardan bilgi geliyor ise koda devam et.
Cevapla
#6
Delphi 7 de çalışan bir component var. Marco Cocco diye birisi yapmış. 10 numara. Ben yıllardır kullanıyorum. internetten bulup indirebilirsiniz. Marco Cooco ile aratın. Ancak XE'de çalışır mı bilmem. Bu komponentin event'ları var. "OnRreceiveData" gibi. Böylece com porta veri geldiğine bakmak için beklemiyorsunuz.
Cevapla
#7
(25-11-2019, Saat: 12:37)enigma Adlı Kullanıcıdan Alıntı: Delphi 7 de çalışan bir component var. Marco Cocco diye birisi yapmış. 10 numara. Ben yıllardır kullanıyorum. internetten bulup indirebilirsiniz. Marco Cooco ile aratın. Ancak XE'de çalışır mı bilmem. Bu komponentin event'ları var. "OnRreceiveData" gibi. Böylece com porta veri geldiğine bakmak için beklemiyorsunuz.

TComport iyi bir seenek. Gömülü sistemler http://www.delphican.com/forumdisplay.php?fid=1128 konusunda detaylı bilgi vereceğim inşallah
Teknik Öğretmen
Bilgisayar Formatörü
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulamaya responsive görünüm nasıl kazandırabilriz ? delphicim 0 240 04-01-2024, Saat: 15:24
Son Yorum: delphicim
  Delphi 7 ye göre MB Döviz kurları nasıl alırız maydin60 7 1.145 31-12-2023, Saat: 02:18
Son Yorum: maydin60
  ReadProcessMemory ile veri okuma nasıl yapılır eraendless 2 471 07-09-2023, Saat: 00:35
Son Yorum: veteran
  ARRAYi nasıl for'la dönerim. PREDATOR 16 10.129 26-08-2023, Saat: 14:33
Son Yorum: veteran
  Yandex Disk üzerinden TIdWebDAV ile nasıl dosya alabilirim adelphiforumz 2 900 17-03-2023, Saat: 16:53
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi