AI-generated Key Takeaways
-
The
/osc/commands/execute
API allows you to execute commands on the camera, such as adjusting settings or taking pictures. -
Input requires the command
name
and any necessaryparameters
defined in the OSC API Specification. -
Output provides the command
name
,state
, and may include anid
,results
,error
, orprogress
depending on the command and its execution status. -
Possible command states include
done
,inProgress
, anderror
, with further details provided in the output fields. -
Refer to the OSC API Specification for specific command definitions, parameters, and result formats.
The /osc/commands/execute
API executes specified commands on the camera. The output is a command object.
Input
Name | Type | Description |
---|---|---|
name |
String | The command to be executed. |
parameters |
Object | Command input parameters according to the command definitions specification. Please refer to OSC API Specification for examples. |
Output
Name | Type | Description |
---|---|---|
name |
String | The command to be executed. |
state |
String | State of the command. Should be one of the following:
|
id |
String (optional) | Command ID. This value is required for commands returning the status inProgress. For example, the camera.takePicture command takes a few seconds due to the need for stitching. See the “Status” section for more details. |
results |
Object (optional) | Command results. This value is required for commands returning state done if the command is expected to return results; for example,
“results” : {
“AAA”: “BBB”,
...
}
Please refer to OSC API Specification for examples. |
error |
Object (optional) | Command error description. This value is required for commands returning state error; for example,
“error”: { “code”: “missingParameter” } |
progress |
Object (optional) | Command progress description. This value is required for commands returning state inProgress ; for example,
“progress”: { “completion”: 0.8 } |
Error
Error code | Description |
---|---|
unknownCommand |
Requested command is unknown, e.g. if a v2 client (clientVersion is set to 2, see Options) requests a deprecated command from API level 1, the request should fail with this error code. |
disabledCommand |
Command executed is currently disabled, e.g. `takePicture` command is disabled when camera is video mode, processPicture command is disabled when the camera doesn’t support delayProcessing. This error code was added in API level 2. |
cameraInExclusiveUse |
Camera is already in exclusive use, new session can’t be started. This error code was deprecated in API level 2. |
missingParameter |
One or more required parameters were not specified. |
invalidParameterName |
One or more input parameter or option name was unrecognized or unsupported. |
invalidParameterValue |
The parameter or option names were recognized, but one or more values is invalid; for example, the value is out of range. |
Example | |
---|---|
Request (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 } } } |
Request (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 } } } |
Response | 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" } |
Request (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" } } |
Request (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" } |
Response | 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 } } |