Websocket Endpoints
Realtime move commands require you to use websocket based
Read latest device status
Websocket URL
ws://localhost/bundle/{linkID}/status
Payload
Send empty packet to socket to receive another response
Return value
{
"data": {
"CalibratedAxes": [],
"DeviceInfo": [
{
"BatteryLevel": 0.36000001430511475,
"DeviceFirmwareVersion": 100,
"Type": "HeadPlus"
},
{
"BatteryLevel": 0.1599999964237213,
"DeviceFirmwareVersion": 16,
"Type": "SlideModuleV3"
}
],
"DeviceInfoEverythingReady": true,
"KeyposeLoopActive": false,
"KeyposeMotion_AimIndex": 0,
"KeyposeMotion_StartIndex": 0,
"KeyposeSlotsFilled": [
false,
false,
false,
false,
false,
false
],
"PlannedMotionProgress": 1.0,
"PlannedMotion_secs": 0.0,
"Readings": {
"Head_Pan": 89.97799682617188,
"Head_Tilt": 0.020999999716877937,
"Slide": 0.0
},
"RealTimeSupportedAxes": [
"Head_Pan",
"Head_Tilt"
],
"State": "Joystick_Move",
"SupportedAxes": [
"Head_Pan",
"Head_Tilt",
"Slide"
],
"TimestampDevice": 1895025,
"TimestampEpoch": 1625829832038
},
"result": "ok"
}
| Label | Type | Value | Description |
|---|---|---|---|
CalibratedAxes |
string array |
|
Calibrated axes as string array |
DeviceInfo |
device info array |
Each elements described in the table below |
Array of information of devices |
DeviceInfoEverythingReady |
bool |
true - false |
This means that when it is true, that can get information. Otherwise, you can not get information. |
KeyposeLoopActive |
bool |
true - false |
This means that if it is true, your bundle is looping between the specified keypose indexes. |
KeyposeMotion_AimIndex |
int |
0 - 5 |
aim index for keypose motion. |
KeyposeMotion_StartIndex |
int |
0 - 5 |
Index that before start keypose motion. |
KeyposeSlotsFilled |
bool array |
true - false |
Array has six elements, each element represents whether index is filled. |
PlannedMotionProgress |
float |
0.0 - 1.0 |
It shows the percentage of how many complete of keypose motion. It is mapped between 0.0 - 1.0. |
PlannedMotion_secs |
float |
|
How many seconds the keypose motion will take |
readings |
key-value pair array |
Each elements describes in below table |
Array of information of each axis |
RealTimeSupportedAxes |
string array |
|
Which axes the bundle has are supported in Real-Time Move. |
State |
string |
|
Shows state of the bundle movement. |
RealTimeSupportedAxes |
string array |
|
Which axes the bundle has are supported. |
TimestampDevice |
long int |
|
The status was generated at this timestamp on the master device. |
TimestampEpoch |
long int |
|
The status was grabbed from the SDK at this timestamp. |
| Label | Type | Value | Description |
|---|---|---|---|
DeviceFirmwareVersion |
int |
Device fimrware version | |
BatteryLevel |
int |
0 - 100 |
Battery level |
Type |
string |
|
Device Type |
| Label | Type | Value | Description |
|---|---|---|---|
readings It may consist of one or more of the following:
|
float |
|
In which axis direction you want to move and its speed ratio. |
Note
You need to ask for this manually at periodic intervals. Each request will return a status data without waiting for contents to be updated.
If you want to differentiate whether status has changed or not, you can use the TimestampEpoch field value.
Real Time Move
URL
POST /v1/bundle/{linkID}
Payload
{
"command": "realTimeMoveFixedDuration",
"duration_sec": 0.001,
"{axis_name}": "{setpoint_value}"
}
| Label | Type | Value | Description |
|---|---|---|---|
command |
string |
realTimeMoveFixedDuration |
command name |
duration_sec |
integer |
Planned motion duration | |
axis_name can be one of below:
|
float |
|
In which axis direction you want to move and its axis point. |
Example JSON You want to send command for three axes; Head Pan, Head Tilt and Slide;
{
"command":"keyposeStoreWithNumericData",
"index":0,
"head_pan":0.0,
"head_tilt":0.0,
"slide":0.0,
}
Return value
Default Return Values
{
"result": "OK"
}
System executed your command without any issues.
{
"result": "Invalid Arguments"
}
Given arguments are invalid.