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
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
GetRawChannelDataResponse{
StringValues{…}
DigitalValues{…}
NeFloatValues{…}
NeDoubleValues{…}
}
Parameter
|
Pos. |
Parameter |
Datentyp |
Bedeutung |
|---|---|---|---|
|
1 |
channel_id |
string |
Kanal-ID im Format Beispiel: |
|
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 |
