Thực thi

API /osc/commands/execute thực thi các lệnh được chỉ định trên máy ảnh. Kết quả đầu ra là một đối tượng lệnh.

Đầu vào

Tên Loại Mô tả
name Chuỗi Lệnh được thực thi.
parameters Đối tượng Các tham số đầu vào của lệnh theo thông số kỹ thuật của định nghĩa lệnh. Vui lòng tham khảo Quy cách API OSC để biết thêm ví dụ.

Đầu ra

Tên Loại Mô tả
name Chuỗi Lệnh được thực thi.
state Chuỗi Trạng thái của lệnh. Phải là một trong những trạng thái sau:
  • done – Hoàn tất, kết quả đã được trả về trong phản hồi này.
  • inProgress – Vẫn đang thực thi.
  • error – Không thành công, hãy xem lỗi trong phản hồi.
id Chuỗi (không bắt buộc) Mã lệnh. Giá trị này là bắt buộc đối với các lệnh trả về trạng thái inProgress. Ví dụ: lệnh camera.takePicture mất vài giây do cần ghép. Hãy xem phần "Trạng thái" để biết thêm thông tin chi tiết.
results Đối tượng (không bắt buộc) Kết quả lệnh. Giá trị này là bắt buộc đối với các lệnh trả về trạng thái done nếu lệnh dự kiến sẽ trả về kết quả; ví dụ: “results” : { “AAA”: “BBB”, ... } Vui lòng tham khảo Thông số kỹ thuật của API OSC để xem ví dụ.
error Đối tượng (không bắt buộc) Mô tả lỗi lệnh. Đây là giá trị bắt buộc đối với các lệnh trả về trạng thái error;, ví dụ:
“error”: {
  “code”: “missingParameter”
}
progress Đối tượng (không bắt buộc) Mô tả tiến trình lệnh. Giá trị này là bắt buộc đối với các lệnh trả về trạng thái inProgress; ví dụ:
“progress”: {
  “completion”: 0.8
}

Lỗi

Mã lỗi Nội dung mô tả
unknownCommand Lệnh đã yêu cầu không xác định, ví dụ: nếu ứng dụng v2 (clientVersion được đặt thành 2, hãy xem Tuỳ chọn) yêu cầu một lệnh không dùng nữa từ API cấp 1, thì yêu cầu sẽ không thành công với mã lỗi này.
disabledCommand Lệnh thực thi hiện đang tắt, ví dụ: lệnh "takePicture" bị tắt khi máy ảnh ở chế độ video, lệnh processPicture bị tắt khi máy ảnh không hỗ trợ tính năng chậm xử lý. Mã lỗi này đã được thêm vào API cấp 2.
cameraInExclusiveUse Máy ảnh đang được sử dụng độc quyền, nên không thể bắt đầu phiên mới. Mã lỗi này không còn được dùng trong API cấp 2.
missingParameter Một hoặc nhiều tham số bắt buộc chưa được chỉ định.
invalidParameterName Một hoặc nhiều tên tuỳ chọn hoặc thông số đầu vào không nhận dạng được hoặc không được hỗ trợ.
invalidParameterValue Tên thông số hoặc tùy chọn đã được nhận dạng, nhưng một hoặc nhiều giá trị không hợp lệ; ví dụ: giá trị nằm ngoài phạm vi.

Ví dụ:

Yêu cầu (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
        }
    }
}
Yêu cầu (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
        }
    }
}
Đáp
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"
}
Yêu cầu (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"
    }
}
Yêu cầu (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"
}
Đáp
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
    }
}