Comporttan veri bittiğini nasıl anlarız ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seci20

Comporttan veri bittiğini nasıl anlarız ?

Mesaj gönderen seci20 »

Ustalarım kolay gelsin. Comporttan veri gönderip almam gerekiyor.Yanlız gelen veri sabit olmuyor mesela bazen 1 byte iken bazen 10000 byte olabiliyor. Normalde gelen verinin uzunluğu için şu kodu kullanıyorum ama bu çok fazla hata veriyor bazen read yapılan byte dahil oluyor.

Kod şu şekilde.

Kod: Tümünü seç

    WaitCommEvent(ComFile,evMask,@OvrIn);
    WaitForSingleObject(OvrIn.hEvent,1000);
    GetOverlappedResult(ComFile,OvrIn,nRead,false);

    FillChar(iComStat,SizeOf(iComStat),0);
    Errs:=0;
    ClearCommError(ComFile,Errs,@iComStat);
    TotalRead:=iComStat.cbInQue;

cbInQue ile kalan veriyi hesaplıyorum ama fazla olabiliyor bazen az oluyor farklılık gösteriyor. Cihazın veri göndermesinin bittiğini nasıl ve hangi kod ile anlayabilirim şimdiden çok teşekkür ederim.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: Comporttan veri bittiğini nasıl anlarız ?

Mesaj gönderen ertank »

Merhaba,

Bunu bildiğim kadarıyla anlamanız mümkün değil. Bu sebeple başlangıç ve bitiş için özel karakter/kelimeler kullanılıyor bu tür işlerde. Benzer şekilde gönderilecek/gönderilen veri hash bilgisi de kullanılabiliyor.

İletişim kurduğunuz cihaz/yazılımın dökümanlarını incelemenizi önerebilirim.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Comporttan veri bittiğini nasıl anlarız ?

Mesaj gönderen yusuf simsek »

Bu sorunun cevabını Cihazın üreticisinden alabilirsiniz...

Her cihaz kendisine özgü bir yazılım içerdiği için net birşey söylenemez...

Eğer cihaz yazılımına müdahale ettirme imkanınız varsa İlk değer olarak VERİ BOYUNU GÖNDERMESİNİ isteyebilirsiniz...

Böylece ne kadarlık veri geldiğini bilir ve ona göre işlem yapabilirsiniz
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla