Módulo generador de funciones "functiongenerator"
Descripción
¡EL MÓDULO "functiongenerator" ES ÚNICAMENTE UN MÓDULO DE PRUEBA PARA FINES INTERNOS!
Sirve para producir datos de canales con la sincronización temporal correcta.
La producción se realiza aquí mediante bloques de datos completos.
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 (configuración típica)
{
"module":"FunctionGenerator",
"factory":"functiongenerator",
"config":{
"maximumProductionCount":-1,
"maximumTimestampDeviation":-1,
"rtPriority":80,
"samplesPerBlock":1,
"timeoutSeconds":1,
"timeoutNanoseconds":0,
"startDate":"1970-01-01T00:00:00Z",
"channels":[
{
"name":"Some Sine Channel",
"dataType":"float",
"bufferSize":1024,
"function":"sine",
"amplitude":1.0,
"offset":0.0,
"frequency":1.0,
"onOffRatio":0.5
},
{
"name":"Some Message Channel",
"dataType":"string",
"function":"messages",
"messages":[
{
"timestamp":"1970-01-01T00:00:05Z",
"text":"Hello, "
},
{
"timestamp":"1970-01-01T00:00:10Z",
"text":"World!"
}
]
},
{
"name":"Some Data Points",
"dataType":"int32",
"function":"datapoints",
"datapoints":[
{
"timestamp":"1970-01-01T00:00:01Z",
"value":42
},
{
"timestamp":"1970-01-01T00:00:02Z",
"value":24
}
]
},
{
"name":"Some Gps Locations",
"dataType":"gpslocation",
"function":"gpslocations",
"gpslocations":[
{
"timestamp":"1970-01-01T00:00:01Z",
"latitude":60.1234567,
"longitude":15.7654321,
"altitude":123.4
},
{
"timestamp":"1970-01-01T00:00:02Z",
"latitude":61.1234567,
"longitude":16.7654321,
"altitude":234.5
}
]
}
]
}
}
Parámetros globales del módulo
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| maximumProductionCount | No | INT | -1, 1 - | -1 | Número máximo de muestras producidas (-1 - infinito) |
| maximumTimestampDeviation | No | INT | -1, 1 - | -1 | Desviación máxima de la marca de tiempo [ns] a partir de la cual se utiliza la marca de tiempo actual de smartCORE como nueva base de partida para la producción de bloques concatenados (-1 - SIEMPRE se utiliza el instante de inicio como base de tiempo) |
| rtPriority | No | INT | 20 - 80 | 80 | Prioridad del hilo de producción |
| bufferSize | No | INT | 1 - | 1024 | Tamaño global del búfer en muestras para todos los canales |
| samplesPerBlock | No | INT | 1 - | 1 | Número de muestras producidas dentro de un bloque |
| timeoutSeconds | No | INT | 1 - | 1 | Ciclo de la producción (especificación de los segundos) |
| timeoutNanoseconds | No | INT | 1 - | 0 | Ciclo de la producción (especificación de los nanosegundos) |
| startDate | No | STRING | UTC Zulu String o "now" | "now" | Instante de inicio de la producción. Para obtener resultados reproducibles y en el contexto de "messages", "datapoints" y "gpslocations" resulta conveniente una especificación constante como UTC Zulu String, mientras que "now" especifica la marca de tiempo actual de smartCORE como instante de inicio. |
| channels | SÍ | JSON Array of JSON Objects | véase más abajo |
Configuración de un canal (JSON Object dentro de "channels")
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| name | SÍ | STRING | Nombre del canal | ||
| dataType | SÍ | STRING | véase más abajo | Tipo de datos del canal | |
| bufferSize | No | INT | 1 - | "bufferSize" global del módulo | Tamaño del búfer del canal creado |
| function | SÍ | STRING | véase más abajo | Función que se va a producir | |
| ... | parámetros adicionales (véase más abajo) |
Tipos de datos de canal admitidos 'dataType'
Nota: no todos los tipos de datos se pueden utilizar de forma razonable en combinación con todas las especificaciones de función "function".
- string (codificado en UTF-8)
- bytearray
- double
- float
- int64, int32, int16, int8
- uint64, uint32, uint16, uint8
- bool
- gpslocation
Funciones admitidas 'function'
- linear
- sine
- sawtooth
- triangle
- rectangle
- messages
- datapoints
- gpslocations
Funciones matemáticas
Las siguientes funciones son funciones matemáticas
- linear
- sine
- sawtooth
- triangle
- rectangle
Tienen en común los siguientes parámetros
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| amplitude | No | FLOAT | - 0.0 - | 1.0 | La amplitud (o escalado multiplicativo) de la función |
| offset | No | FLOAT | - 0.0 - | 0.0 | El desplazamiento aditivo de la función |
| frequency | No | FLOAT | 0.0 - | 1.0 | La frecuencia de la función [Hz] |
| onOffRatio | No | FLOAT | -1.0 - 1.0 | 0.5 | La relación entre el estado conectado y desconectado de una función rectangular dentro de un período; con valores negativos, la función está desconectada al comienzo de un período |
Función para la producción de mensajes 'messages'
Con esta función se pueden producir, por lo general, varios mensajes especificados de tipo cadena o matriz de bytes. Para ello resulta conveniente establecer el parámetro global "startDate" como UTC Zulu String y, con ello, una base de tiempo absoluta, ya que los instantes de producción de los mensajes también se especifican de forma absoluta.
Se especifica un único JSON Array "messages" de objetos JSON; estos objetos se parametrizan de la siguiente manera:
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| timestamp | SÍ | STRING | Zulu UTC String | Instante de producción absoluto | |
| text | SÍ | STRING | Texto del mensaje (siempre codificado en UTF-8) |
Función para la producción de puntos de datos discretos 'datapoints'
Con esta función se pueden producir, por lo general, varios puntos de datos (muestras) especificados de tipos de datos ESCALARES Y REPRESENTABLES EN JSON. Para ello resulta conveniente establecer el parámetro global "startDate" como UTC Zulu String y, con ello, una base de tiempo absoluta, ya que los instantes de producción de los puntos de datos también se especifican de forma absoluta.
Se especifica un único JSON Array "datapoints" de objetos JSON; estos objetos se parametrizan de la siguiente manera:
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| timestamp | SÍ | STRING | Zulu UTC String | Instante de producción absoluto | |
| value | SÍ | ... | Valor del punto de datos representado en JSON |
Función para la producción de posiciones GPS 3D 'gpslocations'
Con esta función se pueden producir, por lo general, varias posiciones GPS especificadas. Para ello resulta conveniente establecer el parámetro global "startDate" como UTC Zulu String y, con ello, una base de tiempo absoluta, ya que los instantes de producción de las posiciones GPS también se especifican de forma absoluta.
Se especifica un único JSON Array "gpslocations" de objetos JSON; estos objetos se parametrizan de la siguiente manera:
| Nombre del parámetro | Obligatorio | Tipo de datos | Rango de valores razonable | Valor predeterminado | Descripción |
|---|---|---|---|---|---|
| timestamp | SÍ | STRING | Zulu UTC String | Instante de producción absoluto | |
| latitude | SÍ | FLOAT | Latitud | ||
| longitude | SÍ | FLOAT | Longitud | ||
| altitude | SÍ | FLOAT | Altitud geográfica |
Información del módulo
| Información | Valor |
|---|---|
| Autores | optiMEAS GmbH |
| desde smartCORE | 0.1 |
| Tipo de módulo | Producer |
| Dependencias | NINGUNA |