USB el barkod okuyucuları ayırt etme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

USB el barkod okuyucuları ayırt etme

Mesaj gönderen asking »

Merhabalar,

Bir bilgisayara yaklaşık olarak 8 - 12 adet arası USB el barkod okuyucu takacağız. USB çoklayıcı kullanacağız.

Benim, hangi barkodu hangi el barkod cihazı okumuş bunu ayırt edebilmem lazım (veya takıldığı hangi port okumuş).
ComPort'ları dinleyen bir deneme yaptım ancak virtual port oluşturuyor sanıyorum çünkü comPort'ları üzerinden birşey yakalamadı.

Bunu yapabilmenin yöntemi nedir ?
Komponent alınması gerekiyorsa, tavsiyeleriniz ?
Delphi veya C# için yönlendirebilirsiniz....

Teşekkür ederim
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mkysoft »

barkod okuyucular klavye emulasyonu yaparak çalışır. kullanım klavuzunda klavye emulasyonu yerine seri iletişim kurma yeteneğinden bahsediyor olması lazım. orayı incelerseniz yapmanız mümkün olabilir. usbden takılan cihazları comportdan dinleyemezsiniz.
generic usb sürücüyü tüm barkod cihazlarına yüklerseniz dinlemeniz mümkün olabilir. buna benzer olarak daha önce bir arkadaş bir bilgisayara birden fazla klavye bağlamayı sormuştu, arama yaparsanız oradaki cevaplarda yol gösterebilir.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mrmarman »

Muhtemelen HID kontroller olarak görünüyordur. Bu şekilde bir tane USB macro kameranın butonuna basılınca capture yapmasını sağlayan bir uygulama hazırlamıştım. Oradan tecrübem şu oldu, USB cihazların birer kodu var. Bunu takip ederek hangi USB cihazın tetiklendiğini tespit edebilir, gelen veriyi sınıflandırarak sahibi bulabilirsiniz.
Resim
Resim ....Resim
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen asking »

-- mrmarman » 26 Nis 2009 10:52
--Muhtemelen HID kontroller olarak görünüyordur. Bu şekilde bir tane USB macro kameranın butonuna basılınca capture yapmasını sağlayan bir uygulama hazırlamıştım. Oradan
--tecrübem şu oldu, USB cihazların birer kodu var. Bunu takip ederek hangi USB cihazın tetiklendiğini tespit edebilir, gelen veriyi sınıflandırarak sahibi bulabilirsiniz.

HID.dll ile kontrolü kastediyorsunuz sanıyorum.
USB cihazların birer kodu var 'dan kastınızı anlayamadım. Biraz daha açarmısınız, çok tecrübeli değilim kavramları anlamakda zorlanıyorum. Yol gösterrirseniz sevinirim.

Teşekkür ederim...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mrmarman »

@asking yazdı:USB cihazların birer kodu var 'dan kastınızı anlayamadım.
Hocam anlamayacak ne var, basit bir ifadeydi. :wink: HID.dll bahsediyosun herhalde demişsin ya. İşte bu DLL'yi kullanıyorsan zaten bir VENDOR_ID bir de PRODUCT_ID olduğunu biliyor olman gerekir. sendeki cihaz elimde olmadığı için bu kodları bilemem senin bulman lazım. :idea:

Daha sonra Application.HookMainWindow( kontrol fonksiyonun ) ile takip başlatıp connect olacaksın. USB'de bağlı olan cihazların orada olup olmadığına baktıktan sonra eğer bu cihaz ile butona basılmışsa kontrol fonksiyonun kendiliğinden bir EVENT olarak kendiliğinden devreye girer. Çünkü mesaj almıştır. Bu mesajı değerlendirip hangi VENDOR_ID ve PRODUCT_ID olan cihaz bunu gerçekleştirdiğini bulup gelen veryi bu cihaz gönderdi diyeceksin. İşlem basit yani.
Resim
Resim ....Resim
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen asking »

Elimdeki USB barkod okuyucudan, VendorID ve Product ID alınmıyor, mümkünmüdür ?

"Delphi_HID" adlı bir örnek uygulama buldum, hid.dll kullanıyor. Ancak, bahsettiğim bilgileri getirmiyor. Aklıma gelen, OEM ürünü diye böyle birşey olabilir mi?

Ayrıca, bahsettiğinizi uygulamaya çalışıyorum. Ancak çok tecrübeli olmadığım için biraz araştırma yapmaya ihtiyaç duyuyorum. İnşâallah netice hasıl olur...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mrmarman »

asking yazdı:Elimdeki USB barkod okuyucudan, VendorID ve Product ID alınmıyor, mümkünmüdür ?
Almayı ne şekilde denedin de alamadın ? Örnekler misin ? Tek taraflı sorular ile sonuç almak bir yana benim için vakit israfı oluyor.

Bu durumda bu projeyi bir yana bırakınız ve USB aygıtlar hakkında bilgi toplayınız. Çünkü cihazı görmüş olman yetmez ardından bu cihazla ilgili bir iki işlem daha yapman lazım. Detay veremiyorum benim cihaz bir video aygıtı idi. Çok daha farklı metodlar içeriyor (USB üzerinden sürekli video besliyor bu arada butona basılınca basıldığına ilişkin komut gönderiyor, basıldığına ilişkin derken mouse gibi basılı olduğu sürece gönderiyor çekince komut akışı duruyor. Bu durumda mouseup olayı gibi bir event uygulaması gerçekleştiriliyor gibisinden vs. )

Çalışmalarında başarılar dilerim. Cihaz destek birimiyle de SDK için irtibat kurmayı ihmal etme.
Resim
Resim ....Resim
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen asking »

Sayın "mrmarman",

İnşâallah vaktiniz israf olmadı, Vendor_ID ve Product_ID 'leri alabilmeyi başarabildim.
Şimdi, barkod okuyucular arasında hangisinin kullanılıyor olduğunu tespit etmem kaldı. Bu konuda da birkaç ipucu vermişsiniz. Daha net bir tarifiniz olacaksa, itirazım olmaz...

Vaktinizin israf olduğunu düşünüyorsanız, hakkınızın geçmiş olmasını istemem, helâl ediniz...
Çok teşekkürler.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mrmarman »

Tebrik ederim. Vendor_ID ve Product_ID'leri bulmuş olmanıza sevindim. Bundan sonrası daha kolay olacak. Çünkü bu ID'ler daima mesaj sırasında yani cihazdan veri alınırken geliyorlar. Dolayısı ile "VendorID ve Product ID okuyorsanız gelen veri bunlardan gelmiş demektir" diyebilirsiniz.

Başarılarınızın devamını dilerim. 8)
Resim
Resim ....Resim
cozturk
Üye
Mesajlar: 484
Kayıt: 15 Haz 2005 05:22

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen cozturk »

Aynı üreticiye ait aynı model barkod okuyuculardan değişik portlara bağlandığını düşünürsek, tek başına vendor ID ve product ID bilgisi yeterli olmayacaktır. Böyle bir sistemde, güvenilir bir markanın aynı okuyucularından bir kaç adet kullanılmış olması yüksek ihtimaldir.

Bağlanan her cihazın registryde benzersiz bir kimliği olduğunu hatırlıyorum. Buradan yola çıkılabilir.
Kullandığınız komponent aşağıdaki değilse, buna da bir bakmanızı öneririm. Belki çözüm sağlar
http://www.google.com.tr/search?hl=tr&q ... =&aq=f&oq=
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen mrmarman »

Tüm bunları bir yana bırakıp öncelikle Cihazın marka ve modelinden yola çıkarak cihaz servisini aradınız mı ? Bu gibi durumlar için daha giriş seviyesi insanlar için çözüm üretmişlerdir. Mesela her cihaz için bir prefix tanımlamak gibi. Klavyeye seri bağlı barcode cihazlarını eskiden nasıl ayırt ediyorduk hatırlasanıza, içeriğinde bir kod ile geliyordu bunu klavyeden değil de barcode cihazından geldiğini anlıyorduk. Burada da bu USB cihazının Windows ayarlarında muhtemelen her kodun başına şunu koy (ingilizcesi : prefix) diyebileceğin bir yer olabilir. Bunu araştırmadan boşa kürek çekmeyelim.. :idea:


EKLEME :

Bak google'da tarayınca
Phoenix II USB Barcode Scanners marka olanın şu özelliği varmış.
"Configurable Prefix and Suffix of up to 10 characters, to integrate the Phoenix II into existing applications." yani 10 karaktere kadar barcode'un önüne veya arkasına özel kod ekleyebiliyorsun. Mesela cihazlardan birinin önüne "Barcode_01_" diğerine "Barcode_02_" eklediğini varsayalım. Böylece gelen kodun başından bu kısmı sileceksin ve silmeden önce de hangi cihazdan geldiğini anlayacaksın.
Resim
Resim ....Resim
asking
Üye
Mesajlar: 11
Kayıt: 07 Mar 2008 08:06

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen asking »

Tamam, "cozturk" ve "mrmarman", sizlere çok teşekkür ediyorum (evet kullandığım komponent aynısı). Son uyarılarınızı elbette ki dikkate alacağım. Sanıyorum bundan sonrası daha rahat akacak, çünkü bu esnada çok şey öğrendim veya hatırladım diyebilirim.

Allah razı olsun...
Kullanıcı avatarı
itsmylife38
Üye
Mesajlar: 28
Kayıt: 07 Haz 2005 04:11
Konum: İzmir
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen itsmylife38 »

Arkadaslar Kolay Gelsin;

Hocam öncelikle burada böyle güzel bir paylaşım sunduğunuz için teşekkür ederim. Çok eskiden beri üyeyim bu foruma ve onun sayesinde bayağı bir yol katettim Allah Kuranlardan ve Paylaşanlardan Razı olsun....

Askerden yeni geldim ve ilk projem olarak USB Barkod okuyuculardan gelecek bilgiyi arkaplanda alıp veri tabanıma kayıt etmek.
Daha önce hiç USB ile çalışmam olmamıştı sizlerin yardımıyla HID ve kontroller hakkında bilgi edindim Delphi_HID http://www.intel.com/intelpress/usb/exa ... hi_hid.htm indirdim ve incelemeye başladım.

Delphi 7 Kullanıyorum Componenti kurarken "FPreparsedData: PHIDPPreparsedData;" [Error] HidControllerClass.pas(69): Undeclared identifier: 'PHIDPPreparsedData' ..... gibi hatalar aldım.

Proje kısaca şu şekilde olacak,

Arka planda saatin yanında gizli bir simge ile çalışacak program barkod okuyucu her veri gönderdiğinde o veriyi alacak (Normalde bu veriyi web sayfası üzerindeki bir edite okutuyorlar.) ben kullanıcı oraya okuturken veriyi kendim alıp başka bir devreye göndereceğim böylece teknikerin yaptıgı her tamiri sayan bir veri tabanı oluşturup bunu yönetime rapor halinde sunacağım. Kullandıkları Web sayfası bende degil amerikadaki yabancı bir firma oldugu için oradaki editi direk link alamıyorum baska bir harici programda istemiyorlar hem oraya hemde benim açacağım küçük bir edite okutabilirler dedim kabul etmediler zamanla yarıştıkları için ben barkod okuyucudan gelen veriyi arka planda kendim almam gerekiyor.

Konu ile ilgili araştırmalarıma başladım ama vaktim kısıtlı olduğu için sizin gibi tecrübeli abilerimizden de yardım bekliyorum.

Örnek bir kod blogu yada uygulamam gereken yolları varsa daha değişik bir component elinizde çok makbule geçer.

Hayırlı Cumalar Bu arada herkese Allah Kolaylıklar versin.

İyi Günler, Şimdiden Teşekkür Ederim. Allah Razı Olsun.
Ismail ULUSOY

it is my life
( Hayat bizim peki Kontrolu kimde? )
cozturk
Üye
Mesajlar: 484
Kayıt: 15 Haz 2005 05:22

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen cozturk »

Hap gibi, ücretli bir komponent olsa işinizi görür mü?
Kullanıcı avatarı
itsmylife38
Üye
Mesajlar: 28
Kayıt: 07 Haz 2005 04:11
Konum: İzmir
İletişim:

Re: USB el barkod okuyucuları ayırt etme

Mesaj gönderen itsmylife38 »

Hocam ücretli ücretsiz önemli değil, bir an önce çözmem gerekiyor, componenti ve varsa kullanım şeklinden bir örnek verebilirseniz çok memnun olurum.

Kullanacağım Barkod LS 2208 Symbol marka şimdi onun driver ve dll dosyasını inceliyordum.

Kolay Gelsin, Çalışmalarınızda başarılar.
Ismail ULUSOY

it is my life
( Hayat bizim peki Kontrolu kimde? )
Cevapla