Satır Besleme Karakterini (LF) İptal Etme

Başlatan FEHMİ_ASM, 26 Ocak 2012, 01:04:19

FEHMİ_ASM

  Visual C# ta yazmış olduğum programda-- PIC'e her byte gönderişimde öncelikle gönderdiğim asıl byte ve sonrasında değeri 0x0A olan LF bilgisi gidiyor. Sadece gönderdiğim byte'ın gitmesini istiyorum.

        serialPort5.WriteLine((textBox1.SelectedText));


Örneğin texte o an Ascii 2 varsa, COM1'e 0x32, 0x0A olarak gidiyor.
Hz.Hamza'nın Belinde İki Kılıç Duruyor ! Attığı Her Adım Bir Kalbi Durduruyor ! Ey Hamza ! Gördüğün Hiçbir Şeyden Korkmazsın , Bu Doğru Ama Heybetini Gizli Tut , Yürüyüşün Ölümü Korkutuyor !  İşte Hz.Ömer ve Hz.Ali , Biri Hattaboğlu , Biri Haydâr-ı Kerrar ! Ve Kolkola Ölümün Ağzına Giriyorlar !  Azrai

z

Visual C# dan anlamam merak edip baktigimda TextWriter.NewLine komutu ile satir sonu karakterinin degistirilebilecegini gordum.

CR LF yerine space yada null isini gorurse kullanilabilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

FEHMİ_ASM

#2
    Bunalmış Hocam benzer bir örneği birkaç saat önce inceledim. O da yaklaşık olarak benzer şeyler içeriyordu. Tek farkla, NewLine parametresine    " "    yüklüyordu. Yani bilgi yok, bu da muhtemelen 0x00 yüklenmesi anlamında.

   Evet,bir byte göndermeme rağmen her seferinde karşıya giden iki byte'ı PIC tarafında eleyerek bir byte'a indirebilirim, ama bu hem program sadeliğini bozuyor, hem de BackSpace işlemi sonucunda silinen yerde halen bir karakter varmış gibi algılanıyor ve bu ikinci durumun sebebi için LF parametresinden şüpheleniyorum (bu sadece önyargı). LF parametresi bu durumdan suçsuz olsa bile, ileride bunun gibi oluşabilecek ek byte'ları (demek aklıma geliyor) elemek gerekebilir.
Hz.Hamza'nın Belinde İki Kılıç Duruyor ! Attığı Her Adım Bir Kalbi Durduruyor ! Ey Hamza ! Gördüğün Hiçbir Şeyden Korkmazsın , Bu Doğru Ama Heybetini Gizli Tut , Yürüyüşün Ölümü Korkutuyor !  İşte Hz.Ömer ve Hz.Ali , Biri Hattaboğlu , Biri Haydâr-ı Kerrar ! Ve Kolkola Ölümün Ağzına Giriyorlar !  Azrai

Tagli

WriteLine() değil de sadece Write() kullanmayı bir dene. C# kullanmayalı çok oldu ama internette araştırınca bu fonksiyonun alt satıra geçmediğini okudum. Muhtemelen seri port class'ı için de tanımlanmıştır.
Gökçe Tağlıoğlu

ferdem

Byte byte veri gönderebilirsiniz, aşağıdaki örneğe bakabilirsiniz:
C# ile Seriporta veri gönderme örneği
Kodun ilgili kısmı:
        public void send(byte data)
        {
            if (serialPort1.IsOpen)
            {
                byte[] buffer ={ 0 };
                buffer[0] = data;
                serialPort1.Write(buffer, 0, 1);
            }
            else
            {
                MessageBox.Show("Port açık değil");
               
            }

        }


Kolay gelsin.

FEHMİ_ASM

Alıntı yapılan: Tagli - 26 Ocak 2012, 08:37:52
WriteLine() değil de sadece Write() kullanmayı bir dene.

   Evet Tagli hocam, sorun meğersem gözümün önünde imiş. Line ifadesini kaldırınca tek bir byte olarak gönderebiliyorum.

   Ferdem hocam sizin verdiğiniz örnek, program algoritmamda bana Port Kontrolü için örnek olacak.
   
   Esen kalınız.
Hz.Hamza'nın Belinde İki Kılıç Duruyor ! Attığı Her Adım Bir Kalbi Durduruyor ! Ey Hamza ! Gördüğün Hiçbir Şeyden Korkmazsın , Bu Doğru Ama Heybetini Gizli Tut , Yürüyüşün Ölümü Korkutuyor !  İşte Hz.Ömer ve Hz.Ali , Biri Hattaboğlu , Biri Haydâr-ı Kerrar ! Ve Kolkola Ölümün Ağzına Giriyorlar !  Azrai