WH EMP 800 serisi SDK sorunu

23 Haz 2009 In: .net

Merhabalar, hastanemizdeki kioskların bozuk para ile çalışması için wh münzprüfer berlin gmbh firmasına ait EMP 800.14 v6 serisi elektronik bozuk para seçicilerinden  ( electronic coin selector ) satın aldık. Bu cihaz direk USB ye baglanmakta ve içini attıgınız metal paranın 32 farklı türden hangisi oldugunu söylemekte. Bu paraları siz cihaza ögrete bildiginiz gibi, tanımlı paralardan da kullana bilyorsunuz Bizim ki TRY için özelleştirilmişti zaten.



Cihazın kutusunda hiç bir driver ve developer tool gelmemekte. Biz biraz ugraştan sonra .Net SDK sını ve WHDL driverlarını temin edebildik. Biraz ilginç bir durum.

Cihazı USB üzerinden takıp tanıttıktan sonra, CCTalk üzerinden haberleşilebiliyor. Biz ilk .Net 2.0 ile Visual Studio 2005 projesi olan EXE derledik ve USB üzerindeki cihazı bir türlü bulamadı. Sorunun external power ile beslemedigimiz için oluştugunu düşünüyorduk. Ama sorunu SDK yı oluşturan DLL ve EXE projelerini Visual Studio 2008 üzerinde tek solution altında toplayıp DLL üzerinde debug modunda derledigimiz de fark edebildik. USBCoinSelectorLib.dll in windows üzerindeki COM portlarını alıp, hanginin COIN ACCEPTOR oldugu tesbit ettigi if koşulunda Türkçe işletim sisteminden kaynaklanan şöyle bir sorun vardı : 

srchcomm.Category propertysi "coin acceptor" gelmekte, bunu .ToUpper() methodu ile büyük harfe çevirince "COİN ACCEPTOR" olmakta ve if koşulundaki =="COIN ACCEPTOR" koşulundan geçmemekte ve bir türlü USB cihazı bulamamakta idi.

Bu koşulu düzeltince DLL sorunsuz çalışmaya başladı ve bizde kioks üzerinde koşan projemize import edebildik. Burada paylaşmak istedik bu sorunla saç baş yolmayın diye :)

 

Cihaz yeni ve eski bütün metal bozuk paraları tanımakta. Yenileri TL, eskileri TY olarak tanımakta. (kuruşlardada sorun yok).

Mobile Clinical Assistant (MCA)

18 Haz 2009 In: .net, tam-med

Merhabalar, uzun zamandır hastanemiz için bekledigimiz MCA lar geldi. Cihazlar Motion Computing firmasına ait C5 modeli. Cihazlar medikal sektöre yönelik. Cihazın amacı yatan hastalar için dolaşan kağıt ve kalem olaylarını ortadan kaldırmak. Her hastaya RFID bileklik verilecek. Bu bileklikler içinde hastaya ait kimlik ve bazı klinik bilgiler yazılacak.


   

 


Doktor veya hemsire hastanın odasına Motion C5 ile girdiginde hastanın orderı (Hizmet, ilaç ve sarfları), kısacası hasta ile ilgili bütün bilgilere erişe bilecek. Uygulamayı .Net platformunda C# ile yapıyoruz. Intel in bu cihazlar için ürettirgi bir HealthCare adında SDK'sı var. Şimdi onun üzerinde RFID bileklikle ilgili örnek çalışmalar yapıyorum. C5 üzerinde 2D ve 3D okuya bilen birde barkod oluyucusu var. Tabii ki entegre kamerasıda mevcut.

802.11b/g Wireless adaptorü ve bluetooth da unutulmamış. Anti-bakteriyel kaplaması ile hem hijyenik açıdam hemde IP54 standartında su ve toz a karşıda dayanıklı.

Agırlıgıda fena degil. Elde iken kalemsiz kullanılmıyor, ama deck ünitesi sayesinde standart bir masaüstüne dönüşüyor.

Örnek uygulama ile ilgili ekran görüntüsü aşagıda:

 


Zamanla paylaşmaya devam edecegim.

 

 
 

Sürekli yeni tablo açmayınca insan unutuyor. Geçen gün yine hatırlayamadım, tırmalamaktansa buraya yazayım dedim.

Microsoft SQL Server dabu işlem ne kadar kolay sa Oracle da o kadar zor. Sql Server Management Studio da "Databases" altında açmak istedigimiz VT yi seçip, sag tıklayıp "New Tablo" dedikten sonra, istedigimiz kolonun adını yazıp mesela ID "Data Type"ını "int" yapıp, sag tıklayıp  "Set Primary Key" deriz ve "Column Properties" den "Identity Specification" da "(Is Identity)"i "Yes" yapar ve "Kaydet" deriz bu kadar 

 

 


Ama Oracle da işler biraz farklı. En azından bu kadar kolay degil. Bir kolonu her primary key olarak ayarlıyayım hemde otomatik artsın istiyorsanız.

Yapmanız gerekenler şunlar : 

1- Tablonuzda otomatik artmasını istediginiz ID kolonunu yaratın ve primary key olarak ayarlayın.

2- Bir sequence yaratmamız gerekiyor. 

create sequence SiparisID_seq
start with 1
increment by 1
nomaxvalue;
 

3- Şimdi tablonuz için bir trigger yaratıyoruz. Before Insert Triggeri 

  CREATE OR REPLACE TRIGGER "HASTANE"."SIPARIS_BEF_INS"
BEFORE INSERT ON HASTANE.SIPARIS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
begin
  if inserting then if :NEW."SiparisID" is null then
     select SiparisID_seq.nextval into :NEW."SiparisID" from dual;
  end if;
end if;
end;
 
ALTER TRIGGER "HASTANE"."SIPARIS_BEF_INS" ENABLE;

İşte bu kadar. Artık "SIPARIS" tablosunda, auto increment hemde Primary Key olan "SiparisID" kolonumuz var. Ve otomatik bir bir artan bir şekilde.

 

Ben Kimim ?

Celiker BahceciMerhabalar, ben Çeliker BAHÇECİ. 2004 den beri özel sektörde bilgisayar mühendisligi ve egitmenlik yapıyorum. Yine aynı yılın Ekim ayından beri sitemde .Net ile programlama ve hayat görüşüm ile ilgili makalelerimi yayınlıyorum. Blogum dışında Yazgelistir.com, mobilnedir.com gibi ineta kapsamındaki bir çok siteye Microsoft teknolojileri ile ilgili yazılar yazmaktayım.
Bu site ile sizinde hayatınızı anlamlandırmanızda bir parça katkımın olması dilegiyle...