Mit der /osc/commands/execute
-API werden vorgegebene Befehle zur Kamera ausgeführt. Die Ausgabe ist ein Befehlsobjekt.
Eingabe
Name |
Typ |
Beschreibung |
name |
Zeichenfolge |
Der auszuführende Befehl. |
parameters |
Objekt |
Befehlseingabeparameter entsprechend den vorgegebenen Befehlsdefinitionen. Beispiele entnehmen Sie der OSC API-Spezifikation. |
Ausgabe
Name |
Typ |
Beschreibung |
name |
Zeichenfolge |
Der auszuführende Befehl. |
state |
Zeichenfolge |
Der Zustand des Befehls. Der Zustand muss einer der folgenden sein:
done - Der Vorgang ist abgeschlossen; die Ergebnisse wurden in dieser Antwort zurückgegeben.
inProgress - Der Vorgang wird noch ausgeführt.
error - Fehlgeschlagen; siehe Fehler in der Antwort.
|
id |
Zeichenfolge (optional) |
Befehls-ID. Dieser Wert ist für Befehle erforderlich, die den Status inProgress zurückgeben. Beispielsweise nimmt der Befehl camera.takePicture einige Sekunden für das Zusammenfügen in Anspruch. Ausführlichere Informationen finden Sie im Abschnitt „Status“. |
results |
Objekt (optional) |
Befehlsergebnisse. Dieser Wert ist für Befehle erforderlich, die den Zustand done zurückgeben, wenn mit dem Befehl Ergebnisse zurückgegeben werden sollen; zum Beispiel
„results“ : {
„AAA“: „BBB“,
...
}
Beispiele entnehmen Sie der OSC API-Spezifikation. |
error |
Objekt (optional) |
Beschreibung des Fehlers des Befehls. Dieser Wert ist für Befehle erforderlich, die beispielsweise den Status error; zurückgeben.
“error”: {
“code”: “missingParameter”
} |
progress |
Objekt (optional) |
Beschreibung des Fortschritts des Befehls. Dieser Wert ist für Befehle erforderlich, die beispielsweise den Status inProgress zurückgeben.
“progress”: {
“completion”: 0.8
} |
Fehler
Fehlercode |
Beschreibung |
unknownCommand |
Der angeforderte Befehl ist unbekannt; zum Beispiel: Wenn ein v2-Client (clientVersion auf 2 gesetzt, siehe Optionen) einen veralteten Befehl von API Level 1 anfordert, sollte die Anforderung mit diesem Fehlercode fehlschlagen. |
disabledCommand |
Der ausgeführte Befehl ist derzeit deaktiviert; zum Beispiel: Der Befehl `takePicture` ist deaktiviert, wenn sich die
Kamera im Videomodus befindet; der Befehl processPicture ist deaktiviert, wenn die Kamera nicht delayProcessing unterstützt. Dieser Fehlercode wurde in API Level 2 hinzugefügt. |
cameraInExclusiveUse |
Die Kamera wird bereits exklusiv verwendet; eine neue Sitzung kann nicht gestartet werden. Dieser Fehlercode ist in API Level 2 veraltet. |
missingParameter |
Mindestens ein Parameter wurde nicht angegeben. |
invalidParameterName |
Mindestens ein Eingabeparameter oder ein Optionsname wurde nicht erkannt oder wird nicht unterstützt. |
invalidParameterValue |
Die Parameter- oder Optionsnamen wurden erkannt, aber mindestens ein Wert ist ungültig; beispielsweise liegt der Wert außerhalb des zulässigen Wertebereichs. |
Beispiel |
Anforderung (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
}
}
} |
Anforderung (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
}
}
} |
Antwort |
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"
} |
Anforderung (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"
}
} |
Anforderung (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"
} |
Antwort |
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
}
} |