- •7. Midi Show Control. Часть 1
- •Появление midi Show Control
- •Основные принципы
- •Предосторожности и ограничения
- •Формат сообщений
- •Формат команды
- •Команды и данные
- •Данные сцены
- •Таймкод
- •Рекомендованные наборы команд
- •Общие команды
- •Команды звука
- •7. Midi Show Control. Часть 2
- •Сообщения 2pc
- •Номер секвенции
- •Контрольные суммы
- •Коды состояния
- •Данные сцены
- •Взаимодействие устройств
- •Тайм-ауты
- •Ожидание сообщений
- •Обработка исключительных ситуаций
- •Пример работы 2pc
- •Обмен сообщениями без ошибок
- •Ошибки, обнаруженные на ранней стадии
- •Ошибки, произошедшие во время выполнения сцены
- •Сравнительная характеристика 2pc и msc
Сообщения 2pc
В отсутствие сбойных ситуаций для выполнения одной сцены в протоколе 2PC используются четыре сообщения. Они показаны в таблице на рис. 2 с указанием порядка следования и стороны-отправителя.
Сначала главный контроллер посылает подчиненному устройству сообщение STANDBY ("приготовиться"). Это сообщение "разогревает" прибор и уведомляет его о том, что скоро должна быть выполнена заданная сцена. В ответ на это устройство отвечает контроллеру сообщением STANDING_BY ("наготове"), показывая свою готовность выполнить данную сцену. Для выполнения сцены главный контроллер посылает сообщение GO_2PC. Последнее сообщение серии, COMPLETE ("выполнено"), посылается прибором главному контроллеру и сообщает о том, что выполнение сцены завершено успешно. Предусмотрены также три сообщения на случай, если произошел сбой: ABORT, CANCEL и CANCELLED. Если контролируемое устройство обнаруживает сбойную (исключительную) ситуацию, то есть ситуацию, когда нормальное выполнение сцены невозможно, оно уведомляет об этом главный контроллер посредством сообщения ABORT. Для указания причины сбоя в это сообщение помещается код состояния, на основании которого главный контроллер может выбрать дальнейший вариант действий. Сообщение CANCEL посылается от контроллера к прибору и говорит о том, что предыдущее сообщение (STANDBY и/или GO_2PC) нужно отменить. В ответ на это прибор может ответить сообщением CANCELLED ("отменено"), подтверждая отмену предыдущих команд. Сообщения 2PC имеют несколько общих элементов, таких как номер секвенции (nn nn), контрольная сумма (сс), код состояния (s1 s2) и данные сцены (d1 d2 d3 d4). Эти элементы описаны далее, в соответствующих разделах. На рисунках 3-9 показана структура сообщений 2PC.
Номер секвенции
Нумерация сцен в сообщениях от контроллера к контролируемому устройству происходит в протоколе 2PC так же, как и в обычных сообщениях MSC (то есть с помощью полей Q_number, Q_list или Q_path. Кроме того, для каждого из сообщений STANDBY, GO_2PC и CANCEL главный контроллер генерирует уникальный номер (от 1 до 16383), который называется номером секвенции. Этот же номер передается в обратных сообщениях (STANDING_BY, COMLETE, CANCELLED и ABORT), и по нему главный контроллер определяет, к какой сцене относится сообщение. Таким образом, в обратных сообщениях достаточно использовать только номер секвенции, полный номер сцены передавать не нужно. Номера секвенций позволяют работать по методу 2PC простым устройствам, таким как различные детекторы и датчики. Например, детектор газа может не понимать концепцию сцен. При получении сообщения STANDBY он просто проверяет наличие газа. Если газ не обнаружен, детектор отвечает сообщением ABORT, если обнаружен — сообщением STANDING_BY. Детектор игнорирует поля типа Q_number и просто копирует номер секвенции из входящего сообщения в исходящее. Кроме того, номера секвенций облегчают отслеживание ответных сообщений от контролируемых устройств оператору главного контроллера.
