Aller au contenu principal

Module générateur de fonctions « functiongenerator »

Description​

LE MODULE « functiongenerator » N'EST QU'UN MODULE DE TEST À USAGE INTERNE !

Il sert à produire des données de canal avec un horodatage correct.

La production s'effectue ici par blocs de données complets.

Interfaces et protocoles utilisés​

  • AUCUN

Configuration JSON​

La section suivante décrit l'ensemble de la configuration JSON du module et explique chacun des paramètres.

Exemple de configuration (configuration typique)​

{
"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
}
]
}
]
}
}

Paramètres globaux du module​

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
maximumProductionCountNonINT-1, 1 --1Nombre maximal d'échantillons produits (-1 - infini)
maximumTimestampDeviationNonINT-1, 1 --1Écart maximal d'horodatage [ns] à partir duquel l'horodatage smartCORE actuel est utilisé comme nouvelle base pour la production de blocs mis bout à bout (-1 - l'instant de démarrage est TOUJOURS utilisé comme base de temps)
rtPriorityNonINT20 - 8080Priorité du thread de production
bufferSizeNonINT1 -1024Taille de tampon globale en échantillons pour tous les canaux
samplesPerBlockNonINT1 -1Nombre d'échantillons produits dans un bloc
timeoutSecondsNonINT1 -1Cadence de production (spécification des secondes)
timeoutNanosecondsNonINT1 -0Cadence de production (spécification des nanosecondes)
startDateNonSTRINGChaîne UTC Zulu ou "now""now"Instant de démarrage de la production. Pour des résultats reproductibles et dans le contexte de "messages", "datapoints" et "gpslocations", il est judicieux d'utiliser une spécification constante sous forme de chaîne UTC Zulu, tandis que "now" spécifie l'horodatage smartCORE actuel comme instant de démarrage.
channelsOUIJSON Array of JSON Objectsvoir ci-dessous

Configuration d'un canal (objet JSON dans "channels")​

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
nameOUISTRINGNom du canal
dataTypeOUISTRINGvoir ci-dessousType de données du canal
bufferSizeNonINT1 -"bufferSize" global du moduleTaille de tampon du canal créé
functionOUISTRINGvoir ci-dessousfonction à produire
...paramètres supplémentaires (voir ci-dessous)

Types de données de canal pris en charge 'dataType'​

Remarque : tous les types de données ne peuvent pas être utilisés de manière pertinente avec toutes les spécifications de fonction "function".

  • string (codé en UTF-8)
  • bytearray
  • double
  • float
  • int64, int32, int16, int8
  • uint64, uint32, uint16, uint8
  • bool
  • gpslocation

Fonctions prises en charge 'function'​

  • linear
  • sine
  • sawtooth
  • triangle
  • rectangle
  • messages
  • datapoints
  • gpslocations

Fonctions mathématiques​

Les fonctions suivantes sont des fonctions mathématiques

  • linear
  • sine
  • sawtooth
  • triangle
  • rectangle

Elles ont en commun les paramètres suivants

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
amplitudeNonFLOAT- 0.0 -1.0L'amplitude (ou mise à l'échelle multiplicative) de la fonction
offsetNonFLOAT- 0.0 -0.0L'offset additif de la fonction
frequencyNonFLOAT0.0 -1.0La fréquence de la fonction [Hz]
onOffRatioNonFLOAT-1.0 - 1.00.5Le rapport entre l'état activé et l'état désactivé d'une fonction rectangulaire au sein d'une période ; pour des valeurs négatives, la fonction est désactivée au début d'une période

Fonction de production de messages 'messages'​

Cette fonction permet en général de produire plusieurs messages de type chaîne ou bytearray spécifiés. Il est judicieux ici de définir le paramètre global "startDate" sous forme de chaîne UTC Zulu, et donc une base de temps absolue, car les instants de production des messages sont eux aussi spécifiés de manière absolue.

Un unique tableau JSON "messages" d'objets JSON est spécifié ; ces objets sont paramétrés comme suit :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
timestampOUISTRINGChaîne Zulu UTCInstant de production absolu
textOUISTRINGTexte du message (toujours codé en UTF-8)

Fonction de production de points de données discrets 'datapoints'​

Cette fonction permet en général de produire plusieurs points de données (échantillons) spécifiés de types de données SCALAIRES et REPRÉSENTABLES EN JSON. Il est judicieux ici de définir le paramètre global "startDate" sous forme de chaîne UTC Zulu, et donc une base de temps absolue, car les instants de production des points de données sont eux aussi spécifiés de manière absolue.

Un unique tableau JSON "datapoints" d'objets JSON est spécifié ; ces objets sont paramétrés comme suit :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
timestampOUISTRINGChaîne Zulu UTCInstant de production absolu
valueOUI...Valeur du point de données représentée en JSON

Fonction de production de positions GPS 3D 'gpslocations'​

Cette fonction permet en général de produire plusieurs positions GPS spécifiées. Il est judicieux ici de définir le paramètre global "startDate" sous forme de chaîne UTC Zulu, et donc une base de temps absolue, car les instants de production des positions GPS sont eux aussi spécifiés de manière absolue.

Un unique tableau JSON "gpslocations" d'objets JSON est spécifié ; ces objets sont paramétrés comme suit :

Nom du paramètreRequisType de donnéesPlage de valeurs pertinenteDéfautDescription
timestampOUISTRINGChaîne Zulu UTCInstant de production absolu
latitudeOUIFLOATLatitude
longitudeOUIFLOATLongitude
altitudeOUIFLOATAltitude géographique

Informations sur le module​

InformationValeur
AuteursoptiMEAS GmbH
depuis smartCORE0.1
Type de moduleProducer
DépendancesAUCUNE