Introduction


Version: 1.2.2
Author: Gyorgy Sarvari (SGY)
Date: 22.03.2017

Introduction

Your Kistler 5165A.. device provides an extensive set of REST API services to control all the features conveniently. On this page you can find a description of these services, and also examples of the usage.

/api/param/

All functionality needed for device parameterization and getting information about device param (set, get, validate, poll for changes).

/api/daq/

Provides access to data acquisition and measurement controls.

/api/ctrl/

Provides access to device control.

/api/clock/

Provides access to system-time related settings and information.

/api/about

Provides access to basic information about the device.

/api/update

Provides access to firmware update on the device.

/api/$/status

Provides access to to the current channel statuses the device.

/api/$/signal

Provides access to the current signal levels on the device, and also option to reset arithmetic calculations.

/api/$/monitor

Provides access to LED colors/channel statuses, and to current signal values. DEPRECATED

/api/teds

Provides access to data stored on TEDS capable sensors.

/api/$/record

Provides access to the recorder feature of the device.


/api/about

Retrieves all relevant information This API provides the means to get some general information of the device .

Examples

TX: curl http://IP_ADDRESS/api/about
RX: {"result": 0, "about": { "softwareVersion": "2015-04-21_08-03(2592)", "platformVersion" : "2747", "bootloaderVersion": "1.1.0 ", "hardwareVersion": "120111", "fpgaVersion": "20150420", "serialNumber": "1234567890" } }

Summary

URL /api/about
Method GET
Response schema(s) 200, object, Various device information
+ about object
++ hardwareVersion string, current version of hardware
++ serialNumber string, serial number of device
++ softwareVersion string, current version of software
++ fpgaVersion string, current version of FPGA
++ platformVersion string, current version of platform
++ bootloaderVersion string, current version of bootloader
+ result integer, success result

Example response {"about": {"hardwareVersion": 4227, "serialNumber": 123456, "softwareVersion": "1.2.2", "fpgaVersion": 20170425, "platformVersion": "2016.09.2", "bootloaderVersion": "1.2.0"}, "result": 0}

/api/clock/ntp/status/get

Returns list of available timezones Gets the current NTP sync status. NTP status code can be:

Summary

URL /api/clock/ntp/status/get
Method GET
Response schema(s) 200, object, Success
+ status string, service status
+ result integer, result code

default, string, Error occured

Example response {"status": "sync", "result": 0}

/api/clock/timezone/set

Sets the timezone Sets the timezone of the system clock. This interface uses the parameter manager interface to set the parameter. Clients could also use the parameter manager interfaces directly. The timezone needs to be one of the zones retrieved from the timezone/list service.

Summary

URL /api/clock/timezone/set
Method POST
Payload schema - timezone string, Name of timezone
Example payload {"timezone": "Europe/London"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/clock/ptp/status/get

Gets PTP sync status Gets the current PTP sync status. PTP status code can be:

SyncE status code can be:

Summary

URL /api/clock/ptp/status/get
Method GET
Response schema(s) 200, object, Success
+ clockIdentity string, IEEE 1588-2008 clockIdentity of this device
+ gmIdentity string, IEEE 1588-2008 clockIdentity of Grandmaster device
+ offsetFromMaster integer
+ ptpStatus string, sycnhronization mode
+ result integer, result code
+ syncEStatus string, sycnhronization mode
+ portStates object, port states
++ 1 string, IEEE 1588-2008 portState
++ 2 string, IEEE 1588-2008 portState

default, string, Error occured

Example response {"clockIdentity": "68c90b.fffe.1f04e2", "gmIdentity": "68c90b.fffe.1f3b83", "offsetFromMaster": 5, "ptpStatus": "slaveSync", "result": 0, "syncEStatus": "forceOff", "portStates": {"68c90b.fffe.1f3b83-2": "LISTENING", "68c90b.fffe.1f3b83-1": "SLAVE"}}

/api/clock/ntp/settings/set

Sets the NTP Server list Sets the NTP Server list. This interface uses the API param to set the parameter. Clients could also use the parameter manager interfaces directly.

Summary

URL /api/clock/ntp/settings/set
Method POST
Payload schema - ntpServers array, Array of NTP servers
++ string

Example payload {"ntpServers": ["2.europe.pool.ntp.org", "3.europe.pool.ntp.org"]}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/clock/timezone/get

Gets the timezone Returns the current timezone.

Examples

TX: curl http://IP_ADDRESS/api/clock/timezone/get
RX: { "result": 0, "timezone": "Europe/Paris" }

Summary

URL /api/clock/timezone/get
Method GET
Response schema(s) 200, object, Information
+ timezone string, timezone name
+ result integer, result code

default, string, Error occured

Example response {"timezone": "UTC", "result": 0}

/api/clock/settings/get

Gets clock system settings Gets the current settings for the clock system.

Summary

URL /api/clock/settings/get
Method GET
Response schema(s) 200, object, Information
+ ntpServers array, array of NTP servers
++ string
+ domain string
+ syncmode string, sycnhronization mode
+ utcTime string, ISO-8601 utc time
+ priority1 string
+ ptpProfile string
+ utcOffset object
++ source string
++ userUTCOffset string, IEEE 1588-2008 currentUtcOffset
+ priority2 string
+ result integer, result code
+ ptpTransport string
+ timezone string, timezone name
+ syncE string
+ localTime string, ISO-8601 local time

default, string, Error occured

Example response {"ntpServers": ["2.europe.pool.ntp.org", "3.europe.pool.ntp.org"], "domain": "0", "syncmode": "ntpOnly", "utcTime": "2016-08-11T14:37:03+0000", "priority1": "255", "ptpProfile": "auto", "utcOffset": {"source": "auto", "manualUTCOffset": "0"}, "priority2": "255", "result": 0, "ptpTransport": "Ethernet", "timezone": "Europe/London", "syncE": "forceOff", "localTime": "2016-08-11T15:37:03+0100"}

/api/clock/syncmode/set

Sets the synchronization mode Sets the synchronization mode. This interface uses the API param to set the parameter. Clients could also use the parameter manager interfaces directly.

The values for "syncmode" can be:

Summary

URL /api/clock/syncmode/set
Method POST
Payload schema - syncmode string, Type of synchronization
Example payload {"syncmode": "ntpOnly"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/clock/time/get

Gets current system time Returns the current system time. Either returns the current system time in the configured local timezone, when format = "local" or returns the current system time in UTC, when format = "utc".

Summary

URL /api/clock/time/get
Method POST
Payload schema - format string, Time format - UTC or local
Example payload {"format": "utc"}
Response schema(s) 200, object, Success
+ format string, timezone name
+ result integer, result code
+ time string, ISO-8601 time string

default, string, Error occured

Example response {"format": "utc", "result": 0, "time": "2016-08-11T13:39:01+0000"}

/api/clock/ptp/settings/set

Sets the PTP specific configuration. Sets the PTP specific configuration. This interface uses the API param to set the parameter. Clients could also use the parameter manager interfaces directly. A valid request specifies each parameter in the Body Request. Specifying "manualUTCOffset" parameter is required only when "source" is "manual".

The Value of "domain" is integer from range 0..127. Only devices belonging to the same domain would synchronize together.

The value for "ptpProfile" can be one of the following:

The value for "ptpTransport" can be one of the following:

The value for "syncE" can be one of the following:

The value of priority1 and priority2 ranges from 0..255, while 0 is the highest priority and 255 is the lowest one.

The value for "utcOffset"."source" can be one of the following:

Summary

URL /api/clock/ptp/settings/set
Method POST
Payload schema - domain integer, domain
- priority1 integer, priority1
- ptpProfile string, PTP profile
- utcOffset object
++ source string
++ userUTCOffset string, IEEE 1588-2008 currentUtcOffset

- priority2 integer, priority2
- ptpTransport string, PTP transport
- syncE string, Sync E
Example payload {"domain": 0, "priority1": 0, "ptpProfile": "auto", "utcOffset": {"source": "tzdata", "userUTCOffset": 0}, "priority2": 0, "ptpTransport": "Ethernet", "syncE": "forceOff"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/clock/timezone/list

Returns list of available timezones Returns a list of available timezones installed on the system when orderby = "none". Returns a list of available timezones installed on the system ordered by region : country : zone, when orderby = "region".

Summary

URL /api/clock/timezone/list
Method POST
Payload schema - orderby string, Ordering of timezones
Example payload {"orderby": "none"}
Response schema(s) 200, object, Success
+ timezones array, timezones if orderby = region
++ object
+++ region string, Name of the region
+++ countries array, List of countries in the region
++++ object, List of timezones in a country
+++++ country string, Country name
+++++ timezones array, List of timezones
++++++ string
+ result integer, result code
+ timezones_ array, timezones if orderby = none (NOTE the field will be actually named `timezones')
++ string

default, string, Error occured

Example response {"timezones": ["Africa/Cairo", "America/Anchorage"], "result": 0}

/api/clock/time/set

Sets the time Sets the current date and/or time of the system using ISO-8601 time string. Date, Time, or both can be specified. Use T separator if specifying both date and time. Use Z suffix to indicate supplied time is UTC, otherwise local time is assumed. If the time can not be set because of a time source conflict, then the error "conflicting_time_source" is returned. It is not possible to set the time menually when the device is in PTP slave mode, or in NTP synchronization mode.

Summary

URL /api/clock/time/set
Method POST
Payload schema - time string, Time in format [YYYY-MM-DD][T][HH:MM:SS][Z]
Example payload {"time": "2016-08-09T14:11:30Z"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/clock/status/get

Gets clock service status Gets the current service status. Service status can be:

Summary

URL /api/clock/status/get
Method GET
Response schema(s) 200, object, Success
+ status string, service status
+ result integer, result code

default, string, Error occured

Example response {"status": "configuring", "result": 0}

/api/ctrl/factoryreset

Reset the device to factory setting This service resets all parameter settings to the factory default values and reboots the device. This has the same effect as pressing the factory reset button on the device for 2 seconds.

Summary

URL /api/ctrl/factoryreset
Method POST
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/ctrl/identify

Cause the device to activate its physical identification mechanism. NOTE: This method currently cannot return anything but success.

Examples

TX: curl --data "" http://IP_ADDRESS/api/ctrl/identify

RX: { "result": 0 }

Summary

URL /api/ctrl/identify
Method POST
Response schema(s) 200, object, Success
+ result integer, success result 0

Example response {"result": 0}

/api/daq/start

Returns acquired data in file as chunked download. Registers a DAQ Download session ID that can be used with the /api/daq/download service to obtain the file. The scanLimit parameter is the number of scans returned in the downloaded file. If its value is 0, the number of returned scan is unlimited (till a /daq/stop request is sent).

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/daq/start -d '{ "scanLimit": 1000}'

RX: { "result": 0, "key": "1414bad3-1120-40be-b0c3-51d6353f96b6" }

Summary

URL /api/daq/start
Method POST
Payload schema - scanLimit integer, Number of scans. If value 0, the data will proceed unlimited until a stop request is made or an error condition occurs
Example payload {"scanLimit": 1000}
Response schema(s) 200, object, Response success, contains guid-key
+ result integer, result code
+ guid-key string, guid-key

default, string, Error occured

Example response {"result": 0, "guid-key": "a6e5fb10-f12d-4d35-bd00-161b2ecc4d09"}

/api/daq/status

Returns the current status for the daq process. The "scans" Count is the current number of scans acquired when this method is called. This can be used to control a progress bar.

The "status" conditions represents the state of the data acquisition process. Possible values are:

Status Brief Description
-1 ERROR An error has occurred during data acquisition. View the lastError member for details
0 STOPPED The data acquisition is not running
1 RUNNING The data acquisition is running
2 WAITING The data acquisition is waiting for a client to connect to the fifo

The "lastError" conditions indicates the last error that occurred during the data acquisition process. Possible values are:

Status Brief Description
0 NONE System is normal, no error has occurred
1 FIFO_FAIL Failed to open the fifo file for writing
2 FIFO_TIMEOUT The fifo was opened for writing but a client never connected to read (ie: api/daq/start called but not api/daq/download)
3 FIFO_WRITE Error during write to fifo likely if client closed connection
4 UNKNOWN_OUTPUT_FORMAT The file output format selected is not supported
5 DAQ_ERROR The data acquisition hardware system reported an error
6 DAQ_OVERRUN A data-overrun occurred
7 SCANS_TOO_LARGE The requested scan count is too large. Must be less than 24 hours of data
8 UNKNOWN An unknown error occurred

Examples

TX: curl -v -X GET http://IP_ADDRESS/api/daq/status
RX: { "result": 0, "lastError": 0, "scans": 1024, "status": 1 }

Summary

URL /api/daq/status
Method GET
Response schema(s) 200, object, Parameter setting status
+ status string, status
+ lastError string, error
+ result integer, result code
+ scans integer, count

default, string, Error occured

Example response {"status": 1, "lastError": 0, "result": 0, "scans": 12548}

/api/daq/device/metadata/get

Gets metadata of the device Returns the basic attributes of the DAQ subsystem.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/device/metadata/get -d '{ }'
RX: { "result": 0 } and metadata (see schema)

Summary

URL /api/daq/device/metadata/get
Method POST
Response schema(s) 200, object, Parameter setting status
+ result integer, success result 0
+ metadata object, metadata
++ device object, device info
+++ serial-number string, serial number of device
+++ type string, device type (5165A..)
++ signal-providers array
+++ object, signal provider description
++++ signals array
+++++ object, signal properties key/value pairs
++++++ path string, key name
++++ name string, name of signal provider
++ version string, device version

default, string, Error occured

Example response {"result": 0, "metadata": {"device": {"serialNumber": 1234567, "type": "5165A1"}, "version": 1.0, "signalProviders": [{"signals": [{"path": "/measChannel/1"}, {"path": "/virtChannel/1"}], "name": "daq-provider"}]}}

/api/daq/stop

Stops the downloading process for the given guid-key. The stop is ignored if data acquisition is not running

The user must supply the correct guid-key as provided when started. If the key is missing, or does not match with the current acquisition process, an error is returned. This prevents a second client from stopping a data acquisition process.

TX: curl -v -X POST http://IP_ADDRESS/api/daq/stop -d '{ "key": "1414bad3-1120-40be-b0c3-51d6353f96b6" }

RX: { "result": 0 }

Summary

URL /api/daq/stop
Method POST
Payload schema - key string, guid-key
Example payload {"key": "a6e5fb10-f12d-4d35-bd00-161b2ecc4d09"}
Response schema(s) 200, object, Parameter setting status
+ result integer, result code

Example response {"result": 0}

/api/daq/download/{guid-key}

Returns acquired data in file as chunked download The full url download path requires the guid-key returned from the api/daq/start call. An optional query string parameter ?filename=filename specifies the save-as file name. If omitted the file is downloaded with the guid-key as the filename. Error conditions are returned via the /api/daq/status method.

NOTE: This download will not stop until a stop condition is reached. Stop conditions are for example:

Examples

TX: curl -v -X GET http://IP_ADDRESS/api/daq/download/1414bad3-1120-40be-b0c3-51d6353f96b6 -o test.csv

RX: chunked file download

Summary

URL /api/daq/download/{guid-key}
Method GET
Parameters - guid-key, string, parameter type: path, GUID
- filename, string, parameter type: query, File name to use
Response schema(s) 200, datafile


/api/daq/measurement/metadata/get

Gets metadata of the specific measurement Returns the metadata for the specified measurement (channels in the measurement, channel data, their offset in the resulting binary data that can be acquired using DAQ streaming/binary DAQ download. There are only signals, which are enabled (enabled: true). Offset is calculated according to order of signal in scan and the byte size of signal data type (FLOAT32 = 4 bytes).

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/device/metadata/get -d '{ }'
RX: { "result": 0 } and metadata (see schema)

Summary

URL /api/daq/measurement/metadata/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Parameter setting status
+ result integer, success result 0
+ metadata object, measurement data
++ signalProvider object, signal provider
+++ signals array, signals
++++ object, signal data
+++++ dataType string, data type (FLOAT32)
+++++ source string, source of signal
+++++ name string, name of signal
+++++ unit string, physical unit abbreviation
+++++ offset integer, offset
+++ samplingRate integer, sampling rate
+++ name string, provider name
++ measurementId integer, measurement ID

default, string, Error occured

Example response {"result": 0, "metadata": {"signalProvider": {"signals": [{"dataType": "FLOAT32", "source": "Virtual-Channel-1", "name": "Kistler Force Sensor", "unit": "N", "offset": 0}], "samplingRate": 6250, "name": "daq-provider"}, "measurementId": 1}}

/api/daq/measurement/enabled/get

Enables the measurement Returns the "enabled" status of the specified measurement.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/enabled/get -d '{ "measurementId" : 1 }'
RX: { "result" : 0, "enabled" : false }

Summary

URL /api/daq/measurement/enabled/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ enabled boolean, true / false
+ result integer, success result 0

default, string, Error occured

Example response {"enabled": false, "result": 0}

/api/daq/measurement/configuration/set

Sets configuration for the measurement Set the whole measurement configuration in one request. Note that this is equivalent to setting the separate attributes one by one.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/configuration/set -d '{ "measurementId" : 4, "startTrigger" : { "triggerUpon" : "event", "event" : "request", "preTrigger" : 4 }, "stopTrigger" : { "triggerUpon" : "duration", "duration": 8000, "postTrigger" : 4000 }, "signal-provider" : "daq-provider", "enabled" : true }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/configuration/set
Method POST
Payload schema - startTrigger object, start trigger
++ triggerUpon string
++ preTrigger integer, Pre trigger time in nsecs
++ event integer, event-namespace.event-id
++ time integer, secs.nsecs

- enabled boolean, true/false
- signalProvider string, signal provider
- measurementId integer, ID
- stopTrigger object, stop trigger
++ triggerUpon string
++ preTrigger integer, pre-trigger time in nsecs
++ event integer, event-namespace.event-id
++ time integer, secs.nsecs

Example payload {"startTrigger": {"event": "skybase.sigmon.threshold-1_meas-1_falling", "triggerUpon": "event"}, "enabled": true, "signalProvider": "daq-provider", "measurementId": 1, "stopTrigger": {"duration": 2000000000, "triggerUpon": "duration"}}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/start-trigger/set

Sets start trigger The property triggerUpon should be set to the one of time, event, or request. According to this value, the property time or event is required. The property pre-trigger equals 0 if omitted. See also the user guide's section about measurements.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/start-trigger/set -d '{ "measurementId" : 1, "triggerUpon" : "event", "event": "skybase.sigmon.threshold-1_meas-1_falling", "preTrigger" : 16 }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/start-trigger/set
Method POST
Payload schema - time string, secs.nsecs
- preTrigger integer, pre trigger time
- event string, event-namespace.event-id
- measurementId integer, ID
- triggerUpon string, trigger type
Example payload {"measurementId": 1, "triggerUpon": "request"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/signal-provider/set

Sets signal provider Set the signal-provider for the measurement. Note that the value of the signal-provider on the 5165A.. device is always "daq-provider".

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/signal-provider/set -d '{ "measurementId" : 1, "signalProvider" : "daq-provider" }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/signal-provider/set
Method POST
Payload schema - signalProvider string, name
- measurementId integer, ID
Example payload {"signalProvider": "daq-provider", "measurementId": 1}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/signal-provider/get

Gets signal provider Returns the current signal-provider associated with the specified measurement.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/signal-provider/get -d '{ "measurementId" : 1 }'
RX: { "result" : 0, "signalProvider" : "daq-provider" }

Summary

URL /api/daq/measurement/signal-provider/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ result integer, result code
+ signalProvider string, signal provide

default, string, Error occured

Example response {"result": 0, "signalProvider": "daq-provider"}

/api/daq/measurement/count/get

Number of possible measurements The number of available measurement configurations on the device.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/count/get -d '{ }'
RX: { "result" : 0, "measurementConfigurationsCount" : 1 }

Summary

URL /api/daq/measurement/count/get
Method POST
Response schema(s) 200, object, Success
+ measurementConfigurationsCount integer, the resulting count
+ result integer, result code

default, string, Error occured

Example response {"measurementConfigurationsCount": 1, "result": 0}

/api/daq/measurement/start

Starts the measurement Starts the measurement when the measurement's startTrigger is set to "request". The time field in the body is optional. When set, the measurement will start at the specified timestamp. If omitted, the measurement will start immediately. Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/start -d '{ "measurementId" : 1 }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/start
Method POST
Payload schema - measurementId integer, ID
- time string, secs.nsecs
Example payload {"measurementId": 1, "time": "1476186700.0"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/status/get

Returns status of given measurement Returns status of given measurement - whether the measurement is running or not, and a timestamp of the last status change

measurementId is an ID number of the measurement the status of which the user wants to know.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/status/get -d '{ "measurementId": 1}'
RX: {"result":0,"status":{"measurementId" : 1, "enabled" : true, "running" : false, "timestamp" : "1470902766.637592000", "signalProvider" : "daq-provider"}}

Summary

URL /api/daq/measurement/status/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Parameter setting status
+ status object
++ timestamp string
++ running boolean
++ enabled boolean, status of measurement (enabled/disabled)
++ signalProvider string
++ measurementId integer, measurement ID from the request
+ result integer, success result 0

default, string, Error occured

Example response {"status": {"timestamp": "1470902766.637592000", "running": false, "enabled": true, "signalProvider": "daq-provider", "measurementId": 1}, "result": 0}

/api/daq/measurement/stop

Stops the measurement Stops the measurement when the measurement's stopTrigger is set to "request". Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/stop -d '{ "measurementId" : 2 }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/stop
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/enabled/set

Enables the measurement Sets the "enabled" status of the measurement.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/enabled/set -d '{ "measurementId" : 1, "enabled" : "true" }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/enabled/set
Method POST
Payload schema - enabled boolean, true/false
- measurementId integer, ID
Example payload {"measurement-id": 1, "enabled": true}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/measurement/stop-trigger/get

Gets stop trigger Returns the currently set stopTrigger for the specified measurement along with the postTrigger time in nanoseconds.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/stop-trigger/get -d '{ "measurementId" : 1 }'
RX: { "triggerUpon" : "duration", "postTrigger" : 4, "duration" : 8000, "result" : 0}

Summary

URL /api/daq/measurement/stop-trigger/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ result integer, result code
+ triggerUpon string, trigger type
+ postTrigger integer, pre trigger time in nsec
+ event integer, event-namespace.event-id
+ time string, format secs.nsecs

default, string, Error occured

Example response {"triggerUpon": "request", "result": 0, "postTrigger": 1500000000}

/api/daq/measurement/start-trigger/get

Get start trigger Returns the currently set startTrigger for the specified measurement ID along with the preTrigger time in nanoseconds.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/start-trigger/get -d '{ "measurementId" : 1 }'
RX: { "triggerUpon" : "request", "preTrigger" : 16, "result" : 0}

Summary

URL /api/daq/measurement/start-trigger/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ result integer, result code
+ triggerUpon string, trigger type
+ preTrigger integer, pre trigger time
+ event integer, event-namespace.event-id
+ time string, format secs.nsecs

default, string, Error occured

Example response {"result": 0, "triggerUpon": "event", "event": "skybase.sigmon.threshold-1_meas-1_rising", "preTrigger": 80000000}

/api/daq/measurement/configuration/get

Gets configuration for the measurement Returns the whole measurement configuration.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/configuration/get -d '{ "measurementId" : 1}'
RX: { "result" : 0, "signalProvider" : "daq-provider", "enabled" : true, "startTrigger" : { "triggerUpon" : "request", "preTrigger" : 16}, "stopTrigger" : { "triggerUpon" : "event", "postTrigger" : 12, "event" : "skybase.sigmon.threshold-1_meas-1_rising"}}

Summary

URL /api/daq/measurement/configuration/get
Method POST
Payload schema - measurementId integer, ID
Example payload {"measurementId": 1}
Response schema(s) 200, object, Success
+ startTrigger object, start trigger
++ triggerUpon string
++ preTrigger integer, Pre trigger time in nsecs
++ event integer, event-namespace.event-id
++ time integer, secs.nsecs
+ stopTrigger object, stop trigger
++ triggerUpon string
++ preTrigger integer, pre-trigger time in nsecs
++ event integer, event-namespace.event-id
++ time integer, secs.nsecs
+ enabled boolean, true/false
+ result integer, success result 0
+ signalProvider string, signal provider

default, string, Error occured

Example response {"startTrigger": {"event": "skybase.sigmon.threshold-1_meas-1_falling", "triggerUpon": "event"}, "enabled": true, "signalProvider": "daq-provider", "measurementId": 1, "stopTrigger": {"duration": "2000000000", "triggerUpon": "duration"}}

/api/daq/measurement/stop-trigger/set

Sets stop trigger The property triggerUpon should be set to the one of time, event, duration, or request. According to this value, the property time, event, or duration is required. The property postTrigger equals 0 if omitted.

Examples

TX: curl -X POST http://IP_ADDRESS/api/daq/measurement/stop-trigger/set -d '{ "measurementId" : 1, "triggerUpon" : "duration", "duration": 1000000, "postTrigger" : 16000 }'
RX: { "result" : 0 }

Summary

URL /api/daq/measurement/stop-trigger/set
Method POST
Payload schema - triggerUpon string, trigger type
- postTrigger integer, post trigger time
- time string, secs.nsecs
- duration integer, post-trigger
- event string, event-namespace.event-id
- measurementId integer, ID
Example payload {"measurementId": 1, "triggerUpon": "request"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/monitor/set

Resets the arithmetic calculations for the channels. Note that this service is deprecated, and might be removed from future software releases. We recommend you not to develop new software depending on this service, and consider migrating your existing applications to use the /api/$/signal and /api/$/status REST API services

This method can be used to reset the arithmetic calculations (min/max/ampl) values for the channels. The format of the string that needs to be sent to reset the arithmetic calculations is the following: signal/measChannel/[CHANNEL_NUMBER]/reset where CHANNEL_NUMBER is the number of channel that's min/max/ampl values need to be reset.

The value for the request should be always "1".

This service can't be used to reset the calculations for Virtual Channels.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/signal/reset -d '{"values":[{"name":"signal/measChannel/1/reset","value":"1"},{"name":"signal/measChannel/2/reset","value":"1"},{"name":"signal/measChannel/3/reset","value":"1"},{"name":"signal/measChannel/4/reset","value":"1"}]}'

RX: {"result":0}

Summary

URL /api/$/monitor/set
Method POST
Payload schema - values array
++ object
+++ name string, The channel to be reset, in the above described format.
+++ value string, The value is always 1.

Example payload {"values": [{"name": "signal/measChannel/1/reset", "value": "1"}]}
Response schema(s) 200, object, Confirmation of the action.
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/monitor/get

Returns the current signal levels and LED/channel statuses. Note that this service is deprecated, and might be removed from future software releases. We recommend you not to develop new software depending on this service, and consider migrating your existing applications to use the /api/$/signal and /api/$/status REST API services

This method can be used to get the current signal values and LED colors, even multiple ones and types with one request. The format of requesting a signal value is the following:

signal/measChannel/[CHANNEL_NUMBER]/[SIGNAL_TYPE]

where the [CHANNEL_NUMBER] is an integer, corresponding the requested channel number, and [SIGNAL_TYPE] is one of the following values: min, max, live, rms, ampl

The format for requesting the LED status is the following:

[CHANNEL_TYPE]/[CHANNEL_NUMBER]/LEDstatus

where [CHANNEL_TYPE] is either "measChannel" or "output", and the [CHANNEL_NUMBER] is an integer corresponding to the number of the requested channel.

When requesting LED status, the following values might be returned:

Status LED color Brief
0 Black The channel is turned off. (Only returned for output channels)
1 Cyan The channel is operating correctly.
2 Red Over range state in ADC. (Only returned for input channels)
3 Red Over range state on input. (Only returned for input channels)
4 Red Over range state on output. (Only returned for output channels)
5 Red Open circuit detected in IEPE mode. (Only returned for input channels)
6 Red Short circuit detected in IEPE mode. (Only returned for input channels)
7 Yellow The device is being identified.
8 Yellow The device is reading/writing TEDS data. (Only returned for input channels)
9 Red Unsupported/damaged TEDS template is attached. (Only returned for input channels)

Note that this REST API service does not support querying data from Virtual Channels.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/monitor/get -d '{"values":["signal/measChannel/1/live","measChannel/1/LEDstatus"]}'

RX: { "result": 0, "values":[ {"name": "signal/measChannel/1/live", "value": "-0.000959"}, {"name": "measChannel/1/LEDstatus", "value": "1"} ]}

Summary

URL /api/$/monitor/get
Method POST
Payload schema - values array
++ string, Signal or LED string, as described above.

Example payload {"values": ["signal/measChannel/1/live", "measChannel/1/LEDstatus", "signal/measChannel/2/max", "output/3/LEDstatus", "signal/measChannel/4/rms", "measChannel/2/LEDstatus"]}
Response schema(s) 200, object, Current signal values and/or LED and channel statuses.
+ values array
++ object
+++ name string, the name of the requested value, corresponds with the string described above, and with the string sent in the request
+++ value number, In case of a signal value it is a float representing the latest measured value on the signal input. In case of LED status request the returned integer corresponds with the above descrobed LED/channel statuses.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"values": [{"name": "signal/measChannel/1/live", "value": "-0.001003"}, {"name": "signal/measChannel/2/max", "value": "5.042136"}, {"name": "signal/measChannel/4/rms", "value": "0.013079"}, {"name": "measChannel/1/LEDstatus", "value": "1"}, {"name": "measChannel/2/LEDstatus", "value": "1"}, {"name": "output/3/LEDstatus", "value": "1"}], "result": 0}

/api/param/export

Export parameters, applying filters. INFO: Requests can also be made using multipart/form-data for file-download of the results. The type and filter (as semi-colon separate list) are form parameters, filename is also specified as a form parameter. The response will contain a content-disposition for file download.

NOTE: The type must be an integer value:

0 = json

1 = pretty json

2 = XML

3 = pretty XML

The filter is an array of filter strings. Each filter must begin with a '+' or '-', followed by a valid path in the parameter tree. If the filter starts with '-', the given branch will be omitted from the export, along with all childnodes. If the filter starts with '+', the whole branch will be included in the export, along with the child nodes. The filters can be combined. In the below example the whole tree is excluded from the export, except the /deviceSetup/net/if0/ipv4 branch, that is added as an extra filter. If no filter is given, the whole tree is exported.

Examples

TX: curl -X POST http://IP_ADDRESS/api/param/export \ -d '{ "type": 3, "filter": ["-/", "+/deviceSetup/net/if0/ipv4"] }'

RX:

<pe:ParameterExport xmlns:pe="http://libparamDB/XSD/ParamExport.xsd" pe:version="2">
 <pe:header>
   <pe:timeOfExport>Thu Jan 22 05:22:18 2015</pe:timeOfExport>
   <pe:serialNumber>123456</pe:serialNumber>
   <pe:type>5165A4</pe:type>
   <pe:deviceName>LabAmp Room 222</pe:deviceName>
   <pe:softwareVersion>516XAX-V1.2.0</pe:softwareVersion>
   <pe:schemaMajor>1</pe:schemaMajor>
   <pe:schemaMinor>0</pe:schemaMinor>
   <pe:version>2</pe:version>
 </pe:header>
 <pe:settings>
   <pe:path pe:name="deviceSetup">
     <pe:path pe:name="net">
       <pe:path pe:name="if0">
         <pe:path pe:name="ipv4">
           <pe:param pe:name="mode">1</pe:param>
           <pe:path pe:name="static">
             <pe:param pe:name="address">IP_ADDRESS</pe:param>
             <pe:param pe:name="gateway">IP_ADDRESS</pe:param>
             <pe:param pe:name="mask">IP_ADDRESS</pe:param>
           </pe:path>
         </pe:path>
       </pe:path>
     </pe:path>
   </pe:path>
 </pe:settings>
 <pe:signature>
   <pe:type>SHA256</pe:type>
   <pe:header>F05B3938BE2442FBED25D3C675B60952DF3D1096D1DD0959604D2C6A937E7206</pe:header>
   <pe:settings>25BA4B96E1892AE6210C5FA96178BA7F6A22E1BEF36F6BF1EF4F5C657E9D9424</pe:settings>
 </pe:signature>    </pe:ParameterExport>

Summary

URL /api/param/export
Method POST
Payload schema - filter array, array of filter strings
++ string

- type integer, export type
Example payload {"filter": ["-/", "+/deviceInformation"], "type": 3}
Response schema(s) 200, Requested content

default, string, Error occured


/api/param/import

Import parameters, applying filters. NOTE: The type must be an integer value:

0, 1 = json

2, 3 = pretty XML

When specifying filter(s) in the request only the specified parameters will be imported. This is useful for example to avoid importing network settings when it is not desired.

The filter is an array of filter strings. Each filter must begin with a '+' or '-'. When using the '+' prefix for a parameter tree, that given tree will be imported from the data string. Using '-' prefix will exclude the prefixed tree from the import. It is possible to combine filters even in the same tree. For example the filter ["-/", "+/deviceInformation/deviceName"] will exclude every parameters from the import string, except for the "/deviceInformation/deviceName" parameter.

Examples

TX: curl --digest -X POST http://IP_ADDRESS/api/param/import -d '{ "type": 0, "filter": [""], "data":"{\"header\":{\"signature\": {\"type\":\"SHA256\",\"hash\":\"3CCFD8F87AC8391A190FCA0C2E0843D2FA028ED4381D62757F37309397F899FF\"},\"data\":{\"serialNumber\":\"C12345\",\"type\":\"Type 5556\",\"deviceName\":\"SkyBoard\",\"softwareVersion\":\"0.1.0.0\",\"schemaMajor\":\"1\",\"schemaMinor\":\"0\",\"version\":\"3\"}},\"settings\":{\"signature\":{\"type\":\"SHA256\",\"hash\":\"E3A75A218FACDA9CEA0B8AFB7A4C0592D60ECD805F3530F959D1062A47B1FB2C\"},\"data\":{\"amp\":{\"chan1\":{\"calfactor\":\"10\",\"fso\":\"10\",\"lpfilter\":\"1\",\"range\":\"100\",\"sensitivity\":\"84\",\"timeconstant\":\"2\",\"overload\":\"0\"}}}}}" }' -c cookie.txt -b cookie.txt RX: { "result": 0 }

Summary

URL /api/param/import
Method POST
Payload schema - filter array, array of filter strings
++ string

- type integer, import type
- data string, import string
Example payload {"filter": ["-/", "+/deviceInformation/description"], "type": 1, "data": "{\"header\":{\"signature\":{\"type\": \"SHA256\",\"hash\": \"20859F98606D926660AB7A6BFD53261315F2502621AC2F920A1E78A858ACFDD7\"},\"data\": {\"timeOfExport\": \"Sat Apr 29 10:17:31 2017\",\"serialNumber\": \"4956040\",\"type\": \"5165A4\",\"deviceName\": \"labamp\",\"softwareVersion\": \"5167AX-V0.9.1-22-g6542c51\",\"schemaMajor\": \"1\",\"schemaMinor\": \"0\",\"version\": \"3\"}},\"settings\": {\"signature\": {\"type\": \"SHA256\",\"hash\": \"7E54B6F8938DE9D95DF60AFE7A0D420A343A8C0F5E9311395FBC8E9F2F8FB8E3\"},\"data\": {\"deviceInformation\": {\"description\": \"room 222\",\"deviceName\": \"labamp\"},\"output\": {\"1\": {\"enabled\": \"1\",\"source\": \"6\",\"voltageP1\": \"0\",\"voltageP2\": \"10\"},\"2\": {\"enabled\": \"1\",\"source\": \"6\",\"voltageP1\": \"0\",\"voltageP2\": \"2.3698\"},\"3\": {\"enabled\": \"1\",\"source\": \"6\",\"voltageP1\": \"0\",\"voltageP2\": \"10\"},\"4\": {\"enabled\": \"1\",\"source\": \"6\",\"voltageP1\": \"0\",\"voltageP2\": \"10\"}}}}}"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/param/get

Returns value(s) of the parameters listed in <parameter list>. This method can be used to query parameters and properties. Properties are addressed using the syntax parameter.property. See also parameter documentation.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/param/get -d '{"params":["/output/2/voltageP1"]}'

RX: { "params":[ {"name": "output/2/voltageP1", "value": "0"} ]}


TX: curl -v -X POST http://IP_ADDRESS/api/param/get -d '{"params":["/signalMonitor/threshold/1/virtChannel/1/enabled","/virtChannel/1/accComp/forceChannel"]}'

RX: { "params":[ {"name": "/signalMonitor/threshold/1/virtChannel/1/enabled", "value": "1"}, {"name": "/virtChannel/1/accComp/forceChannel", "value": "3"} ]}

Summary

URL /api/param/get
Method POST
Payload schema - params array, Array of requested parameters
++ string

Example payload {"params": ["/deviceInformation/deviceName", "/deviceInformation/description"]}
Response schema(s) 200, object, List of requested parameters
+ params array, List of parameter name/value pairs
++ object, Name of parameter and corresponding value
+++ name string, Parameter name
+++ value string, Parameter value
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"params": [{"name": "/deviceInformation/description", "value": "test"}], "result": 0}

/api/param/set

Sets parameters in to the values defined in the same list. Examples

TX: curl -v -X POST http://IP_ADDRESS/api/param/set -d '{"params":[{"name":"/deviceSetup/net/if0/ipv4/static/address","value":"192.168.123.33"}]}'

RX: { "result": 0 }


TX: curl -v -X POST http://IP_ADDRESS/api/param/set -d '{"params":[{"name":"/deviceSetup/net/if0/ipv4/static/address","value":"192.168.123.33"}, {"name":"/deviceSetup/net/if0/ipv4/static/mask","value":"255.255.255.0"}]}'

RX: { "result": 0 }

Summary

URL /api/param/set
Method POST
Payload schema - params array, Array of key/value pairs
++ object, Name of parameter and corresponding value
+++ name string, Parameter name
+++ value string, Parameter value

Example payload {"params": [{"name": "/deviceInformation/description", "value": "test"}]}
Response schema(s) 200, object, Parameter setting status
+ result integer, Result code - 0 for success
+ however array, Sometimes the supplied values are changed before they are saved. In that case this variable contains the modified values.
++ object, Name of parameter and corresponding value
+++ name string, Parameter name
+++ value string, Parameter value

default, string, Error occured

Example response {"result": 0}

/api/param/changes/{index}

Returns the changes since the last call. Suitable for long polling clients. This method is used to monitor changes to parameters on the system. The index is an integer value and represents a short lived, incremental state of the system. Requesting an index value less than the current index will result in an immediate response that will contain the current index and optionally an array of parameters that have recently changed. Changes are persisted for a limited time so this call can return different results for the same index value. If the index is omitted, the server returns the current index with no changes. If the index is equal to the current index, the system will wait until there are changes pending or until the long poll times out.

Examples

TX: curl -v -X GET http://IP_ADDRESS/api/param/changes

RX: { "index": 1, "changes": [ ] }


TX: curl -v -X GET http://IP_ADDRESS/api/param/changes/1

RX: { "index": 2, "changes": ["/measChannel/1/sensor/type/selected"] }

Summary

URL /api/param/changes/{index}
Method GET
Parameters - index, integer, parameter type: path, State index
Response schema(s) 200, object, List of parameter changes
+ index integer, change index
+ changes array, Array of changed parameters ( ["param1", "param2", ...])
++ string
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"index": 10, "changes": ["/deviceInformation/description"], "result": 0}

/api/$/record/listRecords

Lists data about the content of the buffer. This method can be used to retreve data about the current content of the recorder buffer, including the length, name, repetition count, status and starting time of the meaurement. If there were no problems encountered during recording the measurement, the state of the repetition will be "OK". Otherwise a short description is displayed about the encountered problem (e.g timeskew, configuration change during recording)

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/listRecords -d '{"recorderId":1}'

RX: {"result": 0,"data": {"recorderId": 1,"records": [{"repetitions": [{"duration": "1.999460000","repetition": 1,"size": 3207328,"status": "ERROR: DAQ Subsystem configuration changed","time": "1486574307.545610022"}],"setId": 0},{"repetitions": [{"duration": "2.520000","repetition": 1,"size": 1608608,"status": "OK","time": "1486574519.616720022"}],"setId": 1}]}}

Summary

URL /api/$/record/listRecords
Method POST
Payload schema - recorderId integer, The ID of recorder that has recorded the set to get information about.
Example payload {"recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ data object
++ records array
+++ object
++++ setId integer, ID of the recordSet.
++++ repetitions array
+++++ object
++++++ duration string, The length of the repetition in sec.ns format.
++++++ status string, The status of the repetition.
++++++ repetition integer, The number of repetition in the series.
++++++ size integer, The data portion size of the recorded measurement that is taken up in the buffer, in bytes.
++++++ time string, Epoch timestamp of the start of the measurement in sec.ns form.
++ recorderId integer, The ID of the requested recorder.
+ result integer, Result code - 0 for success.

default, string, Error occured

Example response {"data": {"records": [{"setId": 1, "repetitions": [{"duration": "1.999460000", "status": "OK", "repetition": 1, "size": 3207328, "time": "1486574307.545610022"}]}], "recorderId": 1}, "result": 1}

/api/$/record/cancel

Cancels the current Data Recorder operation. This method can be used to cancel the current Data Recorder operation. In case it is called while in Recording state, the currently recorded recordSet will be discarded. If called during exporting the data, the exporting process will be stopped. After calling this method the Data Recorder will return to "Init" state.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/cancel -d '{"recorderId":1}'

RX: {"result":0}

Summary

URL /api/$/record/cancel
Method POST
Payload schema - recorderId integer, The ID of recorder to cancel.
Example payload {"recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/record/stop

Stops the Data Recorder. This method can be used to stop the Data Recorder manually. Note that in case the Data Recorder has already recorded the number of measurements specified with maxRepetitionsCount, it will stop automatically. This method can be used to stop the Data Recorder manually before the Data Recorder would record the specified number of measurements, or in case of unlimited number of measurements, to stop before the buffer would be full.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/stop -d '{"recorderId":1}'

RX: {"result":0}

Summary

URL /api/$/record/stop
Method POST
Payload schema - recorderId integer, The ID of recorder to stop.
Example payload {"recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/record/remove

Removes the specified recordSet from the buffer. This method can be used to remove recordSets from the buffer. Note that removing a recordSet will dicard all of the recordSets recorded data and metadata also, and it will not be able to retrieve this data after removal.

If the "setId" parameter is not present in the request, all records will be deleted for the Data Recorder.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/remove -d '{"recorderId":1, "setId":3}'

RX: {"result":0}

Summary

URL /api/$/record/remove
Method POST
Payload schema - setId integer, The ID of the recordSet to remove.
- recorderId integer, The ID of recorder.
Example payload {"setId": 6, "recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/record/start

Starts the recorder. This method can be used to start the recorder feature. The "name" field is optional. If the maxRepetitionsCount is 0 or negative, the number of measurements recorded is only limited by the available buffer size.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/start -d '{"recorderId":1,"maxRepetitionsCount":2}'

RX: {"result":0}


TX: curl -v -X POST http://IP_ADDRESS/api/$/record/start -d '{"recorderId":1,"maxRepetitionsCount":-2}'

RX: {"result":0}

Summary

URL /api/$/record/start
Method POST
Payload schema - maxRepetitionsCount integer, The maximum number of separate measurements to record.
- recorderId integer, The ID of recorder to start.
Example payload {"maxRepetitionsCount": 5, "recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/$/record/download/data

Exports a recordset. This method can be used to retrieve the recorded data in csv format. It returns a content-disposition response.

Examples

TX: wget --content-disposition http://IP_ADDRESS/api/$/record/download/data?recorderId=1&setId=2&fileName=record.csv

RX: content-disposition file

Summary

URL /api/$/record/download/data
Method GET
Parameters - recorderId, integer, parameter type: query, The ID of the recorder.
- setId, integer, parameter type: query, The ID of the recordSet to export.
- fileName, string, parameter type: query, File name to use.
- csvSeparator, enum, parameter type: query, The type of CSV delimiter to use in the exported file. If omitted, or unsupported value is used, it defaults to SEMICOLON., enum: ['COMMA', 'TAB', 'SEMICOLON']
- decimalSeparator, enum, parameter type: query, The type of decimal separator to use in the exported file. If omitted, or unsupported value is used, it defaults to DOT., enum: ['DOT', 'COMMA']
- includeTimestamp, enum, parameter type: query, If set to 0, no timestamp column is included in the exported file. If omitted, defaults to 1., enum: ['1', '0']
- includeColumnHeader, enum, parameter type: query, If set to 0, the column header will be excluded from the exported file. If omitted, defaults to 1., enum: ['1', '0']
Response schema(s) 200, The exported file (content-disposition).

default, string, Error occured


/api/$/record/status

Returns the current status of the recorder. This method can be used to retrieve basic status information about the recorder, including buffer information also.

The state of the recorder might be one of the following:

Value Brief
Init The recorder was successfully initialized, but not configured and is not recording any measurements. This is the default state.
Waiting The recorder is started after successful configuration, and waiting for a measurement to start. (Or the recorder is waiting for a new measurement to start in case of a repetitive measurement recording)
Recording The recorder is actively recording an ongoing measurement.
Finished The recorder has recorded the configured number of measurements, and is not recording new measurements.
Exporting The recorder is exporting a recordSet to csv.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/record/status -d '{"recorderId":1}'

RX: {"result":0,"data":{"state":"Init","totalCapacity":104857600,"totalSize":25754640,"usage":"24.56%"}}

Summary

URL /api/$/record/status
Method POST
Payload schema - recorderId integer, The ID of recorder to get information about.
Example payload {"recorderId": 1}
Response schema(s) 200, object, The result of the request.
+ data object
++ totalSize integer, The full size of all records stored in the buffer, in bytes, including metadata.
++ usage string, The usage of the buffer in percetage.
++ state string, The current state of the recorder.
++ totalCapacity integer, The full size of the buffer to hold records, in bytes.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"totalSize": 36589658, "usage": "34.89%", "state": "Waiting", "totalCapacity": 104857600}, "result": 0}

/api/$/record/download/metadata

Exports the metadata for a recordSet. This method can be used to retrieve the recorded metadata for an existing recordSet in csv format. It returns a content-disposition response.

Examples

TX: wget --content-disposition http://IP_ADDRESS/api/$/record/download/metadata?recorderId=1&setId=2&fileName=record_metadata.csv

RX: content-disposition file

Summary

URL /api/$/record/download/metadata
Method GET
Parameters - recorderId, integer, parameter type: query, The ID of the recorder.
- setId, integer, parameter type: query, The ID of the recordSet to export.
- fileName, string, parameter type: query, File name to use.
- csvSeparator, enum, parameter type: query, The type of CSV delimiter to use in the exported file. If omitted, or unsupported value is used, it defaults to SEMICOLON., enum: ['COMMA', 'TAB', 'SEMICOLON']
- decimalSeparator, enum, parameter type: query, The type of decimal separator to use in the exported file. If omitted, or unsupported value is used, it defaults to DOT., enum: ['DOT', 'COMMA']
Response schema(s) 200, The exported file (content-disposition).

default, string, Error occured


/api/$/signal/get

Returns the current signal values for the requested channel(s). This method can be used to acquire the current live signal value a channel, along with the minimum and maximum values since the last arithmetic reset performed on the channel. Beside these the current RMS and amplitude values are returned also. The method can be used for input channels and for virtual channels too.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/signal/get -d '{"type":"SENSOR","channels":[1]}'

RX: {"result":0,"data":{"type":"SENSOR","items":[{"channel":1,"live":[-0.0010463169310242],"max":[5.6459264755249],"min":[-5.6382536888123],"ampl":[0.00726527692145],"rms":[0.00087193085346371]}]}}

Summary

URL /api/$/signal/get
Method POST
Payload schema - channels array
++ integer, Numbers of the queried channels.

- type string, Type of the requested channels.
Example payload {"channels": [2, 3], "type": "SENSOR"}
Response schema(s) 200, object, Current signal values and different calculated values.
+ data object
++ items array
+++ object
++++ rms array
+++++ number, The measured signal's RMS.
++++ ampl array
+++++ number, The measured signal's amplitude. The amplitude is half of the difference between min and max values.
++++ min array
+++++ number, The lowest measured signal level on the channel since the last arithmetic reset.
++++ max array
+++++ number, The highest measured signal level on the channel since the last arithmetic reset.
++++ live array
+++++ number, The last measured live value on the channel.
++++ channel integer, Number of the channel requested.
++ type string, Type of the channel. The same as in the corresponding request.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"items": [{"rms": [0.00087193085346371], "ampl": [0.00726527692145], "min": [-5.6382536888123], "max": [5.6459264755249], "live": [-0.0010463169310242], "channel": 1}, {"rms": [0.0005231584655121], "ampl": [1.2358214681e-05], "min": [-0.0012860979186371], "max": [0.00013078961637802], "live": [-0.00078473775647581], "channel": 2}], "type": "SENSOR"}, "result": 0}

/api/$/signal/reset

Resets the arithmetic calculations for the channels. This method can be used to reset the arithmetic calculations (min/max/ampl) values for the channels.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/signal/reset -d '{"type":"VIRTUAL","channels":[1]}'

RX: {"result":0}


TX: curl -v -X POST http://IP_ADDRESS/api/$/signal/reset -d '{"type":"SENSOR","channels":[1,3,4]}'

RX: {"result":0}

Summary

URL /api/$/signal/reset
Method POST
Payload schema - channels array
++ integer, Numbers of the channels to reset.

- type string, Type of the channels to reset.
Example payload {"channels": [2, 3], "type": "SENSOR"}
Response schema(s) 200, object, Confirmation of the action.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"result": 0}

/api/$/status/channel

Returns the current channel statuses. This method can be used to query the statuses of the different Input, Output and Virtual Channels. Note that certain statuses are channel type specific. The meaning of the statuses are the following:

Status Description
OFF The channel is disabled. Input channels don't have this status.
OK The channel is operating correctly.
OR_ADC The ADC is in over range for this channel. Output and Virtual channels don't have this status.
OR_INPUT Too high signal is being measured, out of the user-set range. Output channels don't have this status.
OR_OUTPUT The output is in over range state, the output corresponding to the input is out of the device's range. Only Output channels have this status.
IEPE_OPEN The input channel is in IEPE mode, but an open connection is detected. Only input channels can have this status.
IEPE_SHORT The input channel is in IEPE mode, but a shorted connection is detected. Only input channels can have this status.
ID The device is being identified. Has no effect on the operation of the channels.
TEDS_BUSY The channel is currently reading or writing TEDS data from/to the TEDS sensor. Only input channels can have this status.
TEDS_ERROR The channel has experienced some error with the attached sensor's TEDS template. (More information about the error can be received from the TEDS related API services.) Only input channels can have this status.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/status/channel -d '{"type":"SENSOR","channels":[1]}'

RX: {"result":0,"data":{"type":"SENSOR","items":[{"channel":1,"status":"OK"]}}


TX: curl -v -X POST http://IP_ADDRESS/api/$/status/channel -d '{"type":"OUTPUT","channels":[3,4]}'

RX: {"result":0,"data":{"type":"OUTPUT","items":[{"channel":3,"status":"OFF"},{"channel":4,"status":"OR_OUTPUT"}]}}

Summary

URL /api/$/status/channel
Method POST
Payload schema - channels array
++ integer, Numbers of the queried channels.

- type string, Type of the requested channel.
Example payload {"channels": [2, 3], "type": "SENSOR"}
Response schema(s) 200, object, Current operating mode and color of the requested LEDs.
+ data object
++ items array
+++ object
++++ status string, The current status of the channel.
++++ channel integer, Number of the LED requested.
++ type string, Type of the LED. The same as in the corresponding request.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"items": [{"status": "OK", "channel": 1}], "type": "SENSOR"}, "result": 0}

/api/$/status/led

Returns the current LED statuses. This method can be used to query the device's current LED statuses, operating modes and colors.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/status/led -d '{"type":"SENSOR","channels":[1]}'

RX: {"result":0,"data":{"type":"SENSOR","items":[{"channel":1,"color":"CYAN","blinkColor":"BLACK","operatingMode":"ON"}]}}


TX: curl -v -X POST http://IP_ADDRESS/api/$/status/led -d '{"type":"OUTPUT","channels":[3,4]}'

RX: {"result":0,"data":{"type":"OUTPUT","items":[{"channel":3,"color":"YELLOW","blinkColor":"BLACK","operatingMode":"FAST_BLINKING"},{"channel":4,"color":"RED","blinkColor":"BLACK","operatingMode":"ON"}]}}

Summary

URL /api/$/status/led
Method POST
Payload schema - channels array
++ integer, Numbers of the queried LEDs.

- type string, Type of the requested LED.
Example payload {"channels": [2, 3], "type": "SENSOR"}
Response schema(s) 200, object, Current operating mode and color of the requested LEDs.
+ data object
++ items array
+++ object
++++ color string, The main color of the LED.
++++ blinkColor string, The secondary color of the LED when the operatingMode is not OFF or ON.
++++ operatingMode string, The current operating mode of the LED.
++++ channel integer, Number of the LED requested.
++ type string, Type of the LED. The same as in the corresponding request.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"items": [{"color": "CYAN", "blinkColor": "BLACK", "operatingMode": "ON", "channel": 1}], "type": "SENSOR"}, "result": 0}

/api/daq/stream/register

Registers a client Generates a unique identifier for a client which is used to keep track of its state in subsequent API calls.

Summary

URL /api/daq/stream/register
Method POST
Response schema(s) 200, object, Success
+ result integer, result code
+ clientId string, uuid (36 byte string)

default, string, Error occured

Example response {"result": 0, "clientId": "97b908e1-53ea-40df-a627-1d8a8a17ccb5"}

/api/daq/stream/protocol-version

Gets protocol version Gets protocol version of daqstream service.

Summary

URL /api/daq/stream/protocol-version
Method GET
Response schema(s) 200, object, Success
+ version integer, protocol version
+ result integer, result code

Example response {"version": 1, "result": 0}

/api/daq/stream/close

Closes the stream Closes a port for DAQ Stream.

Summary

URL /api/daq/stream/close
Method POST
Payload schema - clientId string, uuid (string obtained by method register)
- streamId integer, ID of the stream to close
Example payload {"clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3", "streamId": 3}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/stream/status

Gets a status of the stream Retrieves a status of DAQ Stream for given client. The status in the response body may be on of the following:

Status Description
WAITING Data port is open by service and it waits for the connection from a client.
STREAMING The connection is created, the measurement data are streamed if they are available.
STOPPED The stream is stopped. No data will be streamed by this stream anymore.
ERROR The error occurred (in DAQ subsystem, network connection, etc.).

Summary

URL /api/daq/stream/status
Method POST
Payload schema - clientId string, uuid (string obtained by method register)
- streamId integer, stream id (obtained from method open)
Example payload {"clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3", "streamId": 1}
Response schema(s) 200, object, Success
+ status string, status
+ frames integer, number of transmitted frames
+ result integer, result code

default, string, Error occured

Example response {"status": "STREAMING", "frames": 6532, "result": 0}

/api/daq/stream/scansPerFrame

Gets scan count per frame Gets scan count per frame. measurementId is an id of measurement, which is streamed in the stream given by streamId. Note that this API should be called during an active measurement only.

Summary

URL /api/daq/stream/scansPerFrame
Method POST
Payload schema - clientId string, uuid (string obtained by method register)
- measurementId integer, streamed measurement id
- streamId integer, stream id (obtained from method open)
Example payload {"clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3", "measurementId": 1, "streamId": 1}
Response schema(s) 200, object, Success
+ result integer, result code
+ scansPerFrame integer, scans per each frame (except the last one, that one can be variable)

default, string, Error occured

Example response {"result": 0, "scansPerFrame": 512}

/api/daq/stream/unregister

Unregisters the client Unregisters client from DAQ Streaming service. The unregistration is done automatically if the client is non-active for more than 24 hours. However, unregistration should be done explicitly by the client.

Summary

URL /api/daq/stream/unregister
Method POST
Payload schema - clientId string, uuid (string obtained by method register)
Example payload {"clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3"}
Response schema(s) 200, object, Success
+ result integer, success result 0

default, string, Error occured

Example response {"result": 0}

/api/daq/stream/list

Gets a list of active streams List all active DAQ Streams for given registered client.

Summary

URL /api/daq/stream/list
Method POST
Payload schema - clientId string, uuid (string obtained by method register)
Example payload {"clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3"}
Response schema(s) 200, object, Success
+ result integer, result code
+ streamIds array, array of stream ids
++ integer

default, string, Error occured

Example response {"result": 0, "streamIds": [3, 4, 6]}

/api/daq/stream/open

Retrieves status Opens a data port for DAQ Stream. The stream is closed automatically if there is no established connection in 30 seconds. Error already_waiting means that the connection from the previous call of open is still waiting for a connection from client. Error no_open_stream is usually caused by situation when port is set in a request, but the port is not available.

Summary

URL /api/daq/stream/open
Method POST
Payload schema - measurements array, An array of objects. The stream will contain the data for all listed measurements. Mutually exclusive with measurementIds
++ object
+++ measurementId integer, Id of measurement
+++ scansPerFrame integer, Count of frames in one sent frame

- measurementIds array, An array of integers. The stream will contain the data for all listed measurements. Mutually exclusive with measurements.
++ integer

- port integer, Port number. If omitted, the random port number will be assigned.
- clientId string, uuid (string obtained by method register)
Example payload {"measurements": [{"measurementId": 1, "scansPerFrame": 2048}], "clientId": "c82667ec-be4b-4037-a1f5-9d92addb6ef3"}
Response schema(s) 200, object, Success
+ result integer, result code
+ port integer, data port number
+ streamId integer, stream id

default, string, Error occured

Example response {"result": 0, "port": 2386, "streamId": 9}

/api/$/system/channels

Returns basic system properties. This method can be used to get the number of input, output and virtual channels on the device.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/status/channel -d ''

RX: {"result":0,"data":{"input":4,"virtual":2,"output":4}}

Summary

URL /api/$/system/channels
Method POST
Response schema(s) 200, object, The number of output, input and virtual channels on the device.
+ data object
++ input integer, Number of available input channels on the device.
++ virtual integer, Number of available virtual channels on the device.
++ output integer, Number of available output channels on the device.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"input": 4, "virtual": 2, "output": 4}, "result": 0}

/api/teds/status

Returns the current TEDS sensor status on all inputs. This method can be used to get the current TEDS sensor statuses on all input channels. The following values might be returned:

Status Description
NONE The input channel is not in IEPE mode.
AVAILABLE A TEDS capable sensor is connected to the device.
BUSY The input channel is trying to read/write TEDS data from/to a sensor.
ERROR An error occured with the template (e.g. unsupported template.
WARNING An unsupported template is connected to the device. The sensor is usable, but the data could not be retrieved from it.

Examples

TX: curl -v -X GET http://IP_ADDRESS/api/teds/status

RX: {"result":0,"status":[{"channel":"1","status":"NONE"},{"channel":"2","status":"AVAILABLE"},{"channel":"3","status":"NONE"},{"channel":"4","status":"BUSY"}]}

Summary

URL /api/teds/status
Method GET
Response schema(s) 200, object, Current TEDS status on all channels.
+ status array
++ object
+++ status string, The current TEDS status on the channel.
+++ reason string, Error reason in case some TEDS error happened.
+++ channel string, The number of the channel.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"status": [{"status": "TEDS_HAS_SENSOR", "channel": "1"}, {"status": "TEDS_NO_SENSOR", "channel": "2"}, {"status": "TEDS_NO_SENSOR", "channel": "3"}, {"status": "TEDS_ERROR", "reason": "InvalidTemplate", "channel": "4"}], "result": 0}

/api/teds/userText/set

Writes an arbitrary text to the userText field of the TEDS sensor. This method allows the modification of TEDS sensors' UserText field, with a maximum 50 characters long text. The TEDS template needs to support the UserText field.

Note: if the text is longer than 50 characters, then it will be truncated to 50 characters by removed the last characters. Modifying TEDS data might take up to 30 seconds.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/teds/userText/set -d '{"channel":1, "text":"arbitrary text"}'

RX: {"result":0,"data":{"channel":1, "text":"arbitrary text"}}

Summary

URL /api/teds/userText/set
Method POST
Payload schema - text string, The text to be written to the TEDS sensor.
- channel integer, The number of channel to query the TEDS data from.
Example payload {"text": "my user text", "channel": 3}
Response schema(s) 200, object, All data read from the TEDS sensor.
+ data object
++ text string, The text that was written to the TEDS sensor.
++ channel integer, The channel where the TEDS sensor was modified.
+ result integer, Result code - 0 for success

default, string, Error occured

Example response {"data": {"text": "myText", "channel": 2}, "result": 0}

/api/teds/data/get

Returns all TEDS data read from the TEDS capable sensor. This method can be used to query the data stored on the TEDS sensor.

Examples

TX: curl -v -X POST http://IP_ADDRESS/api/$/teds/data/get -d '{"channel":1}'

RX: {"result":0,"channel":1,"data":[{"name":"Manufacturer","value":"Kistler"},{"name":"Model","value":"8763"},{"name":"Version_letter","value":"B"},{"name":"Version_number","value":"36"},{"name":"TEMPLATE","value":"0"},{"name":"CalDate","value":"2013-10-15"},{"name":"Sens@Ref","value":"0.001113", "unit":"V/(m/s²)"},{"name":"Reffreq","value":"99.083542", "unit":"Hz"},{"name":"TF_HP_S","value":"0.099911", "unit":"Hz"},{"name":"Sign","value":"positive"},{"name":"Direction","value":"x"},{"name":"MeasID","value":"1"},{"name":"User Text","value":"LabAmp-Team"}]}


TX: curl -v -X POST http://IP_ADDRESS/api/$/teds/data/get -d '{"channel":9}'

RX: {"result":1,"error":{"namespace":"labamp","reason":"invalid_argument","detail":"channel 9 doesn't exist"}}

Summary

URL /api/teds/data/get
Method POST
Payload schema - channel integer, The number of channel to query the TEDS data from.
Example payload {"channel": 3}
Response schema(s) 200, object, All data read from the TEDS sensor.
+ data array, The acquired TEDS data as name-value pairs
++ object
+++ value string, The value of the data read from the TEDS sensor.
+++ name string, The name of the data read from the TEDS sensor.
+++ unit string, The unit of the value.
+ result integer, Result code - 0 for success
+ channel integer, The number of the channel queried.

default, string, Error occured

Example response {"data": [{"name": "Manufacturer", "value": "Kistler"}, {"name": "Model", "value": "8763"}, {"name": "Version_letter", "value": "B"}, {"name": "Version_number", "value": "36"}, {"name": "TEMPLATE", "value": "0"}, {"name": "CalDate", "value": "2013-10-15"}, {"value": "0.001113", "name": "Sens@Ref", "unit": "V/N"}, {"value": "99.083542", "name": "Reffreq", "unit": "Hz"}, {"value": "0.099911", "name": "TF_HP_S", "unit": "Hz"}, {"name": "Sign", "value": "positive"}, {"name": "Direction", "value": "x"}, {"name": "MeasID", "value": "1"}, {"name": "User Text", "value": "LabAmp-Team"}], "result": 0}