تنفيذ

تنفِّذ واجهة برمجة التطبيقات /osc/commands/execute أوامر محدّدة على الكاميرا. الناتج هو كائن أمر.

الإدخال

الاسم النوع الوصف
name سلسلة الأمر الذي سيتم تنفيذه.
parameters الكائن معلمات إدخال الأمر وفقًا لمواصفات تعريفات الأوامر. للاطّلاع على أمثلة، يُرجى الرجوع إلى مواصفات واجهة برمجة التطبيقات OSC.

الناتج

الاسم النوع الوصف
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 الأمر المطلوب غير معروف، مثل: إذا طلب عميل الإصدار 2 (تم ضبط clientVersion على 2، راجِع الخيارات) أمرًا متوقفًا من المستوى 1 لواجهة برمجة التطبيقات، من المفترَض أن يتعذّر تنفيذ الطلب مع ظهور رمز الخطأ هذا.
disabledCommand الأمر الذي تم تنفيذه غير مفعَّل حاليًا، مثل: يتم إيقاف الأمر "takePicture" عند الكاميرا في وضع الفيديو، يتم إيقاف أمر processPicture عندما لا تتيح الكاميرا تفعيل ميزة "تأخير المعالجة". تمت إضافة رمز الخطأ هذا في المستوى 2 من واجهة برمجة التطبيقات.
cameraInExclusiveUse الكاميرا قيد الاستخدام الحصري حاليًا، ولا يمكن بدء جلسة جديدة. تم إيقاف رمز الخطأ هذا في المستوى 2 من واجهة برمجة التطبيقات.
missingParameter لم يتم تحديد معلمة واحدة أو أكثر من المعلمات المطلوبة.
invalidParameterName لم يتم التعرّف على اسم خيار أو مَعلمة إدخال واحدة أو أكثر أو لم يتم دعمهما.
invalidParameterValue تم التعرف على أسماء المعلمات أو الخيارات، ولكن هناك قيمة واحدة أو أكثر غير صالحة؛ على سبيل المثال، القيمة خارج النطاق.

مثال

الطلب (واجهة برمجة التطبيقات 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
        }
    }
}
الطلب (واجهة برمجة التطبيقات 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"
}
الطلب (واجهة برمجة التطبيقات 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"
    }
}
الطلب (واجهة برمجة التطبيقات 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
    }
}