HTTP Endpoints

You can communicate with HTTP/REST API over edelkrone SDK.

Caution

  • edelkrone SDK supports only HTTP/1.1.
  • SDK does not provide an SSL connection. You can only connect over HTTP.
  • edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because a HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Pairing

edelkrone SDK gives you full control of pairing a single or multiple edelkrone motion control systems into a bundle connected via wireless or wired interfaces.

You can read the relevant summary page for high level overview.

Wireless

Initiate wireless scan

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because a HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"wirelessPairingScanStart"
}
Label Type Value Description
command string wirelessPairingScanStart Command name

Return value

See default return values.

Get current wireless scan results

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"wirelessPairingScanResults"
}
Label Type Value Description
command string wirelessPairingScanResults Command name

Return value

{
    "data": [
        {
            "groupId": 65535,
            "isDeviceFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateAvailable": false,
            "mac": "A4:E5:7C:CF:4F:66",
            "rssi": -49.0,
            "setup": "none",
            "type": "slideModuleV3"
        },
        {
            "groupId": 65535,
            "isDeviceFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateAvailable": false,
            "mac": "98:F4:AB:21:A7:7E",
            "rssi": -88.0,
            "setup": "none",
            "type": "headPlusProV2"
        },
        {
            "groupId": 24883,
            "isDeviceFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateAvailable": false,
            "mac": "E8:DB:84:2C:C4:76",
            "rssi": -87.0,
            "setup": "panTilt",
            "type": "headPlusV2"
        },
        {
            "groupId": 25052,
            "isDeviceFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateAvailable": false,
            "mac": "F0:08:D1:85:BD:1A",
            "rssi": -86.0,
            "setup": "groupMember",
            "type": "slideModuleV3"
        },
        {
            "groupId": 65535,
            "isDeviceFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateAvailable": false,
            "isTilted": 1,
            "mac": "C4:4F:33:65:D9:CF",
            "rssi": -81.0,
            "setup": "none",
            "type": "headOne"
        }
    ],
    "result": "ok"
}
Label Type Value Description
data - - Array of information about edelkrone motion control system(s) found in wireless range
Label Type Value Description
groupId int - GroupID for the device. This value is 65535 for non paired devices. All devices belong in a specific bundle share the same GroupID.
linkPairigingActive bool - Link (3.5mm) cable is connected to this device and this device received a ping from at least one other link connected device.
isTilted bool - This flag is valid when HeadONE's axis is tilted.
mac string FF:FF:FF:FF:FF:FF Mac address as hex string.
rssi int - Received signal strength indication.
isDeviceFirmwareUpdateAvailable bool - Device firmware update available for device.
You can connect with mobile app to your device which can be updated & follow the instructions from the mobile app to continue.
isRadioFirmwareUpdateAvailable bool - Radio firmware update available for device.
You can connect with mobile app to your device which can be updated & follow the instructions from the mobile app to continue.
setup string If device is a bundle master:
  • panOnly
  • tiltOnly
  • panTilt
  • slideOnly
  • dollyOnly
  • panAndSlide
  • tiltAndSlide
  • panAndDolly
  • tiltAndDolly
  • panTiltAndSlide
  • panTiltAndDolly
    • panAndJib
    • tiltAndJib
    • panTiltAndJib
    • jibOnly
    • panAndJibPlus
    • tiltAndJibPlus
    • panTiltAndJibPlus
    • jibPlusOnly
    • followFocusOnly
    If device is a bundle member:
  • groupMember

  • If device is not paired yet:
  • none
  • possibleCanbusMaster

  • Other states:
  • bootingUp
  • firmwareError
-
type string - See Device Type Table below
Device Type Product Name
slideModule Slide Module v2
slideModuleV3 Slide Module v3
sliderOnePro SliderONE PRO v2
sliderOne SliderONE v2
dollyPlus DollyPLUS
dollyOne DollyONE
dollyPlusPro DollyPLUS PRO
panPro PanPRO
headOne HeadONE
headPlus HeadPLUS v1
headPlusPro HeadPLUS v1 PRO
headPlusV2 HeadPLUS v2
headPlusProV2 HeadPLUS v2 PRO
focusPlusPro FocusPLUS PRO
jibOne JibONE

Note

You must send wirelessPairingScanStart command before sending wirelessPairingScanResults command.

Create Bundle

You can initiate a bundling operation by sending the MAC address(es) of the motion control system(s) you want to connect with Link Adapter.

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK return a error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command": "wirelessPairingCreateBundle",
    "deviceCount": 1,
    "forcedMasterDevice": "none",
    "macList": [
        "E8:68:E7:2E:B5:E2"
    ]
}
Label Type Value Description
command string wirelessPairingCreateBundle Command name
deviceCount integer - Number of devices to be paired
forcedMasterDevice string - See Forced Master Device table below.
Critical for JibONE + Pan PRO bundle.
macList string FF:FF:FF:FF:FF:FF Mac address list of devices. Mac addresses should follow "xx:xx:xx:xx:xx" pattern
Forced Master Device Description
jibOne If Pan PRO is to be used as panning Jib with JibONE + Pan PRO bundle
panPro If Pan PRO is to be used as panning Head with JibONE + Pan PRO bundle
none For all other setups

jibone_top_bottom

Figure1: Pan PRO pairing scenarios with JibONE 

Return value

See default return values.

Note

edelkrone motion control system(s) you want to connect must be in wireless range and powered on before sending this command. If not, process will fail. You can check the pairing progress with wirelessPairingStatus command.

Attach to Existing Bundle

You can attach your Link Adapter to previously created bundle by sending the MAC adress of the main edelkrone motion control system for the particular bundle.

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
    "command": "wirelessPairingAttachToBundle",
    "mac": "30:AE:A4:8F:B1:46"
}
Label Type Value Description
command string wirelessPairingAttachToBundle Command name
mac string FF:FF:FF:FF:FF:FF Mac address of the main device.
Mac addresses should follow "xx:xx:xx:xx:xx" pattern

Return value

See default return values.

Note

edelkrone motion control system(s) you want to connect must be in wireless range and powered on before sending this command. If not, process will fail. You can check the pairing progress with wirelessPairingStatus command.

Get Pairing Status

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"wirelessPairingStatus"
}
Label Type Value Description
command string wirelessPairingStatus Command name

Return value

{
    "data": {
        "lastPairError": "none",
        "wirelessPairState": "idle"
    },
    "result": "ok"
}
Label Type Value Description
lastPairError string - See Last Pair Error Descriptions table below
pairState string
  • idle
  • connecting
  • connectionOk
  • problem
Last Pair Error Description
none -
impossibleScenario Devices are not compatible with each other and can't be bundled together.
radioFirmwareUpdateRequired Radio firmware update required for one or more device in the current bundle. Please connect with mobile app to your bundle to check wihch device(s) need update & follow the instructions from the mobile app to continue.
deviceFirmwareUpdateRequired Device firmware update required for one or more device in the current bundle. Please connect with mobile app to your bundle to check wihch device(s) need update & follow the instructions from the mobile app to continue.
unknown Unknown problem occured. Please retry.
deviceSearchProblem Link adapter could not find one or more device(s) with given mac address list.
alreadyGroupMember Device you want to pair is already in a bundle.
connectionProblem Connection problem occured. Please retry.

Disconnect from bundle

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"disconnect"
}
Label Type Value Description
command string disconnect Command name

Return value

See default return values.

Wired

List Currently Connected Wired Devices

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK return a error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"link2PairingScanResults"
}
Label Type Value Description
command string link2PairingScanResults Command name

Return value

{
    "data": [
        {
            "isDeviceFirmwareUpdateAvailable": false,
            "type": "slideModuleV3"
        },
        {
            "isDeviceFirmwareUpdateAvailable": false,
            "type": "headPlusV2"
        }
    ],
    "result": "ok"
}
Label Type Value Description
data - - Array of information about edelkrone motion control system(s) connected to the Link Adapter via 3.5mm Link cable.
Label Type Value Description
isDeviceFirmwareUpdateAvailable bool - Device firmware update available for device.
You can connect with mobile app to your device which can be updated & follow the instructions from the mobile app to continue.
type string - See Device Type Table below
Device Type Product Name
slideModuleV3 Slide Module v3
panPro PanPRO
headPlusV2 HeadPLUS v2
headPlusProV2 HeadPLUS v2 PRO
focusPlusPro FocusPLUS PRO

Connect to Wired Device(s)

This command tries to pair the Link Adapter to one or more devices connected with the Link (3.5mm) cables or tries to attach the Link Adapter to an already paired group with wired interface.

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with the "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"link2PairingConnect"
}
Label Type Value Description
command string link2PairingConnect Command name

Return value

See default return values.

Get Wired Pairing Status

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"link2PairingStatus"
}
Label Type Value Description
command string link2PairingStatus Command name

Return value

{
    "data": {
        "canbusPairState": "pingReceived",
        "lastPairError": "none"
    },
    "result": "ok"
}
Label Type Value Description
canbusPairState string
  • idle
  • pingReceived
  • connecting
  • connectionOk
Pairing State
lastPairError string - See Last Pair Error table below
Last Pair Error Description
none -
impossibleScenario Devices are not compatible with each other and can't be bundled together.
cantAppendDevice At least one device inside the wired network is paired and at least another one is not paired. You can't append an unpaired device to an already paired group.
deviceFirmwareUpdateRequired Device firmware update required for one or more device in the current bundle. Please connect with mobile app to your bundle to check wihch device(s) need update & follow the instructions from the mobile app to continue.
unknown Unknown problem. Please retry.

Disconnect

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"disconnect"
}
Label Type Value Description
command string disconnect Command name

Return value

See default return values.

Keypose

With keypose commands, you can store multiple axis values in a single setpoint group called keyposes and recall them with specific speed and acceleration.

You can read the relevant summary page for high level overview.

Keypose Store Current Pose

Use this command to store your overall pose as a keypose. You can move your system to this location later by referencing with index.

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "keyposeStoreCurrentPose",
  "index": 0
}
Label Type Value Description
command string keyposeStoreCurrentPose Command name
index integer 0 - 5 (max) Keypose slot you want to store the current pose

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Return value

See default return values.

Keypose Store by Numeric Data

You can fill a keypose slot by entering specific encoder values. This can be useful when moving the motion control system to a predefined location algorithmically.

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK return a error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"keyposeStoreWithNumericData",
  "index":0,
  "{axis_name}": "{setpoint_value}"
}
Label Type Value Description
command string keyposeStoreWithNumericData Command name
index integer 0 - 5 (max) Keypose slot you want to store the current pose
axis_name string - See table below
setpoint_value float - See table below
Axis Name Type Unit Value Range
headPan float degree -36000.0 - +36000.0
headTilt float degree -89.1 - +89.1
slide float centimeter Depends on the slider type.
focus float raw encoder There is no limit if calibration is not done.
After calibration, the limit is between two endpoints of your lens
jibPlusPan float degree -36000.0 - +36000.0
jibPlusTilt float degree -43.8 - +43.8

Note

See axis name convention chapter for details.

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Caution

When storing a keypose by entering specific encoder values, you must specify all axis values for the particular bundle. If you miss even one, this command returns an error.

Example JSON

For a bundle consisting of Slide Module v3 + HeadPLUSv2 units, we can store keypose slot number 2 by sending the following command:

{
  "command":"keyposeStoreWithNumericData",
  "index": 2,
  "headPan": 10.0,
  "headTilt": 20.0,
  "slide": -5.2
}

Return value

See default return values.

Keypose Move with Fixed Duration

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command":"keyposeMoveFixedDuration",
    "index": 0,
    "duration": 5.2,
    "acceleration": 0.5
}
Label Type Value Description
command string keyposeMoveFixedDuration Command name
index integer 0 - 5 (max) Keypose slot index you want to move
acceleration float 0.0 - 1.0 Acceleration amount for the motion.
  • 0.0 being the most immediate start / stop
  • 1.0 being the most gradual start / stop
duration float - Planned motion duration in seconds

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Caution

  • With this type of fixed duration command, our motion control systems can't guarantee that the motion will be completed with the given duration, if the given duration is shorter than what it can be achieved with %100 speed.
  • If the given duration is shorter than what it can be achieved with %100 speed, system moves with %100 speed with the given acceleration.
  • You can check the actual motion duration information inside the periodic status data structure after motion is started.

Return value

See default return values.

Keypose Move with Fixed Speed

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "keyposeMoveFixedSpeed",
  "index": 0,
  "acceleration": 0.5,
  "speed": 0.5
}
Label Type Value Description
command string keyposeMoveFixedSpeed Command name
index integer 0 - 5 (max) Keypose slot index you want to move
acceleration float 0.0 - 1.0 Acceleration amount for the motion.
  • 0.0 being the most immediate start / stop
  • 1.0 being the most gradual start / stop
speed float 0.0 - 1.0 Speed argument. This is normalised based on current bundle.

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Return value

See default return values.

Loop Between Keyposes with Fixed Duration

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command":"keyposeLoopFixedDuration",
    "index1":0,
    "index2":1,
    "duration":0.0,
    "acceleration":0.0
}
Label Type Value Description
command string keyposeMoveFixedDuration Command name
index1 integer 0 - 5 (max) -
index2 integer 0 - 5 (max) -
acceleration float 0.0 - 1.0 Acceleration amount for the motion.
  • 0.0 being the most immediate start / stop
  • 1.0 being the most gradual start / stop
duration float - Planned motion duration in seconds

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Caution

  • With this type of fixed duration command, our motion control systems can't guarantee that the motion will be completed with the given duration, if the given duration is shorter than what it can be achieved with %100 speed.
  • If the given duration is shorter than what it can be achieved with %100 speed, system moves with %100 speed with the given acceleration.
  • You can check the actual motion duration information inside the periodic status data structure after motion is started.

Return value

See default return values.

Loop Between Keyposes with Fixed Speed

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json"..

Payload

{
  "command": "keyposeLoopFixedSpeed",
  "index1": 0,
  "index2": 1,
  "acceleration": 0.5,
  "speed": 0.25
}
Label Type Value Description
command string keyposeLoopFixedSpeed Command name
index1 integer 0 - 5 (max) -
index2 integer 0 - 5 (max) -
acceleration float 0.0 - 1.0 Acceleration amount for the motion.
  • 0.0 being the most immediate start / stop
  • 1.0 being the most gradual start / stop
speed float 0.0 - 1.0 Speed argument. This is normalised based on current bundle.

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Return value

See default return values.

Read Keypose Numeric Information

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "keyposeReadNumericValues",
  "index": 0
}
Label Type Value Description
command string keyposeReadNumericValues Command name
index integer 0 - 5 (max) Keypose slot index you want to get information about keypose

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Return value

{
  "data": {
        "{axis_name}": "{set_point}",
    },
    "result": "ok"
}

Example Return

{
    "data": {
        "focus": 0,
        "headPan": 0.0,
        "headTilt": 0.0,
        "index": 0,
        "jibPlusPan": -1.0,
        "jibPlusTilt": -1.0,
        "slide": 0.0
    },
    "result": "ok"
}
Axis Name Type Unit Value Range
headPan float degree -36000.0 - +36000.0
headTilt float degree -89.1 - +89.1
slide float centimeter Depends on the slider type.
focus float raw encoder There is no limit if calibration is not done.
After calibration, the limit is between two endpoints of your lens
jibPlusPan float degree -36000.0 - +36000.0
jibPlusTilt float degree -43.8 - +43.8

Note

See axis name convention chapter for details.

Delete Keypose

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command":"keyposeDeletePose",
  "index":1
}
Label Type Value Description
command string keyposeDeletePose Command name
index integer 0 - 5 (max) Keypose slot index you want to delete

Note

The number of keypose slots depend on the device you are using. The number of keypose slots can be obtained from the length of keyposeSlotsFilled in the status.

Return value

See default return values.

Real Time Move

With real time move commands, you can send and playback a precomputed motion profile data to real motion control system in real time.

You can read the relevant summary page for high level overview.

Realtime Move

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK return a error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"realTimeMoveFixedDuration",
  "duration": 0.033,
  "{axis_name}": "{setpoint_value}"
}
Label Type Value Description
command string realTimeMoveFixedDuration Command name
duration float - Motion duration in seconds
axis_name string - See table below
setpoint_value float - See table below
Axis Name Type Unit Value Range
headPan float degree -36000.0 - +36000.0
headTilt float degree -89.1 - +89.1
slide float centimeter Depends on the slider type.
focus float raw encoder There is no limit if calibration is not done.
After calibration, the limit is between two endpoints of your lens

Note

See axis name convention chapter for details.

Caution

When sending a real time move command, you must specify all real time move supported axis values for the particular bundle. If you miss even one, this command returns an error.

Example JSON

{
  "command": "realTimeMoveFixedDuration",
  "headPan": 45.0,
  "headTilt": -12.5,
  "slide": 10.0,
  "focus": 10430,
  "duration": 0.033
}

Return value

See default return values.

Joystick Move / Focus Move

Manual control of Pan / Tilt / Slide / Focus axes with joystick & jogwheel like interface.

You can read the relevant summary page for high level overview.

Joystick Move

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "joystickMove",
  "{axis_name}": "{speed_ratio}"
}

Label Type Value Description
command string joystickMove Command name
axis_name string - See table below.
speed_ratio float - Relative speed you want that axis to move.

Axis Name Type Value Range
headPan float -1.0 - +1.0
headTilt float -1.0 - +1.0
slide float -1.0 - +1.0
jibPlusPan float -1.0 - +1.0
jibPlusTilt float -1.0 - +1.0

Example JSON

You can send multiple joystick move setpoints for different axes in a single command. You can find an example payload for similar scenario below.

{
  "command": "joystickMove",
  "headPan": -0.05,
  "headTilt": 0.25,
  "slide": 0.4
}

Return value

See default return values.

Focus Manual Move

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "focusManualMove",
  "deltaEnc": 4360
}

Label Type Value Description
command string focusManualMove Command name
deltaEnc integer - Encoder step amount you want focus motor to move. Can be positive or negative.
Example: Full round rotation of focus motor is roughly equivalent to 44500 units of encoder movement.

Return value

See default return values.

Motion Abort

You can send this command to stop any ongoing motion activity.

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
  "command": "motionAbort"
}
Label Type Value Description
command string motionAbort Command name

Return value

See default return values.

Calibration

You can read the relevant summary page for high level overview.

Calibration

URL

/v1/bundle/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command": "calibrate",
    "device": "slideModuleV3",
    "isOnGround": true,
    "isOnLeftSide" : false
}
Label Type Value Description
command string calibrate Command name
device string - Which device you want to calibrate.
See table below for possible devices.

Note

Some devices may need extra parameters for calibration.

Caution

You can't send multiple calibration requests for separate devices in a single command. You must send separate calibration commands for each device.

Device Type Required Parameter
slideModule
  • isOnGround
  • isOnLeftSide
slideModuleV3
  • isOnGround
  • isOnLeftSide
headPlus -
headPlusPro -
headPlusV2 -
headPlusProV2 -
headOne -
panPro -
focusPlusPro -
jibOne
  • jibLength
  • rodLength

Parameter descriptions:

Label Type Value Description
jibLength float - Length of the JibONE. See Overview page for details.
rodLength float - Length of the camera rod of the JibONE. See Overview page for details.
isOnGround bool - If SliderPLUS and Slide Module v2 / v3 is on ground, it should be true.
isOnLeftSide bool - If Slide Module v2 / v3 is mounted on the left side of the slider, it should be true.

Return value

See default return values.

Periodic Status

  • You can find the current status of the device, encoder readings, battery level of the units, which axes are supported in the current bundle, which keypose slots are filled etc. information inside this update.
  • You need to ask for this manually at regular intervals.
  • Status update response returns everything you need in a single JSON package.
  • Asking for status will return last updated status of the device regardless of its changes.
  • If you want to be sure that status has changed, you can use the TimestampEpoch field value inside the result.

You can read the relevant summary page for high level overview.

URL

/bundle/{linkID}/status

Method

GET

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because an HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Return value

{
    "data": {
        "calibratedAxes": [
            {
                "axis": "headPan",
                "device": "headPlusV2"
            },
            {
                "axis": "headTilt",
                "device": "headPlusV2"
            }
        ],
        "deviceInfo": [
            {
                "batteryLevel": 1.0,
                "type": "headPlusV2"
            }
        ],
        "deviceInfoEverythingReady": true,
        "keyposeLoopActive": false,
        "keyposeMotionAimIndex": 0,
        "keyposeMotionStartIndex": 0,
        "keyposeSlotsFilled": [
            false,
            false,
            false,
            false,
            false,
            false
        ],
        "plannedMotionProgress": 1.0,
        "plannedMotionDuration": 0.0,
        "readings": {
            "headPan": 89.95600128173828,
            "headTilt": 0.0
        },
        "realTimeSupportedAxes": [],
        "state": "idle",
        "supportedAxes": [
            {
                "axis": "headPan",
                "device": "headPlusV2"
            },
            {
                "axis": "headTilt",
                "device": "headPlusV2"
            }
        ],
        "timestampDevice": 303462,
        "timestampEpoch": 1634645133077
    },
    "result": "ok"
}

Label Type Value Description
calibratedAxes list - List of calibrated axes.
deviceInfo list - List of information of device(s) in the bundle. See table below.
deviceInfoEverythingReady bool - deviceInfo list is incomplete while this flag is false
keyposeLoopActive bool - If true, keypose move is in loop mode.
keyposeMotionAimIndex int 0 - 5 (max) Which keypose slot are we moving towards?
keyposeMotionStartIndex int -1 - 5 (max) If keyposeLoopActive flag is true, this value represents starting index of the keypose loop. Otherwise, this value is -1 to indicate that system has started the keypose move from its current position.
keyposeSlotsFilled list - Each element represents which keypose slot is filled or not. Length of this array also represents how many keypose slots are available for this particular bundle.
plannedMotionProgress float 0.0 - 1.0 How much of the currently planned motion is finished?
plannedMotionDuration float - How many seconds the currently planned motion is going to take?
realTimeSupportedAxes list - Which of the currently available axes are capable for realTimeMove commands?
state string
  • idle
  • keyposeMove
  • realTimeMove
  • focusCalibration
  • sliderCalibration
  • joystickMove
  • unsupportedActivity
Current state of bundle.
timestampDevice long - Local device timestamp for this particular update. Starts from zero and counted inside the motion control system firmware with 1 milisecond increments.
timestampEpoch long - Local computer epoch timestamp for this parcticular update. Synchronised to the computer time.

Label Type Value Description
batteryLevel float 0.0 - 1.0 Battery level
type string - Device Type

Device Type Product Name
slideModule Slide Module v2
slideModuleV3 Slide Module v3
sliderOnePro SliderONE PRO v2
sliderOne SliderONE v2
dollyPlus DollyPLUS
dollyOne DollyONE
dollyPlusPro DollyPLUS PRO
panPro PanPRO
headOne HeadONE
headPlus HeadPLUS v1
headPlusPro HeadPLUS v1 PRO
headPlusV2 HeadPLUS v2
headPlusProV2 HeadPLUS v2 PRO
focusPlusPro FocusPLUS PRO
jibOne JibONE

Axis Name Type Unit Value Range
headPan float degree -36000.0 - +36000.0
headTilt float degree -89.1 - +89.1
slide float centimeter Depends on the slider type.
focus float raw encoder There is no limit if calibration is not done.
After calibration, the limit is between two endpoints of your lens
jibPlusPan float degree -36000.0 - +36000.0
jibPlusTilt float degree -43.8 - +43.8

Note

See axis name convention chapter for details.

These are Link Adapter related commands.

URL

/v1/device

Method

POST

Payload


{
    "command": "linkStatus"
}

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Label Type Value Description
command string linkStatus Command name

Return value

{
    "data": [
        {
            "initialFoundEpoch": "1634625480462967400",
            "isDeviceFirmwareUpdateAvailable": false,
            "isDeviceFirmwareUpdateRequired": false,
            "isFirmwareCorrupted": false,
            "isPairingDone": false,
            "isRadioFirmwareUpdateAvailable": false,
            "isRadioFirmwareUpdateRequired": false,
            "isValid": true,
            "linkConnectionType": "none",
            "linkID": "206034415530",
            "linkType": "linkAdapter",
            "portName": "COM7"
        }
    ],
    "result": "ok"
}
Label Type Value Description
data device list - List of identified link modules
Label Type Value Description
initialFoundEpoch string - When did edelkrone SDK enumerated this particular link adapter initially?
isRadioFirmwareUpdateAvailable bool - Update is available for radio firmware of the link adapter.
isRadioFirmwareUpdateRequired bool - Update is required for radio firmware of the link adapter.
isDeviceFirmwareUpdateRequired bool - Update is required for device firmware of the link adapter.
isDeviceFirmwareUpdateAvailable bool - Update is available for device firmware of the link adapter.
isPairingDone bool - Starts off false and goes to true when a pairing operation is completed successfull. Goes back to false when link adapter disconnects from the current bundle.
isValid bool - Starts off true when first enumerated. Goes to false if you unplug the particular link adpater while edelkrone SDK is running.
linkConnectionType string
  • wireless
  • canbus
  • none
Link connection type
linkID string - Unique LinkID string for the particular link adapter.
linkType string - Indicates the type of link adapter.
portName string - Hardware port name.

You can update device firmware of your link adapter with this command.

URL

/v1/device

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with the "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command":"startLinkDeviceFirmwareUpdate"
}
Label Type Value Description
command string startLinkDeviceFirmwareUpdate Command name

Return value

See default return values.

Device firmware update progress can be checked with this command.

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"linkDeviceFirmwareUpdateStatus"
}
Label Type Value Description
command string linkDeviceFirmwareUpdateStatus Command name

Return value

{
  "status": "noDevice",
  "result": "ok"
}
Label Type Value Description
status string none -
status string multipleDevice There are multiple devices in DFU mode. There has to be only one.
status string noDevice There isn't any device in DFU mode.
status string running Firmware update process is running.
status string finished Firmware update process is finished.

You can update radio firmware of your link adapter with this command.

URL

/v1/device

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with the "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is always sent as "text/plain" NOT "application/json".

Payload

{
    "command":"startLinkRadioFirmwareUpdate"
}
Label Type Value Description
command string startLinkRadioFirmwareUpdate Command name

Return value

See default return values.

Radio firmware update progress can be checked with this command.

URL

/v1/link/{linkID}

Method

POST

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

Payload

{
  "command":"linkRadioFirmwarUpdateStatus"
}
Label Type Value Description
command string linkRadioFirmwarUpdateStatus Command name

Return value

{
  "status": "none",
  "result": "ok"
}
Label Type Value Description
status string none -
status string running Firmware update process is running.
status string finished Firmware update process is finished.
status string error An error occured. Please retry.

When this command is sent to Link Adapter, LED of the Link Adapter becomes on for 1 second.

URL

/v1/link/{linkID}/detect

Method

GET

Caution

edelkrone SDK does not support CORS, so when you send a request with "OPTIONS" method, edelkrone SDK returns an error because of HTTP request of "Content-Type" is sent always as "text/plain" NOT "application/json".

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.

{
  "result": "ok",
  "message": "Link command is ignored. Link is already paired. Unpair the link adapter if you want to send a link related command."
}
  • Link command is ignored. Link is already paired.
  • Unpair the link adapter if you want to send a link related command.