Saltar al contenido principal

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ámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
maximumProductionCountNoINT-1, 1 --1Número máximo de muestras producidas (-1 - infinito)
maximumTimestampDeviationNoINT-1, 1 --1Desviació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)
rtPriorityNoINT20 - 8080Prioridad del hilo de producción
bufferSizeNoINT1 -1024Tamaño global del búfer en muestras para todos los canales
samplesPerBlockNoINT1 -1Número de muestras producidas dentro de un bloque
timeoutSecondsNoINT1 -1Ciclo de la producción (especificación de los segundos)
timeoutNanosecondsNoINT1 -0Ciclo de la producción (especificación de los nanosegundos)
startDateNoSTRINGUTC 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.
channelsSÍJSON Array of JSON Objectsvéase más abajo

Configuración de un canal (JSON Object dentro de "channels")​

Nombre del parámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
nameSÍSTRINGNombre del canal
dataTypeSÍSTRINGvéase más abajoTipo de datos del canal
bufferSizeNoINT1 -"bufferSize" global del móduloTamaño del búfer del canal creado
functionSÍSTRINGvéase más abajoFunció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ámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
amplitudeNoFLOAT- 0.0 -1.0La amplitud (o escalado multiplicativo) de la función
offsetNoFLOAT- 0.0 -0.0El desplazamiento aditivo de la función
frequencyNoFLOAT0.0 -1.0La frecuencia de la función [Hz]
onOffRatioNoFLOAT-1.0 - 1.00.5La 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ámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
timestampSÍSTRINGZulu UTC StringInstante de producción absoluto
textSÍSTRINGTexto 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ámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
timestampSÍSTRINGZulu UTC StringInstante de producción absoluto
valueSÍ...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ámetroObligatorioTipo de datosRango de valores razonableValor predeterminadoDescripción
timestampSÍSTRINGZulu UTC StringInstante de producción absoluto
latitudeSÍFLOATLatitud
longitudeSÍFLOATLongitud
altitudeSÍFLOATAltitud geográfica

Información del módulo​

InformaciónValor
AutoresoptiMEAS GmbH
desde smartCORE0.1
Tipo de móduloProducer
DependenciasNINGUNA