Linuxのcurlコマンドを使ってTHETAのWeb APIを呼び出してみましょう。Windowsのcurl.exeを使う場合は、リクエスト例の’
を”
に、”
を\\”
に変更する必要があります。
コマンドを実行する場合、適宜Web APIのリファレンスを参照して、パラメータを追加・変更したり、オプションを設定すると理解が深まると思います。
THETA
で始まり、シリアル番号と.OSC
が続きます(例: THETAYR15104645.OSC
)。PCのWiFiをTHETAに接続します。THETAのIPアドレスは192.168.1.1、Web APIのポートは80です。infoプロトコルを呼ぶリクエスト
$ curl [<http://192.168.1.1/osc/info>](<http://192.168.1.1/osc/info>)
レスポンス
{
"api": [
"/osc/info",
"/osc/state",
"/osc/checkForUpdates",
"/osc/commands/execute",
"/osc/commands/status"
],
"apiLevel": [
2
],
"_bluetoothMacAddress": "58:38:79:78:A2:35",
"endpoints": {
"httpPort": 80,
"httpUpdatesPort": 80
},
"firmwareVersion": "2.30.0",
"gps": true,
"gyro": true,
"manufacturer": "Ricoh Company, Ltd.",
"model": "RICOH THETA X",
"serialNumber": "15104645",
"supportUrl": "<https://theta360.com/en/support/>",
"uptime": 568,
"_wlanMacAddress": "3C:21:9C:F0:39:C1"
}
THETAを静止画撮影モードにしてから、下記のリクエストを発行します。
camera.takePictureコマンドを呼ぶリクエスト
$ curl -X POST [<http://192.168.1.1/osc/commands/execute>](<http://192.168.1.1/osc/commands/execute>) --data '{"name":"camera.takePicture"}' -H 'content-type: application/json'
camera.takePictureコマンドのレスポンス
completion
の値が、画像生成の進捗(0~1の間の値)を表しています。id
の値を使って、画像生成の進捗を問い合わせることができます。{
"id": "44",
"progress": {
"completion": 0
},
"name": "camera.takePicture",
"state": "inProgress"
}
Commands/Statusプロトコルのリクエスト
id
の値を渡します。$ curl -X POST [<http://192.168.1.1/osc/commands/status>](<http://192.168.1.1/osc/commands/status>) --data '{"id":44}' -H 'content-type: application/json'
Commands/Statusプロトコルのレスポンス
fileUrl
の値が、生成した画像ファイルのURLです。{
"results": {
"fileUrl": "<http://192.168.1.1/files/100RICOH/R0010144.JPG>"
},
"name": "camera.takePicture",
"state": "done"
}
画像ファイルを取得するリクエスト
$ curl [<http://192.168.1.1/files/100RICOH/R0010144.JPG>](<http://192.168.1.1/files/100RICOH/R0010144.JPG>) > tmp.jpg