اجرا کردن

API /osc/commands/execute دستورات مشخص شده را روی دوربین اجرا می کند. خروجی یک شی فرمان است.

ورودی

نام تایپ کنید توضیحات
name رشته دستوری که باید اجرا شود.
parameters شیء پارامترهای ورودی فرمان را با توجه به مشخصات تعاریف فرمان. لطفاً برای مثال به مشخصات OSC API مراجعه کنید.

خروجی

نام تایپ کنید توضیحات
name رشته دستوری که باید اجرا شود.
state رشته وضعیت فرماندهی باید یکی از موارد زیر باشد:
  • done - کامل، نتایج در این پاسخ برگردانده شده است.
  • inProgress - اجرا هنوز در حال انجام است.
  • error - ناموفق، خطا را در پاسخ ببینید.
id رشته (اختیاری) شناسه فرمان این مقدار برای دستورهایی که وضعیت را برمی گرداند لازم است در حال پیشرفت . برای مثال دستور camera.takePicture به دلیل نیاز به دوخت چند ثانیه طول می کشد. برای جزئیات بیشتر به بخش "وضعیت" مراجعه کنید.
results شی (اختیاری) نتایج فرمان این مقدار برای دستورهایی که حالت را برمی‌گردانند لازم است در صورتی انجام می شود که انتظار می رود فرمان نتایج را برگرداند. برای مثال، "نتایج" : { "AAA": "BBB"، ... } لطفاً برای مثال به مشخصات OSC API مراجعه کنید.
error شی (اختیاری) شرح خطای فرمان این مقدار برای دستورهایی که error; برای مثال،
“error”: {
  “code”: “missingParameter”
}
progress شی (اختیاری) شرح پیشرفت فرمان این مقدار برای دستورهایی که حالت inProgress را برمی‌گردانند لازم است. برای مثال،
“progress”: {
  “completion”: 0.8
}

خطا

کد خطا توضیحات
unknownCommand دستور درخواست شده ناشناخته است، به عنوان مثال اگر یک کلاینت v2 (clientVersion روی 2 تنظیم شده است، به گزینه ها مراجعه کنید) یک دستور منسوخ شده از سطح 1 API را درخواست کند، درخواست باید با این کد خطا شکست بخورد.
disabledCommand فرمان اجرا شده در حال حاضر غیرفعال است، به عنوان مثال دستور "takePicture" زمانی که دوربین در حالت ویدئو است غیرفعال است، دستور processPicture زمانی که دوربین از delayProcessing پشتیبانی نمی کند غیرفعال می شود. این کد خطا در سطح 2 API اضافه شده است.
cameraInExclusiveUse دوربین از قبل در حال استفاده انحصاری است، جلسه جدید را نمی توان شروع کرد. این کد خطا در سطح 2 API منسوخ شده است.
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
    }
}