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
  • Head_Pan
  • Head_Tilt
  • Slide
  • Focus
  • Jib_Pan
  • Jib_Tilt
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
  • Head_Pan
  • Head_Tilt
  • Slide
  • Focus
  • Jib_Pan
  • Jib_Tilt
Which axes the bundle has are
supported in Real-Time Move.
State string
  • Idle
  • Keypose_Move
  • RealTime_Move
  • Focus_Calibration
  • Slider_Calibration
  • Joystick_Move
  • Unsupported_Activity
Shows state of the bundle
movement.
RealTimeSupportedAxes string array
  • Head_Pan
  • Head_Tilt
  • Slide
  • Focus
  • Jib_Pan
  • Jib_Tilt
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
  • EdlDevice_SlideModule
  • EdlDevice_HeadPlus
  • EdlDevice_HeadPlusPro
  • EdlDevice_HeadOne
  • EdlDevice_SurfaceOne
  • EdlDevice_DollyPlus
  • EdlDevice_SliderOnePro
  • EdlDevice_SliderOne
  • EdlDevice_DollyOne
  • EdlDevice_DollyPlusPro
  • EdlDevice_JibOne
  • EdlDevice_GoldFinch
  • EdlDevice_SlideModuleV3
  • EdlDevice_PanPro
  • EdlDevice_JibOne_Mk2
  • EdlDevice_FocusPlusPro
  • EdlDevice_HeadPlusV2
  • EdlDevice_HeadPlusProV2
  • EdlDevice_SlideModuleV1
  • EdlDevice_None
Device Type
Label Type Value Description
readings It may consist of one
or more of the following:
  • Head_Pan
  • Head_Tilt
  • Slide
  • Focus
  • Jib_Pan
  • Jib_Tilt
float
  • Head_Pan: -180 - 180
  • Head_Tilt: -180 - 180
  • Slide:
  • Focus:
  • Jib_Pan:
  • Jib_Tilt:
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:
  • Head_Pan
  • Head_Tilt
  • Slide
  • Focus
  • Jib_Pan
  • Jib_Tilt
float
  • Head_Pan: -180.0 - 180.0
  • Head_Tilt: -180.0 - 180.0
  • Slide: -
  • Focus: -
  • Jib_Pan: -
  • Jib_Tilt: -
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

See default return values.

Default Return Values

{
  "result": "OK"
}

System executed your command without any issues.

{
  "result": "Invalid Arguments"
}

Given arguments are invalid.