USB Barkod Okuyucu-C# Haberleşmesi

Başlatan micelow, 18 Eylül 2014, 09:22:21

micelow

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ı?
"Bir tek şeye ihtiyacımız var çalışkan olmak."

muhittin_kaplan

Seriportla ne alakan varki, textbox a yazdır sonra değişkene at.

micelow

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.
"Bir tek şeye ihtiyacımız var çalışkan olmak."

Gökhan BEKEN

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:




@muhittin_kaplan'a katılıyorum. Texbox'a o veri nerden geliyor ise aynı işlemi bir değişken için de yapabilirsiniz.
Özel mesaj okumuyorum, lütfen göndermeyin.

muhittin_kaplan

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.

micelow

#5
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 :)
"Bir tek şeye ihtiyacımız var çalışkan olmak."

makdeniz

Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

Gökhan BEKEN

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
Özel mesaj okumuyorum, lütfen göndermeyin.

makdeniz

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.


Karanlık olmadan aydınlık, Ölüm olmadan yaşam mantıksız.

muhittin_kaplan

Enter (crlf) gonderir default degerdir bu. Ama degistirilebilir. Aslinda yapmak istegini biraz acarsan fikir verebiliriz.

micelow

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.
"Bir tek şeye ihtiyacımız var çalışkan olmak."

muhittin_kaplan

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

barisertekin

Textbox'ı unutun. Demek ki arkadaşın uygulamasında textbox olmadan kullanılması gerekiyor.

Listen for a key when the application is not focused

Ayrı bir thread içerisinde keyboard dinleyerek direk değişkene kaydedilebilir.

micelow

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.
"Bir tek şeye ihtiyacımız var çalışkan olmak."