Dieser API-Aufruf ermöglicht den Zugriff auf Rohdaten und unveränderte Kanaldaten. Mögliche Anwendungsfälle sind:

  • Maschinelles Lernen

  • Bereitstellung von Daten für andere Systeme

  • Berechnungen, für die unaggregierte Daten benötigt werden

Der Server antwortet immer mit einem Nachrichtenstrom. Mit dem Feld max_sample_count_per_message können Sie angeben, wie viele Messwerte in einer einzelnen Message gesendet werden sollen. Wenn mehr Datenpunkte im abgefragten Zeitbereich vorhanden sind, werden die Daten auf mehrere Messages verteilt (Chunking).

Der Zeitstempel der ersten Response Message muss nicht genau mit der Startzeit der Abfrage übereinstimmen. Die Antworttelegramme liefern die Zeitstempel zurück, die im ibaHD-Server für die angeforderten Signalwerte gespeichert sind.

Wenn mehrere Kanäle angefordert werden, enthält jede Response Message nur Daten für einen einzigen Kanal. Die Reihenfolge der Daten für einen Kanal innerhalb einer Message ist garantiert zeitlich aufeinanderfolgend. Die Empfangs- und Sendereihenfolge der Messages für Daten der angefragten Kanäle ist nicht garantiert.

Die folgende Grafik zeigt den Antwortstrom, wenn mehrere Kanäle angefordert werden.

Der Response ist abgeschlossen, sobald alle Nachrichten im Strom gesendet wurden, siehe https://grpc.io/docs/guides/concepts/#server-streaming-rpc.

Message "GetRawChannelDataRequest"

Struktur

Zum Kopieren in die Zwischenablage auf das Icon klicken ->

GetRawChannelDataRequest{

}

Parameter

Pos.

Parameter

Datentyp

Bedeutung

1

time_range_from

int64

Anfangszeit des angeforderten Zeitbereichs im Unix-Zeitstempelformat in Mikrosekunden.

2

time_range_to

int64

Endzeit des angeforderten Zeitbereichs im Unix-Zeitstempelformat in Mikrosekunden.

3

channel_ids

string

Kanal-IDs im gleichen Format, wie sie in der Response-Liste von GetHdStoreSchema() zurückgegeben wurden, siehe GetHdStoreSchema().

4

max_sample_count_per_message

int64

Maximale Anzahl der Messwerte pro Message

Ohne Angabe wird die Anzahl automatisch vom Server bestimmt.

5

add_extra_sample_out_of_time_range

bool

Wenn True, sind zusätzlich zum abgefragten Bereich die nächsten Werte vor und nach dem abgefragten Zeitbereich Teil der Abfrage.

Diese Erweiterung des Datenraums ermöglicht eine bessere Darstellung der Daten in den Anzeigen.

Message "GetRawChannelDataResponse"

Liste aller gespeicherten Kanalrohdaten im definierten Zeitbereich mit exaktem Zeitbereich, aufgeteilt auf die verschiedenen Kanalformate.

Struktur

Zum Kopieren in die Zwischenablage auf das Icon klicken ->

GetRawChannelDataResponse{

   StringValues{…}

   DigitalValues{…}

   NeFloatValues{…}

   NeDoubleValues{…}

}

Parameter

Pos.

Parameter

Datentyp

Bedeutung

1

channel_id

string

Kanal-ID im Format <HD store name>\<channel id>

Beispiel: store_1\[0:0]

3

start_timestamp

int64

Unix-Zeitstempel in Mikrosekunden

4

step

int64

Schritt in Mikrosekunden für folgende Werte:DATA_TYPE_FLOAT_VALUESDATA_TYPE_DOUBLE_VALUES

0 für folgende Werte:DATA_TYPE_STRING_VALUESDATA_TYPE_DIGITAL_VALUES

5

data_type

enum(DataType)

Datentyp der zurückgegebenen Werte, siehe Enum "DataType".

6

float_values

float

Äquidistante Werte für DATA_TYPE_FLOAT_VALUES-Kanäle

Zeitstempel für Werte können berechnet werden mit:start_timestamp + step * array index

7

double_values

double

Äquidistante Werte für DATA_TYPE_DOUBLE_VALUES-Kanäle

Zeitstempel für Werte können berechnet werden mit:start_timestamp + step * array index

8

string_values

-

Nicht-äquidistante Werte für DATA_TYPE_STRING_VALUES-Kanäle

Zeitstempel und Werte werden nach Array-Index abgeglichen, siehe Message "StringValues".

9

digital_values

-

Nicht-äquidistante steigende/fallende Flanken oder Lücken bei DATA_TYPE_DIGITAL_VALUES-Kanälen

Der Wert ist bis zum nächsten Flankenwechsel gültig.

Zeitstempel und Werte werden nach Array-Index abgeglichen, siehe Message "DigitalValues".

10

ne_float_values

-

Nicht-äquidistante Werte für DATA_TYPE_NE_FLOAT_VALUES-Kanäle

Der Wert ist bis zum nächsten Flankenwechsel gültig.

Zeitstempel und Werte werden nach Array-Index abgeglichen, siehe Message "NeFloatValues".

11

ne_double_values

-

Nicht-äquidistante Werte für DATA_TYPE_NE_DOUBLE_VALUES-Kanäle.

Der Wert ist bis zum nächsten Flankenwechsel gültig.

Zeitstempel und Werte werden nach Array-Index abgeglichen, siehe Message "NeDoubleValues".

Message "StringValues"

Pos.

Parameter

Datentyp

Bedeutung

1

timestamp

int64

Nicht-äquidistante Unix-Zeitstempel in Mikrosekunden

2

value

value

Nicht-äquidistante String-Werte

Message "DigitalValues"

Pos.

Parameter

Datentyp

Bedeutung

1

timestamp

int64

Nicht-äquidistante Unix-Zeitstempel in Mikrosekunden

2

value

float

Nicht-äquidistante Flankenwechsel (0 oder 1) oder Lücken (NaN) des digitalen Kanals

3

edgeCount

float

Nicht-äquidistante Flankenzählung des digitalen Kanals.

Gibt an, wie oft sich der Signalwert im aggregierten Zeitintervall geändert hat.

4

min

float

Nicht-äquidistanter Minimalwert des digitalen Kanals

5

max

float

Nicht-äquidistanter Maximalwert des digitalen Kanals

Message "NeFloatValues"

Pos.

Parameter

Datentyp

Bedeutung

1

timestamp

int64

Nicht-äquidistante Unix-Zeitstempel in Mikrosekunden

2

value

float

Nicht-äquidistante Werte des Float-Kanals

Message "NeDoubleValues"

Pos.

Parameter

Datentyp

Bedeutung

1

timestamp

int64

Nicht-äquidistante Unix-Zeitstempel in Mikrosekunden

2

value

double

Nicht-äquidistante Werte des Double-Kanals

Enum "DataType"

Folgende Werte stehen für DataType zur Verfügung.

Wert

Bedeutung

0

DATA_TYPE_UNSPECIFIED

nicht spezifiziert

1

DATA_TYPE_FLOAT_VALUES

Wert vom Typ "float"

2

DATA_TYPE_DOUBLE_VALUES

Wert vom Typ "double"

3

DATA_TYPE_STRING_VALUES

Wert vom Typ "string"

4

DATA_TYPE_DIGITAL_VALUES

Digitaler Wert

5

DATA_TYPE_NE_FLOAT_VALUES

Wert vom Typ "float", der nicht-äquidistant gespeichert wurde

6

DATA_TYPE_NE_DOUBLE_VALUES

Digitaler Wert, det nicht-äquidistant gespeichert wurde

7

DATA_TYPE_DIGITAL_EDGE_VALUES

Anzahl der Wechsel eines digitalen nicht-äquidistanten Werts