Módulo Playback "playback"
Descripción
El módulo "playback" debe utilizarse únicamente para pruebas de sistema y pruebas unitarias. ¡No se permite su uso en un entorno de producción!
Sirve para producir con la temporización correcta los datos especificados en un archivo de reproducción (playback). Para ello utiliza la API unificada de configuración de canales de smartCORE y, por tanto, puede emplearse no solo para probar módulos consumidores, sino también para probar el propio smartCORE (p. ej., el filtrado de datos).
La producción se realiza aquí mediante bloques de datos completos, que se determinan sobre la base de una cuadrícula con precisión de microsegundos.
Interfaces y protocolos utilizados
- NINGUNO
Configuración JSON
En la sección siguiente se describe la configuración JSON completa del módulo y se explican los distintos parámetros.
La configuración de los canales especificados dentro de "channels" debe consultarse en la documentación de la configuración unificada de canales.
Configuración de ejemplo (configuración mínima habitual)
{
"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 >
]
}
}
Configuración de ejemplo (configuración máxima habitual)
{
"module":"Playback",
"factory":"playback",
"config":{
"gridUs": 5000,
"decimalSep": ".",
"structureSep": " ",
"fieldSep": ",",
"numCycles": 1,
"exitOnEnd": false,
"exitDelay": 0,
"timebase": "absolute",
"channels":[
< Channel specifications >
]
}
}
Estructura de un archivo de reproducción
El formato de un archivo de reproducción corresponde, en esencia, al de un archivo CSV, si bien (con la excepción de '=') se pueden configurar libremente los separadores decimal, de estructura y de campo. Sin embargo, NO se permiten varios separadores consecutivos para mejorar la presentación.
Si falta por completo la configuración de todos los separadores en el archivo de configuración, se realiza una autodetección (en cuanto a compatibilidad con archivos CSV exportados desde Excel, en las localizaciones inglesa y alemana).
Los datos de tiempo de la primera columna de este archivo deben entenderse como segundos (opcionalmente fracciones de segundo, separadas por el separador decimal "decimalSep"). Todos los caracteres separadores deben introducirse correctamente o "escaparse" (escaped).
Ejemplos de archivos de reproducción
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
Parámetros globales del módulo
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor por defecto | Descripción |
|---|---|---|---|---|---|
| gridUs | No | INT | 1 - | 5000 (5 ms) | Separación temporal de la cuadrícula para la división en bloques de datos que se van a producir |
| decimalSep | No | STRING | "." | "." | Separador decimal dentro de los números de coma flotante (*) |
| structureSep | No | STRING | " " | " " | Separador para establecer varios valores de una estructura (p. ej., GPS Location) (*) |
| fieldSep | No | STRING | "," | "," | Separador entre varios canales que se producen simultáneamente (*) |
| numCycles | No | INT | -1, 1 - | 1 | para la repetición múltiple (o infinita con -1) del archivo de reproducción |
| exitOnEnd | No | BOOL | false, true | false | Apagado de smartCORE tras finalizar todos los ciclos de producción |
| exitDelay | No | INT | 1 - | 0 | Retardo antes del apagado de smartCORE |
| timebase | No | STRING | "absolute", "relative" | "absolute" | Base de tiempo de las marcas de tiempo de los datos de medición producidos ("absolute" para resultados reproducibles) |
| channels | SÍ | JSON Array of JSON Objects | véase más abajo |
(*) Si TODOS los parámetros 'decimalSep', 'structureSep' y 'fieldSep' están sin definir, se realiza una autodetección de los separadores. Además, NO es posible utilizar '=' como separador.
Configuración de un canal (objeto JSON dentro de "channels")
Esto es solo un extracto (consulte la documentación de la configuración unificada de canales para más detalles).
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor por defecto | Descripción |
|---|---|---|---|---|---|
| name | SÍ | STRING | Nombre del canal | ||
| channelType | SÍ | STRING | "timestamped", "singlevalue" | Tipo del canal | |
| dataType | SÍ | STRING | véase más abajo | Tipo de datos del canal | |
| bufferSize | No | INT | 1 - | 1024 | Tamaño del búfer del canal creado |
| physicalUnit | No | STRING | unidad física |
Tipos de datos de canal 'dataType' admitidos
- string (codificado en UTF-8)
- bytearray (codificado en HEX SIN prefijo)
- double
- float
- int64, int32, int16, int8
- uint64, uint32, uint16, uint8
- bool
- gpslocation (tres valores float separados por el separador de estructura)
Información del módulo
| Información | Valor |
|---|---|
| Autores | optiMEAS GmbH |
| desde smartCORE | 2.3 |
| Tipo de módulo | Producer |
| Dependencias | NINGUNA |