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