Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Micro Framework İle Seri Port Uygulaması

Yazar: Çeliker BAHÇECİ

Kategori: .NET Micro Framework

Eklenme Tarihi: 30.05.2009 21:21:12

Seri port üzerinden PC ile MF Devepoler kitimizi haberleştiriyoruz.

Merhabalar, bu uygulamada Micro Framework platformunda seri port haberleşmesinin nasıl gerçekleştiğini göreceğiz.

Bunu için 2 uygulamamız var birisi PC mizde çalışan veri gönderip almaya yarayan Windows uygulaması, diğeri ise TahoeII üzerinde çalışan yine seri porttan veri geldiğinde gösteren ve sağ tuşa( SW8) bastığımızda DateTime.Now dan saniye bilgisini gönderen Micro Framework uygulamamız.

Masa üstünde klasik aşağıdaki kodla COM portu açar ve veri bekleriz


SerialPort1 = new SerialPort("COM6", 9600, Parity.None, 8, StopBits.One);

SerialPort1.Open();

SerialPort1.DataReceived += new SerialDataReceivedEventHandler(x_DataReceived);


Açtıktan sonra veri geldiğinde

string okunan = SerialPort1.ReadLine();


Okur ve TextBox2 de gösteririz. PC den MF cihazında veri göndermek içinse, Com1 portu açık iken :

SerialPort1.WriteLine(textBox1.Text);


PC de çalışan uygulamamız bu şekilde çalışmaktadır.



MF cihazında ise COM1 portuna gelen verileri okumak için , bir TextFlow kullandık :


public
SerialPort c1 = new SerialPort("COM1", 9600);

public Window CreateWindow()

{

mainWindow = new Window();

mainWindow.Height = SystemMetrics.ScreenHeight;

mainWindow.Width = SystemMetrics.ScreenWidth;

mainWindow.Background = new SolidColorBrush(Colors.Black);

text = new TextFlow();

text.TextRuns.Add("Seri Port Deneme v0.1", Resources.GetFont(Resources.FontResources.segoe), Colors.Red);

text.TextRuns.Add(TextRun.EndOfLine);

text.TextRuns.Add("by Celiker", Resources.GetFont(Resources.FontResources.segoe), Colors.Red);

text.TextRuns.Add(TextRun.EndOfLine);

text.TextRuns.Add("-", Resources.GetFont(Resources.FontResources.calibri), Colors.Green);

text.HorizontalAlignment = Microsoft.SPOT.Presentation.HorizontalAlignment.Center;

text.VerticalAlignment = Microsoft.SPOT.Presentation.VerticalAlignment.Center;

text.TextAlignment = TextAlignment.Center;

mainWindow.Child = text;

….

c1.ReadTimeout = 800;

c1.Open();

c1.DataReceived += new SerialDataReceivedEventHandler(okumaoldu);

return mainWindow;

}


Şuan COM1 portu hazır bir şekilde verilerin gelmesini beklemektedir. Gelen veriler seri portun bufferinde saklanacaktır. Alınan veriyi görüntülemek için :


gelen = "";

byte[] okunanb = new byte[20];

c1.Read(okunanb, 0, 20);

char[] okunanc = System.Text.UTF8Encoding.UTF8.GetChars(okunanb);

for (int i = 0; i < okunanc.Length-1; i++)

gelen += okunanc[i];


kullanıyoruz. Şimdi gelen veri gelen değişkenin içinde, onu görüntülemek kaldı. Tıpkı aşağıdaki gibi :


Uygulama ile ilgili örneğin videosunu buradan izleye bilirsiniz.
http://www.metacafe.com/watch/2413686//

Çeliker BAHÇECİ
Bilg. Müh.
ben @ celiker.com

Yazar Hakkında Yorum Yok Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.