cport la port okuma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cport la port okuma
cport bileşeni ile port la çalışıyorum. output buffer a bilgi yazıp gittiğini anlamak için evtxempty olayını nasıl kullanabilirim. ayrıca bilgi geldiğini anlamak için evrxFlag olayını da kullanmam gerekiyor ama beceremedim. ve bilgi almak için timeout süresi verip beklemem gerekiyor ama bana mili saniye değil mikro saniye gerekli bu tip bir timer ı nerden bulabilirim?
öğrenmek, zorlukları yenmektir.
Eğer Projene Comport ile başladı isen ,
üniversite yaptıgım bir programın kodlarını buldum işine yarar sanırım..
hoca ödev vermişti , seri portdan diğer pc ye cross bir cable yapmıştık , bununla bir pc den değeri gönderip diğer pc den alıyorduk.
üniversite yaptıgım bir programın kodlarını buldum işine yarar sanırım..
hoca ödev vermişti , seri portdan diğer pc ye cross bir cable yapmıştık , bununla bir pc den değeri gönderip diğer pc den alıyorduk.
Kod: Tümünü seç
procedure Tmain.Button1Click(Sender: TObject);
var
Str: String;
begin
if CheckBox1.Checked and CheckBox2.Checked then showmessage('Sadece 1 Port Seçiniz');
if CheckBox1.Checked then begin
ComPort1.Open;
Str := Edit1.Text;
Str := Str + #13#10;
ComPort1.WriteStr(Str);
end;
if CheckBox2.Checked then begin
ComPort2.Open;
Str := Edit1.Text;
Str := Str + #13#10;
ComPort2.WriteStr(Str);
end;
end;
procedure Tmain.ComPort1RxChar(Sender: TObject; Count: Integer);
var
data: String;
begin
ComPort1.ReadStr(data, Count);
Memo1.Lines.Add('Gelen Değer =');
memo1.Lines.Add(data);
end;
procedure Tmain.ComPort2RxChar(Sender: TObject; Count: Integer);
var
veri: String;
begin
ComPort2.ReadStr(veri, Count);
Memo1.Lines.Add('Gelen Değer =');
memo1.Lines.Add(veri);
end;
Kod: Tümünü seç
veri: String;
cport tan vazgeçtim, apdpro kullanmaya başladım. ben porta bilgileri 1 bayt olarak gönderiyorum onu da şu şekilde yapıyorum. burada gönderdiğim bayt gitti mi diye de outbufffree ile kontrol ediyorum. bu aşamadan sonra cevabın bana 0.6 milisaniyede dönmesi lazım. bunun için timertirigger ı set edecem ama apd nin helpinde zamanı tick olarak tuttuğunu ve 1 tick in 55 milisaniye olduğu yazıyor. bundan daha hassas zaman tutucu nerden bulabilirim?
Kod: Tümünü seç
for cnt:=0 to txflength do
begin
if ApdComport1.OutBuffFree=ApdComport1.OutSize then
ApdComport1.PutChar(char(pointer(integer(txBufferpos)+cnt)^));
end;
öğrenmek, zorlukları yenmektir.