ביצוע

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