실행

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