Exécuter

L'API /osc/commands/execute exécute des commandes spécifiques sur l'appareil photo. Le résultat est un objet de commande.

Entrée

Nom Type Description
name Chaîne La commande à exécuter.
parameters Objet Paramètres d'entrée de commande correspondant à la spécification des définitions de commande. Voir Spécification de l'API OSC pour obtenir des exemples.

Sortie

.
Nom Type Description
name Chaîne La commande à exécuter.
state Chaîne État de la commande. Doit prendre l'une des valeurs suivantes :
  • done - Terminé, les résultats ont été renvoyés dans cette réponse.
  • inProgress - Exécution toujours en cours.
  • error - Échec, voir l'erreur dans la réponse.
id Chaîne (facultatif) Identifiant de commande. Cette valeur est requise pour les commandes renvoyant le statut inProgress. Par exemple, l'exécution de la commande camera.takePicture dure plusieurs secondes en raison de la nécessité d'assemblage des photos. Pour plus de détails, voir la section « Statut »
results Objet (facultatif) Résultats de la commande. Cette valeur est obligatoire pour les commandes renvoyant l'état done si la commande est supposée renvoyer des résultats. Par exemple, “results” : { “AAA”: “BBB”, ... } Voir Spécification de l'API OSC pour obtenir des exemples.
error Objet (facultatif) Description de l'erreur de commande. Cette valeur est obligatoire pour les commandes renvoyant l'état error;. Par exemple,
“error”: {
  “code”: “missingParameter”
}
progress Objet (facultatif) Description de l'avancement de la commande. Cette valeur est obligatoire pour les commandes renvoyant l'état inProgress. Par exemple,
“progress”: {
  “completion”: 0.8
}

Erreur

Code d'erreur Description
unknownCommand La commande demandée est inconnue. Par exemple, si un client v2 (clientVersion est définie sur 2, voir Options) demande une commande obsolète d'une API niveau 1, la demande devrait échouer avec ce code d'erreur.
disabledCommand La commande exécutée est actuellement désactivée, par ex.  la commande `takePicture` est désactivée lorsque l'appareil photo est en mode vidéo, la commande processPicture est désactivée lorsque l'appareil photo ne prend pas en charge delayProcessing. Ce code d'erreur a été ajouté à l'API niveau 2.
cameraInExclusiveUse L'appareil photo est déjà en utilisation exclusive. Aucune nouvelle session ne peut être démarrée. Ce code d'erreur a été supprimé dans l'API niveau 2.
missingParameter Un ou plusieurs paramètres obligatoires sont manquants.
invalidParameterName Un ou plusieurs noms de paramètre d'entrée ou d'option sont inconnus ou non pris en charge.
invalidParameterValue Les noms de paramètre ou d'option sont reconnus, mais une ou plusieurs valeurs ne sont pas valides ; par exemple, la valeur est hors limite.

Exemple

Requête (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
        }
    }
}
Requête (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
        }
    }
}
Réponse
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"
}
Requête (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"
    }
}
Requête (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"
}
Réponse
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
    }
}