Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как из скрипта получить состояние порта устройства (LPT = /dev/lp0, 0x379)  (Прочитано 1601 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ShadowUser15

  • Автор темы
  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Надо по замыканию кнопки на порту лпт запускать скрипт.
(Нажмите, чтобы показать/скрыть)
Цитата: нагуглено
устройство
0x3bc для /dev/lp0, 0x378
Порт БАЗА+1 (Порт состояния) предназначен только для чтения и возвращает следующие входные сигналы:
    Биты 0 и 1 зарезервированы.
    Бит 2 состояние IRQ (его нет на разъеме и я не знаю как он работает)
    Бит 3 ERROR (1=ОШИБКА)
    Бит 4 SLCT (1=ВЫБОР)
    Бит 5 PE (1=ГОТОВ)
    Бит 6 ACK (1=ПОДТВЕРЖДЕНИЕ)
    Бит 7 -BUSY (0=ЗАНЯТ)

соответственно надо прочитать из /dev/lp0, 0x379 байт и по маске выяснить состояние бита.
как скриптом из шелла? хотябы ткните в гайд..


(Нажмите, чтобы показать/скрыть)

UPD!!!
читать можно dd, команду см. ниже. А вот с результатом проблемы.
« Последнее редактирование: 15 Октября 2014, 10:54:05 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Nicom

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Что мешает прикрутить вместо второй мышки вторую клавиатуру, точнее её плату с распаянными только нужными для сканера кнопками не из стандартных, и забиндить эти кнопки напимер через xmodmap? Клавиатуры ведь есть и мультимедиа, что если использовать у них эти всякие ненужные кнопки?
Можно читать и LPT порт, но тогда нужно обрабатывать прерывание на нём, а из шелла это невозможно, IMHO.
Можно гонять cat /dev/lp0 в скрипте по циклу, но непонятно как это скжется на нагрузке процессора.
То есть получается что нужна программка на Срр, или подобном языке умеющим работать с прерываниями.
Если у Вас вдруг появится решение по чтению LPT из шелла по прерыванию, то отпишитесь пожалуйста в этой теме, мне тоже интересна тема сбора данных с портов.

Оффлайн ShadowUser15

  • Автор темы
  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
На клавиатуре матрица из кнопок, и думаю, и задачи "найти нужную часть проводки на плёнке" и (допустим, не проверял)"сваять своё на сдвиговом регистре" сравнимы по трудозатратам. Не говоря про проблемы с наличием такой клавы в убитом виде.

а прерывание не нужно: https://forum.ubuntu.ru/index.php?topic=250560.msg1978541#msg1978541
https://forum.ubuntu.ru/index.php?topic=250173.msg1978379#msg1978379
на практике ещё не проверил.
5ти кнопок на линиях флагов состояния мне достаточно, ввод-вывод данных и конфигурация - соседние байты.
Единственно в пруфе говорится что так медленнее чем по прерыванию.
=пример дорожек на клаве
« Последнее редактирование: 09 Октября 2014, 11:13:59 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн suslikk

  • Старожил
  • *
  • Сообщений: 2485
    • Просмотр профиля
Когда для работы с параллельным портом (LPT) использовал библиотеку для питона http://pyserial.sourceforge.net/pyparallel.html
Нарисуй свой город на openstreetmap.org

Оффлайн Nicom

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
На клавиатуре матрица из кнопок, и думаю, и задачи "найти нужную часть проводки на плёнке" и (допустим, не проверял)"сваять своё на сдвиговом регистре" сравнимы по трудозатратам. Не говоря про проблемы с наличием такой клавы в убитом виде.
Кнопки отыскиваются легко, не надо прослеживать их по дорожкам. Нужно положить плёнку на стол, поставить на нужную кнопку любой груз и мультиметром, или контролькой, поводить по выводам матрицы со стороны контроллера. Дело на 5 минут.

У клавиатуры есть один большой плюс, она обрабатывается системой по прерыванию довольно высокого уровня, то есть задержки входящих сигналов будут мизерными. И так как клавиатура это стандартное HID устройство, то поддержка уже есть в системе, не нужно ничего придумывать по обработке сигналов с неё, плюсом есть 3 стандартизованных интерфейса AT, PS/2, USB.

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

Я на основе платы от убитой клавы делал ребутер информационного терминала, просто мигал светодиодом ScrollLock раз в минуту и отслеживал NE555 таймером через оптопару. Это решение оказалось проще всего в изготовлении, и надёжнее, чем COM порт, или Ethernet.

Оффлайн ShadowUser15

  • Автор темы
  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
СПС за идею ребутера!!!
(Нажмите, чтобы показать/скрыть)
единственно вопрос: а как он себя ведёт если повиснет на состоянии "лед-вкл"? "лед-выкл"?

А клава... в принципе можно - но возни многовато, будет запасным вариантом если LPT окажется люто тормозным или я не подниму.
« Последнее редактирование: 10 Октября 2014, 09:02:41 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Nicom

  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
единственно вопрос: а как он себя ведёт если повиснет на состоянии "лед-вкл"? "лед-выкл"?
У меня транзистор оптопары был подключен через конденсатор 10 мкф на таймер, там сброс 555 проходил импульсом, и если этого импульса не приходило, то другая оптопара замыкала резет. К сожалению схемы не сохранилось, давно это было.

Если Вам всё таки удастся читать порт на достаточно большой скорости, поделитесь пожалуйста изысканиями в этой теме, я останусь в подписке на неё.

Оффлайн ShadowUser15

  • Автор темы
  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Угу. Отпишусь обязательно. Единственно - (1) мне нужно читать не лпт порт - а флаги состояния (2) достаточная скорость в моём случае - это 5-10Гц (событие нажатия кнопки длительностью 0,2-0,1с), собственно и 2Гц приемлемо будет, если проц не больше 50% жрать будет.
По ссылке "медленно" имелось в виду "по сравнению с другими методами".
И кстати предоставление доступа к файлу "ports" это толстенная дыра в защите, так что если критично - нужно продумать чтобы у того пользователя от кого скрипт крутится не было возможности, например, запустить или поменять скрипт.
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн ShadowUser15

  • Автор темы
  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
попробовал.
Результат странный, подробнее см: https://forum.ubuntu.ru/index.php?topic=250560.msg1984851#msg1984851
кстати - скорость больше 4-24кб/с (это чтения из порта состояния, в бодах не больше, возможно больше на "порту данных", и это скорость чтения 1го байта!!!)
« Последнее редактирование: 18 Октября 2014, 14:10:51 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

 

Страница сгенерирована за 0.058 секунд. Запросов: 25.