Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: slavanb  
Дата: 30.04.14 11:53
Оценка:
Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.
barcode hid
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: KARPOLAN Украина http://karpolan.com
Дата: 30.04.14 12:22
Оценка:
S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.

А нах? Они же просто вводят цифры типо как с клавиатуры...
KARPOLAN (Anton Karpenko)
http://karpolan.com
http://facebook.com/karpolan
http://linkedin.com/in/karpolan
http://twitter.com/karpolan
http://plus.google.com/+AntonKarpenko
Re[2]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: slavanb  
Дата: 01.05.14 10:01
Оценка:
Здравствуйте, KARPOLAN, Вы писали:


это делитанский подход!
Если есть такой функционал , то почему им не пользоваться!
В том варианте что вы говорите у вас если на форме будет несколько ЕДИТОВ или гридов, то будет вставлять туда где будет фокус! А надо что б определяло что пришло именно со сканера , а не с клавыи вставляло туда куда надо, я ж описал в основном посте что б не флудили.

S>> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.


KAR>А нах? Они же просто вводят цифры типо как с клавиатуры...
Re[3]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: wildwind Россия  
Дата: 01.05.14 17:01
Оценка:
Здравствуйте, slavanb, Вы писали:

S>это делитанский подход!

S>Если есть такой функционал , то почему им не пользоваться!
S>В том варианте что вы говорите у вас если на форме будет несколько ЕДИТОВ или гридов, то будет вставлять туда где будет фокус! А надо что б определяло что пришло именно со сканера , а не с клавыи вставляло туда куда надо, я ж описал в основном посте что б не флудили.

То, что так никто не делает, а все берут штрихкод с клавы, тебе ни на что не намекает? Подсказываю: если штрихкод плохо читается, оператор должен тут же вбить его цифрами. Поэтому от ЕДИТА и ФОКУСА тебе не уйти.

Но если времени много и оно оплачивается, копай на здоровье.
Еще подсказка. Определив HID устройство, Windows будет считать его второй клавой, брать с него поток символов и слать в активное окно. И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер, который будет фильтровать потоки. Почитай тут.
Re[4]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: wildwind Россия  
Дата: 01.05.14 17:12
Оценка:
Здравствуйте, wildwind, Вы писали:

W>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер

Возможно, я был неправ. Есть еще Raw input API.
Re[5]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: Аноним  
Дата: 02.05.14 14:43
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Здравствуйте, wildwind, Вы писали:


W>>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер

W>Возможно, я был неправ. Есть еще Raw input API.

Оно только с 7ки нормальное, и клаву от сканера он задолбеццо отличать. 2 мышки — проще.

Просто есть сканеры которые прямо в клавах (с клавами), так что чел тупо фигней занимеццо...
Re[5]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: slavanb  
Дата: 02.05.14 20:06
Оценка:
Здравствуйте, wildwind, Вы писали:

W>>И твоя программа сама по себе не в силах на это повлиять. Придется вставлять свой драйвер

W>Возможно, я был неправ. Есть еще Raw input API.

вот-вот я про то же , я находил похожие вещи для мышей и джойстиков, но там был страшный гавнокод, поэтому разобраться как все это переделать под сканер не получилосю.
Ваше ссылка ближе к теме , но надо чтоб это было для ДЕЛФИ, а там Си.
Больше конечно интересует мнение тех кто реально работал с проблемой.
В режиме фокуссов и ввода с клавиатуры программа уже работает! Но это не то, надо именно что б сканер определялся однозначно! Могу сделать через эмуляцию СОМ-порта, но не хотелось бы, СОМ все же вчерашний день.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: Matrix_Failure http://matrixfailure.wordpress.com/
Дата: 14.05.14 07:26
Оценка:
Здравствуйте, slavanb, Вы писали:

S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.


Когда мне нужно было сделать своё HID устройство принцип работы с ним через WinAPI был такой:
1. Получить идентификатор HID устройства. Также можно прочитать параметры устройства из дескриптора USB устройства.
2. Вызывать CreateFile с идентификатором из п.1
3. Вызвать ReadFile чтобы прочитать из него байты. И WriteFile чтобы передать байты туда.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: mike_rs Россия  
Дата: 14.05.14 07:41
Оценка:
Здравствуйте, slavanb, Вы писали:

S> надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.


это невозможно, клавиатура тоже можеть быть usb hid устройством.
Re[2]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: Vlad_SP  
Дата: 14.05.14 08:24
Оценка:
Здравствуйте, mike_rs,

_>это невозможно, клавиатура тоже можеть быть usb hid устройством.


И даже еще хитрее. Сканер может включаться в POS-клавиатуру, а сама POS-клавиатура отдает данные как с кнопок, так и со сканера — в комп, не делая различий, пришли ли они со сканера или были нажаты кнопки на клавиатуре.
Re[6]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: Ромашка Украина  
Дата: 14.05.14 09:06
Оценка:
Здравствуйте, slavanb, Вы писали:
S>Больше конечно интересует мнение тех кто реально работал с проблемой.

Когда я разгребался с проблемой, я не придумал ничего лучше чем сделать так:

1. Выставляем на сканере стартовый и стоповый символы.
2. Хучим очередь с клавиатуры.
3. Если ловим стартовый символ, начинаем все читать себе в буфер. Если превысили таймаут между символами (символов больше чем нужно, есть недопустимые символы), отдаем все дальше винде. Если словили стоповый символ, считаем перехваченное штрихкодом и забираем его из виндовой очереди.

Таймауты подбирались методом научного тыка — на работу влияние незаметно (приложение висит в трее и ловит вообще все сообщения, вне зависимости от активного приложения). Стартовый символ редко используемый, я ставил '&'.


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: onlineCoderWTF  
Дата: 14.05.14 09:20
Оценка:
Здравствуйте, slavanb, Вы писали:

S> Перерыл весь интернет и так и не нашел толкового примера перехвата инфы из сканера ШТРИХКОДА через HID . Ковырял JvHidDeviceController из проэкта JEDI, устройство определяется , но как из него прочитать сам штриштрихкод не понятно. Может у кого есть готовые примеры на ДЕЛФИ? Приметив типа перенаправления фокуса не предлагать, надо чтоб однозначно определялось что это инфа со сканера ,а не с клавиатуры, вариант с COM-portom тоже не подходит! Нужно именно через HID.


Как уже говорил Ромашка, некоторые POS системы работают исключительно по таймаутам (предполагается, что пользователь так быстро не набирает, а по факту, обычная клавиатура зачастую отсутствует вовсе): т. к. устройство может быть вовсе не HID, а встраиваемое в разрыв клавиатуры PS/2 (как говорил Vlad_SP). Поэтому клавиатурный хук и таймауты — наиболее универсальный вариант, при использовании считывателей, ведущих себя как клавиатура.
Re[3]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: icWasya  
Дата: 15.05.14 05:59
Оценка:
Здравствуйте, Vlad_SP, Вы писали:

V_S>Здравствуйте, mike_rs,


_>>это невозможно, клавиатура тоже можеть быть usb hid устройством.


V_S>И даже еще хитрее. Сканер может включаться в POS-клавиатуру, а сама POS-клавиатура отдает данные как с кнопок, так и со сканера — в комп, не делая различий, пришли ли они со сканера или были нажаты кнопки на клавиатуре.


Правда некоторые сканеры(Hand Held Products) поддерживают ещё режим HID POS
"Device Class Definition for Human Interface Devices (HID)V1.11
"HID Point of Sales Usage Tables"V1.02

Особенности
• основанный на HID, не требуетя драйвер
• Намного быстрее чем эмуляция клавиатуры и традиционный RS-232
• Symbology идентификаторы (изделия AIM и Hand Held Products) всегда содержатся во входном сообщении, которое использует USB имена направления: ввод (на PC) и вывод (на устройство)
Re[7]: Сканер ШТРИХКОДА в режиме HID. Как подружить с ДЕЛФИ 7 ?
От: snowman7  
Дата: 28.10.14 11:04
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Здравствуйте, slavanb, Вы писали:

S>>Больше конечно интересует мнение тех кто реально работал с проблемой.

Р>Когда я разгребался с проблемой, я не придумал ничего лучше чем сделать так:


Р>1. Выставляем на сканере стартовый и стоповый символы.

Р>2. Хучим очередь с клавиатуры.
Р>3. Если ловим стартовый символ, начинаем все читать себе в буфер. Если превысили таймаут между символами (символов больше чем нужно, есть недопустимые символы), отдаем все дальше винде. Если словили стоповый символ, считаем перехваченное штрихкодом и забираем его из виндовой очереди.

Р>Таймауты подбирались методом научного тыка — на работу влияние незаметно (приложение висит в трее и ловит вообще все сообщения, вне зависимости от активного приложения). Стартовый символ редко используемый, я ставил '&'.


Так же делал, единственное, что стартовый и стоповый символ подбирал такой, чтобы с клавиатуры просто так нельзя было ввести.
Ну и недостаток, что приходилось на сканере выставлять эти символы, что не очень удобно вообще то.
Еще обнаружил, что MS Officсe безбожно чего-то там хучит себе наздоровье )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.