Başlangıç > Lazarus > Lazarus KOL-CE ve Windows CE uygulaması

Lazarus KOL-CE ve Windows CE uygulaması


Merhaba ,

Bu yazıda lazarus ile windows ce işletim sistemi için bir uygulama ve socket bağlantılarını inceleyim.

Windows CE için uygulama gerçekleştirmek için EVC++ (embedded visual c++) veya visual studio kullanılabiliyor.

Ancak elinizdeki cihaz wince 4.2 gibi eski bir işletim sistemi ise o zaman uygulama gerçekleştirmek için EVC++ ile geliştirme yapmak zorundasınız zira visual studio’un tam desteği yok.

Ya da alternatif olan lazarus ve kolce paketini kullanmanız yeterli.

Ben “Lazarus-0.9.28.2-fpc-2.2.4-cross-arm-wince-win32.exe” ve kol-ce paketini kullandım.

Derleme için aşağıdaki değişiklikeri yapmanız yeterli.

Gelelim tcp ip projemize;

İlk önce projects menüsünden new ve kol toolkit app. seçmemiz gerekli.

Uses kısmına ise socket eklememiz gerekiyor, lazarusun kendine ait olan socket nesnesi exe boyutunu çok fazla büyütüyor.

Oluşturduğumuz formda ise bir edit ve bir send düğmesi yerleştirelim ve kodlama:

 procedure TForm1.Button1Click(Sender: PObj);
var
 adr : TInetSockAddr;
 soc : Tsocket;
 buf : String[255];
 Sin,Sout : Text;
 i : integer;

begin

 soc := fpsocket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //socket hazırlığı
 if soc=-1 then
 begin
 showmessage('Socket hatası');
 exit;
 end;

 adr.sin_family := AF_INET; //inet yapılandırılması
 adr.sin_port := htons(501); //hangi port?
 if srvip='' then
 adr.sin_addr := StrToNetAddr('192.168.1.5') //bağlanılacak ip
 else adr.sin_addr := StrToNetAddr(srvip);

 if not Connect (soc,adr,Sin,Sout) then
 begin
 ShowMessage('Bağlantı hatası : '+NetAddrToStr(adr.sin_addr)); //ip canlı değilse
 exit;
 end;

 buf := EditBox1.Text;
 Send(soc,buf,length(buf)+1,0); //gönderim adımı

 fpshutdown(soc,0); //bağlantıyı kapat
 CloseSocket(soc);
 EditBox1.Text:= '';

end;

Sonraki yazıda buluşmak üzere…

Kategoriler:Lazarus
  1. samet
    Ocak 11, 2012, 9:32 am

    mehmet bey, mrb ben kol-ce bileşenin kurulumunu gerçekleştiremedim acaba küçük ayrıntılarımı var ben kaçıyorum sitesindeki kurulumu aynen yaptım acaba sitenizde kurulumu ve gerekli dosyaları paylaşırmısınız şimdide teşekkür ederim.

    • mehmetulukaya
      Ocak 11, 2012, 1:06 pm

      Sıra şu olmalı,

      Lazarus kurulumu ardından ”Lazarus-0.9.28.2-fpc-2.2.4-cross-arm-wince-win32.exe” kurulumu ki AMR bazlı işlemciler için kodlama yapabilesiniz.

      Akabinde ise kolce paketinin kurulumu olmalı.

      Kolce içerisindeki mck klasöründe bulunan .lpk dosyasını component menüsünden load package file ile yükleyip Install yapmanız gerekli.

      Bu adımda lazarus kensini derleyecektir ki biraz uzun sürebilir ve yazılım kendisini tekrar başlatacaktır.

      Bu aşamalardan sonra KOLCE paketini görebilirsiniz.

  2. samet
    Ocak 19, 2012, 12:05 pm

    çok sağolun yaptım hesap makinamı da yaptım ancak çevirme işlemleri sırasında double2str kullandığımda ilk text ten aldıgım degeri bir eksik yazıyor nedeni nedir acaba yazdıgım kodlar bil. normal calsıyor wince ile derleyip terminale attıgmda böyle

    • mehmetulukaya
      Ocak 19, 2012, 1:36 pm

      cihazlarla çalışırken her ne kadar emulasyonlar bir miktar fikir verse de gerçek ortamda nihai sonucu görebiliyorsunuz.

      bu sebep ile doğrudan cihaz üzerinde bütün denemelerinizi yapmanız daha iyi olur.

      kolay gelsin

  3. alper
    Ocak 25, 2012, 7:50 pm

    hocam bu kolce kurulumunu bende yapamadım nasıl yapıldığı hakkında biraz bilgi verirseniz yada bir ayrıntı falan mı kaçırıyorum ne yapıyorsam anlamadım lazarus un son sürümünü indirdim kolce zaten 2.80.3 te ama bir türlü kurulumu başaramadım. kurulumu anlatabilir misiniz ?

    • mehmetulukaya
      Ocak 25, 2012, 10:20 pm

      Yapabilirsem bir video anlatımı ekledim çalışacağım. Umarım faydalı olur.

      • alper
        Ocak 26, 2012, 3:13 pm

        teşekkür ederim. şimdi benm sorunum

        lazarus-0.9.30.2-fpc-2.4.4-win32.exe
        lazarus-0.9.30.2-fpc-2.4.4-cross-arm-wince-win32.exe

        paketlerini kurdum

        kolce 2.80.3 i kurmaya çalıştığımda eklemiyor.
        derlemiyor.

        lazarus türkçe dökümanınız var mı hiç.
        lazarus wince için database kullanımı gibi.

      • mehmetulukaya
        Ocak 26, 2012, 4:38 pm

        ne yazıkki 0.9.30.2 de hiç denemedim ancak çok mecburiyet yoksa benim tavsiyem 0.9.28 için ayrı bir yükleme klasör yapın ve projenizi orada gerçekleyin.

        lazarus için türkçe doküman hazırlamadığımız sürece yok internetteki kaynakları kullanıyorum ben de ancak şunu düşünebilirsiniz lazarus pascal temel alındığı için pascala dair türkçe kaynakların %90 ı işinizi görecektir.

        siz zaten programlama biliyorsanız diğer dillere geçişte sadece bir kaç noktada zorluk yaşarsınız

        iyi çalışmalar,

        mehmet

  4. alper
    Ocak 26, 2012, 7:22 pm

    wince için database li bir örnek yaptınız mı hiç ?

    • mehmetulukaya
      Ocak 26, 2012, 9:10 pm

      Sonuçta database wince içinde tutulmaz size bir trick olarak ayrı bir exe ilgili database veri aktarımını yapar siz de wince içinden ilgili yazılıma veri aktarırsınız.

      • alper
        Ocak 26, 2012, 10:16 pm

        evet tutuluyor ne ile yazdıklarını bilmiyorum ama wince de dbf gördüm 😀

      • mehmetulukaya
        Ocak 27, 2012, 8:29 am

        dbf için belki hazırda bir dll vs. kullanmış olabilir bunun için mysql dokumanlarını ve sqlite dokumanlarını okumak lazım kolay bir yolu olabilir hiç ihtiyaç olmadığı için bakmadım daha

  5. burak
    Haziran 3, 2012, 2:40 pm

    mehmet hocam, bende wince için lazarus+kolce komponentlerini kurdum, delphi tarafından bi server programına pda dan bağlanıp istediğim bilgiyi aktarıyorum yalnız şöyle bi sıkıntım var pda dan servere gönderdiğim bilgiye karşılık serverdan bi cevap göndermek istiyorum fakat serverdan pda cliente mesj gönderme işlemini gerçekleştiremedim. nasıl yapabilirim. yardımcı olursanız sevinirim.

    • mehmetulukaya
      Haziran 4, 2012, 2:18 pm

      Socket bağlantısını kapatmadan cevap göndermeniz gerekli.
      Muhtemelen bağlantı kapandıktan sonra cevap veriyor olabilirsiniz. Server tarafındaki component de geleni aynen geri gönderip test etmeniz yerinde olacaktır.

      Umarım çözersiniz

      İyi çalışmalar,

      Mehmet

      • burak
        Haziran 4, 2012, 2:21 pm

        hocam soketi kapatmadan serverdan mesaj gönderiyorum fakat client tarafından bu bilgiyi nasıl alacağım konusunda bi fikrim yok.

      • mehmetulukaya
        Haziran 4, 2012, 3:28 pm

        Şöyle bir fonksiyonun olduğunu düşün bunu bir timer içerisinde çalıştırıp da aynı işlemi yapabilirsin.

        Herkesin yöntemi farklı olduğu için öz itibari ile send işleminden sonra recv komutunu kullanmanız gerekli.

        function TForm1.recv_str: string;
        begin
        if soc-1 then
        begin
        result := ”;

        if Recv(soc,buf,255,0)>0 then
        result := buf;
        end;
        end;

  6. burak
    Haziran 4, 2012, 9:10 am

    mehmet hocam sitenizden aldığımı bilgiler ışığında pda için bi yazılım geliştirdim server tarafına bağlanıp normal mesajını servere gönderiyor, fakat serverden pda ya mesaj gönderme kısmını gerçekleştiremedim. bu konuda yardımcı olursanız sevinirim.

  7. ali
    Haziran 5, 2012, 9:29 am

    slm mehmet bey bende windows ce v5.00 işlemcili navigasyon cihazı var buna nasıl bir internet tarayıcısı kurabilirim teşekkürler

    • mehmetulukaya
      Haziran 8, 2012, 12:47 pm

      Ali Bey merhaba,

      Ne yazık ki navigatör cihazları ile ilgili deneyim sahibi değilim forumlara bakmak lazım işin aslı.

  8. burak
    Haziran 5, 2012, 2:57 pm

    mehmet hocam sağolasın verdiğin değerli bilgiler için . istediğim işlemi sayende yapabildim. çok teşekkürler

  9. burak
    Haziran 11, 2012, 10:41 am

    mehmet hocam size bir sorum daha olacaktı kolce ile componentcount ve componenst fonksiyonlarını kullanmak istiyorum fakat hata veriyor normal proje açınca bu fonksiyonlarda hata vermiyor kolce projede hata veriyor neden kaynaklanabilir ? uses kısmında hangi uniti kullanmalıyım.

    • mehmetulukaya
      Haziran 12, 2012, 7:28 am

      Hata mesajı nedir ya da ekran görüntüsünü bir alana aktarırsanız oradan da yardımcı olmaya çalışırım.

      kolce paketi object pascal dan farklı davranıyor olabilir

      • burak
        Haziran 12, 2012, 9:10 am

        hocam verdiği hata mesajı

        Components için verdiği hata
        clinet.pas(937,17) Error: Identifier not found “Components”

        ComponentCount için verdiği hata bu
        clinet.pas(937,32) Error: Identifier not found “ComponentCount”

  10. Şubat 8, 2013, 12:44 am

    MErhaba İbrahim Bey. yaklaşık 8 saattir denemediğim lazarus versiyonu ve arm arabirimi ve kol-ce versiyonu kalmadı.. aldığım en son hata ise “Can’t find unit interfaces used by project1” … yapmak istediğim şey şu: casio win ce bir el terminaline ufak bir uygulama yazmak istiyorum. i7 win7 64 bit makinede çalışıyorum. makinemdeki lazarus ve arminin versyonları : lazarus-0.9.28.2-fpc-2.2.4-win32 ve Lazarus-0.9.28.2-fpc-2.2.4-cross-arm-wince-win32 dir. acaba 64 bit işletim sisteminde 32 bit lik versiyon kullandığım içinmi bu sorunu yaşamaktayım. daha önce arm nin 64 bit versiyonu olmadığı için 64 bit lazarus ile 32 bit arm (aynı versiyonlarda) denedim o da olmadı.. sizce sorun nedir?
    Saygılarımla
    M.Cihan UYAN

    • Şubat 8, 2013, 12:54 am

      İbrahim Bey nerden çıktı ya.. Dediğim gibi çok uğraştım bu lazarus la.. kafam gitti.. Pardon Mehmet Bey… ayrıca size ulaşabilmemin bir yolu varmı ara sıra soru sormak için..

      • mehmetulukaya
        Şubat 8, 2013, 8:05 am

        Cihan Bey merhaba,

        İsim karışıklığı önemli değil 🙂
        Kol-CE ile esasen tek bir proje gerçekleştirdim (halen güncelleme yapmadım çalışıyor) ancak daha sonra bir video hazırlamıştım şöyle:

        Belki gözden kaçan bir adım olabilir.
        Bir de sonuçta kullanılan windows embedded ce midir? Eğer embedded xp ise zaten normal bir exe dosya çalışır.

        İyi çalışmalar

        Mehmet

    • Şubat 8, 2013, 11:41 am

      bu videonuzu izledim. fakat dediğim gibi. hep hata veriyor. bi make.exe hatası veriyor bi ppmarm hatası. en son codetyphon un hazır compile paketini yükledim onda da system.ppu vs… yani arm dosyalarını bulamadım diyor.. yapmak istediğim ist alt üstü casio el terminaline çok ufak bir uygulama yazmak.. barkod ve adet sayılarını listbox a atıp bunu text dsyaya satır satır kaydedecek ama daha lazarusun arm projesini çalıştırmayı beceremedim.. bu arada 16 yıldır delphi ile uğraşıyorum. programcıyım.. saygılarımla

      • mehmetulukaya
        Şubat 8, 2013, 1:39 pm

        Tekrar deneme yapıp sonucu size yazacağım

  11. mehmetulukaya
    Şubat 8, 2013, 2:21 pm

    Denemeyi gerçekleştirdim herhangi bir sıkıntı oluşmadı muhtemelen gözden kaçan bir nokta var.
    Kullandığım kolce paketini aşağıdaki adrese yükledim siz de deneyebilirsiniz.
    Tabi elimde şu anda windows ce cihazı olmadığı için gerçekte neler olduğunu bilemiyorum.

    https://sourceforge.net/projects/ezberim/files/lazarus_sample_components/

    Umarım işinizi görür…

    mehmetulukaya :

    Tekrar deneme yapıp sonucu size yazacağım

    • Şubat 9, 2013, 12:57 pm

      çok teşekkürler ilginize.. fakat ben kol-ce versiyonunu elimdeki hiç bir lazarus pakteine kuramadım.. ne 0.9.28 ve önceki ne sonraki versiyonlarına.. şu anda 1.1. yükledim… fakat codetyphon paketini.. orada arm paketini filan otomatik install ediyor.. 48 saatlik hiç durmadan uyumadan çalışma sonunda ilk win ce uygulamamı yazdım ve el terminalinde denedim.. fakat o kadar çok versiyon ve deneme yaptımki.. bugun bilgisayarıma birşey olsa yeniden kurabilirmiyim diye kara kara düşünmekteyim.. :)) size ulababileceğim bi msn filan varmıdır.. sorularım için.. tabi rahatsız olmazsanız. çok tşkler.

      • mehmetulukaya
        Şubat 11, 2013, 11:09 am

        Merhaba ilginiz için çok teşekkürler umarım çalışmanızı sorunsuz olarak çalıştırabilmişsinizdir. Msn paylaşamıyorum zira çok fazla vaktim olmuyor bu blog sayfasını da zaman buldukça güncelliyorum.
        Embedded çalışmaların zorluğu fazla kaynak bilgi yok eğer farklı bir yöntem karşıma çıkarsa bu sayfalardan paylaşmaya çalışacağım.

      • Şubat 11, 2013, 11:58 am

        anladım.. kısmet.. fakat çok ilginçtir.. daha dun çalışan lazarus bugun çalışmıyor.. yaklaşım 1-2 saat harcayıp tekrardan uninstall ettirip yeniden kurup compile ettirdikten sonra çalışıyor. ve daha dun yaptığım uygulamaları açamıyorum lazarusdan.. çok komik bir durum bu.. acaba benmi bi yerde yanlış yapıyorum.. bu böyle giderse en sonunda yapacağım iş el terminalinden server a remote desktop yaptırtmak olacak..

  12. burak
    Nisan 4, 2013, 3:55 pm

    Mehmet hocam wince için sqlite kullanımı hakkında bilgi verebilirmisiniz.

    • mehmetulukaya
      Nisan 5, 2013, 6:42 pm

      Merhaba Burak,

      Sqlite ile ilgili hiç çalışma şansım olmadı işin gerçeği.
      Zaman içinde fırsat olursa bakalım

      İyi günler

  1. No trackbacks yet.

mehmetulukaya için bir cevap yazın Cevabı iptal et