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…
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.
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.
ç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
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
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 ?
Yapabilirsem bir video anlatımı ekledim çalışacağım. Umarım faydalı olur.
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.
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
wince için database li bir örnek yaptınız mı hiç ?
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.
evet tutuluyor ne ile yazdıklarını bilmiyorum ama wince de dbf gördüm 😀
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
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.
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
hocam soketi kapatmadan serverdan mesaj gönderiyorum fakat client tarafından bu bilgiyi nasıl alacağım konusunda bi fikrim yok.
Şö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;
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.
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
Ali Bey merhaba,
Ne yazık ki navigatör cihazları ile ilgili deneyim sahibi değilim forumlara bakmak lazım işin aslı.
mehmet hocam sağolasın verdiğin değerli bilgiler için . istediğim işlemi sayende yapabildim. çok teşekkürler
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.
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
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”
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
İ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..
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
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
Tekrar deneme yapıp sonucu size yazacağım
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…
ç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.
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.
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..
Mehmet hocam wince için sqlite kullanımı hakkında bilgi verebilirmisiniz.
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