Delphi7 ile Com port a hex değer gönderme Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
pozitive
Üye
Mesajlar: 9
Kayıt: 03 Nis 2007 01:01

Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen pozitive »

Merhabalar

Delphi ile com porttan hex değerler göndererek micro işlemciyi kontrol etmek istiyorum fakat hex olarak göndermeyi başaramadım. Bu problemi nasıl çözebiliriz.
Bu konuda yardım ederseniz çok sevinirim.
İyi Çalışmalar
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen mrmarman »

Bunu yapamama ihtimalin olmadığını düşünüyorum çünkü bilgi gönderirken comport bileşenlerinde öyle içinden çıkılamayacak kadar sayıda fonksiyon yok ...

Mikroişlemcinin doğru tepki verdiğinden emin olmak lazım. Gereksiz vakit kaybı yaşayabilirsin. İki tane bilgisayar edin ve COM portlardan birbirine bağla. Nasıl bağlandığını biliyorsundur. 2-3 / 3-2 / 7-7 basit com bağlantısı. Sonra da bu projeni iki bilgisayar arasında haberleşece şekilde düzenle. Protokolünü oluştur. Ondan sonra mikroişlemciye geçersin. Mikroişlemciyi yazılımını sen tasarlıyorsan protokolünü yeniden elden geçir. Ne deyince komutu tamamlanmış kabul edecek ona karar ver. Genellikler bir tane tilda ( ~ ) kullanılır.
Resim
Resim ....Resim
pozitive
Üye
Mesajlar: 9
Kayıt: 03 Nis 2007 01:01

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen pozitive »

2 Bilgisayar arasında zaten dediğiniz bağlantı şekliyle deniyorum.Fakat hex olarak gönderemiyorum.
CportLip adında bir component kullanıyorum.
Daha önce com porttan gönderim hiç yapmadığım için çözüm üretemiyorum.
String değer olarak gönderim yapabiliyorum.
ComPort1.Writestr(String);
Ama dediğim gibi hex gönderim mantıgını tam olarak anlayamadım.

Bana bir yol gösterirseniz sevinirim.
zyildiz
Üye
Mesajlar: 115
Kayıt: 09 Mar 2004 01:22
Konum: Adapazarı

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen zyildiz »

hex diye forumda aratırsan birşeyler çkacağını düşünüyorum.
orneğin aşagıdaki linkte hex yapmak için başına $ işareti eklyin diyor.
viewtopic.php?f=1&t=24846&hilit=hex
Medeniyet dediğin hayat almaz, hayat verir. Senin dedelerin ninelerin bunu gerçekleştirdi... Şemsettin YEŞİL
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen mrmarman »

WriteStr yerine Write kullanabilirsin. Böylece string değil char göndermiş olursun.

göndereceğin hex değerini de CHR komutu ile ascii karşlılığını gönderirsen karşı taraf bunu hex olarak değerlendirir. Örneğin

Buf := '$01';
ComPort1.Write( Chr( StrToInt( Buf ) ), 1 );

böylece karşı tarafa 01 hex göndermiş olursun.

başarılar
Resim
Resim ....Resim
LifeTime
Üye
Mesajlar: 20
Kayıt: 09 Oca 2009 06:59

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen LifeTime »

Selamlar.. Öncelikle şunu belirtmek isterim ki burada bir bilgi eksikliği söz konusu. Hiç bir port'a, Seri port yada paralel port olsun yada LAN üzerinden gönderilecek bir bilgi olsun, HEX format yada Decimal format şeklinde göndermek söz konusu değildir. Bu bilgiler bu portlara binary olarak gider. Sen istersen Hex gönder istersen Decimal gönder yada Octal gönder hiç fark etmez. Program bu değeri binary kodlara çevirerek (9600 baud, 19200 baud, 38400 baud... 115200 baud vb.) elektriksel sinyaller olarak bu frekans hızlarında gönderir. Karşı taraf ise aldığı bu sinyalleri gerekli adreslere atayarak işleme koyar. Yani com port'a Decimal:255 değeri göndermenle Hex:FF göndermen arasında bir fark yoktur.

Saygılar.
pozitive
Üye
Mesajlar: 9
Kayıt: 03 Nis 2007 01:01

Re: Delphi7 ile Com port a hex değer gönderme Sorunu

Mesaj gönderen pozitive »

Benim işimi aşağıda yazdıgım kod yapabildi. Yardımcı olan ve yorum yazan herkese teşekkürler
hx:=('$'+'45');
ComPort1.Writestr( Chr( StrToInt( hx ) ) );

Şu anda farklı işlemler deniyorum.
hex 00 ı nasıl görebilirim. hex i stringe çevirirken

hex 00 null değer ondan doalyı göremem fakat
Hercules adında bir program var 00 olan yerlere{00} şeklinde değer döndürüyor.
Bunun için yapılabilecek birşey var mı?
Cevapla