İyi akşamlar arkadaşlar.
Bu başlıkta sizlere elimden geldiğince seri haberleşme hakkında bilgi vermeye çalışacağım. Bildiğiniz üzere ben görsel konularda c#.net kullanıyorum.
Seri haberleşme konusu gerçekten içeriği çok fazla olan bir konu bu nedenle hand shaking,flow control v.b. konularda bilgi sahibi olduğunuzu var saymak durumundayım.
.net 2.0 da seri portlara ulaşma işi gerçekten çok kolaylaştırılmış durumda. Bizde bu işlem için .net2.0 ın bize sunmuş olduğu
System.IO.Ports sınıfını kullanacağız. ilk olarak Bu sınıfta temel işlemlerde kullanılan bazı özellikleri inceleyelim.
IsOpen ==> Seri portun açık olup olmadığını geri döner.(Sadece okunabilir)
Open ==>Seri portu açar.
Close ==>Seri portu kapatır.
WriteLine==>Seri porta veri yazar.
ReadLine==>Seri porttan veri okur.
Şimdide seri veri iletişimi için kullanacağımız portun pin yazpısını inceleyelim(resim vikipedi den alıntıdır)
Bizim ilk yapacağımız denemede 2 pc yi birbiri ile yada kendi pc mizin gönderdiği veriyi yine kendi pc mizden okuyacağımız için rx ve tx uçlarıni birbirine bağlayacağız.
Şimdi de işi programa dökelim. İlk olarak Visual studio da yeni bir proje oluşturalım.
Bunun için resimde de görüleceği file->new->project yolunu kullanacağız.
Daha sonra projemize bir isim verelim.
Şimdi de bilgi gönderip alacağımız textbox ve bilgiyi göndermek-almak için tıklayacağımız butonları resimdeki gibi projemize ekleyelim.
Ve en son olarak projemizin görünen son hali
Görsel konuları hallettiğimize göre şimdi sıra geldi kodları yazmaya.
ilk olarak dikkat etmemiz gereken açık olab bir portu açmamak veya kapalı olan bir portu kapatmamaktır.
bunun için IsOpen metodunu kullanacağız. Ve bu sayede açık olan portu tekrar açmaya çalışmayı engelleyeceğiz.
Aşağıda buton olaylarını inceleyelim.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace seri_hab
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
string giden = textBox1.Text + "_gitti";
serialPort1.WriteLine(giden);
}
private void button2_Click(object sender, EventArgs e)
{
string i = serialPort1.ReadLine();
textBox2.Text = "geldi" + i;
serialPort1.Close();
}
}
}
Bu akşamlık bukadar arkadaşlar yarın programı çalıştırıcaz ve 2 pc arasında haberleşme yapıcaz. İlerleyen derslerde de Pc den Pic e komutlar göndericez ve Pic den Pc ye veriler göndericez.