Makale Özeti

BU çalışmada kendi yeni SDK mizi kullanarak bir C# .Net projesi hazırlayıp eBox2300 de çalıştıracağız.Bu yeni C# projesi daha önce hazırlamış olduğumuz HaytisOS üzerine Deploy edilecekir.

Makale

Çalışma 4 : C# Projesi Oluşturmak ve Build Etmek

BU çalışmada kendi yeni SDK mizi kullanarak bir C# .Net projesi hazırlayıp eBox2300 de çalıştıracağız.Bu yeni C# projesi daha önce hazırlamış olduğumuz HaytisOS üzerine Deploy edilecekir.

SDK kullanarak, tek başına C/C++/C#  uygulamaları geliştirebilirsiniz hatta bu uygulamalar OS projenizin bir parçası olmak zorunda değildir, ama yine de yeni OS önceden yüklenmis ve cihaz (eBox2300) üzerine yüklenmiş ve hatta çalışıyor olmak zorundadır. Hem C/C++ hemd C# debug çalışması yapabilmemiz için iki instance (kopya ) VS 2005 gerekmektedir.Yani ikinci Visual Studio 2005 ide sini de açacağız.

C# projemiz OS boot ettikten sonra yani kendi OS umuz eBox2300 de calişirken C# projemizi deploy edeceğiz.Hatırlarsanız daha önce C/C++ projeyi Image ile beraber cihaza download etmiştik. Bu sefer  daha farklı olacaktır.

Uygulamayı Deploy edebilmemiz için Gerekli OS Build Yetenekleri

C# uygulama ve Kod deploy edebilmemiz için OS Build birkaç araca ihtiyacı vardır.Proje olarak geliştirilmiş kodu deploy edebilmek için,farklı networking haberleşme kurulumuna ihtiyaç vardır bu genelde Corecon diye adlandırılır.
Corecon için aşağıdaki 5 modulun OS kernel tarafından kurulmuş olması gerekir.

• ConmanClient2.exe

• CMaccept.exe

• eDbgTL.dll

• TcpConnectionA.dll

• ClientShutDown.exe

Eğer Catalog View bölümüne bakarsanız  orda en alta Third Party bölümünde Corecon_X86 Files componenti bu modullerin hepsini içermektedir.Eğer OS Build ederken bu componentleri kurmadıysanız geri dönüp OS build ‘a bu componentleri ekleyip öyle devam etmelisiniz.Aksi takdirde uygulamamız deploy edilemez.

.NET Compact Framework u biz tamamiyla OS Image imiza eklediğimiz için şimdilik .NET CF yüklememize gerek yoktur.

C# Projesi Oluşturmak

Basit bir C# projesi oluşturalım. İkinci VS 2005 çalıştıralım ve FileànewàProject deyip yeni projemizi açalım. Formun sol tarafında Project types Other languages  genişletip,Visual C# i genişlet, Smart Device genişlet ve en son olarak Windows CE 5.0  (5.0 ,6.0 da da çalışır) seçelim.Sağ taraftaki Templates listesinden Device Application seçelim.Yeni proje adını verelim. Ve tüm ayarları tekrar kontrol ettikten sonra OK basalım.  Resim 37 deki gibi.


Resim 37

Birkaç saniye sonra yeni projemiz oluşturulmuş oldu ve Form Resim 38 deki gibi karşımıza geldi.Solution Explorer a bakarsanız orda yeni projemizin eklendiğini göreceksiniz.


Resim 38

Proje oluştuktan sonra basit kodumuzu yazmamız gerekiyor. Genelde Embedded cihazlarda screen’ler 320*240 olmaktadır. Bu sebeple eğer ihtiyaç duyuyorsanız forma sağ tıklayıp properties den size 320*240 yapabilirsiniz.Resim 39-40.


Resim 39

Resim 40

Viewà Toolbox dan diyerek tool box ı açalıim ordan 2 tane buton bir tane editbox bir tane de trackbar Form a ekleyelim.Resim 41 deki gibi


Resim 41

Bu uygulama sola butan basıldıgında eger trackbar en solda degilse bir adım sola kaydıracak. Sağa basıldığında trackbar en sağda değilse bir adım sağa kaydıracak bu işlemler yapılırken textbox içinde de ilgili hareket yazılacaktır.

Kod aşağıdadır.

private void button2_Click(object sender, EventArgs e) //Her tıklamada Trackbar 1 adım sağa gitsin

        {

            if (trackBar1.Value != 10)

            {

                trackBar1.Value += 1;

                textBox1.Text = "SAGA DOGRU GITTI";

            }

        }

 

        private void button1_Click(object sender, EventArgs e)// Her tıklamada Trackbar 1 adım sola gitsin

 

        {

            if (trackBar1.Value != 0) {

 

                trackBar1.Value -= 1;

                textBox1.Text = "SOLA DOGRU GITTI";

            }

        }

Şimdi uygulamamızı Build edebiliriz. Menu den Buildà Build MerhabaEmbeddedCS  seçip yeni projemizin hızlı bir şekilde build olduğunu ve hata vermediğini görürüz. Resim 42  deki gibi..


Resim 42

Hedef Cihaza Yeni Uygulamanın Deploy Edilmesi

Şimdi yeni C# uygulamamızı oluşturduk. Örnek birkaç kod yazdık ve başarılı bir şekilde Build ettik. Şimdiki adım bu uygulamanın asıl çalışacağı ortama deploy etmemiz ve o ortamda çalıştırmamız olacaktır.

Daha önce de belirtiğimiz gibi şu an bilgisayarda 2 tane VS 2005 çalışıyor olmalı biri Yeni OS image projesinin oldugu ve running modda, diğeri ise C# uygulamamızın build edildiğidir..

Her iki sistemi de birbirleriyle Corecon network ile bağlayıp konusturabilmemiz için birkaç adımlık işlemlere ihtiyaç vardır.

1.    Kendi OS ununuz bu örnekde HaytisOS kullandık diger VS 2005 de device attach değilse önceki adımları işleyerek kendi (OS) İşletim sistemimizin cihaz üzerinde çalışır olmasını sağlayalım

2.    Eğer eBox2300 DHCP den bir IP adresi almışsa bu IP adresini öğrenebilmek için eBox da Start àRunàcmd deyip Enter’a basalım açılan konsola ipconfig deyip eBox’ın almış olduğu IP adresini bir yere not edelim ilerde işimize yarayacaktır. Diğer bir yöntem VS2005 de Alt+1 e basarak açılan ekrana s ipconfig/d  bu sefer cihazın IP adresi VS output penceresinde yazacaktır.

3.    Eğer statik IP ile çalışmak istiyorsanız, eBox a manuel olarak bir IP vermeliiniz.Bu işlemi de eBox 2300 ün Control panelinden Netwrok Device’a tıklayıp açılan formdan IP adresini Subnet Mask(255.255.255.0) vermeniz yeterlidir.Cihaza IP adresi verdikten sonra bir de kendi PC nizin ip adresini kontrol edip aynı subnetworkde olduğunuzu onaylayın.

Şimdi Hedef cihazın IP adresini C# projenin çalıştığı VS2005 e ayarlamamız gerekmektedir.. Bunun için Solution Explorerdan proje adına sağ klik yapıp properties diyelim. Properties Penceresi karşımıza gelecektir.Burdan Device geçelim.Resim 43.


Resim 43

Bu pencerede deploy the latest version of .NET Compact Framework. Seçeneğini boş bırakalım çünkü biz image yaparken son halini image a yollamıştık.

Şimdi ToolsàOptions ve Options penceresinden Device Tools bölümü genişletip geçerli olan device kendi SDK mız olan HaytisOS SDK yı seçelim resim 44. ve sonra Properties  e basalım. Yeni pencere resim 45 deki  gibi açılacaktır.Burdan TCP Connect transport dan Configure a basıp eBox2300 ün statik IP adresini yazıp 3 defa OK basıp pencereleri kapatalım.


Resim 44

Resim 45

Biz şimdi bağlantı için gerekli tüm ayarlarmalar yaptık.Şimdi Corecon iletişimi için eBox üzerinde gerekli olan componentleri çalıştırmamız gerekmektedir.

HaytisOS tasarımının olduğu IDE de ALT+1 e basarak Windows CE Command Prompt penceresini açalım.Komut satırına aşağıdaki komutları yazıp enter a basalım

  • s conmanclient2
  • s cmaccept
  • gi proc

Resim 46

Daha sonra  gi proc komutu ile çalışan uygulamaları listeleyelim ve  conmanclient2.exe , cmaccept.exe  işlemlerinin hala çalışır olduğundan emin olalim.(Resim 46) Eğer bunlar çalışmıyorsa Corecon komponeti image içine eklenmemiştir. 

cmaccept.exe  çalıştıktan sona  sadece 3 dk içinde bağlantıyı sağlayıp uygulamayı deploy etmeliyiz. Aksi takdirde ClientShutdown Corecon bağlantısını durdurur.Eğer bağlantı gitmişse tekrar corecon u çalıştırmalısınız.

Eğer herşey yolunda gitmiş ise artık  C# uygulamasının olduğu VS 2005 e gidip MerhabaEmbeddedCS uygulamasını seçip ToolsàConnect to device  deyip arkasından HaytisSDK yı seçip connect e tıklayabilriz.Resim 47. Bağlantı sağlandığından Connection succeeded mesajı belirir.Resim 48


Resim 47

Resim 48

Şimdi bağlantı kurulumu bitmiştir.Sistem projenin deploy edileceği aşamaya gelmiştir.
Eğer bu bağlantı yapılırken problem olursa netwrok bağlantılarını iyice kontrrol ediniz.IP adres tanımlamalarına dikkat ediniz. Belki de Corecon u kapatıp tekrar çalıştırmanız gerekebilir.

C# projemize geri dönelim ve MerhabaEmbeddedCs projemize sağ click yapıp DebugàStart New Instance   diyelim, birkaç saniye sonra projemiz hic bir hata vermeden eBox a yüklenmiş ve eBox ekranında çalışır halde göreceksiniz.


Resim 48

Resim 49

Resim 50

Tebrikler…

Başardınız…

Georgia Institute of Technology tarafından hazırlanan A Tutorial Approach with Laboratory Exercises for Windows Embedded CE 6.0  and the eBox 2300 SoC Embedded Computer makalelerinden yararlanılarak hazırlanmıştır.
 

Hasan AYTIŞ
Trakya Universitesi
Fen Bilimleri Enstitüsü
Bilgisayar Mühendisliği Ana Bilim Dalı
hasanaytis@trakya.edu.tr