Когда приложения-пульты бессильны, на сцену выходит IrCode Finder

Привет, меня зовут Виталий, я автор и разработчик Andoid приложения IrCode Finder. Оно создавалось как инструмент подбора управляющих ИК-кодов для других моих приложений, но выросло в самостоятельный проект. В этой статье я расскажу об этом инструменте, немного больше, чем описано в справке на странице самого приложения. Если вы когда-нибудь пытались найти приложение-пульт, но ничего не вышло, то однозначно стоит попробовать IrCode Finder.

Приложение платное, подробнее под спойлером

Полная версия доступна в RuStore, но главная функция приложения — подбор кодов доступна бесплатно, и можно сохранить 5 найденных кодов без оплаты полной версии. Этого должно быть достаточно чтобы собрать базовый пульт управления с основными функциями устройства.

Начать следует с того что для работы приложения нужен ИК передатчик, встроенный или внешний. Если у вас телефон Xiaomi, POCO или OnePlus то с вероятностью 99% он имеет встроенный ИК передатчик. Если нет, то приложение также поддерживает внешние ИК передатчики подробнее об этом я написал в справке к приложению на своем сайте, ссылка, будет конце статьи.

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

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

Вводная часть завершена, переходим к сути. В мире пультов управления существует множество протоколов, наиболее популярный на сегодняшний день это протокол NEC, программа разработана для работы именно с этим протоколом. Для уменьшения количества «колдунства» и понимания что же на самом деле происходит при подборе кодов нужно ввести пару понятий это код «адреса устройства» (иногда называемый sys-code) и код «команды» (data-code). На самом деле протокол устроен немного сложнее, но для взаимодействия с приложением этих двух понятий будет достаточно.

Скрин с полями адрес устройства и команды

Поле адреса устройства и команды

Поле адреса устройства и команды

Протокол NEC поддерживает всего 256 кодов команд, а для того чтобы разные устройства не реагировали на один и тот же пульт управления — перед отправкой команды отправляется код адреса устройства, которое должно обработать команду. Все коды команд, которые устройство способно обрабатывать почти всегда ограничены именно адресом устройства, но иногда встречаются устройства, которые могут обрабатывать команды из разных адресов. Попробуем перефразировать:

C помощью кода адреса устройства принимающая сторона понимает, что команда адресована именно ей, а не другому устройству

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

  1. Ручной подбор

  2. Умный режим подбора по шаблонам

  3. Грубый режим перебора всех команд по списку адресов устройства

Я рекомендую начинать с умного режима. В этом режиме приложение будет перебирать «шаблоны» наиболее распространенных кодов для команд »Питание» и »Приглушение звука». Если оригинальный пульт использует протокол NEC и на нём есть одна из этих двух кнопок, то с вероятностью 80% шаблон на который устройство отреагирует будет найден уже на этом этапе.  Как только устройство отреагирует нужно остановить подбор, вернуться на несколько шаблонов назад и найти тот на который устройство отреагировало при автоматическом тестировании. Далее нажимаем кнопку перехода в »ручной режим» и уже сейчас можно поздравить себя — вы нашли код адреса устройства, теперь остаётся найти нужные вам команды.

Скрин режим умного подбора на примере акустики Microlab Solo 7С

4fed760f26e37080e1819098038ef323.jpg

Первую команду можно сохранить уже сейчас, нажимаем сохранить, вводим производителя устройства и модель, название команды, сохраняем.  Теперь можно перейти к команде 0 и по порядку протестировать все команды сохраняя нужные коды. По моему опыту, для большей надежности кнопку ТЕСТ лучше нажимать несколько раз. 

Кнопка »Исключить» добавит код в «Игнор» и при перелистывании программа будет пропускать его и переходить к следующему. Кнопки влево и вправо при удержании будут перелистывать коды команд и автоматически тестировать эти коды.

Механизм грубого перебора отличается от »умного режима» только набором кодов. В этом режиме приложение будет перебирать все 256 кодов команд для каждого адреса устройства. Хотя протокол NEC поддерживает более 65 тысяч адресов устройства, я добавил в приложение только 150 кодов. Их нумерация условная, а сами адреса отсортированы по количеству известных пультов, которые используют данный адрес. Эти 150 адресов встречаются в 80% пультов, дальнейшее увеличение количества адресов доступных для подбора не приведёт к существенному увеличению шансов найти код, но сильно увеличит время подбора.

Если вам не удаётся обнаружить реакцию устройства даже после грубого подбора, то очень велика вероятность что ваш пульт использует другой протокол. Кроме протокола NEC существует ещё очень много других протоколов, таких как SONY, PHILIPS, SHARP, JVC другие. Кроме того, не пытайтесь подобрать коды для кондиционера если ваш оригинальный пульт имеет экран. Дело в том, что такие пульты при нажатии кнопки отправляют сразу всю информацию о режиме, который нужно установить, в том числе целевую температуру, режим работы вентилятора, режим работы шторки и так далее.

Ещё в приложении есть база готовых пультов. Если по модели устройства готового пульта не нашлось, то можно попробовать подобрать пульт в режиме »поиска совместимого пульта». В этом режиме приложение загрузит с сервера коды кнопок »Питание»,»Меню» »Громкость + / -» и »Приглушение звука» для всех пультов, которые есть в базе выбранного бренда. Алгоритм простой, выбираем кнопку, которую будем тестировать и нажимаем »ТЕСТ», а лучше несколько раз, если устройство не реагирует — смахиваем экран и снова несколько раз нажимаем »ТЕСТ». Когда устройство отреагирует, нажимаем »РАБОТАЕТ» и приложение отфильтрует пульты с такой связкой кода и команды. Далее выбираем следующую команду и повторяем процедуру пока не потухнут все кнопки в верхней части экрана. Теперь нажимаем »ПОКАЗАТЬ» и по порядку начинаем тестировать отфильтрованные пульты, как только найдется пульт со всеми нужными кнопками — сохраняем его на устройство и далее его можно будет отредактировать на свой вкус изменив количество колонок, порядок и цвет кнопок, а также подписи команд.

Скрин режима поиска совместимого пульта

e6bf9c4e7151edac16aa0f1a3062dc9e.jpg

Если вы собрали пульт, которого ещё нет в базе готовых пультов и хотите поделиться этим пультом то ссылка на Telegram-канал поддержки тоже есть в конце статьи. Файлом пульта можно поделиться через меню »три точки» в верхней части экрана. При публикации сообщения пожалуйста добавьте, как можно больше информации о пульте и самом устройстве, в идеале добавить точную модель устройства, хорошее фото или изображение оригинального пульта из интернета если точно знаете, как он выглядит.

Поддержка внешних ИК

Поддержка в Telegram

Другие полезные сервисы связанные с приложением

© Habrahabr.ru