CSV Writer
Descripción
El módulo "csvwriter" consume datos de canal y los escribe en archivos de valores separados por comas (Comma Separated Values, CSV).
Interfaces y protocolos utilizados
- NINGUNO
Configuración JSON
En la siguiente sección se describe la configuración JSON completa del módulo y se explican los distintos parámetros.
Configuración de ejemplo (mínima)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
"channels":[
{
"name":"SomeChannelName"
}
]
}
}
Configuración de ejemplo (máxima)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
"fileName": "/sde/<tag>/<date>/<date>_<time>.csv",
"tag":"preview",
"forceFileName": false,
"pollingIntervalMs":1000,
"maxFileDurationMs":900000,
"timeoutMs":15000,
"gridUs":10,
"fieldSep":",",
"structureSep":" ",
"decimalSep":".",
"timeFormat":"<date>T<time>.<us>Z",
"timeHeader":"Date/Time",
"timeDescription":"UTC",
"channels":[
{
"name":"SomeChannelName",
"field":"SomeColumnTitle",
"description":"SomeColumnSubtitle",
"defaultValue":"SomeDefaultValue",
"format":{
"fieldWith":8,
"fillChar":"-",
"base":10,
"format":"g",
"precision":6
}
},
{
"name":"SomeBooleanChannelName",
"field":"SomeColumnTitle",
"description":"SomeColumnSubtitle",
"defaultValue":"SomeDefaultValue",
"format":{
"falseValue":"FALSE",
"trueValue":"TRUE"
}
}
]
}
}
Configuración de ejemplo (registro por disparo)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
<KONFIGURATION>
"triggerChannel":"someBooleanTriggerChannel",
"triggerLeadTimeMs":30000,
"triggerFollowUpTimeMs":30000,
"triggerSeparateEvents":false,
"channels":[
<SPEZIFIKATION AUFZUZEICHNENDER KANÄLE>
]
}
}
Parámetros globales del módulo
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| fileName | No | STRING | véase más abajo | "/sde/"TAG"/"DATE"/"DATE"_"TIME".csv" | Nombre del archivo o estructura del nombre del archivo (véase más abajo) |
| forceFileName | No | BOOL | false, true | false | Fuerza un nombre de archivo constante especificado |
| tag | No | STRING | "preview" | Denominación de la etiqueta (tag) | |
| pollingIntervalMs | No | INT | 1 - | 1000 | Intervalo de sondeo (polling) [ms] |
| maxFileDurationMs | No | INT | 1 - | 900000 (15 min) | Duración temporal máxima del archivo [ms] |
| timeoutMs | No | INT | 1 - | 15000 (15 s) | Tiempo de espera (timeout) tras el cual, como máximo, se escribe una nueva línea (con los valores predeterminados especificados) en el archivo CSV [ms] |
| triggerChannel | No | STRING | Nombre de un canal de disparo booleano | ||
| triggerLeadTimeMs | No | INT | 0 - | 15000 (15 s) | Tiempo previo al disparo |
| triggerFollowUpTimeMs | No | INT | 0 - | 15000 (15 s) | Tiempo posterior al disparo |
| triggerSeparateEvents | No | BOOL | false, true | false | Cierra el archivo actual y abre uno nuevo cuando los eventos de disparo se solapan |
| gridMs | No | INT | 1 - | 1000 (1 s) | Anchura de la rejilla de muestreo [ms] (*) |
| gridUs | No | INT | 1 - | 1000000 (1 s) | Anchura de la rejilla de muestreo [us] (*) |
| gridNs | No | INT | 1 - | 1000000000 (1 s) | Anchura de la rejilla de muestreo [ns] (*) |
| fieldSep | No | STRING | "," | Cadena separadora de columnas | |
| structureSep | No | STRING | " " | Cadena separadora de estructuras | |
| decimalSep | No | STRING | "." | Cadena separadora decimal | |
| timeFormat | No | STRING | véase más abajo | "<date>T<time>.<ms>Z" | Especificación de fecha y hora |
| timeHeader | No | STRING | "" | Encabezado de fecha y hora | |
| timeDescription | No | STRING | "" | Subencabezado de fecha y hora | |
| channels | SÍ | véase más abajo | Especificación de los canales que se van a registrar |
(*) alternativamente
Especificación del nombre de archivo 'fileName'
El nombre del archivo se especifica mediante una ruta, p. ej.
/sde/<tag>/<date>/<date>_<time>.csv
Las variables posibles son:
<year>(p. ej. 2022)<month>(p. ej. 01)<day>(p. ej. 01)<hour>(p. ej. 01, 23)<minute>(p. ej. 01)<second>(p. ej. 01)<msecond>(p. ej. 001)<date>:= "<year><month><day>"<time>:= "<hour><minute><second>"<tag>(véase el parámetro 'tag')
Configuración de los canales que se van a registrar 'channels'
A diferencia, por ejemplo, del módulo OSF Writer, donde por defecto se registran todos los canales, en el CSV Writer debe especificarse una selección de canales. Esto se hace mediante una lista de objetos JSON que deben parametrizarse como sigue
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| name | SÍ | STRING | Nombre del canal de smartCORE | ||
| field | No | STRING | Nombre del canal de smartCORE | Encabezado de columna del canal | |
| description | No | STRING | "" | Subencabezado de columna del canal | |
| defaultValue | No | STRING | "" | Valor predeterminado que debe escribirse en la celda del valor del canal en caso de timeout, si no hay datos del canal | |
| format | No | véase más abajo | Especificación con la que se formatea el valor del canal |
Configuración del formato de los valores de canal 'format'
Los valores de los canales booleanos pueden formatearse como sigue
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| trueValue | SÍ | STRING | Valor que se escribe en la celda del valor del canal en caso de verdadero | ||
| falseValue | SÍ | STRING | Valor que se escribe en la celda del valor del canal en caso de falso |
Todos los demás valores pueden formatearse como sigue
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores recomendado | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| fieldWidth | No | INT | Anchura de columna | ||
| fillChar | No | CHAR | Carácter de relleno | ||
| base | No | INT | 2, 8, 10, 16 | 10 | Base de la representación numérica |
| format | No | CHAR | "e", "f", "g" | "g" | Notación de la representación numérica ("e" => notación científica, "f" => representación normal, "g" => alternativamente notación normal o científica) |
| precision | No | INT | 0 - | Precisión (número de decimales) |
Información del módulo
| Información | Valor |
|---|---|
| Autores | optiMEAS GmbH |
| desde smartCORE | 2.8 |
| Tipo de módulo | Consumer |
| Dependencias | NINGUNA |