Cuma, Ocak 07, 2005


Eclipse Kullanıcıları Türkiye Mail Grubu açıldı.
Bu hafta itibariyle 20 kadar üyemiz oldu, Eclipse_tr olarak amacımız eclipse ortamını kullanarak, ortak bir değer yaratmak gerekirse bunu yayın, yazılım ,eğitim gibi bir içerik altında birleştirmek.


Casio IT-500 çözümleri.

Bir kaç haftadır CASIO IT-500 ün M30CR modeli ile uygulama geliştiriyorum, gerek internetteki kaynak yetersizliği, gerekse çözüm üretenlerin az olmazı sebebiyle oldukça zorlandım. Compact framework ile ilgili gerekli dökümanların yetersiz olması sebebiyle özellikle kamera ve Barkod okuma ile ilgili bilgi bulmak zor. Ayrıca kendi örneklerinde EVC++ 4.0 örnekleri mevcut.
Kamera kullanımında en önemli ayrıntı FormHandle işlemiyle ilgili , C++ örneklerinde kamera önizlemesinin yapılacağı formun handle 'ı nın kullanmak gerektiği gözüküyor.

case WM_INITDIALOG:
// trying to center the About dialog
if (GetWindowRect(hDlg, &rt1)) {
GetClientRect(GetParent(hDlg), &rt);
DlgWidth = rt1.right - rt1.left;
DlgHeight = rt1.bottom - rt1.top ;
NewPosX = (rt.right - rt.left - DlgWidth)/2;
NewPosY = (rt.bottom - rt.top - DlgHeight)/2;
// if the About box is larger than the physical screen
if (NewPosX < 0) NewPosX = 0;
if (NewPosY < 0) NewPosY = 0;
SetWindowPos(hDlg, 0, NewPosX, NewPosY, 0, 0, SWP_NOZORDER SWP_NOSIZE);
CAMOpen();
CAMStartPreview(hDlg,12,75,CAM_1PER9VGA);
}

Ancak burada C# implemantosyonu olan
[DllImport("CoreDll")] public static extern IntPtr FindWindow( string className, string WindowsName);
fonksiyon doğru handle ı döndürmüyor. Halbuki dökümanlarda FindWindow ve GetActiveWindow, GetDesktopWindow, GetForegroundWindow fonksiyonlarının doğru HWND değerini dödürdüğü yazıyor.
Casio da kullanılacak gerçek fonksiyonu
[DllImport("coredll.dll")] public static extern IntPtr GetForegroundWindow();
Olarak değiştirince kamera sağlıklı biçimde kullanılıyor.

Benzer şekilde Barkod okuma içinde kaynak çok sınırlı.
Form KeyDown event inde
iRet = LCUDRV.OBRGets(buff,ref Barcode,ref dwLeng);
ile okuyucu buffer ı alınarak ,
Encoding.ASCII.GetString(buff,0,buff.Length);
kullanılarak okunan bilgi alınıyor. burada buffer[1024] boyutlarında.

Genel olarak Cihaz iyi çalışıyor ve isteklere iyi cevap veriyor. Daha detaylı bilgi almka isteyen benimle irtibata geçebilir.