Внутри одной категории ID всех устройств должны быть разные. Уникальный ID каждого устройства может быть в диапазоне 1–111.
Что нам дает использование ID? Теперь можно каждому принимающему контроллеру отправлять команды, предназначенные конкретно для него, а все остальные контроллеры, которые имеют другую категорию оборудования и ID, эти сообщения будут просто игнорировать.
Также в идеологии MSC есть такое понятие, как Group ID и Broadcast ID.
Каждое устройство может иметь уникальное ID, но при этом быть подписанным на групповые сообщения. Для этого в MSC зарезервированы специальные групповые ID c 112 до 126.
Всего, может быть, 15 независимых групп. Чтобы конкретную команду получили клиенты, подписанные на группу, серверу нужно просто отправить MSC сообщение на один из групповых ID.
Также есть один зарезервированный ID, равный 127 для широковещательных команд. MSC команду, отправленную на этот ID, получат все клиенты.
Дополнительное преимущество MSC перед MIDI note в том, что сообщения этого протокола содержат конкретные команды для действия, а не просто код сообщения, к которому нужно привязывать действие на конечном контроллере. Есть основная группа MSC сообщений – General Commands, которые применимы для всех типов устройств. Помимо General Commands, есть дополнительная группа Sound Commands специально для звуковых систем синхронизации. Для общей синхронизации нам интересны только команды типа General Commands.
Итак, с командами разобрались, куда отправлять команды, тоже
понятно, теперь поговорим о том, к чему эти команды применимы. В MSC сообщениях есть часть кода, в которой зашифрована информация об объекте в контроллере, к которому нужно применить команду.
>
Этот код состоит из номера сцены, к которой применять команду (CueNumber), в каком списке находится эта сцена (CueList) и путь туда, где находится список сцен (CuePath). Последнее значение осталось еще с тех времен, когда световые пульты сохраняли свои шоу на флоппи дискеты и пульт мог воспроизводить световые сцены как с внутренней памяти, так и с внешнего носителя. QuePath как раз и указывал, где находится финальная цель сообщения.
Не все сообщения из всех команд MSC несут в себе объект, к которому нужно применить команду, в основном это глобальные команды, как, например, ALL OFF или RESET.