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