説明
CheckDMXCollision 関数は、特定のDMXアドレス範囲が利用可能か、またはすでに利用されているかを確認します。
これは、フィクスチャタイプの特定の「DMXモード」のDMXチャネル数を用いて、指定されたDMX開始アドレスから利用できるDMXチャネルの数を計算します。
すべてのフィクスチャタイプには少なくとも1つのDMXモードが定義されていますが、複数のモードを持つフィクスチャも多くあります。この Lua 関数は、フィクスチャタイプの特定のDMXモードを使用します。
引数
- handle:
DMXモードに対するハンドルです。範囲内で利用可能なDMXチャネル数を計算するために用いられます。
- string:
文字列で表現されたDMXアドレスです。チェック範囲の始まりを指定します。
- integer (オプション)|nil:
このオプションの整数値は、チェックすべき後続のDMXモードの数です。デフォルト値は 1 です。
例えば、指定されたDMXモードのDMXチャネル数が10で、カウントが5に設定されている場合、肯定的な結果を得るには、開始アドレスから50のパッチされていないDMXチャネルがなければなりません。
- integer (オプション):
このオプションの整数値は、ブレークインデックスを示します。デフォルト値は 0 で、DMXモードで定義された最初のDMXブレークです。すべてのフィクスチャタイプには、少なくとも1つのDMXブレークが定義されています。
戻り値
- boolean:
以下の boolean 値を返します。
- true:
DMXアドレスは開始アドレスとして使用できます。
- false:
DMXアドレスは、計算されたDMXチャネル数の開始アドレスとして使用できません。
例
現在選択されている最初のフィクスチャのDMXモードに基づいて、DMXアドレス 1.001 に対するDMX競合チェックの結果を出力します。
|
return function() local myDMXUniverse = 1 local myDMXAddress = 1 local myCount = 1 local myBreakIndex = 0
local startOfRange = string.format("%d.%03d", myDMXUniverse, myDMXAddress)
if SelectionFirst() == nil then Printf("Please make a selection and try again.") return end local myDmxMode = GetSubfixture(SelectionFirst()).ModeDirect
if myDmxMode == nil then else if CheckDMXCollision(myDmxMode, startOfRange, myCount, myBreakIndex) then Printf("The DMX address " .. startOfRange .. " is available.") return else Printf("The DMX address " .. startOfRange .. " cannot be used as a start address for this patch.") return end end end |