Passa al contenuto principale

Modulo generatore di funzioni "functiongenerator"

Descrizione​

IL MODULO "functiongenerator" È SOLTANTO UN MODULO DI TEST PER USO INTERNO!

Serve alla produzione temporalmente corretta di dati dei canali.

La produzione avviene qui per blocchi di dati completi.

Interfacce e protocolli utilizzati​

  • NESSUNO

Configurazione JSON​

Nella sezione seguente viene descritta l'intera configurazione JSON del modulo e vengono illustrati i singoli parametri.

Configurazione di esempio (configurazione tipica)​

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

Parametri globali del modulo​

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
maximumProductionCountNoINT-1, 1 --1Numero massimo di campioni prodotti (-1 - infinito)
maximumTimestampDeviationNoINT-1, 1 --1Scostamento massimo del timestamp [ns] a partire dal quale il timestamp smartCORE attuale viene utilizzato come nuova base di partenza per la produzione di blocchi concatenati (-1 - come base temporale viene utilizzato SEMPRE l'istante di avvio)
rtPriorityNoINT20 - 8080Priorità del thread di produzione
bufferSizeNoINT1 -1024Dimensione globale del buffer in campioni per tutti i canali
samplesPerBlockNoINT1 -1Numero di campioni prodotti all'interno di un blocco
timeoutSecondsNoINT1 -1Cadenza della produzione (specifica dei secondi)
timeoutNanosecondsNoINT1 -0Cadenza della produzione (specifica dei nanosecondi)
startDateNoSTRINGstringa UTC Zulu o "now""now"Istante di avvio della produzione. Per risultati riproducibili e nel contesto di "messages", "datapoints" e "gpslocations" è opportuna una specifica costante come stringa UTC Zulu, mentre "now" specifica il timestamp smartCORE attuale come istante di avvio.
channelsSÌJSON Array of JSON Objectsvedere sotto

Configurazione di un canale (JSON Object all'interno di "channels")​

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
nameSÌSTRINGNome del canale
dataTypeSÌSTRINGvedere sottoTipo di dati del canale
bufferSizeNoINT1 -"bufferSize" globale del moduloDimensione del buffer del canale creato
functionSÌSTRINGvedere sottofunzione da produrre
...parametri aggiuntivi (vedere sotto)

Tipi di dati di canale supportati 'dataType'​

Nota: non tutti i tipi di dati possono essere utilizzati in modo sensato in combinazione con tutte le specifiche di funzione "function".

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

Funzioni supportate 'function'​

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

Funzioni matematiche​

Le seguenti funzioni sono funzioni matematiche

  • linear
  • sine
  • sawtooth
  • triangle
  • rectangle

Hanno in comune i seguenti parametri

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
amplitudeNoFLOAT- 0.0 -1.0L'ampiezza (ovvero la scalatura moltiplicativa) della funzione
offsetNoFLOAT- 0.0 -0.0L'offset additivo della funzione
frequencyNoFLOAT0.0 -1.0La frequenza della funzione [Hz]
onOffRatioNoFLOAT-1.0 - 1.00.5Il rapporto tra lo stato acceso e quello spento di una funzione rettangolare all'interno di un periodo; con valori negativi la funzione è spenta all'inizio di un periodo

Funzione per la produzione di messaggi 'messages'​

Con questa funzione è in genere possibile produrre più messaggi di tipo stringa o bytearray specificati. A tale scopo è opportuno impostare il parametro globale "startDate" come stringa UTC Zulu e quindi definire una base temporale assoluta, poiché anche gli istanti di produzione dei messaggi vengono specificati in modo assoluto.

Viene specificato un unico JSON Array "messages" di oggetti JSON; questi oggetti sono parametrizzati come segue:

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
timestampSÌSTRINGstringa Zulu UTCIstante di produzione assoluto
textSÌSTRINGTesto del messaggio (sempre codificato UTF-8)

Funzione per la produzione di punti dati discreti 'datapoints'​

Con questa funzione è in genere possibile produrre più punti dati (campioni) specificati di tipi di dati SCALARI e RAPPRESENTABILI IN JSON. A tale scopo è opportuno impostare il parametro globale "startDate" come stringa UTC Zulu e quindi definire una base temporale assoluta, poiché anche gli istanti di produzione dei punti dati vengono specificati in modo assoluto.

Viene specificato un unico JSON Array "datapoints" di oggetti JSON; questi oggetti sono parametrizzati come segue:

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
timestampSÌSTRINGstringa Zulu UTCIstante di produzione assoluto
valueSÌ...Valore del punto dati rappresentato in JSON

Funzione per la produzione di posizioni GPS 3D 'gpslocations'​

Con questa funzione è in genere possibile produrre più GPS Location specificate. A tale scopo è opportuno impostare il parametro globale "startDate" come stringa UTC Zulu e quindi definire una base temporale assoluta, poiché anche gli istanti di produzione delle GPS Location vengono specificati in modo assoluto.

Viene specificato un unico JSON Array "gpslocations" di oggetti JSON; questi oggetti sono parametrizzati come segue:

Nome del parametroObbligatorioTipo di datiIntervallo di valori sensatoDefaultDescrizione
timestampSÌSTRINGstringa Zulu UTCIstante di produzione assoluto
latitudeSÌFLOATLatitudine
longitudeSÌFLOATLongitudine
altitudeSÌFLOATaltitudine geografica

Informazioni sul modulo​

InformazioneValore
AutorioptiMEAS GmbH
da smartCORE0.1
Tipo di moduloProducer
DipendenzeNESSUNA