LINUX.ORG.RU
Форум — Talks  

[Специалистам по всему]rs-232 to keyboard

 


0

0
Вот у счастливых пользователей альтернативной системы есть такое решение данной проблемы.

Softwedge - to convert data format from RS232 serial type to Keyboard type The default RS232 settings of the scanner are 9600 baud, 7 data bits, 2 stop bits and space parity. In addition, the scanner uses ACK/NAK and XON/XOFF software handshaking, and the data transmission ends with both Carriage Return and Linefeed suffixes.

Каким образом можно реализовать такое под linux, или кто может знает решение этой головоломки.

★
Ответ на: комментарий от z0D5e8n7x_2
Если на пльцах то есть сканер штрих кода, подключеный через ком порт, (ну или USB с эмуляцией ком порта) сканер сам производит разбор кода и на /dev/ttyS0 выплевывает уже готовый набор цифр + символ перевода каретки. Для того что б сканер работал где угодно хоть в консоли хоть в... (подставить по вкусу), нужна программа которая слушает ком порт, и при появлении данных прикидывается клавиатурой всталяет в активное поле данные + enter (aka перревод каретки).
RaDiSt ★
() автор топика
Ответ на: комментарий от z0D5e8n7x_2
Таки мог бы написать не спрашивал бы.
RaDiSt ★
() автор топика
А не пробовал в xorg.conf подключить /dev/ttySN (куда воткнут сканер) в качестве клавиатуры? Если не заработает, можно посмотреть в сторону http://kbde.sourceforge.net/. Или написать простую программу, которая будет читать /dev/ttySN и генерировать события в uinput, которые затем будет ловить xorg =). Если завтра на работе будет время, попробую похитить у кого-нибудь сканер под r232 и написать небольшую программку...
Deleted
()
Ответ на: комментарий от Deleted
>Если завтра на работе будет время, попробую похитить у кого-нибудь сканер под r232 и написать небольшую программку...

Похвально, но почему то у меня есть предчуствие что это будет недо что то, просто там со сканером есть тонкости. Например он может передавать сразу два суффикса. и т.д. В вендо тулсе это все учтено. Как бе если можно будет хоть как то пользоватся это уже хорошо. Но все же..

RaDiSt ★
() автор топика
Ответ на: комментарий от phasma
Проблема в том что я ей не пользуюсь.

А вот если не будет решения под линукс, тогда на терминалах будет виндовс стоят. А меня напрягает, когда я из дома не могу зайти по ssh и порешать возникшие проблемы.

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

> ну так пользуйся вендой, какие проблемы ?

Когда уже детсадовцы повырастают. Вин - лин я тебе один умный веш скажу толко ти не обыжася. Есть сферы где надо: Чтоб работало и нии**т. А что там будет просто пофигу, ибо цена простоя для написания приблуды много выше стоимости софта уже готового.

А там при плановом сносе винд, ежли появится решение то будет заменено на линукс.

RaDiSt ★
() автор топика
Ответ на: комментарий от RaDiSt
> Когда уже детсадовцы повырастают. Вин - лин я тебе один умный веш скажу толко ти не обыжася. Есть сферы где надо: Чтоб работало и нии**т. А что там будет просто пофигу, ибо цена простоя для написания приблуды много выше стоимости софта уже готового.

олололо, школьнег который рассуждает про ssh будет мне рассказывать про интырпрайз ? :) Ты иди свой техникум сначала окончи, а потом уже в магазинчике быдлокодером подрабатывай.
phasma ★☆
()
Я тоже заинтересован в этом.
Работал с штрихкод сканерами, префиксы суффиксы роли не играют.
Как уже написали можно сделать программу которая слушает порт и генерирует события в uinput.
anonymous2 ★★★★★
()
Ответ на: комментарий от Deleted
Вот чей-то велосипед на эту тему: http://www.jikos.cz/~jbohac/goodies/typekeys.c

 * typekeys - uinput keypress generator
 * Translates data from stdin to uinput key press / key release 
 * sequences and feeds them to /dev/input/uinput
 *
 * Originaly intended to feed a RS232 barcode/rfid scanner output
 * into applications just as if the code was typed on the keyboard.
 *
 * It needs a config file defining what key codes to press in responce to
 * different input characters.
Deleted
()
Ответ на: комментарий от anonymous2
> говорит слишком большое сообщение, 8к.
> куда выложить?


cat source.c | bzip2 -9 | openssl base64

Результат - пости здесь.
Deleted
()
Ответ на: комментарий от Deleted
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
SXD/i7kinChIQpNIjQA=

anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2
когда очень много раз пытаюсь штрихкод считать в dmesg получаю это:

------------[ cut here ]------------
WARNING: at drivers/usb/serial/usb-serial.c:311 serial_write+0xa9/0xb0 [usbserial]()
Modules linked in: uinput isofs zlib_inflate pl2303 usbserial nfs lockd nfs_acl sunrpc ipv6 binfmt_misc usblp sg snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm sr_mod snd_timer cdrom ohci1394 snd_page_alloc snd_hwdep ieee1394 k8temp snd forcedeth amd74xx soundcore hwmon i2c_nforce2 i2c_core rtc dm_snapshot dm_zero dm_mirror dm_log dm_mod ide_disk sata_nv libata dock ide_pci_generic ide_core sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd usbcore
Pid: 8, comm: events/1 Tainted: G        W 2.6.27.22 #1
 [<c01259bf>] warn_on_slowpath+0x5f/0x90
 [<c011da48>] __wake_up+0x38/0x50
 [<c011d42d>] place_entity+0xad/0xf0
 [<c02b8951>] _spin_lock_irqsave+0x31/0x50
 [<f8a2f439>] serial_write+0xa9/0xb0 [usbserial]
 [<c011cf08>] __wake_up_common+0x48/0x70
 [<c0207aea>] tty_put_char+0x2a/0x40
 [<c02b8b39>] __reacquire_kernel_lock+0x49/0x50
 [<c020bbb9>] opost+0xa9/0x220
 [<c020c9ef>] n_tty_receive_buf+0x63f/0xeb0
 [<c011cc04>] source_load+0x24/0x50
 [<c01c5f92>] __next_cpu+0x12/0x30
 [<c011e95d>] find_busiest_group+0x12d/0x690
 [<c010214b>] __switch_to+0xab/0x160
 [<c02b8951>] _spin_lock_irqsave+0x31/0x50
 [<c02b8951>] _spin_lock_irqsave+0x31/0x50
 [<c020c3b0>] n_tty_receive_buf+0x0/0xeb0
 [<c0208587>] flush_to_ldisc+0xe7/0x1b0
 [<c02084a0>] flush_to_ldisc+0x0/0x1b0
 [<c0134ff5>] run_workqueue+0x85/0x120
 [<c01358f0>] worker_thread+0x0/0xd0
 [<c013596c>] worker_thread+0x7c/0xd0
 [<c0138450>] autoremove_wake_function+0x0/0x50
 [<c01358f0>] worker_thread+0x0/0xd0
 [<c0138132>] kthread+0x42/0x70
 [<c01380f0>] kthread+0x0/0x70
 [<c0103f87>] kernel_thread_helper+0x7/0x10
 =======================
---[ end trace 61979dfdddfdeda5 ]---

это чей баг? стоит это отправить разработчику usbserial?
anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2
все это тоже исправил, там флаги инициализации порта были не верны.
anonymous2 ★★★★★
()
Ответ на: комментарий от RaDiSt
>нужна программа которая слушает ком порт, и при появлении данных прикидывается клавиатурой всталяет в активное поле данные

Хрена себе. Где ты такой сканер взял-то? Есть сканеры USB HID, они работают без драйверов, начиная с 98-й, есть сканеры "в разрыв клавиатуры", но они обычно уже в готовых "современных" решенях для ПОСов какого-нибудь Wincor или IBM, и по понятным причинам драйверов не требуют.

Но вот ком-портовские сканеры? Я кончено знаю, что такие были и наверное есть.

Но самый простой способ в данной ситуации - пойти и купуть нормальный сканер. Благо стоят дешево и широко доступны.

Macil ★★★★★
()
Ответ на: комментарий от Macil
> Но вот ком-портовские сканеры? Я кончено знаю, что такие были и наверное есть.

Есть. Причём сканеры обычно универсальные - они в зависимости от настроек (задаваемых специальным штрих-кодом) и кабеля могут работать и как rs232, и как usb-hid, и ещё разными способами. А необходимы эти сканеры по той причине, что многий узкоспециализированный софт работает только через задницу^Wrs232.
Deleted
()
Ответ на: комментарий от Deleted
>они в зависимости от настроек (задаваемых специальным штрих-кодом)

Да, точно. К сканеру идет специальная книжечка (обычно в виде PDF'ки), в которой есть специальные щтрих-коды для его настройки, обычно достаточно извращенной.

Может быть топикстартеру покопать в этом направлении?

Macil ★★★★★
()
Ответ на: комментарий от RaDiSt
Я не знаю. Мне попадался один юсбовый штрихкод-сканер, так он, собака, из коробки был опознан как HID-клавиатура.
shimon ★★★★★
()
Ответ на: комментарий от Macil
> в которой есть специальные щтрих-коды для его настройки
ага два контроллера иметь на борту. использую дешевые ручные cypher 1000 с контроллером pl2303 и дорогие стационарные магеланы V2200. я копался - там такого нету.
anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2
> ага два контроллера иметь на борту. использую дешевые ручные cypher 1000 с контроллером pl2303 и дорогие стационарные магеланы V2200. я копался - там такого нету.

У меня сейчас Symbol LS2208:

http://www.motorola.com/business/v/index.jsp?vgnextoid=e37575489c075110VgnVCM...

...Multiple on-board interfaces ensure integration with a variety of host systems...

...Interfaces supported IBM, Keyboard wedge, RS-232, Synapse, USB, Wand...
Deleted
()
Ответ на: комментарий от Deleted
>Symbol LS2208

Отличный практически не убиваемый сканер, при заказе можно выбрать нужный тип кабеля.

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