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 polecenia zgodne 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. Musi mieć jedną z tych wartości:
  • done – zakończono, w tej odpowiedzi zostały zwrócone wyniki.
  • inProgress – nadal trwa wykonywanie.
  • error – wystąpił błąd, w odpowiedzi znajdziesz informację o błędzie.
id Ciąg znaków (opcjonalnie) Identyfikator polecenia. Ta wartość jest wymagana w przypadku poleceń zwracających stan inProgress. Na przykład polecenie camera.takePicture może potrwać kilka sekund, ponieważ jest wymagane zszycie. 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 polecenie ma zwrócić wyniki. np. “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; np.
“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, zobacz Options) żąda wycofanego polecenia z poziomu interfejsu API 1, żądanie powinno zakończyć się niepowodzeniem i wyświetleniem tego kodu błędu.
disabledCommand Wykonywane polecenie jest obecnie wyłączone, np. Polecenie „takePicture” jest wyłączone, gdy aparat działa w trybie wideo, a polecenie ProcessPicture jest wyłączone, jeśli aparat nie obsługuje opóźnienia przetwarzania. Ten kod błędu został dodany na poziomie 2 interfejsu API.
cameraInExclusiveUse Aparat jest już używany na wyłączność, 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 Nie udało się rozpoznać lub nieobsługiwać co najmniej 1 parametru wejściowego lub nazwy opcji.
invalidParameterValue Nazwy parametrów lub opcji zostały rozpoznane, 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
    }
}