Executar

A /osc/commands/execute API executa os comandos especificados na câmera. A saída é um objeto de comando.

Entrada

Nome Tipo Descrição
name String O comando a ser executado.
parameters Objeto Parâmetros de entrada do comando de acordo com as especificações de definições de comandos. Consulte as especificações da OSC API para obter exemplos.

Saída

Nome Tipo Descrição
name String O comando a ser executado.
state String O estado do comando. Deve ser um dos seguintes valores:
  • done - processo concluído, os resultados foram retornados na resposta.
  • inProgress - a execução ainda está em andamento.
  • error - o processo falhou, consulte o erro na resposta.
id String (opcional) ID de comando. Esse valor é obrigatório para comandos que retornam o status inProgress. Por exemplo, o comando camera.takePicture leva alguns segundos devido à necessidade de montagem. Consulte a seção "Status" para saber mais.
results Objeto (opcional) Resultados do comando. Esse valor é obrigatório para comandos que retornam o estadodone quando o comando deveria retornar resultados. Por exemplo: “results” : { “AAA”: “BBB”, ... } Consulte as especificações da OSC API para obter exemplos.
error Objeto (opcional) Descrição do erro do comando. Esse valor é obrigatório para comandos que retornam o estado error;. Por exemplo:
“error”: {
  “code”: “missingParameter”
}
progress Objeto (opcional) Descrição do progresso do comando. Esse valor é obrigatório para comandos que retornam o estado inProgress. Por exemplo:
“progress”: {
  “completion”: 0.8
}

Erro

Código de erro Descrição
unknownCommand O comando solicitado é desconhecido, por exemplo, se um cliente v2 (clientVersion definido como 2. Consulte Opções) solicita um comando suspenso à API de nível 1, a solicitação deve falhar com esse código de erro.
disabledCommand O comando executado atualmente está desativado, por exemplo, o comando `takePicture` é desativado quando a câmera está em modo de vídeo, o comando processPicture é desativado quando a câmera não oferece suporte a delayProcessing. Esse código de erro foi adicionado na API de nível 2.
cameraInExclusiveUse A câmera já está em uso exclusivo e não é possível iniciar uma nova sessão. Esse código de erro foi suspenso na API de nível 2.
missingParameter Um ou mais parâmetros obrigatórios não foram especificados.
invalidParameterName Um ou mais nomes de parâmetros de entrada ou opções não foram reconhecidos ou não são compatíveis.
invalidParameterValue Os nomes de parâmetro ou opção foram reconhecidos, mas um ou mais valores são inválidos. Por exemplo, o valor está fora do intervalo permitido.

Exemplo

Solicitação (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
        }
    }
}
Solicitação (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
        }
    }
}
Resposta
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"
}
Solicitação (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"
    }
}
Solicitação (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"
}
Resposta
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
    }
}