Настройка сканера штрих кода в rdp

Обновлено: 07.05.2024

Проблема с пробросом сканера штрих кодов Symbol LS2208 в терминальный сервер на 2012r2

Проблема с пробросом сканера штрих кодов Symbol LS2208 в терминальный сервер на 2012r2

Есть:
Малина P3
Комп Win7
Терм сервер на виртуалке 2012r2
Терм сервер виртуалке 2012
Хостовая операционка с HiperV 2008r2
Драйвера сканера Атол 2008года Scaner1S.dll а также GUI утиль ScanerT для настройки связи со сканером и получения данных.
«Приложение» которое работает со сканером штрих кодов используя библиотеку Scaner1S.dll

Симптомы:
«Приложение» корректно получает данные со сканера только локально на компе win7 или на сервере 2008r2 (в терминале) в 2012 (терм) и 2012r2 (терм) не работает.
GUI ScanerT коректно получает данные со сканера во всех вариантах подключения включая 2012 и 2012r2.

Диагностика:
Одна и таже малина последовательно подключалась к 2008R2, 2012 и 2012R2
Параметры подключений сканера идентичны для всех 3х серверов, регистрация библиотеки Scaner1S.dll на серверах проверены все ок.
Разница в работе Атоловского ScanerT и «Приложения» в том что «Приложение» производит опрос на предмет наличия сканера прежде чем что-то с него считать.
Залез в код «Приложения», отключил проверку на наличие сканера и получил на 2012 в приложении аналог того что вижу в 2008R2.

Болезнь (Проблема):
От результатов проверки на наличие сканера зависит логика работы «Приложения». Там проверка прописана в нескольких местах. Если тупо убрать проверку, не понимая логику, работа нарушится. А копаться в логике очень не хочется, писал не я и там очень много букОв.

Предварительные выводы:
Реализация покидывание LS2208 в терминальный сервер на 2012r2 и 2012 не позволяет передавать запрос (на предмет наличия сканера) от сеанса пользователя к сканеру, хотя данные со сканера проходят на ура. В случае использования 2008R2 Все работает отлично. (2008R2 не является виртуалкой не знаю важен ли этот момент).

Вопрос:
Как мне кажется если это проблема с отправкой запроса к сканеру ее можно увидеть в логах Wtware. Если я пришлю лог с 2012R2 где не работает и 2008R2 где работает сможем ли мы увидеть разницу и как-то ее пофиксить?

Доброго времени суток! Поискал на форуме похожие темы, например Фискальный регистратор+RDesktop но нужного ответа для себя не нашел.

Задача следующая: Есть пк на win7, на нём стоит 1с 8.3, есть много клиентов на Ubuntu 16.04 LTS. К пк с Ubuntu подключается сканер штрих-кодов Datalogic QuickScan QD2430 (есть 2 кабеля к нему: RS-232 и USB), необходимо с Ubuntu, подключаясь по rdp к пк с windows пробросить данный сканер ШК для работы в 1с и (например, Блокноте). Еще проблема - 1с на пк с win7 корректно работает со сканером шк, только если он подключен к СОМ1, с другими номерами СОМ портов 1с отказывается работать, это изменять нельзя, так же не желательно создавать виртуальный СОМ-порт с привязкой к конкретному ip-адресу клиента на Ubuntu, т.к. клиентов более 200 пк.

Что я предпринимал и какие результаты:

Сканер настраивал по штрих-кодам из книжки так:

  • Восстановление заводской конфигурации ЕС
  • Стандартный интерфейс - RS232-STD
  • Скорость передачи данных - 9600
  • Четность - нет
  • 8 бит данных
  • 1 стоп-бит
  • Управление установлением связи = RTS

Подключаю сканер через СОМ кабель к Ubuntu, он определяется как /dev/ttyS0. Есть 2 пользователя: user и root, оба состоят в группе dialout, права на /dev/ttyS0 - 666. Далее пишу в терминал stty -F /dev/ttyS0 -parity cs8 raw -echo после этой настройки проверяю в терминале работу сканера ШК: cat /dev/ttyS0 - вижу, как сканер сканирует штрих-код.

Теперь пробую через rdp пробросить сканер на win7:

rdesktop -u user -p mypass -g 1024x768 -r comport:COM1=/dev/ttyS0 192.168.40.21

Соединение проходит, в win открываю cmd.exe и пишу: change port, вижу такую строчку:

  • AUX = \DosDevices\COM1
  • COM1 = \Device\RdpDrPort\;COM1:1\tsclient\COM1
  • COM2 = \Device\Serial1
  • SerialPort=\\.\COM1
  • BaudRate=9600
  • Parity=None
  • DataBits=8
  • StopBits=1
  • FlowControl=None
  • RDxBuffer=4096
  • SleepTime=0
  • Operation=11
  • PreAmble=
  • TargetType=0
  • TargetParam=
  • PostAmble=

Пробовал физически сканер подключать через USB провод, в этом случае всё точно так же, как описано выше, за исключением, что устройство висит на /dev/ttyACM0, а на win-пк установлены драйвера (на всякий случай USB-Com с сайта datalogic)

И настройки на самом сканере такие по книжке:

  • Восстановление заводской конфигурации ЕС
  • Выберете USB-COM-STD

xfreerdp - выдает ошибку, что у него не установлены плагины для проброса СОМ и его надо пересобирать с параметрами cmake -DWITH_SSE2=ON -DCHANNEL_URBDRC_CLIENT=ON -DCHANNEL_URBDRC=ON, но, честно сказать, этого я не делал, Remmina(графическая оболочка) не пробрасывает СОМ порты, в свойствах не увидел таких галок и настроек.

Так же пробовал пробрасывать шк под другим СОМ портом, например, СОМ5, СОМ7, СОМ3 (их не существует физически в win-пк) и тд. чтобы он хотя бы в Блокнот сканировал. Стоит отметить, что в обоих вариантах подключения сканера шк я при rdp сессии вижу передаваемую информацию через putty, но в диспетчере устройств win7 не создается ни нового СОМ-порта ни нового USB устройства. Подскажите, пожалуйста, что еще можно попробовать сделать?

На работе поставили задачу перевести нескольких сотрудников на терминальный сервер, чтобы все-все делалось на нем, в т. ч. сканирование с локального сканера. Пользователь работает в Windows. Можно было бы пробросить USB, но драйверов для Виндоус Сервера у этой модели сканера не было.

Поискал в сети по запросу Scan over RDP, нашел программы типа Scan Redirector RDP Edition, TSX Scan и т. п., за которые хотят в районе сотни-другой баксов за 1 лицензию, вроде бы даже видел за 800 баксов.

Я не люблю нелицензионный софт, поэтому решил реализовать сам:




Здесь вы видите главную страницу управления удаленным сканером. Плюс моего решения в том, что на терминальном сервере (или любом другом компьютере, с которого захотите сканировать) решительно ничего устанавливать не нужно, нужен только браузер.

Если нажать New JPG scan, увидим следующее:

image

image

Картинку можно сохранить по правой кнопке. Нажмем New PDF scan:

image

Нажмем пару раз Scan PDF next page:


По клику по картинке видим ее на весь экран:


Нажмем Delete page 2:


Нажмем Make PDF:


Нажмем Browse images:


Тут можно просмотреть все, что было отсканированно ранее. Как-то так оно работает. Поддерживается любой TWAIN-совместимый сканер. Протестировано в Хроме.

Опыта разработки у меня мало, поэтому код наверняка написан в худших традициях всего. Пинайте в комментариях.

Безопасность минимальная: чтобы сканером не воспользовался посторонний, файл называется scan57578.php (имя можно изменить на другое). А в index.php напишите «Access denied».

Что нужно установить на компьютер со сканером?

Что нужно еще: программа CmdTwain, которая собственно сканирует из командной строки, и консольная же утилита jpeg2pfg. Устанавливаем CmdTwain, запускаем из Пуска CmdTwain\Select Source и выбираем наш сканер. Устанавливаем Денвер, соглашаемся со всем по умолчанию.

Затем на диске Z нужно найти php.ini и задать параметр max_execution_time = 130. Значение выбираем, замерив, сколько длится одно сканирование на вашем сканере. Затем Restart Denwer. Берем с рабочего стола ярлык Start Denwer и кидаем его в автозагрузку. Задаем компьютеру статический IP.

Создаем в папке Z:\home папку с названием равным IP компьютера. В моем случае папка называется 10.74.0.98. В ней создаем папку www, а в ней папку, в которой будут лежать сканы. В моем случае она называется scans. Полный путь выглядит так: Z:\home\10.74.0.98\www\scans.

Веб-сервер настроен. Далее создайте папку Z:\jpeg2pdf. В нее скопируйте jpeg2pdf.exe, который вы скачали по ссылке, которую я давал выше. А также создайте в ней файл makepdf.bat со следующим содержимым:


Исправьте IP на нужный. Этот файл создает PDF из набора JPG. В качестве параметра ему передается имя папки с этим набором.

В папку Z:\home\10.74.0.98\www поместите index57578.php (или как вы хотите его назвать) со следующим содержимым:


Вверху задаются 4 параметра: IP компьютера со сканером, имя файла php, имя папки со сканами, путь к makepdf.bat.

Минусы: нельзя задать качество сканирования – сканирует всегда в 200 DPI и в цвете. Может как-то можно поменять параметры (например в реестре), но для офисных задач они подходят.

И да, я знаю, что функцию gettime() можно написать короче и красивее. Предлагайте самые красивые варианты в комментариях.

Практически на всех крупных проектах, как правило, приходится решать вопросы с подключением удаленных подразделений или дочерних организаций, которые могут находиться достаточно далеко друг от друга, например головное подразделение в Москве, а удаленные во Владивостоке и т.д. И тут возникает вопрос, как подключать такие подразделения или отдельные дочерние организации, у которых имеется свое место регистрации и делопроизводителям необходимо предоставить полный функционал системы.

В рамках работы СЭД DIRECTUM определим 3 основных способа

Рассматриваем только подключение удаленных подразделений в рамках единой системы, без использования DICS и сервера репликации.

1 способ – толстый клиент. Устанавливаем клиентское приложение на все рабочие места пользователей. Отличное решение, когда все подразделения находятся в одном здании, или на незначительном расстоянии и большая нагрузка на сеть не является существенным ограничением. Но при распределении Москва – Владивосток, производительность резко падает. Расстояние приводит к снижению ширины канала, а также увеличению времени отклика и процента потерь сетевых пакетов, что делает использование толстого клиента не очень комфортным. По проведенным замерам по времени открытия справочника Регистрационно-контрольные карточки, в Москве время открытия справочника РКК = 1-3 секунды. Во Владивостоке время открытия справочника могло доходить до 1,5 минут, а иногда и 3 минут.

Вывод: такой способ работы не подходит для удаленных подразделений или дочерних организаций, территориально распределенных, и если имеется существенное ограничение по сети.

2 способ – Web-доступ, хорошо решает вопросы рядового пользователя, запускающего документы на согласование, согласующего документы и осуществляющего поиск данных. Но данное решение не позволяет закрыть весь функционал пользователей канцелярии, регистрация документов, сканирование и т.д.

Вывод: данный способ позволяет организовать работу пользователей, но не делопроизводителей.

3 способ – RDP, хорошее решение, позволяет предоставить практически полный функционал системы. Но существуют проблемы со сканированием, так как напрямую сканировать документы, используя стандартные средства сервера, Windows и т.д. не возможно.

Вывод: не смотря на ограничение, связанное со сканированием, это самый оптимальный способ для организации работы делопроизводителей. Но проблемы сканирования все же необходимо как-то решать.

Варианты для сканирования документов в систему

1 вариант: В первое время было принято решение сканировать документы в папку пользователя и прикреплять к РКК из файла.

Недостатки решения: думаю, все внедренцы меня поймут, делопроизводители, конечно, остаются недовольны таким решением, так как это увеличивает объем работ. В нашем случае, сотрудник, отвечающий за регистрацию, являлся еще и секретарем руководителя, и нагрузка на него в связи с этим значительно возросла. Работник не справлялся с таким объемом работ.

2 вариант: Совместно с первым решением было принято настроить потоковое сканирование. Печаталась РКК со штрих-кодом, в системе формировался пустой документ. Карточка со штрих-кодом и документ помещалась на потоковый сканер, отсканированный документ попадал на сервер дочерней организации в определенную папку, затем эти файлы копировались в папку на сервер в Москве и уже там обрабатывались службой и помещались в систему.

Недостатки решения: между регистрацией документа и помещением в систему проходило время, пусть не значительное, максимум 10 минут, но все же задания на рассмотрение поступали раньше, чем прикреплялся документ и руководитель видел пустой документ. Появлялись лишние напечатанные документы – печатная карточка РКК, которая раньше не печаталась и не велась, а это дополнительные ресурсы бумаги.

3 вариант: В итоге было принято решение использовать программу TSScan. Программа TSScan представляет собой полностью совместимое со стандартом TWAIN отображение сканеров. Позволяет отображать список локальных устройств обработки изображений и делает их доступными на удаленном рабочем столе, может быть использована в любых типах сетей, работает без потери качества изображения. Есть демо-версия, на которой можно произвести тестирование и принять решение о покупке лицензии. Использование данного решения позволило делопроизводителю работать со сканером в обычном, привычном для делопроизводителя виде.

Недостатки решения: дополнительные затраты на покупку лицензии TSScan.

В нашем случае, когда необходимо минимизировать работу делопроизводителя, не нагружая его дополнительными действиями по печати карточек со штрих-кодами и ручном прикреплении документов, использование программы TSScan стало оптимальным решением. Думаю, заказчики крупных проектов с распределенной структурой могут позволить себе дополнительные траты на покупку лицензии TSScan. Конечно, при выполнении проектов, нужно ориентироваться на требования заказчика, возможности системы и достоинства и недостатки того или иного решения.

Читайте также: