Art-NetをDIYしてみる

 Art-Netの規格の解説とRaspberryPiで扱った記録です。

 執筆中です。

Art-Netとは?

Art-Netのパケットプロトコル

 Art-NetはUDP/IPを用いて送受信されますので、EtherNet内ではパケットという単位でデータが扱われます。

 パケットの中身を解説します。この記事ではマルチキャストしか扱いませんので、次の「ArtDmx」だけ使います。

パケットプロトコル:ArtDmx
フィールド名前データ種類サイズビット説明
初代Art-Net
Art-Net2
Art-Net3,4
11IDASCII
テキスト
8byte-8バイトのASCIIテキストでArt-Netのパケットだと宣言する。
'Art-Net'+0x00
文字コード:0x41 0x72 0x74 0x2d 0x4e 0x65 0x74 0x00
22OpCodeInt16
2バイト整数
2byte-別表に定義されたOpCodeを用いてパケットの種類を宣言する。
ArtDmxでは 0x5000 を用いる。
エンディアンはLSB-MSBなので、0x00 0x50 の順になる。
33ProVerHiInt8
1バイト整数
1byte-Art-Netプロトコルリビジョン番号の上位バイト
※ データとしては次のフィールド4と合わせて2バイト整数である。
44ProVerLowInt8
1バイト整数
1byte-Art-Netプロトコルリビジョン番号の下位バイト
※ ProVerの送信は、フィールド3とフィールド4を合わせ、エンディアンがMSB-LSBの2バイト長のデータだと考えていい。
※ 現在値は014(0x0E)である。フィールド3は0x00、フィールド4は0x0Eとなる。
55SequenceInt8
1バイト整数
1byte-パケットの順番を0x00から0xFFの範囲でローテーションで表す。
インクリメント・カウンタで0xFFの次は0x00となる。
用いない場合は固定値(0x00)とする。
66PhysicalInt8
1バイト整数
1byte-DMX512のデータが入力された物理入力ポートを表す。
Art-Netのネット/サブネット/ユニバースを表す物ではない。
※ 個人的には全く意味が無い「蛇足データ」だと考える。
※ 今後の検証によるが、0x00を用いれば良いと思われる。
77SubUniInt8
1バイト整数
1byte7-44bit(0-15の数)でSubNet(サブネット)を表す。
3-04bit(0-15の数)でUniverse(ユニバース)を表す。
-8NetInt8
1バイト整数
1byte7※ 使用しない。常に0。
6-07bit(0-127)でNet(ネット)を表す。
※ 初代Art-NetおよびArt-Net2では用いない。
89LengthHiInt8
1バイト整数
1byte-フィールド<Data>のデータ長を表す。フィールド10と合わせた2バイト整数の上位バイト。
データ長が512スロットなら0x02となる。0512=0x0200
910LengthInt8
1バイト整数
1byte-フィールド<Data>のデータ長を表す。フィールド9と合わせた2バイト整数の下位バイト。
データ長が512スロットなら0x00となる。エンディアンがMSB-LSBだと考えてもいい。
1011DataInt8
1バイト整数
1-512
byte
-DMX512のスロットデータ。可変長。
スタートコードは含まれない(?)。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS