Подключение USB сканера штрих кодов

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

По какой-то причине не запускается инсталлятор из этого архива. Попробовал на двух компах с Win7-64. Может, из-за 64-битности. Если кому надо, без инсталлятора -
COM2KBD.rar
(169.54 КБ) 520 скачиваний
. Удивительно, вроде программа бесплатная, а не найдёшь в Инете. Оказалось, у клиента сканер NewLand, он в драйверах имеет переключалку "клавиатура/com-порт". Но меня это не спасёт, придумали авторизацию делать по табельному номеру, а он простой, с клавиатуры можно зайти под любым пользователем. Может предложить дактилоскопический сканер? :mrgreen:
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

А кто-нибудь знает - как определить наличие сканера в системе и определить его параметры. Может сделать опрос COM-портов? Но что послать и что получить?
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Подключение USB сканера штрих кодов

Сообщение Admin »

Сканер у меня никак не определяется. Просто по работе видно. В трее программа мигает иконкой, значит данные прочитаны и порт настроен верно. Обычные сканеры односторонние устройства. Они только пишут в компорт, не читают ничего и не настраиваются через порт.
Настраиваются они штрихкодами специальными.
Включаемые в разрыв клавиатуры тем более фиг проверишь.
Есть еще новые китайские с алиэкспресса, они подключаются по USB без эмуляции компорта. Они эмулируют USB клавиатуру по сути.
Их тоже х.з. как ты проверишь.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

Речь идёт только о Компортовском сканере. Если драйвер установлен, то можно попробовать вот так:

Код: Выделить всё

if LOC:BarcodeScannerUseComPort
  if ~LOC:Port
    GetRegValues(REG_LOCAL_MACHINE, 'HARDWARE\DEVICEMAP\SERIALCOMM', LOC:RegQueue)
    loop i#=1 to records(LOC:RegQueue)
      get(LOC:RegQueue, i#)
      if LOC:RegQueue.LOC:RQValue[1:14]<>'\Device\Serial'
        LOC:Port = GetReg(REG_LOCAL_MACHINE, 'HARDWARE\DEVICEMAP\SERIALCOMM', clip(LOC:RegQueue.LOC:RQValue))
        break
      end
    end
    free(LOC:RegQueue)
    v" = GetReg(REG_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports', clip(LOC:Port)&':')
    i# = instring(',', v", 1, 1)
    if i#
      LOC:BaudRate = v"[1:(i#-1)]
    else
      LOC:BaudRate = 9600
    end
    case v"[i#+1]
      of 'n'
              LOC:Parity = 'Нет'
      of 'm'
              LOC:Parity = 'Маркер'
      of 's'
              LOC:Parity = 'Пробел'
      of 'o'
              LOC:Parity = 'Нечёт'
      of 'e'
              LOC:Parity = 'Чёт'
      else
              LOC:Parity = 'Нет'
    end
    i# += 2
    LOC:ByteSize = v"[i#+1]
    i# += 2
    LOC:StopBits = v"[(i#+1):len(clip(v"))]
  end 
end
Стопроцентной уверенности определения COM-порта нет, но параметры его - сто процентов. Пока статистику определения не собрал, да и вряд ли соберу. Хотелось бы дополнительной проверки порта. 1С-ники показали как у них. Есть кнопка типа "Тест сканера". Правда, подключить сканер не дали, без сканера кнопка сообщила об отсутствии нужного оборудования.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Подключение USB сканера штрих кодов

Сообщение Admin »

kreator писал(а): Если драйвер установлен
Насколько я понимаю, тут вы узнаете только то что ком порт присутствует в системе.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Подключение USB сканера штрих кодов

Сообщение Дед Пахом »

Мы пользуемся WinEvent, функциями Newport и ReadPort:

Код: Выделить всё

    ThisDevice.ThisPort = NewPort('Com' & ThisDevice.ComPort & ':' & ThisDevice.BaudRate & ',' & ThisDevice.Parity & ',' & ThisDevice.DataBits & ',' & ThisDevice.Stopbits,1024,1024)

    IF ThisDevice.ThisPort < 0
       BEEP(BEEP:SystemExclamation)
       MESSAGE('--> port open: ERROR '& ThisDevice.ComPort,'Barcode Error',icon:Hand)
       gUtils.Trace('--> port open: ERROR '& ThisDevice.ComPort)
    ELSE
       gUtils.Trace('--> port open: OK')
    END
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

Хорошо, но в системе может быть много COM-портов, в том числе виртуальных. И, допустим, они все "открываются". А вот как понять, что на данном порту висит нужный мне сканер, а не что-то ещё. Случай, когда к одному компу подключены несколько сканеров, не интересен. Пользователь всё равно должен сам сделать окончательный выбор порта и настроек. Но хотелось бы предоставить ему первичную информацию.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Подключение USB сканера штрих кодов

Сообщение Admin »

kreator писал(а): А вот как понять, что на данном порту висит нужный мне сканер, а не что-то ещё
Т.к. стандартно сканеры не определяются вижу один вариант:
1. Жмем кнопку определить порт.
2. Открыть все возможные порты.
3. Сканером сканируем штрихкод.
4. Если что то пришло из порта - это он.
Как то так.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

Попросили рассмотреть возможность подключения второго USB сканера к одному компу с одновременной работой обоих. Если я вторую копию класса для работы с Com-портами создам, на траблы не нарвусь?
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Подключение USB сканера штрих кодов

Сообщение gopstop2007 »

Поднимаю тему, так как появилась необходимость использовать несколько сканеров штрих-кода на сервере терминалов (win2012) по RDP, кто сталкивался?
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Подключение USB сканера штрих кодов

Сообщение Игорь Столяров »

gopstop2007 писал(а): несколько сканеров штрих-кода на сервере терминалов
Не совсем понятна задача. Если сканеры подключены на рабочих станциях, работающих в терминальной сети - то никакой проблемы нет (подключение и работа сканера ничем не отличается от подключения мыши или клавиатуры). Такое же локальное устройство, все прекрасно работает ...
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Подключение USB сканера штрих кодов

Сообщение kreator »

Наверно задача в том, можно ли увидеть с терминала подключённый к локальной станции сканер? И работать с ним? У меня была (и, наверно, остаётся) проблема увидеть камеру планшета на котором запущена сессия rdp. Полазил по Инету, ничего стоящего. Временно сделал синхронизацию с центральным сервером. Но ничто так не постоянно, как временное.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Подключение USB сканера штрих кодов

Сообщение gopstop2007 »

Сканер ШК работал локально на компьютере в разрыв клавиатуры (виртуальная клавиатура), понадобилось добавить сканеров ШК в магазине для склада, поставили терминальный сервер (win2012).
Взяли планшет (windows 8 ), USB сканер для него подключили к терминалу (WI-FI) и звиздец, приплыли... :) Куда грести не знаю :idied:
Как передать со сканера на планшет данные или наоборот с сервера на планшет :(
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Подключение USB сканера штрих кодов

Сообщение gopstop2007 »

kreator писал(а): проблема увидеть камеру планшета на котором запущена сессия rdp
интересно зачем? VLC в помощь, лет 8 назад делал
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Подключение USB сканера штрих кодов

Сообщение Игорь Столяров »

gopstop2007 писал(а): Взяли планшет (windows 8 ), USB сканер для него подключили к терминалу (WI-FI)
Т.е. сканер подключен совсем к другому компьютеру ? Наверно это сделать нельзя, сканер нельзя отдать в общий доступ как принтер.
Здесь нужно сканер подключать к планшету (т.е. непосредственно к рабочей станции на которой сканер используется).
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить