/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
}
} |