com port dinleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

com port dinleme

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar,

ComPort Bileşeni kullanıyorum bir örnek buldum resimdeki gibi sürekli kantardaki kiloyu alt alta atıyor
Sabit bir şekilde nasıl edit1.text atabilirim

Kod: Tümünü seç

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
 var
  Str: String;
begin
   ComPort.ReadStr(Str, Count);
  Memo.Text := Memo.Text + Str;
end;
Resim

teşekkürler
ertank
Kıdemli Üye
Mesajlar: 1657
Kayıt: 12 Eyl 2015 12:45

Re: com port dinleme

Mesaj gönderen ertank »

Merhaba,

Bu soru kantar kısmını da ilgilendiriyor aslında. Kantarlar load cell denilen sensörler ile ağırlık hesabı yaparlar. Ağırlık hesabını çoğu kantar gösterge olan kısımda monte edilmiş elektronik kartlar yardımı ile yapar. Bu elektronik kartlar içlerindeki yazılıma göre sürekli okudukları elektrik sinyalini ağırlık rakamına çevirip gösterge üzerinde rakam olarak yazar.

Bu noktada bazı kantarlar ağırlık değeri değişmese de ekran göstergesindeki rakamı siz farketmeden sürekli yazıyor ve aynı zamanda RS232 (COM PORT) üzerinden iletiyor olabilir. Bazıları ise değer değişmediği sürece ekrandaki rakamı güncellemeye çalışmaz, COM PORT üzerinden de bilgi göndermez.

Sizin kantar davranışını gözlemleyip bir noktada bu değerlerden bir tanesini kabul etmeniz gerekebilir. Kabul mantığını yine sizin belirlemeniz gerekir.

Bununla birlikte aşağıdaki yöntemlerden size uygun olanı kullanmanız mümkün olabilir.

1- "eğer son okunan değer ile yeni okunan değer aynı ise birşey yapma" gibi bir kod mantığı geliştirebilirsiniz. Böylece en azından sürekli aynı değer ekrandaki bileşen içinde güncellenmeye çalışılmaz. Sadece değişiklik olduğu zaman değeri değiştirirsiniz.
2- Kantardan okunan değeri ekranda göstermeden bir değişken içinde tutarsınız. Kullanıcı "kantar değeri oku" gibi bir butonu tıkladığı zaman en son ağırlık değerini taşıyan değişken bilgisini ekranda gösterebilirsiniz.

Bunlar dışında farklı mantıklar geliştirmekte mümkün olabilir.

NOT: Paylaştığınız ekranda iki adet MEMO bileşeni var. Kod içinde bir tane referans var. Hangisinin hangisi olduğunu anlamak biraz zaman alabiliyor. Örnek resim bu anlamda daha anlaşılır olabilirdi.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: com port dinleme

Mesaj gönderen erdogan_ozkaya »

Hocam cevabınız için teşekkür ederim, söylediğiniz gibi indikatör cihazı var ondan alıyorum veriyi memo1 nesnesine sürekli son kiloyu atıyor ekleyerek nasıl bir döngüye sokabilirim ki ? sürekli yenilemeden ekrandaki sadece son kiloyu alsın

Teşekkürler
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: com port dinleme

Mesaj gönderen yusuf simsek »

Aslında çözümü siz de çok iyi biliyorsunuz. Ama elektronik bir devreyle çalışmaya başlayınca ( sürekli elektronikle çalışmıyorsanız ) en küçük hatada çakılıp kalıyor ve çözüm üretemiyorsunuz... ( yakın zamanda ben de bir cihazla uğraştığım için biliyorum )

Private kısmına bir değişken tanımlayıp ( integer ya da string ) FormCreate olayında sıfırlarsınız...

Her veri geldiğinde ( ComPortRxChar olayında ) Gelen veri ile değişkeni kontrol edersiniz...

Değişken ve Gelen Veri farklı ise; Gelen Veriyi Değişkene aktarıp Ekrana basarsınız...

Faklı değilse hiçbir işlem yapmanız gerekmez...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: com port dinleme

Mesaj gönderen Lord_Ares »

erdogan_ozkaya yazdı: 16 Eyl 2017 11:21 Arkadaşlar,

ComPort Bileşeni kullanıyorum bir örnek buldum resimdeki gibi sürekli kantardaki kiloyu alt alta atıyor
Sabit bir şekilde nasıl edit1.text atabilirim

Kod: Tümünü seç

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
 var
  Str: String;
begin
   ComPort.ReadStr(Str, Count);
  Memo.Text := Memo.Text + Str;
end;
Resim

teşekkürler
Bu örneğinizi paylaşma şansınız var mı ? Com porttan gelen bilgiyi okumak istiyorum. Kullandığınız comport bileşeni nedir ?
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: com port dinleme

Mesaj gönderen erdogan_ozkaya »

delphi hangi versiyonu kullanıyorsunuz
aegean
Üye
Mesajlar: 41
Kayıt: 24 Tem 2019 09:32

Re: com port dinleme

Mesaj gönderen aegean »

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
ComPort.ReadStr(Str, Count);
Memo.Text := Str;
end;

seklinde değistirn herzaman en son gelen gorunur
Cevapla