Comport uygulaması hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Comport uygulaması hakkında

Mesaj gönderen adelphiforumz »

s.a.
Öncelikle bu yazıyı zaman ayırıp okuyacak arkadaşlar teşekkürler.

Comportlar üzerinden oldukça hızlı bir veri iletişimine ihtiyaç duymaktayım.
Bu nedenlede sizlerin bilgi ve tecrübelerinden faydalanmak istedim.
Yapmak istediğim comportla iletişim kuran yaklaşık olarak 150 ye yakın sayıda cihaz mevcut.
Tüm cihazlardan gelen bilgileri 1 sn. içerisinde alıp bunlara yaklaşık olarak 6 ms. içerisinde cevap vermem gerekmektedir.
her işlem için comport üzerinde gelen giden data uzunluğu yine yaklaşık olarak 100 byte civarındadır.
kullanılan cihazlar bilgisayardan gönderilen komutlara karşılık kendisi bir bilgi döndürüyor.
yani cihazlar ancak bilgisayardan kendisine bilgi geldiğinde cevap veriyorlar.
bu nedenlede sürekli program cihazlara bilgi sormak durumunda kalıyor.
benim düşüncem cihazlardan gelen uçları 10 civarında farklı comportlara dağıtmak ve her bir comport için bir threed yaratmak şeklinde oldu.
fakat böyle bir durumda ortak kullanacağım fonksiyonlar var(veritabanı sorgulama ve yazma gibi) bu fonksiyonlar birden fazla thread tarafından çağrıldığında
sorunlar yaşayabilirmiyim yada bu tür işlemlerin başka çözüm yolları varmıdır.

teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Re: Comport uygulaması hakkında

Mesaj gönderen bulutsuzluk_35 »

madem cihaz ancak kendine birşey geldiğinde cevap veriyor yani durduk yere herhangi bir veri göndermiyor işin çok basit bence
sıradan cihaza komut gönderceksin ondan sonra misal 50 ms içerisinde doğru cevabı aldığın zaman diğer cihaza geçeceksin.Yok istediğin şey cihazların durum bilgisi ise senin sürekli cihaza nbr nasıın demen pek mantıklı değil.Bu noktada cihazların yazılımının değiştirilerek durum bilgisini misal 5 sn bir sana göndermesi daha mantıklı gibi geliyor bana.Ama şu anki pozisyonda sen daha şanslısın gibi geliyo bana

component.onafterreceive(gelenbilgi)
global=gelenbilgi;

timer1.ontimer olayı
verigönder;
timer1.enabled=false
timer2.enabled=true

timer2.ontimer
if gelenbilgi<>' ' ve timer<500 then
begin
timer2.enabled:=false;
gelenbilgi yi kullan
timer1.enabled=true;
end;

gibi bişey aklıma geldi.Yani söylediklerinden anladığım kadarıyla yardımcı olmaya çalıştım.İşallah faydası olmuştur.Ama dediğim gibi cihazdan okuyacağın bilgi durum bilgisi gibi sürekli görmen icap ederse bu noktada cihaza ikide bir veri gönderipte ortalıkta gereksiz kalabalığın alemi yok cihazın yazılımını değiştirebiliyosanız daha iyi olur...

Kod: Tümünü seç

try
  try
    inc(Bilgi);
  except
    sabir;
  end;
finally
  inc(Mutluluk);
end;
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Comport uygulaması hakkında

Mesaj gönderen adelphiforumz »

Belki anlatmak istediğimi tam ifade edememiş olabilirim.
burada kilit olan şey 1 sn içerisinden yaklaşık 150 cihaza sorgu atmak ve onlardan gelen cevapları kaçırmadan yakalamak.
iş bu kadarlada kalmıyor cihazlardan gelen bilgiler bir veritabanından sorgulanıp tekrardan geriye cihaza sorgulama sonucu olumlu ise
bunun cevabını göndermem gerekiyor ki buda sadece 1 sn içerisinde olmalı bu yüzden acaba thread mi kullanmalıyım diye sormuştum
düşüncem en azından 150 cihazı 10 comporta bölersem her thread 15 cihazla uğraşır ve böylece hızdan kazanabilirim diye düşünmüştüm.
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Re: Comport uygulaması hakkında

Mesaj gönderen gkimirti »

Aynı anda 10 farklı cihaza 10 farklı comporttan eş zamanlı bağlantı kuracaksın, bu arada illaki haberleşme hataları vs. olacak ve bunun için belli bir süre timeout için beklemen gerekecek. Açıkcası 1 sn içinde 150 cihazı sağlıklı bir şekilde sorgulaman zor görünüyor. Ethernet protokolunde bile ipscan yapmak 150 cihaz için 2-3 saniyeyi aşıyor.
ÜŞENME,ERTELEME,VAZGEÇME
Cevapla