Seri portdan haberleşme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Seri portdan haberleşme

Mesaj gönderen meguntr »

Merhaba arkdaşlar,
ben seri porta bağlı bir sayaçtan bilgi okutmak istiyorum, bunu nasıl yapabilirim, ben mantığınıda pek bilmiyorum, bazı bileşenler varda kullanamadım, mantığının anlaşılması için kod olarak nasıl yazılıyor bilgis
i olan var mı?
computemo
Üye
Mesajlar: 15
Kayıt: 16 Haz 2003 08:25

Mesaj gönderen computemo »

Hocam Sana Tapro yu tavsiye ederim.Port larla ilgili istediğin herşeyi yapabilirsin.

Sadece kullandığın cihazın haberleşme mantığını bilmen lazım.Gerisi readport write port komutlarıyla gerçekleşiyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

TurboPower Async Pro bu işte iyidir. İçinde baya da bir örnek geliyor. Elinde yoksa, sitede 3. parti bileşenler kısmına bak.

Kolay gelsin.
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

Teşekürler arkadaşlar dediğiniz compenent ti kurdum, ama seriportlarla ilgili kısmını kuramamıyız sadece, anladığım kadarıyla apdcomport1 diye bir bileşen var ,onu bir forma ekledim örneklerede baktım ama, write -read komutunu nasıl kullanılacağını göremedim...
yoksa başka bir bileşenden mi kullanacağım....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

örneklerini incele. Examples\Delphi klasörü altında. Sanırım ExComm.dpr olması lazım.

Kolay gelsin.
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

o örnekde APAX_TLB satırına hata veriyor, ben bileşeni yanlış mı kurdum acaba, ben packages dizininde ki A406_R70.DPK YI Açtım ve compile ve install dedim ,aynı şekilde bir sürü *.dpk dosyası var. hangi doosyadan kurmam gerekiyor..
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

merhaba arkdaşlar siz örnek bir kod yazdınız mı, apdcomport1 bileşenini getchar le okumaya çalıştığımda hiçbir şey göstermiyor.ben bu kodu butonun cilick olayına koymuştum, acaba trigger olaylarına veya başaka bir yere mi koyacağım,
sizlere kolay gelsin
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

TApro yu hiç kullanmadım ama genelde serial componentler aynıdır diye dusunuyorum
ben projelerimde ComPort Library ver. 2.60 ı kullanıyorum
bunda da porttan bir seyi okumanın iki yolu var
ya olaylar ile yada portu surekli dinleyerek
mesela bufera bir bilgi geldiginde olay olusturuyor siz o olay yordamına gelen bilgiyi degerlendirecek kodu yazıyorsunuz
yada suruekli buferı kontrol ediyorsunuz
kendi projemde kullandıgım ReadData proceduru asagıda

Kod: Tümünü seç

function TfrmMain.ReadData: String;
var
  t: DWord;
  s: string;
begin
  result := '';
  t := GetTickCount;
  repeat
    Application.ProcessMessages;
    //Delay(10);
    Com.ReadStr(s, Com.InputCount);
    result := result + s;
  until (s<>'') or ((GetTickCount - t) > 1000);
end;
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

bende

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
begin
ComPort1.ReadStr(Str, Count);
edit1.Text:=str;
end;

komutu kullandım herhalde sorun burda veya bağlı olan sayaçla ilgili birşeyler yapmam gerekiyor mu?

sadece sayacın ustundeki artan metrajı edit.text de görüntülemek istiyorum

bir buffer kodumu yazmam gerekiyor

kolay gelsin
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

yazdıgın gibi olay yordamı ilede calısması lazım
bendeki componentin Events diye bi ozelligi var
buraya dahil edilenler icin event olusturuyor
belki sizin kullandıgınızda da benzer bir property olabilir
eger isaretlemezseniz evRxChar 'i bir olay olusmaz RxChar icine yazdıgınız kod da calısmaz...
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

properties te , events olaylarının hepsi true gözüküyor, senin yazdığın koduda çalıştıramadım
sadece bir buttonun cilick olayına yazarsak o kodu nasıl çalıştırırız

kolay gelsin
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

okutmak istediğin portu tespit edip hangi baudrate de bilgi gönderdiğini biliyorsan okuyabilmen lazım. baudrate çok önemli!

tam olarak problem nedir? herhangi bir bilgi alamıyor musun?
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

Com kullanılan componentin Name(adı)
kullanımı ise ShowMessage(ReadData);
eger TimeOut kadar bilgi gelmezse dongu kırılıyor
benim yazdıgım fonsiyonda 1000 ms yani 1 sn.
meguntr
Üye
Mesajlar: 78
Kayıt: 23 Eki 2003 02:09

Mesaj gönderen meguntr »

Teşekkürler arkadaşlar
öncedeki problemim portu açtığımda hiçbir bilgi görememem di,
yani edit1.text e hiçbir bilgiyi getirmiyordu..

ComPort.ShowSetupDialog;

komutunu kuladığımda gördüm ki, bilgisayarda ki com1 ' in özelliklerini kendi alıyor
ve benim verdiğim baundrate gibi özellikleri değişikti
meselela benim programımda 9600 iken , bilgisayarın degeri 1200 müş..
ama şimdide

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
i: integer;
begin
ComPort.Read(Str, Count);
Memo.Text :=Memo.Text + inttostr(i);
end;

kodunu yazdığımda ,sayaç üzerindeki değer 96,45 iken
memo.text 'te devamlı 86 değeri geliyor ..
sayaçın üzerindeki değeri tam olarak nasıl alırım

kolay gelsin
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

arkadaşlar konuyu saptırıyormuyum bilemem ama,
acaba port işlemleri ve belirttiğiniz companentlerle ne tür şeyler yapabiliriz onu öğrenmek istiyorum. Mesela bi ışıklı tabelaya bilgi göndermek falan gibi şeyler mi? veya daha değişik örneği olan varmı..

kolay gelsin..
Cevapla