BOSE ControlSpace Serial COntrol Protocolについて調べてみた

仕様はこちらで公開されています。これらについて翻訳しながら理解します。

ControlSpace SERIAL CONTROL PROTOCOL v5.13

概要

この ControlSpace シリアル制御プロトコル 文書は、以下の製品を対象としています:

  • ControlSpace EX-1280C、EX-12AEC、EX-440C 会議用プロセッサー
  • ControlSpace EX-1280 プロセッサー
  • ControlSpace ESP-880、ESP-1240、ESP-4120、ESP-1600 プロセッサー
  • ControlSpace ESP-00 Series II、ESP-00、ESP-88 プロセッサー
  • PowerMatch PM8500N、PM8250N、PM4500N、PM4250N アンプ
  • PowerShare PS404D、PS604D アンプ
  • MSA12X パワード・ステアラブルアレイスピーカー
  • ControlSpace WP、EP、EX Dante® エンドポイント オーディオインターフェース

このプロトコルは、Bose Professional ControlSpace、PowerMatch、PowerShare 製品を、AMX、Crestron、Extron など、または本プロトコルに従うことのできるその他のコントローラーとインターフェースさせるための通信手段を提供します。

この文書の目的は、プログラマーやインテグレーターに対して、利用可能なコマンド、その動作、および構文に関する必要な詳細情報を提供することです。

接続

Using Serial-over-Ethernet (ESP, EX, PowerMatch, PowerShare)

ESP、EX、PowerMatch(ネットワーク対応)、および PowerShare 製品は、TCP/IP 接続を使用してイーサネット経由で送信されるシリアルコマンドによって制御できます。通信には ControlSpace Designer ソフトウェアと同じ物理的なイーサネット接続を使用しますが、サードパーティ制御用に専用のポート番号(10055) が用意されており、両者を同時に動作させることが可能です。

注意:新しいデザインを読み込むために ControlSpace Designer ソフトウェアでオンライン接続を行うと、サードパーティ制御用の接続は切断されます。オンライン状態になった後は、制御接続を再確立することができます。ほとんどの制御システムは、この再接続を自動的に行うことが可能です。

ESP、EX、PowerMatch(ネットワーク対応)、および PowerShare 製品は、以下の表に示すように、ESP/EX に搭載されている物理 RS-232 シリアルポートに加えて、同時に利用できる最大数のシリアル-over-Ethernet 接続をサポートします。

これらの接続は、同じ通信方法を使用する ControlSpace Remote のインスタンスと共有されます。
最大接続数に達すると、既存の接続が閉じられるまで追加の要求は拒否されます。

  • シリアル出力および非同期フィードバックは、すべてのアクティブな接続(ESP/EX の物理 RS-232 ポートを含む)に送信されます。
  • シリアル入力は、指定された文字列を監視するためにすべてのアクティブな接続を対象とします。
  • これに対して、問い合わせコマンドへの応答は、その問い合わせを開始した接続のみに返されます。

ESP-00、PowerMatch、および PowerShare 製品は、**サードパーティ制御接続用に固定ポート番号「10055」**を使用します。
1U ESP(880/1240/4120/1600)および EX デバイスもデフォルトでは同じポートを使用しますが、必要に応じて ControlSpace Designer ソフトウェアのデバイスプロパティからポートを変更または無効化することができます。

重要な点として、ESP、EX、PowerMatch、そして PowerShare 製品は シリアル-over-Ethernet 接続においてサーバーとしてのみ動作します。
そのため、接続はクライアント機器側から開始する必要があります

Using Serial-over-Ethernet (WP, EP and EX Endpoints)

エンドポイントも イーサネット経由で送信されるシリアルコマンドによって制御できますが、この場合は UDP パケットを使用し、固定ポート番号 49494 を利用します。

エンドポイントが EX プロセッサーとペアリングされている場合、エンドポイントに直接送られた設定は、プロセッサー側でプログラムされた内容によって上書きされる可能性があります。
そのため、ペアリングされている場合は、EX プロセッサーとオンライン接続した状態で ControlSpace Designer ソフトウェアを通じてのみ変更を行う必要があります。

参考までに、ControlSpace デバイスで使用されるポート番号一覧が以下に示されています。

以下に示すように TCP/IP 用に設定した「HyperTerminal」 を使用すると、これらのコマンドをテストする便利な方法となります。

注意:HyperTerminal は最新の Microsoft Windows® オペレーティングシステムには同梱されていません
代わりに、ClearTerminal、RealTerm、PuTTY、Hercules などのフリーウェアやオープンソースのツールがオンラインで入手可能で、コマンドのテストにも使用できます。

CommandFormat

すべてのコマンドと応答は ASCII文字で送受信され、**<CR>(キャリッジリターン、ASCII 0x0D)**で終端されます。
利用可能なコマンドは、その適用範囲に応じて以下のカテゴリに分類されます。

System Commands (Parameter Sets, Groups …)

Device Commands (Inputs, Outputs, Set IP address, Get alarm status …

Module Commands (Signal processing parameters …)

MSA12X Commands (Input gain, Input source, Load preset, Standby …)

Endpoint Commands (Input gain, Phantom power, Logic I/O …)

System and Device Commands

システムコマンドおよびデバイスコマンドにおける数値は、16進数の ASCII 文字で入力します。
例えば:

  • 10進数 1610(hex) として入力
  • 10進数 3422(hex) として入力

コマンドは大文字で入力すること

コマンドの後のスペースは任意(SS 10 または SS10 のいずれも可)

区切りには カンマ「,」 を使用

16進数値にはサフィックス不要(例:A3h は不可 → A3 が正しい)

16進数値は大文字・小文字いずれも可(例:SS ASS a も可)
※ただし応答は常に 小文字 で返される

すべてのコマンドは <CR>(キャリッジリターン – ASCII 0x0D) で終端

ACK(確認応答)は送信されない
→ そのため、「Set」コマンド送信後に「Get」コマンドで確認するのが便利な方法となる

Module Commands:

モジュールコマンドにおける数値は、単純な ASCII テキストとして入力します。
例えば、-28 dB はそのまま “-28” と入力します。

コマンドは大文字で入力すること

コマンド後のスペースは任意(SA “xx”SA“xx” も可)

モジュール名は一意であり、必ず引用符(”Name”)で囲むこと

コマンドは 1~3 個のインデックスを持つことがあり、それらは “>”(ASCII 0x3E) で区切る

Set コマンドおよび Get 応答は常に “=”(ASCII 0x3D) で終了し、その後にパラメータ値が続く

数値は単純な ASCII テキストとして入力し、単位は不要(例:-28dB"-28"

複数のコマンドを1行で送る場合は セミコロン “;”(ASCII 0x3B) で区切る

すべてのコマンドは <CR>(キャリッジリターン – ASCII 0x0D) で終端する

デバイスは成功時に ‘ACK’(ASCII 0x06) を返し、失敗時には ‘NAK nn’ を返す(nn は2桁のエラーコード)

Subscription Commands:

サブスクリプションは、定期的にデータを要求しなくても現在値を取得するために使用されます。
値が変化すると、サブスクライブされている場合は 新しい値が自動的に送信されます。

コマンドは大文字で入力すること

すべてのコマンドは <CR>(キャリッジリターン – ASCII 0x0D) で終端すること

MSA12X and Endpoint Commands:

MSA12X およびエンドポイントコマンドにおける数値は、基本的な ASCII テキストとして入力します。
例えば、15 dB“-15.0” として入力します。

コマンドは大文字で入力すること

コマンドは 1つまたは2つのパラメータを持ち、**スペース(ASCII 0x20)**で区切る

数値は単純な ASCII テキストとして入力し、単位は不要(例:-15dB"-15.0"

すべてのコマンドは <CR>(キャリッジリターン – ASCII 0x0D) で終端する

成功時にはデバイスが “ACK” と受信コマンドのエコーを返し、失敗時には “NACK” を返す
※これは テキスト文字列であり、モジュールコマンドで使用される ASCII 制御文字 <ACK><NAK> とは異なる

SystemCommands

システムコマンドは、複数のデバイスにまたがる変更を同時に実行するために使用され、ControlSpace Designer ソフトウェアでプログラムされた パラメータセットグループ といった構成要素を利用します。

指定された 「RTC/Main」デバイスに発行されたコマンドは、同じネットワークに正しく接続されていれば、ネットワーク上の他のすべてのデバイスにエコーされます。

一方で、そうでない場合は、制御対象の構成に含まれるデバイスのいずれかに対してコマンドを発行する必要があります。
(例:グループが2台の ESP にまたがっている場合、そのグループコマンドは 2台のうち1台のみに送信し、他方には送信しないようにする必要があります。)

システムコマンドでは数値に 16進数表記が使用され、応答が返されるのは「Get」コマンドのみです。
そのため、「Set」コマンドの後に「Get」コマンドを実行して確認するのが、コマンド成功を確認する便利な方法となります。

4.1 Set/Get Parameter Set (SS, GS)

パラメータセット n を呼び出す/実行する場合:

SS n<CR>

ここでいう nパラメータセット番号を表し、範囲は

  • 1h ~ FFh(16進数)
  • 1 ~ 255(10進数)

となります。

最後に呼び出されたパラメータセットを問い合わせる場合:

GS<CR>

Response

S n<CR>

ここでの n0~FF(16進数) の範囲です。

  • n = 0 → パラメータセットが呼び出されていない状態(例:電源投入直後)
  • n = 1~FF → 有効なパラメータセット番号(1~255、10進数)