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