تنفيذ

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

إدخال

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

الناتج

الاسم Type الوصف
name سلسلة الأمر المطلوب تنفيذه.
state سلسلة حالة الأمر. يجب أن يكون أحد الأنواع التالية:
  • done - اكتملت العملية، وتم عرض النتائج في هذا الردّ.
  • inProgress - عملية التنفيذ لا تزال قيد التقدم.
  • error - تعذّر تنفيذ الإجراء. يُرجى الاطّلاع على رسالة الخطأ في الردّ.
id سلسلة (اختياري) معرِّف الطلب. هذه القيمة مطلوبة للأوامر التي تعرض الحالة inProgress. على سبيل المثال، يستغرق الأمر camera.takePicture بضع ثوانٍ بسبب الحاجة إلى تركيب الأجزاء. لمزيد من التفاصيل، يُرجى الاطّلاع على قسم "الحالة".
results الكائن (اختياري) نتائج الطلبات هذه القيمة مطلوبة للأوامر التي تعرض حالة done إذا كان من المتوقّع أن يعرض الأمر نتائج. على سبيل المثال، “results” : { “AAA”: “BBB”, ... } يُرجى الاطّلاع على مواصفات واجهة برمجة التطبيقات OSC للاطّلاع على أمثلة.
error الكائن (اختياري) وصف خطأ الأمر. هذه القيمة مطلوبة للأوامر التي تعرض الحالة error; على سبيل المثال،
“error”: {
  “code”: “missingParameter”
}
progress الكائن (اختياري) وصف مستوى تقدُّم الأمر هذه القيمة مطلوبة للأوامر التي تعرض الحالة inProgress، على سبيل المثال،
“progress”: {
  “completion”: 0.8
}

خطأ

رمز الخطأ الوصف
unknownCommand الأمر المطلوب غير معروف، على سبيل المثال، إذا طلب عميل الإصدار 2 (clientVersion) الإعداد على 2، اطّلِع على الخيارات) على طلب أمر تم إيقافه من المستوى 1 لواجهة برمجة التطبيقات، من المفترض أن يتعذّر على الطلب عرض رمز الخطأ هذا.
disabledCommand الأمر المنفَّذ حاليًا غير مفعَّل حاليًا، مثلاً عندما يكون الأمر "takeImage" غير مفعّل عندما تكون الكاميرا في وضع الفيديو، ويكون الأمر process Image غير مفعّل عندما لا تتيح الكاميرا إمكانية التأخير Processing. تمّت إضافة رمز الخطأ هذا في المستوى 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
    }
}