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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| maximumProductionCount | No | INT | -1, 1 - | -1 | Numero massimo di campioni prodotti (-1 - infinito) |
| maximumTimestampDeviation | No | INT | -1, 1 - | -1 | Scostamento 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) |
| rtPriority | No | INT | 20 - 80 | 80 | Priorità del thread di produzione |
| bufferSize | No | INT | 1 - | 1024 | Dimensione globale del buffer in campioni per tutti i canali |
| samplesPerBlock | No | INT | 1 - | 1 | Numero di campioni prodotti all'interno di un blocco |
| timeoutSeconds | No | INT | 1 - | 1 | Cadenza della produzione (specifica dei secondi) |
| timeoutNanoseconds | No | INT | 1 - | 0 | Cadenza della produzione (specifica dei nanosecondi) |
| startDate | No | STRING | stringa 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. |
| channels | SÌ | JSON Array of JSON Objects | vedere sotto |
Configurazione di un canale (JSON Object all'interno di "channels")
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| name | SÌ | STRING | Nome del canale | ||
| dataType | SÌ | STRING | vedere sotto | Tipo di dati del canale | |
| bufferSize | No | INT | 1 - | "bufferSize" globale del modulo | Dimensione del buffer del canale creato |
| function | SÌ | STRING | vedere sotto | funzione 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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| amplitude | No | FLOAT | - 0.0 - | 1.0 | L'ampiezza (ovvero la scalatura moltiplicativa) della funzione |
| offset | No | FLOAT | - 0.0 - | 0.0 | L'offset additivo della funzione |
| frequency | No | FLOAT | 0.0 - | 1.0 | La frequenza della funzione [Hz] |
| onOffRatio | No | FLOAT | -1.0 - 1.0 | 0.5 | Il 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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| timestamp | SÌ | STRING | stringa Zulu UTC | Istante di produzione assoluto | |
| text | SÌ | STRING | Testo 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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| timestamp | SÌ | STRING | stringa Zulu UTC | Istante di produzione assoluto | |
| value | SÌ | ... | 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 parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| timestamp | SÌ | STRING | stringa Zulu UTC | Istante di produzione assoluto | |
| latitude | SÌ | FLOAT | Latitudine | ||
| longitude | SÌ | FLOAT | Longitudine | ||
| altitude | SÌ | FLOAT | altitudine geografica |
Informazioni sul modulo
| Informazione | Valore |
|---|---|
| Autori | optiMEAS GmbH |
| da smartCORE | 0.1 |
| Tipo di modulo | Producer |
| Dipendenze | NESSUNA |