Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual C# => Konuyu başlatan: micelow - 18 Eylül 2014, 09:22:21

Başlık: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: micelow - 18 Eylül 2014, 09:22:21
Merhabalar
Elimde bir adet usb barkod okuyucu mevcut. C# ta cihaz barkodu okuyunca imlecin bulunduğu textbox a barkodu yazıyor fakat benim istediğim ise barkodu textbox a yazdırmak değil bir değişkene almak. Bu durum için serialport nesnesi oluşturup datareceived olayına string barkod=mysp.readline(); satırını yazıyorum. Fakat gelen veriyi yakalayamıyorum. Çözüm önerisi olan var mı?
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: muhittin_kaplan - 18 Eylül 2014, 09:29:39
Seriportla ne alakan varki, textbox a yazdır sonra değişkene at.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: micelow - 18 Eylül 2014, 09:51:25
Muhittin hocam dediğiniz mantıklı fakat text e yazdırmak için sürekli imleci kontrol etmem gerekcek o anda kullancı form üzerinde başka bir yere tıklamış olabilir eğer imleç textbox ta değilse barkod oraya yazmıyor. Olması istediğim durum imleç nerde olursa olsun cihazdan veri geldiğinde değişkene almak daha sonra label yada textbox a yazmak.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: Gökhan BEKEN - 18 Eylül 2014, 09:54:21
Datareceived fonksiyonuna girdiğinden emin misiniz? Oraya bir messagebox koyarsanız veriyi alamasanız bile gelen her byte için mesaj kutusu çıkması gerekir. Eğer çıkmıyorsa şu resimde şekilde düzenleme yapın:

(http://s22.postimg.cc/8hsew9o9t/csharp_kesme_sorunu.png)


@muhittin_kaplan'a katılıyorum. Texbox'a o veri nerden geliyor ise aynı işlemi bir değişken için de yapabilirsiniz.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: muhittin_kaplan - 18 Eylül 2014, 10:09:13
Konunun seriportla alakasi dolayisiyla serial...datarec olayiylada alakası yok. Yapilmasi gereken bir başka treath oluşturulup program normal calismasi kesilmeden keypress keydown gibi bir kontrol yapilacak.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: micelow - 18 Eylül 2014, 10:17:31
Hocam cihaz pc de klavye olarak görünüyor veriyi gönderdikten sonra enter a basıyor dediğiniz gibi bunu dinleyerek işlem gerçekleşebilir peki bu durumda form açıkken cihaz okuma yapmadığı zaman kullanıcı enter a basarsa bu kez belirlediğim değişkene farklı hatalı değer girmiş olmaz mı?
Meftun hocam cihazın kullandığı portu tutturamadığımdan datareceived olayı çalışmıyor :)
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: makdeniz - 18 Eylül 2014, 10:48:41
Üstad verdiğim adresteki yazıyı incelemenizi tavsiye ediyorum.
http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/ (http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/)
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: Gökhan BEKEN - 18 Eylül 2014, 10:53:43
Alıntı yapılan: micelow - 18 Eylül 2014, 10:17:31
Meftun hocam cihazın kullandığı portu tutturamadığımdan datareceived olayı çalışmıyor :)
Aygıt yöneticisi/bağlantı noktaları(COM ve LPT) kısmında görükmesi lazım
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: makdeniz - 18 Eylül 2014, 11:14:35
Meftun hocam Usb barcod okuyucular HID klavye olarak tanıyor.
micelow'da bu yoldan gitmek zorunda bendeki usb barkod okuyucunun 

Vendor ve Product id'leri bu şekilde.

(http://s16.postimg.cc/b6pz0h4it/barkodhid.png)
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: muhittin_kaplan - 18 Eylül 2014, 12:58:02
Enter (crlf) gonderir default degerdir bu. Ama degistirilebilir. Aslinda yapmak istegini biraz acarsan fikir verebiliriz.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: micelow - 18 Eylül 2014, 14:07:01
Hocam yapmak istediğim ilk anlattığım gibi barkod okuyucudan gelen veriyi bir değişkende tutmak istiyorum. Bu değişkeni kullanarak veritabanında işlemler yapılcak. Barkod okutularak bir ürün adı ile veritabanına kaydolacak ve daha sonra kullanıcı ürünü okuttuğunda barkod numarası ile sorgu çekilerek ekranda ürünün barkodu değilde adı yazacak.
makdeniz' in dediği gibi barkod okuyucu pc de HID klavye.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: muhittin_kaplan - 18 Eylül 2014, 14:18:30
Okunacak Barkodların Yapısı Standartmı (ean13 ,ean8 gibi)
yoksa kullanıcı herhangi bir durumda herhangi bir anda sonlandırma (enter -crlf- gibi) karakteri gönderirse yanlış olur. eğer standartsa o satndart kod okunmuşmu kontrol edilir, yoksa yapılması istenen işlem yapılır.

ama neden textbox vb bir kontrolde yapmak istemiyorsunuz. imleç textbox a durur kod okutulur sorgu yapılır
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: barisertekin - 18 Eylül 2014, 14:22:44
Textbox'ı unutun. Demek ki arkadaşın uygulamasında textbox olmadan kullanılması gerekiyor.

Listen for a key when the application is not focused (http://stackoverflow.com/questions/5065817/listen-for-a-key-when-the-application-is-not-focused)

Ayrı bir thread içerisinde keyboard dinleyerek direk değişkene kaydedilebilir.
Başlık: Ynt: USB Barkod Okuyucu-C# Haberleşmesi
Gönderen: micelow - 18 Eylül 2014, 15:40:43
Muhittin hocam dediğin yola doğru geliyorum yavaş yavaş. Cihaz okuduğu sayıları tek tek gönderiyor ve en son entera basıyor. Bir textbox yerleştirip keypress olayı ile işlemleri yapıcam artık şimdilik çözüm bu.