Module Playback « playback »
Description
Le module « playback » doit être utilisé exclusivement pour les tests système et les tests unitaires. Son utilisation dans un environnement de production n'est pas autorisée !
Il sert à produire, avec un respect correct du temps, les données spécifiées dans un fichier de lecture (playback). Il utilise pour cela l'API unifiée de configuration des canaux de smartCORE et peut donc être employé non seulement pour tester des modules consommateurs, mais aussi pour tester smartCORE lui-même (p. ex. le filtrage des données).
La production s'effectue ici par blocs de données complets, définis sur la base d'une grille à la précision de la microseconde.
Interfaces et protocoles utilisés
- AUCUN
Configuration JSON
La section suivante décrit l'intégralité de la configuration JSON du module et explique chacun des paramètres.
La configuration des canaux spécifiés dans « channels » est décrite dans la documentation sur la configuration unifiée des canaux.
Exemple de configuration (configuration minimale typique)
{
"module":"Playback",
"factory":"playback",
"config":{
"channels":[
{
"channelType": "timestamped",
"name": "Some Speed",
"physicalUnit": "km/h",
"dataType": "float",
"bufferSize": 10,
"cacheSize": 0,
"filter": [
{
"name": "datareduction",
"absTolerance": 0,
"timeoutMs": 10000
}
]
},
{
"channelType": "timestamped",
"name": "Some Revs",
"physicalUnit": "1/min",
"dataType": "float"
},
{
"channelType": "timestamped",
"name": "Some GPS Location",
"dataType": "gpslocation"
},
< More channel specifications >
]
}
}
Exemple de configuration (configuration maximale typique)
{
"module":"Playback",
"factory":"playback",
"config":{
"gridUs": 5000,
"decimalSep": ".",
"structureSep": " ",
"fieldSep": ",",
"numCycles": 1,
"exitOnEnd": false,
"exitDelay": 0,
"timebase": "absolute",
"channels":[
< Channel specifications >
]
}
}
Structure d'un fichier de lecture (playback)
Le format d'un fichier de lecture correspond en principe à celui d'un fichier CSV, les séparateurs décimal, de structure et de champ étant toutefois librement configurables (à l'exception de '='). Plusieurs séparateurs consécutifs ne sont cependant PAS autorisés, afin d'améliorer la lisibilité.
Si la configuration de tous les séparateurs est entièrement absente du fichier de configuration, une détection automatique est effectuée (en termes de compatibilité avec les fichiers CSV exportés depuis Excel, en localisation anglaise comme allemande).
Les indications de temps de la première colonne de ce fichier sont à comprendre en secondes (éventuellement avec fractions de seconde, séparées par le séparateur décimal "decimalSep"). Tous les séparateurs doivent être saisis ou « échappés » (escaped) correctement.
Exemples de fichiers de lecture (playback)
Zeit [s];Geschwindigkeit;Drehzahl;GPS Position
0,7;60;1500
1,4;85;;60,123456 18,111222333 123,4
2,8;100;2200
Time [s],Speed,Revs,GPS Location
0.7,60,1500
1.4,85,,60.123456 18.111222333 123.4
2.8,100,2200
Paramètres globaux du module
| Nom du paramètre | Obligatoire | Type de données | Plage de valeurs utile | Défaut | Description |
|---|---|---|---|---|---|
| gridUs | Non | INT | 1 - | 5000 (5 ms) | Pas temporel de la grille pour la répartition en blocs de données à produire |
| decimalSep | Non | STRING | "." | "." | Séparateur décimal dans les nombres à virgule flottante (*) |
| structureSep | Non | STRING | " " | " " | Séparateur pour définir plusieurs valeurs d'une structure (p. ex. GPS Location) (*) |
| fieldSep | Non | STRING | "," | "," | Séparateur entre plusieurs canaux à produire simultanément (*) |
| numCycles | Non | INT | -1, 1 - | 1 | pour la répétition multiple (ou infinie avec -1) du fichier de lecture |
| exitOnEnd | Non | BOOL | false, true | false | Arrêt de smartCORE après l'achèvement de tous les cycles de production |
| exitDelay | Non | INT | 1 - | 0 | Délai avant l'arrêt de smartCORE |
| timebase | Non | STRING | "absolute", "relative" | "absolute" | Base de temps des horodatages des données de mesure produites ("absolute" pour des résultats reproductibles) |
| channels | OUI | JSON Array of JSON Objects | voir ci-dessous |
(*) si TOUS les paramètres 'decimalSep', 'structureSep' et 'fieldSep' sont indéfinis, une détection automatique des séparateurs est effectuée. Il n'est en outre PAS possible d'utiliser '=' comme séparateur.
Configuration d'un canal (objet JSON dans « channels »)
Ceci ne constitue qu'un extrait (voir la documentation sur la configuration unifiée des canaux pour plus de détails).
| Nom du paramètre | Obligatoire | Type de données | Plage de valeurs utile | Défaut | Description |
|---|---|---|---|---|---|
| name | OUI | STRING | Nom du canal | ||
| channelType | OUI | STRING | "timestamped", "singlevalue" | Type du canal | |
| dataType | OUI | STRING | voir ci-dessous | Type de données du canal | |
| bufferSize | Non | INT | 1 - | 1024 | Taille du tampon du canal créé |
| physicalUnit | Non | STRING | unité physique |
Types de données de canal pris en charge 'dataType'
- string (encodé en UTF-8)
- bytearray (encodé en HEX SANS préfixe)
- double
- float
- int64, int32, int16, int8
- uint64, uint32, uint16, uint8
- bool
- gpslocation (trois valeurs float séparées par le séparateur de structure)
Informations sur le module
| Information | Valeur |
|---|---|
| Auteurs | optiMEAS GmbH |
| depuis smartCORE | 2.3 |
| Type de module | Producer |
| Dépendances | AUCUNE |