Выполнять

API /osc/commands/execute выполняет указанные команды на камере. Выходные данные представляют собой командный объект.

Вход

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

Выход

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

Ошибка

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