Qlab4からPJLink対応のプロジェクターを操作する
#PJlinkとは
PJLinkはプロジェクターやディスプレイをメーカーを問わず操作・管理するための統一規格です。
#PJLinkの仕様
詳細はPJLink仕様書を参照されたい。
- プロトコル
- TCP
- ポート
- 4352
#Qlab4でPJLink扱う
Qlab4では直接TCPコマンドを送信できないため、いくつかの方法を考える。
- scriptキューでターミナルからTCPコマンドを送信(Apple Script)
- scriptキューでPJLinkを制御できる別のアプリをApple Scriptで操作
ターミナルからTCPコマンドを送信する
以前のMac OSではターミナルでtelnetが標準で使えたため、それを利用して制御していました。
set EscapeChr to ASCII character 29
set hideMe to false
tell application "Terminal"
if (count of the windows) is less than 1 then
tell window 1 to do script ""
delay 1.0E-5
set hideMe to true
end if
do script "telnet 192.168.0.102 4352" in window 1
delay 1.0E-5
do script "%1POWR 1" in window 1
delay 0.4
do script "" in window 1
do script EscapeChr & "quit" in window 1
if hideMe then tell window 1 to set miniaturized to true
delay 1
tell application "Terminal" to quit
end tell
High Sierraになってからtelnetが標準で使用できなくなったため、この方法はすでに使っていません。
##PJLinkを制御できる別のアプリを操作
MacにはApple Scriptという言語が標準で備わっています。
Apple Scriptを介することで、他のアプリケーションに対して直接操作することが可能です。
(詳細は他のサイトを参照されたい)
ここでは、『Projector Manager』というアプリケーションを使用します。
SIGMASIX - Projector Manager (Mac App Store)
アプリケーション自体の使い方は、割愛します。
プロジェクターを2台設定した画面が上記の画面です。
Mac OSの「スクリプトマネージャー」というアプリを開くと、Apple Scriptに対応したアプリケーションが表示され、対応したScriptの記述が表示されます。
この記法にそって、Qlab4上でスクリプトキューを作成します。
たとえば、電源をオンするキューは次のようになります
tell application "ProjectorManager"
PowerOn 1
end tell
tell application
→ アプリケーションを呼び出し
PowerOn 1
→ 実際にする処理(スクリプトマネージャーで調べたスクリプト)
なお、PowerOn命令のあとの[1]は、Projector Manager側で設定した1台目(前の図で言うと、192.168.0.102の機器)を指します。
end tell
→ 呼び出し終了
実際のQlabのキューリスト
実際に現場で使うことを想定したキューリストは上のようになります。
Power onやoffはキューリストから離したほうが安全かもしれません。
私がキューを組む場合はリストには入れておいて、電源の操作が必要なとき以外はArmedのチェックを外しておきます。
それぞれのスクリプトは先程のスクリプトのPowerOn
の部分を書き換えただけになります。
スクリプトの実行から実際プロジェクターの操作が完了されるまでに多少のタイムラグがあるため、
av unmute
キューと映像のスタートキューは手動にしていますが、映像の再生終了後は自動的にav mute
キューをgoしています。