This API call enables access to raw data and unmodified channel data. Possible applications are:

  • Machine learning

  • Providing data for other systems

  • Calculations that require unaggregated data

The server always responds with a message stream. You can use the max_sample_count_per_message field to specify how many measured values should be sent in a single message. If there are more data points in the requested time range, the data is distributed across several messages (chunking).

The time stamp of the first response message does not have to match the start time of the query exactly. The response telegrams return the time stamps that are stored in the ibaHD-Server for the requested signal values.

If several channels are requested, each response message only contains data for a single channel. The sequence of data for a channel within a message is guaranteed to be in temporal order. The reception and transmission sequence of the messages for data of the requested channels is not guaranteed.

The following graphic shows the response stream when several channels are requested.

The response is completed as soon as all messages in the stream have been sent, see https://grpc.io/docs/guides/concepts/#server-streaming-rpc.

Message "GetRawChannelDataRequest"

Structure

To copy the code to the clipboard click on the icon ->

GetRawChannelDataRequest{

}

Parameter

Pos.

Parameter

Data type

Meaning

1

time_range_from

int64

Start time of the requested time range in Unix timestamp format in microseconds.

2

time_range_to

int64

End time of the requested time range in Unix timestamp format in microseconds.

3

channel_ids

string

Channel IDs in the same format as they were returned in the response list of GetHdStoreSchema(), see GetHdStoreSchema().

4

max_sample_count_per_message

int64

Maximum number of measured values per message

If not specified, the number is automatically determined by the server.

5

add_extra_sample_out_of_time_range

bool

If True, the next values before and after the queried time range are part of the query in addition to the queried range.

This expansion of the data space enables a better presentation of the data in the displays.

Message "GetRawChannelDataResponse"

List of all stored raw channel data in the defined time range with exact time range, divided into the various channel formats.

Structure

To copy the code to the clipboard click on the icon ->

GetRawChannelDataResponse{

   StringValues{…}

   DigitalValues{…}

   NeFloatValues{…}

   NeDoubleValues{…}

}

Parameter

Pos.

Parameter

Data type

Meaning

1

channel_id

string

Channel ID in the format <HD store name>\<channel id>

Example: store_1\[0:0]

3

start_timestamp

int64

Unix timestamp in microseconds

4

step

int64

Step in microseconds for the following values:DATA_TYPE_FLOAT_VALUESDATA_TYPE_DOUBLE_VALUES

0 for the following values:DATA_TYPE_STRING_VALUESDATA_TYPE_DIGITAL_VALUES

5

data_type

enum(DataType)

Data type of the returned values, see Enum "DataType".

6

float_values

float

Equidistant values for DATA_TYPE_FLOAT_VALUES channels

Time stamps for values can be calculated with:start_timestamp + step * array index

7

double_values

double

Equidistant values for DATA_TYPE_DOUBLE_VALUES channels

Time stamps for values can be calculated with:start_timestamp + step * array index

8

string_values

-

Non-equidistant values for DATA_TYPE_STRING_VALUES channels

Timestamps and values are compared by array index, see Message "StringValues".

9

digital_values

-

Non-equidistant rising/falling edges or gaps in DATA_TYPE_DIGITAL_VALUES channels

The value is valid until the next edge change.

Timestamps and values are compared by array index, see Message "DigitalValues".

10

ne_float_values

-

Non-equidistant values for DATA_TYPE_NE_FLOAT_VALUES channels

The value is valid until the next edge change.

Timestamps and values are compared by array index, see Message "NeFloatValues".

11

ne_double_values

-

Non-equidistant values for DATA_TYPE_NE_DOUBLE_VALUES channels.

The value is valid until the next edge change.

Timestamps and values are compared by array index, see Message "NeDoubleValues".

Message "StringValues"

Pos.

Parameter

Data type

Meaning

1

timestamp

int64

Non-equidistant Unix time stamp in microseconds

2

value

value

Non-equidistant string values

Message "DigitalValues"

Pos.

Parameter

Data type

Meaning

1

timestamp

int64

Non-equidistant Unix time stamps in microseconds

2

value

float

Non-equidistant edge changes (0 or 1) or gaps (NaN) in the digital channel

3

edgeCount

float

Non-equidistant edge counting of the digital channel.

Indicates how often the signal value has changed in the aggregated time interval.

4

min

float

Non-equidistant minimum value of the digital channel

5

max

float

Non-equidistant maximum value of the digital channel

Message "NeFloatValues"

Pos.

Parameter

Data type

Meaning

1

timestamp

int64

Non-equidistant Unix timestamps in microseconds

2

value

float

Non-equidistant values of the float channel

Message "NeDoubleValues"

Pos.

Parameter

Data type

Meaning

1

timestamp

int64

Non-equidistant Unix time stamps in microseconds

2

value

double

Non-equidistant values of the double channel

Enum "DataType"

The following values are available for DataType.

Value

Meaning

0

DATA_TYPE_UNSPECIFIED

Not specified

1

DATA_TYPE_FLOAT_VALUES

Value of type "float"

2

DATA_TYPE_DOUBLE_VALUES

Value of type "double"

3

DATA_TYPE_STRING_VALUES

Value of type "string"

4

DATA_TYPE_DIGITAL_VALUES

Digital value

5

DATA_TYPE_NE_FLOAT_VALUES

Value of type “float” that was stored non-equidistantly

6

DATA_TYPE_NE_DOUBLE_VALUES

Digital value that was stored non-equidistantly

7

DATA_TYPE_DIGITAL_EDGE_VALUES

Number of changes of a digital non-equidistant value