LINUX.ORG.RU

Проброс сканера ШК через rdp в win7

 , , , ,


1

1

Доброго времени суток! Поискал на форуме похожие темы, например Фискальный регистратор+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

По «гуглу» это говорит о том, что порт пробросился, но 1с сканер не видит (в настройках 1с сканер шк добавлен), в Блокнот не сканируется инфа, так же проверяю работу сканера программой PcWedge - у неё настройки следующие:

  • SerialPort=\\.\COM1
  • BaudRate=9600
  • Parity=None
  • DataBits=8
  • StopBits=1
  • FlowControl=None
  • RDxBuffer=4096
  • SleepTime=0
  • Operation=11
  • PreAmble=
  • TargetType=0
  • TargetParam=
  • PostAmble=

Причем если в этой программе нажать Close(выход) то она «мёртво повисает».

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

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

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

При таком пробросе (имеется ввиду usb-сом подключение сканера к Ubuntu) на win в терминале Ubuntu при попытке что-то отсканировать в PcWedge (1с не видит сканер, в блокнот так же не сканируется) выдается сообщение:

open:устройство занято

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

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

С Уважением, V.C.

Многие сканеры штрихкода умеют прикидыватся обычной клавиатурой. Гугли в этом направлении, и ничего пробрасывать неридется.

anonymous ()
Ответ на: комментарий от anonymous

К сожалению мне необходимо именно как СОМ-устройство сканер пробросить, режим в разрыв клавиатуры не подходит =( Но информацию поищу, Спасибо!

vanilla_crab ()
Ответ на: комментарий от vanilla_crab

1с 8.3 по рдп? можно вопрос, почему именно так, а не нативно, не ради троллинга, вдруг есть специфичные причины и мне пригодятся

Morin ★★★ ()

Рута в dialout не надо помещать, он и так всё может.

Deleted ()
Ответ на: комментарий от vanilla_crab

не «разрыв клавиатуры», это прошлый век, а эмуляция юсб клавы. минимально гемморный способ использования удаленных сканеров ШК. или для цепляния к планшету с ведроидом

но конфигурацию 1с ессно придется подправлять, что бы по хоткею фокусировалось поле ввода ШК

anonymous ()
Ответ на: комментарий от Deleted

Спасибо, думал «на всякий случай» все варианты и команды всем пользователям прописать..

vanilla_crab ()
Ответ на: комментарий от Morin

Уходим с win на linux на клиентах, или я не так ответил на Ваш вопрос?(понял Вас)

vanilla_crab ()
Ответ на: комментарий от vanilla_crab

как-то не так. почему не публикация базы и не нативный клиент под линукс? У меня пока проблема только с бухом, там зоопарк винсофта такой, что проще винду купить

Morin ★★★ ()
Ответ на: комментарий от Morin

Поставлена задача организовать работу именно таким образом ((

В данный момент, как рекомендовали выше, попробовал настроить сканер в режим эмуляции клавиатуры - всё работает, да только не через СОМ-порт((( Есть ли какой-нибудь софт, который перенаправляет данные с клавиатуры в СОМ-порт?

vanilla_crab ()
Ответ на: комментарий от vanilla_crab

на поле ввода на форме вешается хоткей (в свойствах поля), например Альт-Ф12

любой сканер - программируется. с ним книжечка такая идет бумажная, с напечатанными шк для настройки. по книжечке сканеру назначается префикс - Альт-Ф12, и суффикс - Enter

дальше думаю разжевывать не нужно

недостаток такого решения - нужно править все формы, которые будут работать с шк. впрочем их один хрен править - типовой обработчик данных со сканера никакой, шаблон фактически

достоинство - пофиг где и на какой платформе и 1с, и сканер. хоть локально, хоть rdp, хоть vnc, венда/линукс/андроид. да хоть на малинке тонкий клиент делай или RDP4DOS )))

anonymous ()
Ответ на: комментарий от vanilla_crab

Поставлена задача организовать работу именно таким образом ((

Поставлена задача чистить унитаз вилкой.

te111011010 ()
Ответ на: комментарий от vanilla_crab

Нашел проблему, по которой у меня не пробрасывался СОМ-порт по rdp... Команды правильные для проброса писал в терминале...

Необходимо было на пк, к которому подключался (взял тестовый из «запаса») зарегистрировать ScanOPOS.dll в командной строке win пишем C:\Users\admin>regsvr32 «путь к dll, кавычки если в пути есть пробелы в названии папок\ScanOPOS.dll»

И команда для rdp с пробросом будет такого вида:

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

При этом когда подключимся к рдп - в командной строке win будет видно, что порт проброшен, а когда запустим 1с, то из cmd пропадет наш СОМ1, т.к. она (1с) СОМ-порт захватывает «монопольно».

После регистрации dll-ки сканер заработал, осталась проблема, что при сканировании ШК не сразу «падает» в 1с, а с задержкой небольшой (до 3х секунд)...

Может ли это быть из-за: РДП сессии - она не «перерисовывает картинку» пока не пошевелил мышкой, т.к. никакого события для «перерисовки» не произошло?

Как-то можно еще посмотреть причины, как побороть задержку при передачи ШК?

vanilla_crab ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.