WB-MSx Consumer IR Manual: различия между версиями
Метка: visualeditor |
Admin (обсуждение | вклад) |
||
Строка 42: | Строка 42: | ||
{| border="1" class="wikitable" style="text-align:center" | {| border="1" class="wikitable" style="text-align:center" | ||
!Начальный адрес || Количество || Назначение | !Начальный адрес || Количество || Назначение || В модификациях | ||
|- | |- | ||
| | | 5000 || 1 || style="text-align:left" | Очистка всех банков ИК-команд || I | ||
|I | |||
|- | |- | ||
| | | 5001 || 1 || style="text-align:left" | Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд || I | ||
|I | |||
|- | |- | ||
| | | 5002 || 1 || style="text-align:left" | Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509) || I | ||
|I | |||
|- | |- | ||
| | | 5100 (в прошивке 3.1.0 и ранее - 0) || number_of_banks || style="text-align:left" | Воспроизведение ИК-команды из соответствующего банка || I | ||
|I | |||
|- | |- | ||
| | | 5200 (в прошивке 3.1.0 и ранее - 1000) || number_of_banks|| style="text-align:left" | Чтение и запись в банки команд IR || I | ||
|I | |||
|- | |- | ||
| | | 5300 (в прошивке 3.1.0 и ранее - 2000)|| number_of_banks || style="text-align:left" | Запись в банк команд IR использую IR-приёмник || I | ||
|I | |||
|- | |- | ||
|} | |} |
Версия 17:09, 3 февраля 2017
Управление
Управление IR-приемопередатчиком осуществляется через регистры флагов Modbus (см. карту регистров флагов). Устройство может хранить number_of_banks
банков команд (это значение может варьироваться в зависимости от сборки). Всего 3 типа операций можно выполнить с IR-приемопередатчиком: чтение/запись, воспроизведение и запись с IR-приёмника. В одно и то же время можно оперировать лишь над одним банком и выполнять только одну функцию. Т.е. среди всех регистров флагов, относящихся к IR-приемопередатчику, только один регистр может быть установлен в единицу. Попытка записать единицу в регистры флагов IR при уже имеющейся единице приведёт к ошибке BUSY
. Содержимое банка, с которым в данное время проводится оперирование, отображается в регистры хранения по адресу 2000 (см. карту регистров хранения). Значение каждого регистра - продолжительность периода логических нуля или единицы в квантах по 10 микросекунд. Отсюда максимальная длительность одного периода 2^16 * 10 мкс = 655360 мск = 0,655 с
. Самый первый период соответствует логической единице. Конец последовательности маркируется двумя периодами продолжительностью 0.
Для того, чтобы прочитать содержимое банка i
и/или внести изменение в него, необходимо записать единицу в регистр флагов по адресу 1000 + i
. Далее, если необходимо прочитать содержимое банка, нужно прочитать регистры хранения, начиная с адреса 2000. Конец последовательности определяется маркером из двух последовательных нулей, как это было сказано выше. Если банк пуст, в первых двух регистрах (2000 и 2001) будут храниться нули. Для внесения изменений в последовательность нужно записать данные в интересующие регистры с помощью команд WRITE_SINGLE_REGISTER
и WRITE_MULTI_REGISTERS
. В конце изменённой последовательности всё также должен быть маркер конца последовательности. Для удаления содержимого банка необходимо записать в первые два регистра нули (2000 и 2001). Для фиксации изменений и просто завершения операции чтения банка i
необходимо записать ноль в регистр флагов по адресу 1000 + i
.
Для того, чтобы воспроизвести команду, хранящуюся в банке i
, необходимо записать единицу в регистр флагов по адресу i
. В случае отсутствия команды в банке i
будет возвращена ошибка. Пока идёт воспроизведение, регистр флага по адресу i
будет установлен в единицу. Никакие другие операции с IR-приемопередатчиком по Modbus не будут доступны.
Для того, чтобы записать команду с пульта дистанционного управления (ПДУ) в банк i
, необходимо записать единицу в регистр флагов по адресу 2000 + i
. После чего направьте ПДУ на IR-приёмник и нажмите кнопку на пульте. После того, как отпустите кнопку, необходимо записать ноль в регистр флагов по адресу 2000 + i
. Остановка записи может прекратиться самостоятельно, если буфер команды будет заполнен. Тогда регистр флагов по адресу 2000 + i
самостоятельно установится в ноль. После записи команды ПДУ в банк i
, можно читать, изменять и воспроизводить эту команду, как это описано выше.
Для того, чтобы записать команду с пульта дистанционного управления (ПДУ) в регистры хранения без записи в банк необходимо установить регистр флага по адресу 5001
в единицу. Далее действия происходят как описано выше. После прекращения записи в регистрах хранения по адресу 2000 и дальше будет храниться команда ПДУ, конец которой будет маркирован двумя последовательными нулями.
Для того, чтобы воспроизвести команду, хранящуюся в регистрах хранения, необходимо записать единицу в регистр флагов по адресу 5002
. В случае отсутствия маркера конца команды будет возвращена ошибка. Пока идёт воспроизведение, регистр флага по адресу 5002
будет установлен в единицу. Никакие другие операции с IR-приемопередатчиком по Modbus не будут доступны.
Для того, чтобы очистить все банки команд, достаточно записать единицу в регистр флагов по адресу 5000
.
Банки команд нумеруются с нуля (0).
Регистры, связанные с ИК
Карта регистров хранения (Holding Registers)
В процессе наполнения.
Регистр / адрес | тип | чтение/запись | значение по умолчанию | формат | назначение | В модификациях |
---|---|---|---|---|---|---|
2000-2509 | holding | RW | Буфер периодов IR-приемопередатчика | I |
Карта регистров флагов (Coils)
Начальный адрес | Количество | Назначение | В модификациях |
---|---|---|---|
5000 | 1 | Очистка всех банков ИК-команд | I |
5001 | 1 | Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд | I |
5002 | 1 | Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509) | I |
5100 (в прошивке 3.1.0 и ранее - 0) | number_of_banks | Воспроизведение ИК-команды из соответствующего банка | I |
5200 (в прошивке 3.1.0 и ранее - 1000) | number_of_banks | Чтение и запись в банки команд IR | I |
5300 (в прошивке 3.1.0 и ранее - 2000) | number_of_banks | Запись в банк команд IR использую IR-приёмник | I |