Вопрос

В настоящее время у меня есть карт для USB-карты, прикрепленная к встроенной машине Linux и от того, что я могу сказать, и из того, что я исследовал, он действует как клавиатура, и вводит все данные, как будто я печатал. Теперь у меня есть сценарий Perl, который принимает все эти данные и сохраняет его в файл. Единственная проблема в том, что она только знает, что нужно принимать данные, когда сценарий PERL работает на переднем плане, в противном случае, где находится вход «клавиатура».

Мой вопрос в том, как я могу сделать эту карту Swipe запускать скрипт каждый раз, когда он читает ввод? Или я мог бы как-то захватить данные с приложением, работающим на заднем плане. Т.е. в программе C ++, работает на заднем плане, будет прочитать любой ввод на машину?

Я никогда не ворвался с карт для читателя Swipe, поэтому я не на 100% уверен на том, как они работают.

Любые предложения по этому будут оценены!

Это было полезно?

Решение

У меня есть идея, но это очень общее.

Можете ли вы постоянно контролировать данные для данных в другой программе, буфер его, а затем проводят результаты в ваш сценарий Perl, когда буфер достигает определенного размера или имеет определенный период времени без активности? Если вы подключите его, вам не нужно модифицировать ваш сценарий Perl, так как он все равно будет на stdin.

Итак, это было бы так:

Программа мониторинга -> собирает данные -> Трубы в вашей программе Perl

Я надеюсь, что эта идея полезна.

-Бриан Дж. Стинар-

Другие советы

Я сделал почти именно именно это (за исключением считывания USB BARCode, который появился в виде клавиатуры).

Моя система имеет пользовательское правило USB Hotplug, которое обнаруживает USB-устройство, когда он подключен на основе его поставщика и идентификатора продукта. Это правило создает SymLink к соответствующему event устройство внутри /dev/input/.

У меня тогда есть демон C, который постоянно проходит. Это смотрит /dev/input/ каталог, и когда он видит, как SymLink появляется, она открывает event устройство. Затем он использует EVIOCGRAB IOCTL Чтобы захватить устройство события для эксклюзивного использования (это предотвращает отображение данных в качестве ввода клавиатуры в других приложениях) и считывает входные события, соответствующие сжатиям ключей. Демон преобразует ключ в символы и сохраняет их в базе данных.

CIN будет читать вход с прилагаемого устройства ввода терминала. Не зная больше о вашем дизайне программного обеспечения, моя первая Swch читает данные из сценария Perl - это не лучший выбор дизайна. Я могу прочитать ИК-пульты на встроенных устройствах Linux, используя сценарий PERL, как вы описываете, но в целом I интерфейс напрямую с аппаратным обеспечением или поставщиком поставщика API из в пределах моего основного приложения. Был ли API с вашей картой Reader?

Какое имя устройства для чтения карт, когда он подключен к вашей машине (/ dev / *)? Я открою это и прочитал это таким образом.

Я никогда не имел дело с этим в Linux. Однако это звуки очень похожи на то, что я видел в Windows.

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

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

Ваш лучший вариант будет изучать веб-сайт производителя (или иным образом связаться с ними) и выяснить, если они предоставляют какой-то драйвер, который позволил бы программе уловить этот ввод совершенно отдельно от потока клавиатуры.

Если производитель не предоставит такой вещи, возможно, у некоторых 3-й партии. Но, к сожалению, я никогда не расследовал это, поэтому я не знаю, где сказать вам даже начать смотреть.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top