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
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
GetRawChannelDataResponse{
StringValues{…}
DigitalValues{…}
NeFloatValues{…}
NeDoubleValues{…}
}
Parameter
|
Pos. |
Parameter |
Data type |
Meaning |
|---|---|---|---|
|
1 |
channel_id |
string |
Channel ID in the format Example: |
|
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 |
