LjStudio は Martin LightJockey 2.7 が書いたデータを読み書きする独自実装です。Martin 社の製品ではなく、同社とは関係がありません。
0. 動画で見る
LjStudio(Windows)から LjTouch(Linux の機体 DEL37)へ、試験用のデータ SyncTest512 を LAN で送り、LjTouch の画面が切り替わって再生できるまで(字幕つき): https://youtu.be/Wlg-b7piwr8
動画の左下は LjTouch の画面です。Linux の画面はカメラでは撮れないので、リモートデスクトップ(VNC・見るだけ)で写しています。ボタンは命令で押したことにしています(指で押したときと同じ動きです)。
1. できること
書き出しの窓(M5 へ送る(USB)/ USB メモリー・SD へ書き出す)に「LAN の LjTouch(USB メモリー無しで送る)」の欄が増えました。今 LjStudio で開いているライブラリを、LAN の LjTouch へ直接送ります。
左上 = LjStudio の書き出しの窓・左下 = LjTouch の画面(VNC で写した物)(押すと大きく)
- 1LjStudio の書き出しの窓
- 2「LAN の LjTouch」の欄(探す・一覧・送る・IP で足す)
- 3LjTouch の画面(Linux の機体 DEL37 の右の画面)
| 送る中身 | USB メモリーの LjTouchData と同じ物(ライブラリ・タッチパネルの並び・器具の情報など)。1 つの zip にまとめて送ります。 |
| LjTouch 側 | 大きさと sha1 で全部を照合 → 入れ替え(前の中身は LjTouch の中の _BAK に、同じ名前ごと新しい 3 つまで残る)→ そのライブラリへ切り替え。止めたり再起動したりしません。 |
| SSH | 使いません。LjTouch 側の受け口(後述)へ HTTP で送ります。 |
2. LjTouch を探す
[LAN の LjTouch を探す]を押すと、LjStudio がこの PC の 192.168.x.x の網へ呼びかけ(UDP 47121 の同報)、返事をくれた LjTouch を一覧に出します。
DEL37 が見つかった(押すと大きく)
- 1[LAN の LjTouch を探す]
- 2見つかった LjTouch: 名前(IP アドレス)・今開いているデータ・今の状態(Idle = 待機・Running = 再生中 など)
3. IP で足す
呼びかけが届かない網(ルーターの向こう・同報を止めている網など)では、IP の欄に LjTouch の IP アドレスを書いて[IP で足す]を押します。名指しで聞いて(TCP 47120 の /info)、返事があれば一覧に足します。
192.168.0.37 を書いて[IP で足す](押すと大きく)
- 1IP の欄と[IP で足す]
- 2一覧に足された LjTouch(同じ IP なら 1 つにまとまる)
- 3記録: 「足しました: …」。返事が無いときは「… から返事がありません(受け口が動いているか・防火壁)」
4. 送る
- 一覧で送り先の LjTouch を選びます。何をどこへ送るかが下の枠に出ます。
- [LjTouch へ送る(LAN)]を押します。下の帯が進み、終わると記録に結果が出ます(このデータ 71 個・約 3 MB で 2 秒ほど)。
DEL37 を選んだ所(押すと大きく)
- 1選んだ LjTouch
- 2「LAN: SyncTest512 → del37(192.168.0.37)…(USB メモリーと同じ荷物。LjTouch が照合して入れ替え・同じライブラリを再生中なら最大 3 分待つ)」
送り終わった所(パスはぼかしています)(押すと大きく)
- 1[LjTouch へ送る(LAN)]
- 2記録: 取り込み開始 → 検査に通りました(大きさ・sha1)→ 入れ替えました → 切り替えました(止めずに)→ 結果: 完了
5. LjTouch の画面
取り込みが終わると、LjTouch は届いたライブラリへその場で切り替わり、下に「データを更新しました 版 …(面 1 枚)」と出ます。そのまま再生できます。
SyncTest512 に切り替わった LjTouch(押すと大きく)
1 番目のボタン(SYNC TEST 512 (endless))を押した所。下の帯が Running に(押すと大きく)
6. LjTouch 側の準備(受け口)
LjTouch の機体で、受け口 ljtouch_lan_receive.py が動いている必要があります。入れるのは 1 回だけです(LjTouch の一式と同じフォルダにあります)。
sudo sh ljtouch_lan_receive_setup.sh <ユーザー>
- systemd の
ljtouch-lan-receive.service として常駐します(電源を入れると動く・落ちても 3 秒で起き直す)。
- ufw が動いていれば、TCP 47120(送る)・UDP 47121(探す)を 192.168.0.0/16 からだけ開けます。
- 受けるのは 192.168.0.0/16 と自分自身からだけ、合言葉(HTTP の見出し
X-LjTouch-Key)が合うときだけです。同時に送れるのは 1 つまで。
- 合言葉・ポート・受ける網は
~/.config/ljtouch.env に書けます(LJTOUCH_LAN_KEY・LJTOUCH_LAN_PORT・LJTOUCH_LAN_ALLOW)。合言葉を変えたら、LjStudio 側も環境変数 LJTOUCH_LAN_KEY を同じにします。
- 記録は
~/ljtouch_lan_receive.log(取り込みの中身は ~/ljtouch_import.log)。
7. 注意
- LjTouch が同じライブラリを再生している間に送ったときは、最大 3 分待ってから入れ替えます。別のライブラリを再生中なら、止めて切り替えます(USB メモリーを挿したときと同じ)。
- LjStudio の今の出力の設定(Art-Net・USB DMX)も一緒に届きます。機体で固定したいときは、LjTouch の
~/.config/ljtouch.env に書いておけばそちらが勝ちます。
- 照合に通らなかったときは入れ替えません(前の中身のまま)。記録に理由が出ます。
8. 命令で送る(AI・台本から)
LjStudio の命令(inbox)でも同じことができます。
usb lan find | LAN の LjTouch を探して名前を返す |
usb lan info <IP> | その LjTouch の今のデータ・最後の取り込み |
usb lan send <IP> [lib <フォルダ>] | 窓なしで送る(lib を省くと今開いているライブラリ) |
usb lan refresh / select <IP> / add <IP> / run | 開いている書き出しの窓を動かす(探す・選ぶ・IP で足す・送る) |