LINUX.ORG.RU
ФорумAdmin

rdesktop + COM port + 1с

 , ,


0

2

Доброго времени дня. Возникла такая проблема: c ubuntu (14.04, не думаю, что это как-то влияет) через rdesktop на win2k8 передается COM порт (/dev/ttyUSB0) как COM3, под виндой в putty все работает замечательно, но если открыть 1с и в номенклатуре считать штрих-код очень долго думает и курсор встает в нужную позицию. Т.е. если локально сделать так:

$ sudo cat /dev/ttyUSB0 
0000013605
0000013605
0000013605
0000013605
0000013605
..

Без проблем. На удаленной машине через puttу - все отлично. Но в 1С все плохо. И вот главное: если после считывания двинуть мышку или выбрать какую либо позицию из номенклатуры, то моментально отрабатывает считанный код и курсор встает куда надо. Пользователи виндов подобных проблем не имеют. Если честно, получается, что проблема в 1с, но я совершенно не могу понять как так. Может кто-то сталкивался с подобным поведением???

PS пробовал xfreerdp. Но у него проблемы с Enter при считывании кода. Т.е. он корректно не передает перевод корретки.


Если доступен отладчик 1С, то поставь бряк на функцию обработки ШК или обработчик внешнего события, и смотри, что там происходит. Можно ещё поэкспериментировать с настройками ТО.

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

Да, забыл сказать. 1с'ники сказали что там ничего не происходит, до того момента пока чего либо не сделать (писал выше). Именно потому, я и не понимаю как это возможно. Что за настройки ТО? Если вот про эти, да тут и нет ничего. Как у всех.

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

Тогда, я думаю, нужно копать в направлении драйвера сканера. Скорее всего он как-то неправильно работает в твоей ситуации.

Gotf ★★★
()

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

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

Нет, он подключен через переходник COM->USB. Я не могу перевести его в режим простого набора текста, так как тогда в 1с не будет срабатывать внешнее событие.

modjo
() автор топика

Я бы попробовал подготовить файл с 0000013605\r\n и катнул бы его.

xfreerdp. Но у него проблемы с Enter при считывании кода. Т.е. он корректно не передает перевод каретки

А может у него те же проблемы?

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

Можно с этой стороны запустить прогу, которая без драйвера, как есть, читает с порта, и сравнить, что летит по рдп, и что летит, когда сканер локально.

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

0000013605\r\n - по этому можно подробней, не понял что мне нужно сделать. Как писал выше, при локальном тесте проблем нет. Если использовать rdesktop то в putty проблем нет, если использовать xfreerdp то он не переводит каретку (замечание заметил) правильно. Вот как это выглядит:

12345

    12345

        12345

            12345
...

Вот так это видно в putty.

modjo
() автор топика
Ответ на: комментарий от arturpub

Локально и удаленно (использую putty) проблем вообще нет. Все четко.

sudo cat /dev/ttyUSB0 
0000013605
0000013605
0000013605
0000013605
0000013605
...
modjo
() автор топика
Ответ на: комментарий от modjo

Пути, блокнот, прочая хренотень в курсе, что бывают разные конвенции перевода строк (\r\n, \r, \n) и могут прозрачно хавать/преобразовывать некоторые из них. Ты шлешь \n с юникса, а может драйвер ждет две «буквы» в конце ШК. Надо открыть порт нормальной прогой и посмотреть, чем отличается поток чистых байт в рабочем варианте от варианта с рдп.

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

Под рабочим вариантом имеется ввиду локальное подключение и нормальная работа драйвера.

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

Я пробовал менять на LF, результата нет (что на rdesktop, что на xfreerdp).

modjo
() автор топика

проверь работу сканера локально на 1С на win2k8, отпадет сразу половина ненужных вопросов.

anonymous2 ★★★★★
()

На удаленной машине через puttу - все отлично. Но в 1С все плохо.

Сталкивался давно с этим правда в контексте wine. 1C пытается открывать порт как «железный» а не как блочное устройство, соответсвенно и не работает потомучто виртуальный порт умеет лишь передавать данные, это фактически пайп а не эмулятор порта. Для wine делали раньше патчи чтобы решить эту проблему, а вот для винды хз-хз.

TheMixa ★★★
()

http://unixforum.org/index.php?showtopic=76746&view=findpost&p=1230653 Лови эпичный костыль с эпичного треда.

В общем суть проблемы ясна. Запускаешь в терминальном сеансе часы с секундами так, чтобы секунды тикали в видимой части экрана - сканер перестает тупить и нормально считывает коды раз в секунду. Можно написать программку, которая перерисовывает свою иконку в трее раз в полсекунды например - будет получение штрихкодов раз в полсекунды и так далее. Жалко только, что винда не умеет штатными средствами отображать секунды на своих часах в трее.

А в putty небось курсор мигает - вот и отрабатывает.

strangeman ★★★★
()
Последнее исправление: strangeman (всего исправлений: 1)

попробоуй не в 1с приземлять коды, а в wintaskgen, а из него уже в 1с грузить.
там, кста, и настройка cr/lf есть

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

Вот это да. Столько времени, а проблемы все те же. Увидев это решение вспомнил, что ранее видел подобное, но тогда это было неактуально.

В win2k8 подобное решение уже не работает. Я открыл часики, на заднем плане 1с. Вообще ноль эмоций. Вообще не отрабатывает, даже если фокус передать обратно 1с. Надо заново сканировать и уже делать клик по любой записи, потому как дерганье мышкой не помогает...

modjo
() автор топика
Ответ на: комментарий от strangeman

В общем одно из решений это сделать в 1с для форм обработчик (в нашем случае обработчик невидим), например те же часики с секундами, и тогда все начинает работать как надо. В 1с я мало что понимаю, может криво объяснил. Думаю кодеры из это среды поймут лучше. Это, конечно, костыль еще тот. В нашем случае, скорее всего, придется таки ставить винду, потому как есть множество всплывающих форм или подобной лабуды и 1с'ники сами не знают что и где. В общем решение есть, но с 1с надо еще справиться.

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