Ausführen

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
    }
}