/osc/commands/execute
API 會對相機執行指定的命令。 輸出是命令物件。
輸入
名稱 |
類型 |
描述 |
name |
字串 |
要執行的命令。 |
parameters |
物件 |
根據命令定義規格而定的命令輸入參數。 如需範例,請參閱 OSC API 規格。 |
輸出
名稱 |
類型 |
描述 |
name |
字串 |
要執行的命令。 |
state |
字串 |
命令的狀態。 應該為下列其中之一:
done - 完成,已在此回應中傳回結果。
inProgress - 仍在執行中。
error - 失敗,請查看回應中的錯誤。
|
id |
字串 (選擇性) |
命令 ID。 需要有這個值,命令才能傳回狀態 inProgress。 例如,camera.takePicture 命令需要進行拼接,所以會需要數秒鐘的時間。 如果更多詳細資料,請參閱「狀態」。 |
results |
物件(選擇性) |
命令結果。 如果預期命令會傳回結果,需要有這個值,命令才能傳回狀態 done;例如,
“results” : {
“AAA”:“BBB”,
...
}
如需範例,請參閱 OSC API 規格。 |
error |
物件(選擇性) |
命令錯誤描述。 需要有這個值,命令才能傳回狀態 error; 例如:
“error”: {
“code”: “missingParameter”
} |
progress |
物件(選擇性) |
命令進度描述。 需要有這個值,命令才能傳回狀態 inProgress ;例如:
“progress”: {
“completion”: 0.8
} |
錯誤
錯誤代碼 |
描述 |
unknownCommand |
要求的命令不明,例如 如果 v2 用戶端(clientVersion 設定為 2,請參閱 選項)從 API 層級 1 要求已淘汰的命令,該要求應該失敗並附上此錯誤代碼。 |
disabledCommand |
執行的指令目前已停用,例如, 當相機處於影片模式時,`takePicture` 指令停用;當相機不支援 delayProcessing 時,processPicture 指令停用。
API 層級 2 中已新增此錯誤代碼。 |
cameraInExclusiveUse |
相機處於獨佔使用中,無法啟動新的工作階段。 API 層級 2 中已淘汰此錯誤代碼。 |
missingParameter |
未指定一或多個必要參數。 |
invalidParameterName |
無法辨識或不支援一或多個輸入參數或選項名稱。 |
invalidParameterValue |
辨識出參數或選項名稱,但有一或多個無效值;例如,值超出範圍。 |
範例 |
要求 (API 1) |
POST /osc/commands/execute HTTP/1.1
Host: [camera ip address]:[httpPort]
Content-Type: application/json;charset=utf-8
Accept: application/json
Content-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"name": "camera.setOptions",
"parameters": {
"sessionId": "12ABC3",
"options": {
"iso": 200,
"exposureCompensation": -2
}
}
} |
要求 (API 2) |
POST /osc/commands/execute HTTP/1.1
Host: [camera ip address]:[httpPort]
Content-Type: application/json;charset=utf-8
Accept: application/json
Content-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"name": "camera.setOptions",
"parameters": {
"options": {
"iso": 200,
"exposureCompensation": -2
}
}
} |
回應 |
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"name": "camera.setOptions",
"state": "done"
} |
要求 (API 1) |
POST /osc/commands/execute HTTP/1.1
Host: [camera ip address]:[httpPort]
Content-Type: application/json;charset=utf-8
Accept: application/json
Content-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"name": "camera.takePicture",
"parameters": {
"sessionId": "12ABC3"
}
} |
要求 (API 2) |
POST /osc/commands/execute HTTP/1.1
Host: [camera ip address]:[httpPort]
Content-Type: application/json;charset=utf-8
Accept: application/json
Content-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"name": "camera.takePicture"
} |
回應 |
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"name": "camera.takePicture",
"state": "inProgress",
"id": "90ABCD",
"progress": {
"completion": 0
}
} |