Познавательный блог  

Поиск по сайту

Гугль

Архивы

Настройка WinLIRC для пульта управления

Ситуация с софтом в нашем случае для настоящего компьютерщика вовсе не так проста, как может показаться на первый взгляд. Естественно, в Интернете есть множество программ для управления собранным нами и ему подобными устройствами. Но мне как человеку близкому к программированию было гораздо интереснее создать управляющее ПО самому. В итоге приложенных усилий получилась вполне функциональная программка. С ее помощью можно управлять WinAmp’ом. И все шло прекрасно до того момента, как я захотел управлять видеоплейером. Дело в том, что моя программка управляла WinAmp’ом, жестко привязавшись к его API. В принципе, можно было управлять и любой иной программой, но надо было знать ее API, что, согласитесь, не способствовало удобству в настройке софтины. Тем более, у меня не было API ни для одно видеоплейера...

SoftWare, но руками чужими

В поисках подходящей программки я пересмотрел несколько вариантов. Остановился же на WinLIRC (http://winlirc.sourceforge.net) как самой функциональной. Главным аргументом в ее пользу была встроенная (!) поддержка со стороны некоторых МедиаПлееров. К тому же, WinLIRC справится и с управлением бытовой техники — он может посылать команды, как будто вы нажали кнопку на пульте. Недостатком является работа только с последовательными портами (COM). Не в пример своему «предку» — программе LIRC, которая не брезгует практически ничем, к чему можно подключить ДУ :-), включая некоторые модели ТВ-тюнеров. Ну и ладно, ведь что может быть для юзера лучше обеспеченной разработчиками возможности управления развлекательным процессом?

Итак, качаем свеженькую версию (я качал winlirc-0.6.4.zip, 123 Кб), распаковываем. Мы получаем freeware-продукт (портирован из Линукса), вместе с которым поставляются и его исходные коды на MS VC++. То есть кто пожелает, может вносить свои коррективы и добавлять bug’и :-) в ПО.

После первого запуска нам предлагают настроить WinLIRC, на что надо незамедлительно соглашаться. В открывшемся окне настроек выбираем тип нашего приемника — RX Device или DCD Device. Поясняю: RX Device — это устройство, выходной сигнал которого подается на 2-ую «ногу» COM-порта, а DCD Device — на 1-ую. В нашей схеме сигнал подается на обе ноги, а значит, это дает возможность поэкспериментировать с обоими типами настроек и разными программами. Я заметил, что в Windows 9x лучше выбирать RX, а в Windows NT (2000, XP) — DCD Device. В этом же окне определяются настройки ИК-передатчика, скорость COM-порта и другие параметры.

Итак, все нужное выбрали. Жмем Learn. Далее следует процесс настройки на конкретный пульт ДУ. Ничего сложного в этой процедуре нет. Только одно замечание — может оказаться, что имеющийся у вас пульт при зажатой клавише посылает не один и тот же пакет (набор, состоящий из 1 и 0), а вначале идет пакет нажатой кнопки, а затем — код повтора. В этом случае необходимо во время обучения не зажать и держать, а очень быстро нажимать и отпускать нужную клавишу (64 раза ). Кстати, моя программка подобный нюанс учитывала, и при зажатой кнопке такого пульта повторяла вызов API.

После непродолжительного процесса обучения нам предлагают нажать кнопку Analyze. Это достаточно странная кнопка. Она должна проверить правильность полученных настроек, т.е. сгенерированного конфигурационного файла. Но у меня иногда на работоспособный файл она все-таки ругалась. Возможно, это просто глюк. Хотя, кто его знает...

Если все прошло успешно — остается только наслаждаться установленным и настроенным WinLIRC’ом. Можно ярлычок на него поместить в Автозагрузку (StartUp) — тогда он будет запускаться вместе со стартом Windows.

А что же дальше?

А дальше все как по маслу. После запуска настроенного WinLIRC в System Tray в виде маленькой лампочки появится индикатор состояния. Его серый цвет сигнализирует о готовности принимать команды с пульта ДУ, красный, как нетрудно догадаться, — об ошибке в настройках, зеленый — об успешном распознании нажатой клавиши ДУ, желтый — об инициализации (открытии) порта, синий — о передаче команды, например, бытовой технике.

Сам по себе WinLIRC никаких действий не производит. Он выступает сервером, распознающим команды, поступающие с пульта, посылает имена этих команд клиентам, которыми являются прикладные программы, и таким образом предоставляет программам доступ практически к любому пульту ДУ. То есть WinLIRC позволяет избежать программно-аппаратной привязанности к конкретному принимающему устройству и пульту. И в то же время утилита предоставляет стандартизированный и удобоваримый способ получать эти самые управляющие команды. В итоге, программисты избавляются от необходимости изобретать велосипед, а пользователи — от лишней головной боли при возне с настройкой «железа».

Теперь подходим к самому интересному — к программам, поддерживающим WinLIRC.

Компьютер-граммофон

Радуйтесь, меломаны, речь пойдет о Winamp’е. Ибо именно этот аудиоплейер завоевал наибольшую популярность. Хотя, по-моему, МР3 он играет не лучшим образом, здесь по качеству воспроизведения его обходит даже более «легкий» Apollo. Но не об этом сейчас речь. Для Winamp’а существует плагин управления через WinLIRC. Зовется он незамысловато — WinLIRC Plugin. Попал он ко мне с диска, на котором было множество плагинов и скинов к Winamp’у. А Интернета у меня нет, поэтому ссылки на него у меня тоже нет. (А у нас есть: http://prdownloads.sourceforge.net/winlirc/gen_ir-0.3.zip, 80 Кб — прим. ред.) Сам файл называется gen_ir.dll.

Плагин предоставляет широкий спектр функций, необходимых для управления Winamp’ом. От воспроизведения, паузы, остановки до таких экзотических для пульта ДУ команд, как открытие опций визуализации и загрузка настроек эквалайзера. В настройке софтины разберется даже ребенок, правда, хоть немного знакомый с английским языком.

Для добавления новой команды жмем кнопку Add. Появляется маленькое диалоговое окно с полем ввода названия клавиши пульта (одного из тех названий, которые вы давали во время настройки WinLIRC), и выпадающим списком, в котором необходимо выбрать действие, соответствующее указанной кнопке.

Учтите, что Winamp нужно будет запускать после WinLIRC. Делать это нужно для того, чтобы в проигрывателе была доступна сама возможность удаленного управления. Это касается и всего остального софта, использующего WinLIRC.

Кстати, существует очень интересная возможность управления с пульта ДУ программами, выполняющимися на разных ПК. Ведь ничто не мешает утилите подключиться к WinLIRC’у через сеть. Но для этого нужно, чтобы в настройках соответствующей программы была возможность вводить адрес WinLIRC-сервера. К примеру, gen_ir такой возможностью не обладает .

Если все было настроено правильно,
то после запуска ПО соответствующий плагин начнет реагировать на команды с пульта ДУ.

Управляемое кино

В качестве примера видеоплейера я опишу Light Alloy (http://www.neurosoft.ru/alloy), версия 1.D. (Сейчас доступна обновленная версия 1.Е., 384 Кб — прим. ред.) Это достаточно молодой, но прогрессивный плейер. В нем реализованы все необходимые функции для проигрывания аудио- и видеофайлов, плюс немного больше. Главное же его преимущество перед остальными плейерами (к которым у меня имелся доступ, а таковых было 7 наименований) — нормальная работа с WinLIRC. Например, BSPlayer (версия 0.85, build 484) наотрез отказывался воспринимать WinLIRC. Хотя, в принципе, это и не важно — см. далее.

Итак, в настройках плеера Light Alloy ставим «галочку» возле надписи «Использовать WinLIRC». Указываем адрес сервера и порт. Можно также включить дублирование команды с пульта звуком. То есть при нажатии на кнопку пульта раздается звуковой сигнал. Здесь же отображается состояние соединения с WinLIRC’ом и последняя нажатая клавиша. Для установки соединения с WinLIRC’ом необходимо перезапустить плейер.

Далее в настройках клавиатуры ставим курсор на нужную команду и нажимаем соответствующую кнопку на ДУ. И так для каждой кнопки/команды.

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

Универсал

Да, такова уж жизнь, что набор прикладного ПО не ограничивается Winamp’ом и Light Alloy. Может возникнуть реальная необходимость управлять с помощью ДУ и другими программами, которые не поддерживают WinLIRC. Что же желать? Выход есть всегда, когда есть вход :-). И в данном случае тоже. Зовется он InfraRed EXecuter (http://www.ramscan.com/irex, 24 Кб). С помощью ДУ эта программа позволяет эмулировать нажатия любых клавиш клавиатуры, действия мыши, управлять громкостью звука, запускать многие программы. Например, InfraRed EXecuter (IREX) при нажатии кнопки на пульте ДУ может заставить программу, чье окно в данный момент активно, считать, что нажата соответствующая клавиша на клавиатуре, или мышь выполнила какое-то действие (например, левый или правый клик, перемещение указателя). Очень удобным будет, к примеру, настроить несколько кнопок на пульте ДУ на самые используемые в мультимедиа (и не только) клавиши клавы. Такие как курсор вверх/вниз/влево/вправо, пробел, Enter, Alt-Tab и т.д. А затем во всех используемых плейерах установить управление при помощи клавиатуры, задействуя эти клавиши.

К тому же, IREX очень «умен». Так, при старте он дожидается запуска WinLIRC; при его закрытии завершает свою работу; автоматически перезагружает свой файл настройки (который может храниться или в папке вместе с IREX’ом, или в «Мои Документы»), когда он изменяется. IREX представлен иконкой в System Tray и подмигивает, когда «понял» какую-то команду. Именно его я использую для запуска Winamp’а и Light Alloy.

Вот, в общем, и все. Теперь, благодаря пульту ДУ, вы открыли для себя огромный полигон для экспериментов. Развлекайтесь на здоровье!

Комментарии

Комментарий от Захарьин [ Декабрь 10, 2008, 11:43 ]

Побольше б таких штук

Комментарий от wobbyaccot [ Март 16, 2009, 08:39 ]

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

Комментарий от liscig [ Март 24, 2009, 16:49 ]

И да прибудет с нами сила

Комментарий от Yarik [ Июнь 30, 2009, 10:30 ]

спаял схемку, запустил WinLirc — все работает. А вот за InfraRed EXecuter отдельное спасибо. Не знал :) Буду теперь эксперементировать с бытовой техникой. Може что то получится. Будем надеятся :)

Комментарий от admin [ Июнь 30, 2009, 14:20 ]

Красаучик :)

Комментарий от ыв [ Февраль 3, 2010, 18:15 ]

почему когда запущен фильм и выделен плеер, прога не реагирует, как только жму паузу, начинает работать ?

Комментарий от academy-nuau [ Февраль 7, 2010, 15:53 ]

Да штуки классные. IREX РУЛИТ!

Комментарий от толик [ Март 9, 2011, 17:19 ]

Я поставил программу virtkeyb и никаких проблем все работает!!!

Комментарий от Никита [ Апрель 12, 2011, 18:50 ]

help!! сделал схему, винлирк настроил, все кнопки распознает. скачал плагин для винампа, все файлы засунул в папку с плагинами винампа. в винаппе выбираю плагин для настройки и постоянно пишет ошибку «this plugin was newer properly initialized. try again». помогите ктонибудь решить проблему пожалуйста!

Комментарий от Андрей [ Октябрь 18, 2011, 16:48 ]

Winlirc не работает на Win7 SP1, как быть?
Весь инэт перерыл ничего под 7 нет.

Комментарий от Юрас [ Январь 3, 2012, 13:20 ]

Рулин и на win 7

Комментарий от saber [ Апрель 23, 2012, 09:28 ]

Отлично работает под win 7

Комментарий от Станислав [ Май 20, 2012, 18:54 ]

В статье сказано, что у вас подключены 1-ая и 2-ая ноги COM-порта, а в статье со схемой http://www.makak.ru/2008/11/08/upravlenie-kompom-pri-pomoshi-pulta/ у вас подключена 8-ая нога.

Написать комментарий








Страницы

Свежие записи

Гугль

Мета

Счетчики


Rambler's Top100

Рубрики

  Разработка и дизайн — StvPromo.ru