Execute

API-интерфейс /osc/commands/execute выполняет указанные команды на камере. При этом выводится объект команды.

Ввод

Имя Тип Описание
name Строка Команда для выполнения.
parameters Объект Входные параметры команды в соответствии с ее спецификацией. Примеры см. в Спецификации OSC API.

Вывод

Имя Тип Описание
name Строка Команда для выполнения.
state Строка Состояние команды. Может принимать следующие значения:
  • done – выполнена, результаты возвращены в ответе.
  • inProgress – идет выполнение.
  • error – сбой, см. ошибку в ответе.
id Строка (дополнительно) Идентификатор команды. Данное значение требуется для команд, которые возвращают состояние inProgress. Например, выполнение команды camera.takePicture занимает несколько секунд из-за необходимости сшивания изображения. См. раздел "Состояние" для получения дополнительных сведений.
results Объект (дополнительно) Результаты команды. Данное значение требуется для команд, возвращающих состояние done, если от команды ожидается получение результатов, например: "results" : { "AAA": "BBB", ... } Примеры см. в Спецификации OSC API.
error Объект (дополнительно) Описание ошибки команды. Данное значение требуется для команд, которые возвращают состояниеerror;, например:
“error”: {
  “code”: “missingParameter”
}
progress Объект (дополнительно) Описание хода выполнения команды. Данное значение требуется для команд, которые возвращают состояниеinProgress, например:
“progress”: {
  “completion”: 0.8
}

Ошибка

Код ошибки Описание
unknownCommand Запрошенная команда неизвестна, например, если клиент версии 2 (для clientVersion установлено 2, см. Options) запрашивает устаревшую команду от API уровня 1, этот запрос должен завершиться с таким кодом ошибки.
disabledCommand Выполняемая команда в настоящий момент отключена, например, команда `takePicture` отключается, когда камера находится в режиме видео, команда processPicture отключается, когда камера не поддерживает delayProcessing. Этот код ошибки был добавлен в 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
    }
}