ה-API של /osc/commands/execute
מריץ פקודות מסוימות במצלמה. הפלט הוא אובייקט פקודה.
שם |
תיאור |
התיאור |
name |
מחרוזת |
הפקודה שצריך לבצע. |
parameters |
אובייקט |
פרמטרי קלט של פקודה בהתאם למפרט של הגדרות הפקודות. תוכלו למצוא דוגמאות לכך במפרט OSC API. |
פלט
שם |
תיאור |
התיאור |
name |
מחרוזת |
הפקודה שצריך לבצע. |
state |
מחרוזת |
מצב הפקודה. היא צריכה להיות אחת מהאפשרויות הבאות:
done – הושלמה, התוצאות הוחזרו בתגובה הזו.
inProgress - הביצוע עדיין מתבצע.
error – הפעולה נכשלה. אפשר לראות את השגיאה בתשובה.
|
id |
מחרוזת (אופציונלי) |
מזהה הפקודה. הערך הזה נדרש לפקודות שמחזירה את הסטטוס
inProgress . לדוגמה, הפקודה camera.takePicture נמשכת מספר שניות עקב הצורך בחיבור חיבור. מידע נוסף זמין בקטע 'סטטוס'. |
results |
אובייקט (אופציונלי) |
תוצאות הפקודה. הערך הזה נדרש לפקודות שמחזירה את המצב
done אם הפקודה צפויה להחזיר תוצאות. לדוגמה,
“results” : {
“AAA”: “BBB”,
...
}
ניתן לעיין בדוגמאות שמופיעות במפרט OSC API. |
error |
אובייקט (אופציונלי) |
תיאור של שגיאה בפקודה. הערך הזה נדרש לפקודות שמחזירה את המצב error; , לדוגמה,“error”: {
“code”: “missingParameter”
} |
progress |
אובייקט (אופציונלי) |
תיאור ההתקדמות בפקודה. הערך הזה נדרש לפקודות שמחזירה את המצב inProgress ; לדוגמה,“progress”: {
“completion”: 0.8
} |
שגיאה
קוד שגיאה |
התיאור |
unknownCommand |
הפקודה המבוקשת אינה ידועה. למשל, אם לקוח v2 (clientVersion מוגדר ל-2, ראו Options) מבקש פקודה שהוצאה משימוש מרמת API 1, הבקשה אמורה להיכשל עם קוד השגיאה הזה. |
disabledCommand |
הפקודה המופעלת מושבתת כרגע. למשל, הפקודה 'takepicture' מושבתת כשהמצלמה נמצאת במצב וידאו, והפקודה methodpicture מושבתת כשהמצלמה לא תומכת בעיכוב עיבוד. קוד השגיאה הזה התווסף ברמת API 2. |
cameraInExclusiveUse |
המצלמה כבר נמצאת בשימוש בלעדי, לא ניתן להתחיל סשן חדש. קוד השגיאה הזה הוצא משימוש ברמת API 2. |
missingParameter |
פרמטר נדרש אחד או יותר לא צוין. |
invalidParameterName |
שם אחד או יותר של הפרמטרים של הקלט או האפשרויות לא זוהו או לא נתמכים. |
invalidParameterValue |
שמות הפרמטרים או האפשרויות זוהו, אך אחד או יותר מהערכים אינם חוקיים. לדוגמה, הערך מחוץ לטווח. |
דוגמה |
בקשה (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
}
}
} |
בקשה (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
}
}
} |
תשובה |
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"
} |
בקשה (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"
}
} |
בקשה (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"
} |
תשובה |
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
}
} |