コンテンツにスキップ

JSON Machine Control デバイス

JSONMachineControl デバイスを使うと、JSON 経由でマシンリストとマシンステータスを照会できます。

JSONMachineControl デバイスは Telnet の使用を必要とします。Telnet 通信のために Disguise サーバーを正しく設定するには、以下の手順に従ってください。

  1. Control Panel > Programs > Turn on Windows Features > Telnet Client に移動して Telnet を有効にします。
  2. リンク telnet://127.0.0.1:9864 をクリックします。
  3. マシン名を取得するには、{"query":{"q":"machineList"}} を入力します。
  4. フレームレートを取得するには、{"query":{"q":"machineStatus hostName"}} を入力します。

JSONMachineControl

Live フレームレートの使用を推奨します。Live フレームレートを取得するには、以下の Python スクリプトを使用できます。

import json
from telnetlib import Telnet
from socket import gethostbyaddr
hostIP = "127.0.0.1" # stick the server IP here
port = 9864
host_name = gethostbyaddr(hostIP)
print(f'd3 name is: {host_name[0]}')
q = '{"query":{"q":"machineStatus ' + host_name[0] + '"}}'
print(f"sending - {q.encode('ASCII').decode('ASCII')} - to {host_name[0]}")
def readFPS():
with Telnet(hostIP, port) as tn:
tn.write(q.encode('ASCII') + b'\r\n')
buf_as_dict = json.loads(tn.read_until(b"}]}"))
return buf_as_dict['results'][0]['fps']
if __name__ == '__main__':
while True:
fps = readFPS()
print(fps)

JSONMachineControl デバイスは、他のデバイスタイプと同じ方法で作成します。デバイスの作成手順については デバイスの作成を参照し、デバイスタイプのメニューから JSONMachineControl を選択してください。これにより、デバイスエディター(後述)が開きます。

JSONMachineControl デバイスのプロパティ

Section titled “JSONMachineControl デバイスのプロパティ”

JSONMachineControl デバイスのプロパティ

Listening Port(リスニングポート)

Section titled “Listening Port(リスニングポート)”

デバイスが Telnet クエリの受信を待ち受ける TCP ポートです。デフォルトは 9864 です。

Machine list: {"query":{"q":"machineList"}}

各マシンに関する情報(d3 名、ホスト名、ロール、マシンタイプ)を含む辞書のリストを返します。

戻り値の例:

{"request":0,"status":"OK","results":[{"machine":"4x4-DEMO","hostname":"4X4-DEMO","role":"Dedicated director","type":"4x4pro"}]}

Machine status: {"query":{"q":"machineStatus 4X4-DEMO"}}

マシンに関する追加情報(セッションステータス、フェイルオーバーステータス、現在の FPS)を返します。

戻り値の例:

{"request":0,"status":"OK","results":[{"active":true,"Failed":false,"fps":32.345558166503909}]}