seriport (rs232) byte dizisi okuma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aozkan83
Üye
Mesajlar: 2
Kayıt: 04 Oca 2014 09:29

seriport (rs232) byte dizisi okuma

Mesaj gönderen aozkan83 »

S.A.

Temel olarak sorunum seriporttan gelen byte dizilerini okurken 0x00 ları alamıyorum.

(string olarak okuyup byte dizisini çevirdiğimde de 0x00 ları alamıyorum)

C# da seriport nesnesini koyup byte dizisi olarak okuttuğumda 0x00 lar da geliyor veya hercules programında seri portu dinlediğimde 0x00 alabiliyorum

Örnek
normalde okunan--->{55}{A0}{00}{74}{3D}{73}{04}{43}{52}{43}{ED}{74}
delphide okunana--->{55}{A0}{74}{3D}{73}{04}{43}{52}{43}{ED}{74}

NOT:
Delphi 7 kullanıyorum iki farklı component kurdum biri Cport diğeri eskiden beri string işlemlerinde kullandığım Xcomdrv

Herkese iyi çalışmalar
aozkan83
Üye
Mesajlar: 2
Kayıt: 04 Oca 2014 09:29

Re: seriport (rs232) byte dizisi okuma

Mesaj gönderen aozkan83 »

Şu şekilde çözüm buldum belki başka arkadaşlara lazım olabilir.

formun içerisinde APRO componenti buldum ve form da bulduğum verilerle

Okuma kısmı

procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var LastCount,I,j : integer;
TempSonOkunanKilo:integer;
sTemp:string;

begin
//gelen:='';
LastCount:= Count;
mmo1.Lines.Add(inttostr(count));
for I := 1 to LastCount do
begin
cRcvBuffer[CharCntReceived]:= ApdComPort1.GetChar;
gelen:=gelen+IntToHex(Ord(cRcvBuffer[CharCntReceived]), 2);
inc(CharCntReceived);
end;
for j:=0 to 29 do cRcvBuffer[j]:= #0;
mmo1.Lines.Add(gelen);
gelen:='';
end;

Gönderme Kısmı
button click olayına

ApdComPort1.PutChar(chr($55));
ApdComPort1.PutChar(chr($10));
ApdComPort1.PutChar(chr($FF));
ApdComPort1.PutChar(chr($FF));
ApdComPort1.PutChar(chr($FF));
ApdComPort1.PutChar(chr($FF));
ApdComPort1.PutChar(chr($00));
ApdComPort1.PutChar(chr($00));

Herkese iyi çalışmalar

Formda Emeği geçen herkese teşekkür ederim
(Allah yollarını açık etsin)
Cevapla