Wykonaj

Interfejs API /osc/commands/execute wykonuje określone polecenia w kamerze. Wynikiem jest obiekt polecenia.

Dane wejściowe

Nazwa Typ Opis
name Ciąg znaków Polecenie do wykonania.
parameters Obiekt Parametry wejściowe poleceń zgodnie ze specyfikacją definicji poleceń. Przykłady znajdziesz w specyfikacji interfejsu OSC API.

Wyniki

Nazwa Typ Opis
name Ciąg znaków Polecenie do wykonania.
state Ciąg znaków Stan polecenia. Użyj jednego z tych adresów:
  • done – zakończono, w tej odpowiedzi zostały zwrócone wyniki.
  • inProgress – wciąż trwa wykonywanie.
  • error – błąd; zobacz błąd w odpowiedzi.
id Ciąg znaków (opcjonalnie) Identyfikator polecenia. Ta wartość jest wymagana w przypadku poleceń zwracających stan inProgress. Na przykład wykonanie polecenia camera.takePicture zajmuje kilka sekund ze względu na konieczność zszywania obrazu. Więcej informacji znajdziesz w sekcji „Stan”.
results Obiekt (opcjonalnie) Wyniki polecenia. Ta wartość jest wymagana w przypadku poleceń zwracających stan done, jeśli ma ono zwracać wyniki, na przykład „results” : { “AAA”: “BBB”, ... } Przykłady znajdziesz w specyfikacji interfejsu OSC API.
error Obiekt (opcjonalnie) Opis błędu polecenia. Ta wartość jest wymagana w przypadku poleceń zwracających stan error;, na przykład
“error”: {
  “code”: “missingParameter”
}
progress Obiekt (opcjonalnie) Opis postępu polecenia. Ta wartość jest wymagana w przypadku poleceń zwracających stan inProgress, na przykład
“progress”: {
  “completion”: 0.8
}

Błąd

Kod błędu Opis
unknownCommand Żądane polecenie jest nieznane, np. jeśli klient w wersji 2 (clientVersion ma wartość 2, patrz Opcje) żąda wycofanego polecenia z interfejsu API poziomu 1, żądanie powinno zakończyć się błędem z tym kodem błędu.
disabledCommand Polecenie wykonane jest obecnie wyłączone, np. polecenie „takePicture” jest wyłączone, gdy aparat jest w trybie wideo, a polecenie procesPicture jest wyłączone, jeśli aparat nie obsługuje opóźnienia przetwarzania. Ten kod błędu został dodany w interfejsie API poziomu 2.
cameraInExclusiveUse Kamera jest już w użyciu wyłącznym. Nie można rozpocząć nowej sesji. Ten kod błędu został wycofany w interfejsie API poziomu 2.
missingParameter Nie określono co najmniej jednego wymaganego parametru.
invalidParameterName Co najmniej jedna nazwa parametru wejściowego lub opcji nie została rozpoznana lub nieobsługiwana.
invalidParameterValue Rozpoznano nazwę parametru lub opcji, ale co najmniej jedna wartość jest nieprawidłowa (np. wartość jest poza zakresem).

Przykład

Żądanie (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
        }
    }
}
Żądanie (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
        }
    }
}
Odpowiedź
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"
}
Żądanie (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"
    }
}
Żądanie (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"
}
Odpowiedź
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
    }
}