Interfejs API /osc/commands/execute
wykonuje określone polecenia w kamerze. Wynikiem jest obiekt polecenia.
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
}
} |