C# ile Seri İletişim Aslı Ergün.

Slides:



Advertisements
Benzer bir sunumlar
Java Programlama Giriş/Çıkış
Advertisements

Serileştirme (Serialization)
Dizi Kullanan Örnekler
C# - Metotlar.
Fonksiyonlar.
Tuğba DEMİREL
SINIFLAR Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Nesneye Dayalı Programlama
String Diziler(Katarlar)
Visual Basic 6.0 Ders Notları
OOP UYGULAMA 5.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 4: Diziler
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Diziler.
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
METODLAR.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 7: Dosyalama İşlemleri Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
.Net teknolojisi ve C# Yasin Gedik Dokuz Eylül Üniversitesi (4. Sınıf) Microsoft Danışman Öğrenci
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
FONKSİYONLAR.
Koşul İfadeleri ve Akış Kontrolü Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir akış kontrolü oluşturabilmek için koşul ifadelerini.
METOTLAR.
DOSYA İŞLEMLERİ.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller Aslı Ergün.
METODLAR Esra SARI.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
JAVA’DA DÖNGÜLER.
Numaralandırmalar(Enumaration)
Kalıtım , Sınıf Asli Ergün.
Demet AYDIN METODLAR Demet AYDIN
BPR152 ALGORİTMA VE PROGRAMLAMA - II Öğr. Gör. Bayram AKGÜL
Nesneye Dayalı Programlama
DÖNGÜLER.
JAVA’DA DİZİLER Dr.Galip AYDIN.
Ders İçeriği Liste Soyut veri yapısı (ADT)
NESNEYE YÖNELİK PROGRAMLAMA
Bil 102 Bölüm 6 Diziler.
Bil 102 Bölüm 3 Java’da Program Akış Denetimi Bil 1021.
Ders 2- Veri türleri, Karar ve Döngü Yapıları, Görsel Kontröller
SINIFLAR ve NESNELER. İlk sınıfımızı ekleyelim class KrediHesap { public ulong HesapNo; public double Limit; public string KartSahibi; }
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Seri Port ile İletişim.
Hafta2 Rekürsif Algoritmalar
RS Tüm dünyada kabul edilen ve uluslararası standart haline gelmiş bazı haberleşme ara yüzleri vardır. Bütün üreticiler bu standartlar üzerinden haberleşme.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 7: Dosyalama İşlemleri
Seriport String İletimi
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
C# WINDOWS UYGULAMASI HAZIRLAMA ADO.NET SUNU2 -ŞİFRE GÜNCELLEME FORMU OLUŞTURMA SAVAŞ TUNÇER
Bilgisayar Programlamasına ve Veri Analizine Giriş
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
Kurucular(Yapıcılar), Yıkıcılar
Bilgisayar Programlamasına ve Veri Analizine Giriş - VII
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

C# ile Seri İletişim Aslı Ergün

if (SeriPortum.IsOpen == false) { SeriPortum.Open(); } SeriPortum.Close(); string veri = SeriPortum.ReadLine(); //Seri porttan veri okur. SeriPortum.WriteLine(veri); //Seri porta veri yazar.

Seriport Olayları private void Fonksiyonum(object s, SerialDataReceivedEventArgs e) { string veri = SeriPortum.ReadLine(); }

Seri port fonksiyonları, olayları ve özellikleri serialPort.BaudRate: SerialPort sınıfının BaudRate isimli özelliği bilgisayardan kontrol edeceğiniz sistem ile haberleşme esnasında ki veri iletişimi hızı. Bu özellik sistemden sisteme değişiklik göstermektedir. BaudRate için şunu söyleyebiliriz saniye gönderilen bit sayısı, eğer sisteminizle iletişim hızınız 9600 ise bilgisayarın seri portundan saniyede 9600 bit veri gönderip alabilirsiniz demektir. Bu yüzden eğer sisteminiz 19200 ise ve siz bilgisayar programından bu özelliği set etmez iseniz verileri sağlıklı bir şekilde gönderip alamayacaksınız çünkü bu özelliğin default değeri 9600. serialPort.IsOpen: SerialPort sınıfının IsOpen isimli özelliği seri portun açık olup olmadığını bool türünden söyleyen bir özellik. Portu kullanmadan önce mutlaka açık olup olmadığını kontrol etmenizde fayda var eğer portu kullandıktan sonra kapatmadan tekrar açmaya çalışırsanız programınız hata verecektir. serialPort.PortName: SerialPort sınıfının PortName isimli özelliği seri portunuzun ismini isteyecektir. Eğer bir çevirici kullanmadan direk seri porta bağladıysanız ‘COM1′, bir çevirici aracılığıyla ismini değişti ise ‘COM5′, ‘COM6′ vb. string türünden port isminizi girebilirsiniz. serialPort.ReadTimeout: SerialPort sınıfının ReadTimeout isimli özelliği seri portun cihazdan kaç saniye boyunca cevap beklemesini istiyorsanız onu int türünden mili saniye cinsinden girmeniz gerekiyor. Eğer istediğiniz cihazdan 3 saniye boyunca cevap gelmez ise hata vermesi ise buraya serialPort.ReadTimeout = 3000 demeniz gerekiyor.

serialPort.WriteTimeout: SerialPort sınıfının WriteTimeout isimli özelliği ise seri portunuzun yazma işlemini kaç saniye boyunca sürdürmesini istiyorsanız yine int türünden mili saniye cinsinden bu özelliği set etmeniz gerekmektedir. Serial Port sınıfının önemli bir kaç özelliğini inceledikten sonra şimdide bir kaç tane fonksiyonlarını inceleyelim. serialPort.DiscardInBuffer(): SerialPort sınıfının DiscardInBuffer isimli fonksiyonu seri portunuzun bufferını temizlemek için kullanılan geri dönüş değeri ve parametresi olmayan fonksiyondur. Çok sık veri alış-verişi yaptığınız sistemlerde kullanmanız gereken bir fonksiyondur. Bazen haberleşme esnasında kullanmadığınız ama portda kalan verileriniz olabilir böyle bir durumda ikinci kez veri okumaya kalktığınız da hem o önceki okumada kalan verileri hem de cihazdan gelen doğru cevabı alırsınız. Bundan dolayıda doğru veri ile işlem yapmamış olursunuz. serialPort.DiscardOutBuffer(): SerialPort sınıfının DiscardOutBuffer isimli fonksiyonu seri portunuzun veri gönderme aşamasındaki verileri temizlemek için kullanmanız gereken geri dönüş değeri ve parametresi olmayan fonksiyonudur. serialPort.GetPortNames(): SerialPort sınıfının static GetPortNames isimli fonksiyonu bilgisayarınızdaki kullanılabilir portların isimlerini size string dizisi şeklinde söyleyen fonksiyondur. Eğer kullanıcınıza açık olan portları söylemek istiyorsanız bu fonksiyonu kullanabilirsiniz.

erialPort.Open(): SerialPort sınıfının Open isimli fonksiyonu seri portunuzu açmanıza yarar. Hemen şunu söylemekte fayda var bu işlemi yapmadan önce bir hata almak istemiyorsanız port adını, baudRate’inizi belirtmeyi unutmayın. Eğer port adını belirtmez iseniz veya yanlış yazarsanız hata alacaksınız. serialPort.Read(byte[] buffer, int offset, int count): SerialPort sınıfının Read isimli fonksiyonu seri portunuzdan veri okumanızı sağlayan bir fonksiyondur. İlk parametresi byte türünden bir dizi, ikinci parametre dizinin kaçıncı indisinden itibaren veri yerleştireceğini, son parametresine ise kaç byte veri okuyacağınızı söylemeniz gerekiyor. İlk parametre char türünden bir dizide olabilir. Fonksiyonun geri dönüş değeri ise kaç byte okunduysa onu size int türünden söyler. serialPort.ReadByte(): SerialPort sınıfının ReadByte isimli fonksiyonu seri portdan sadece bir byte okumanızı sağlayan fonksiyon. İsmi ReadByte olmasına rağmen geri dönüş değeri int türüdür ve size okunan değeri söyler. serialPort.ReadExisting(): SerialPort sınıfının ReadExisting isimli fonksiyonu çağrıldığı zaman seri portdan okunabilen tüm veriyi size string türünden geri döndürür. serialPort.ReadLine(): SerialPort sınıfının ReadLine isimli fonksiyonu seri portdan NewLine karakteri gelene kadar tanımladığınız ReadTimeout süresince bekler. Gelen veriyi size string türünden geri döndürür. serialPort.Write(): SerialPort sınıfının Write isimli fonksiyonunun 3 tipi var bunlardan biri cihaza göndermek istediğiniz veriyi string türünden göndermenizi sağlıyor; serialPort.Write("Bu veriyi cihaza yaz"); İkinci yöntem ise veriyi byte dizisi türünden göndermenizi sağlıyor. byte[] gidecekVeri = new byte[] {0x30, 0x31, 0x32, 0x33, 0x34}; serialPort.Write(gidecekVeri, 0, gidecekVeri.Length); Tahmin edeceğiniz gibi ilk parametre byte türünden bir dizi, ikinci parametre ise bu dizinin kaçıncı indisinden itibaren üçüncü parametredeki değer kadar seri portdan veri göndermenizi istiyor. Birde byte dizisinin yerine char dizisi ile gönderebileceğiniz üçüncü bir tipi bulunuyor. serialPort.WriteLine(): SerialPort sınıfının Write isimli fonksiyonu göndermek istediğiniz veriyi string türünden parametre geçerek gönderebilirsiniz. Write fonksiyonundan tek farkı göndermek istediğiniz verinin sonuna ‘\n’ karakterini ekliyor olması.

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO.Ports; namespace Send_Receive { public partial class Form1 : Form SerialPort port1 = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One); string s = null; public Form1() InitializeComponent(); port1.Open(); port1.DataReceived += new SerialDataReceivedEventHandler(SerialReceive); // port1.ReadTimeout = 5000; // 5000ms } public void SerialReceive(object sender, SerialDataReceivedEventArgs e) s += port1.ReadExisting(); private void Write_Click(object sender, EventArgs e) port1.WriteLine("*IDN?"); private void Read_Click(object sender, EventArgs e) // s += port1.ReadExisting(); textBox1.Text = s;