执行

/osc/commands/execute API 在相机上执行指定的命令。输出是一个命令对象。

输入

名称 类型 说明
name 字符串 要执行的命令。
parameters 对象 符合命令定义规范的命令输入参数。如需查看示例,请参阅 OSC API 规范。

输出

名称 类型 说明
name 字符串 要执行的命令。
state 字符串 命令的状态。应为以下其中一项: <ph type="x-smartling-placeholder">
    </ph>
  • 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
    }
}