ดำเนินการ

/osc/commands/execute API จะใช้คำสั่งที่ระบุในกล้อง เอาต์พุตจะเป็นออบเจ็กต์คำสั่ง

อินพุต

ชื่อ Type คำอธิบาย
name สตริง คำสั่งที่จะดำเนินการ
parameters ออบเจ็กต์ พารามิเตอร์อินพุตคําสั่งตามข้อกำหนดคําจํากัดความของคําสั่ง โปรดดูข้อกำหนดของ OSC API เพื่อดูตัวอย่าง

เอาต์พุต

ชื่อ Type คำอธิบาย
name สตริง คำสั่งที่จะดำเนินการ
state สตริง สถานะของคำสั่ง ควรเป็นประเภทใดประเภทหนึ่งต่อไปนี้
  • done - เสร็จสมบูรณ์ ส่งคืนผลลัพธ์แล้วในการตอบกลับนี้
  • inProgress - การดำเนินการอยู่ระหว่างดำเนินการ
  • error - ไม่สำเร็จ โปรดดูข้อผิดพลาดในการตอบกลับ
id สตริง (ไม่บังคับ) รหัสคำสั่ง ค่านี้จำเป็นสำหรับคำสั่งที่แสดงสถานะ inProgress เช่น คำสั่ง camera.takePicture ใช้เวลา 2-3 วินาทีเนื่องจากความจำเป็นในการต่อภาพ ดูรายละเอียดเพิ่มเติมได้ที่ส่วน "สถานะ"
results ออบเจ็กต์ (ไม่บังคับ) ผลลัพธ์ของคำสั่ง ต้องระบุค่านี้สำหรับคำสั่งที่แสดงสถานะ done หากคำสั่งคาดว่าจะแสดงผลลัพธ์ เช่น “results” : { “AAA”: “BBB”, ... } โปรดดูข้อกำหนดของ OSC API สำหรับตัวอย่าง
error ออบเจ็กต์ (ไม่บังคับ) คำอธิบายข้อผิดพลาดของคำสั่ง ค่านี้จำเป็นสำหรับคำสั่งที่ส่งคืนสถานะ error; เช่น
“error”: {
  “code”: “missingParameter”
}
progress ออบเจ็กต์ (ไม่บังคับ) คำอธิบายความคืบหน้าของคำสั่ง ค่านี้จำเป็นสำหรับคำสั่งที่แสดงสถานะ inProgress เช่น
“progress”: {
  “completion”: 0.8
}

ข้อผิดพลาด

รหัสข้อผิดพลาด คำอธิบาย
unknownCommand ไม่รู้จักคำสั่งที่ขอ เช่น หากไคลเอ็นต์ v2 (clientVersion ตั้งค่าเป็น 2 โปรดดูตัวเลือก) ขอคำสั่งที่เลิกใช้แล้วจาก API ระดับ 1 คำขอควรดำเนินการไม่สำเร็จโดยมีรหัสข้อผิดพลาดนี้
disabledCommand ปิดใช้คําสั่งที่ดําเนินการอยู่ในขณะนี้ เช่น คําสั่ง "takePicture" จะปิดอยู่เมื่อกล้องเป็นโหมดวิดีโอ จะปิดใช้คําสั่ง processPicture เมื่อกล้องไม่รองรับ DelayProcessing มีการเพิ่มรหัสข้อผิดพลาดนี้ใน API ระดับ 2
cameraInExclusiveUse กล้องมีการใช้งานพิเศษอยู่แล้ว ไม่สามารถเริ่มเซสชันใหม่ เราเลิกใช้งานรหัสข้อผิดพลาดนี้ใน API ระดับ 2 แล้ว
missingParameter ไม่ได้ระบุพารามิเตอร์ที่จำเป็นอย่างน้อย 1 รายการ
invalidParameterName ระบบไม่รู้จักหรือไม่รองรับพารามิเตอร์อินพุตหรือชื่อตัวเลือกอย่างน้อย 1 รายการ
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
    }
}