Запись ик команд в модуль wb-mir


#1

Здравствуйте!

  1. как проверить верно ли записалась команда в модуль?
  2. Почему с одних пультов команда записывается а с других нет? Пульты самые обычные от телевизоров, муз центров и т.п.
  3. в инструкции написано, что можно передавать ик команды напрямую с контроллера на модуль wb-mir, но как это сделать не описано. Если можно выложите инструкцию для этого.
  4. Если пульт работает на другой частоте, можно ли изменить настройки модуля под другую частоту? Спасибо!

#2

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

Это раздел “Редактирование сигнала в постоянной памяти” в документации: https://contactless.ru/wiki/index.php/WB-MSx_Consumer_IR_Manual

Нужна вся информация.

тот же пункт “Редактирование сигнала в постоянной памяти”

нет, к сожалению


#3

Подскажите, пожалуйста, читал в вики, но не нашёл… как прочитать код клавиши записанной в постоянную память? мне нужно узнать какую последовательность кодов выдаёт каждая кнопка на пульте ду. ещё лучше если бы была команда которая отправляла бы код клавиши сразу в текстовый файл. напишите как правильно должна выглядеть такая команда? хотя бы чтобы выводить код записанной клавиши в консоль.


#4

Добрый день!
В соответствии с https://contactless.ru/wiki/index.php/WB-MSx_Consumer_IR_Manual#.D0.A0.D0.B5.D0.B4.D0.B0.D0.BA.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.81.D0.B8.D0.B3.D0.BD.D0.B0.D0.BB.D0.B0_.D0.B2_.D0.BF.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.BD.D0.BE.D0.B9_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D0.B8
чтобы получить команду из постоянной памяти:

  1. “Чтобы отредактировать сигнал под номером i или записать его по Modbus (без пульта ДУ), запишите 1 в регистр флага по адресу 5200 + i. После этого сигнал в виде последовательности натуральных чисел (смотрите рисунок “Пример содержимого оперативного буфера WB-MIR”) будет записан в подряд идущие регистры хранения, начиная с регистра 2000. В конце последовательности будут два подряд идущих регистра хранения, содержащих 0.”
  2. Вычитайте содержимое holding регистров 2000-2509 например, через modbus_client с параметром -t3 -с510 (прочитать 510 регистров). Скорее всего, с какого-то момента в регистрах начнут быть одни нули. Собственно ИК-команда идёт с первых регистров до момента первого появления двух нулей подряд.

#5

Здравствуйте! спасибо! неужели нельзя как-то проще. как тогда мне определить какая команда принадлежит какой кнопке пульта? если там уже записано 3 или 5 команд? поясните, пожалуйста, по подробней.
в правилах навесил на кнопки следующие функции.
для начала записи ик команды я использую
dev [“wb-mir_63”][“Learn to ROM2”] =1;
для окончания:
dev [“wb-mir_63”][“Learn to ROM2”] =0;
для воспроизведения ик команды:
dev [“wb-mir_63”][“Play from ROM2”] =1;

есть ли возможность таким же образом через движок правил послать команду на вывод ик команды в текстовый файл?
спасибо!


#6

Не понял ваш вопрос.
Во-первых, если это пульт от кондиционера, то он по нажатию на любую клавишу передаёт кондиционеру не команду, а итоговое состояние. То есть нажатие на кнопку “+1” при отображаемой на пульте температуре 22С отдаёт в кондиционер не команду “увеличь температуры на 1С”, а “перейди в состояние уставка температуры 23С”.
Для того же примера с кондиционером, вы должны записать такие “команды-состояния” в разные ячейки ROM. Например, в ROM1 - состояние “кондиционер выключен”, в ROM2 - состояние “кондиционер включен, уставка температуры - 18С”, в ROM3 - состояние “кондиционер включен, уставка температуры - 25С”.
Каждый такой записанный сигнал помещается в отдельную ячейку ПЗУ и из неё воспроизводится. Вы не можете хранить несколько сигналов в одной ячейке.


#7

Спасибо! Но я не это имел в виду. использую пульт от телевизора, который просто передаёт команду, например следующий канал или предыдущий канал. там нет никаких состояний, но есть набор этих самыхъ байт. так вот мне этот набор и нужно получить в читаемом виде чтобы потом напрямую с контроллера передавать эту команду на модуль wb-mir без записи в постоянную память.
Спасибо!


#8

Самым простым решением будет постараться ограничить количество команд восемью, и записать их в ROM1-ROM8.
Если требуется больше команд, то их действительно нужно хранить на компьютере, и загружать при необходимости. При этом загружать их в ПЗУ строго не рекомендуется - flash память микроконтроллера в WB-MIR гарантирует, кажется, около 10 000 перезаписей, чего хватает на обычную работу, но может не хватить при 10 перезаписях на каждое включение телевизора. Поэтому если вы будет подгружать команды с контроллера, то загружайте их в оперативную память (holding 2000…) - она находится в оперативной памяти и не расходует ресурс флеш-памяти.
Готовых программ для таких действий у нас нет, но можете посмотреть набор скриптов, которые написал наш сотрудник для переноса команд из ПЗУ одного WB-MIR в другой. На их основе можете написать скрипт под свои цели, но без нашей помощи. Скрипты вышлю на вашу почту


Яндекс.Метрика