(03-06-2021, Saat: 21:06)mstf42 Adlı Kullanıcıdan Alıntı:(03-06-2021, Saat: 17:32)ugorkem Adlı Kullanıcıdan Alıntı: büyük ihtimal bileşenin Events -> onDisconnect mutlaka vardır. bağlantı koptuğunda oradan uyarı verebilirsin.malesef kardeşim bileşenlerin event olayında bahsettiğin özellikler yok gelen bilgi string şeklinde ve aşağıdaki gibi basit bir kodla gelen bilgiyi okuyabiliyorum. Nasıl bir kod yazmalıyım ki bu bileşene gelen bilgi kesildiğinde uyarı versin veri okunamadı diye bilgi tekrar gelmeye başladığında ise otomatik ağırlık bilgisi panelde görünsün eminim çok basit bir koddur ama işte acemiler sınıfındanım malesef.
cihaz aynı port/usb üzerinden bağlı olduğu sürece comport numarası değişmez.
belirli zaman aralıkları ile bağlantı kurmayı denersin. Bağlantı kurulduğunda Events -> onConnected tetiklenir.
Bağlantı koptuğu yada bağlantı kurulup kurulmadığını kontrol edebilirsin.
Not: Eğer bileşenin otomatik bağlantı seçeneği yok ise sen bağlantı kuruncaya (connect oluncaya) kadar veri gelmeyecektir.
procedure Tform1.ComDataPacket1Packet(Sender:Tobject; const Str: string); begin Panel1.caption:=copy(str,3,5); end;
com cihaza müdehale şansınız yoksa...
en basit şekli ile veri akışı kesintisiz devam ediyordur diye düşünüyorum.
eğer veri belli bir süre veri gelmiyorsa tekrar connect olmaya çalışabilirsin.
Bunun için thread yada timer kullanabilirsin. Bu tamamen sana ve durumun kritikliğine bağlı.
Uses DateUtils; var SonDateTime:Tdatetime; //global değişken procedure Tform1.ComDataPacket1Packet(Sender:Tobject; const Str: string); begin Panel1.caption:=copy(str,3,5); SonDateTime := Now(); end; procedure TForm2.Timer1Timer(Sender: TObject); var ZamanFarki:int64; begin //MilliSecondsBetween milisaniye cinsinden ZamanFarki := SecondsBetween(SonDateTime, Now()); //saniye cinsinden zaman farkı if ZamanFarki > 2 then Com.connect(); end;

