Micro Framework İle Seri Port Uygulaması

Yazar: Çeliker BAHÇECİ
Kategori: .NET Micro Framework
Eklenme Tarihi: 30.5.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


Çeliker BAHÇECİ

2004 yılında Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliginden mezun oldum. .Net platformu ile 2002 yılında tanıştım. Yazılım firmamda ekibim ile birlikte, .Net platformunda ticari uygulamalar geliştirmekteyim.

celiker.com
Bu makaleye ilk yorum yapan siz olun.

Yorumunuz