Zum Hauptinhalt springen

Funktionsgenerator Modul "functiongenerator"

Beschreibung

DAS "functiongenerator" MODUL STELLT LEDIGLICH EIN TESTMODUL FÜR INTERNE ZWECKE DAR!

Es dient der zeitlich korrekten Produktion von Kanaldaten.

Die Produktion erfolgt hier anhand kompletter Datenblöcke.

Verwendete Schnittstellen & Protokolle

  • KEINE

JSON-Konfiguration

Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.

Beispielkonfiguration (typische Konfiguration)

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

Globale Modulparameter

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
maximumProductionCountNeinINT-1, 1 --1Maximale Anzahl produzierter Samples (-1 - unendlich)
maximumTimestampDeviationNeinINT-1, 1 --1Maximale Zeitstempelabweichung [ns] ab der der aktuelle smartCORE Zeitstempel als neue Ausgangsbasis für die Produktion aneinandergefügter Blöcke verwendet wird (-1 - es wird IMMER der Startzeitpunkt als Zeitbasis benutzt)
rtPriorityNeinINT20 - 8080Priorität des Produktionsthreads
bufferSizeNeinINT1 -1024Globale Puffergröße an Samples für alle Kanäle
samplesPerBlockNeinINT1 -1Anzahl produzierter Samples innerhalb eines Blocks
timeoutSecondsNeinINT1 -1Takt der Produktion (Spezifikation der Sekunden)
timeoutNanosecondsNeinINT1 -0Takt der Produktion (Spezifikation der Nanosekunden)
startDateNeinSTRINGUTC Zulu String oder "now""now"Startzeitpunkt der Produktio. Für reproduzierbare Ergebnisse und im Kontext von "messages", "datapoints" und "gpslocations" ist eine konstante Spezifikation als UTC Zulu String zweckmäßig, während "now" den aktuellen smartCORE Zeitstempel als Startzeitpunkt spezifiziert.
channelsJAJSON Array of JSON Objectssiehe unten

Konfiguration eines Kanals (JSON Object innerhalb von "channels")

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
nameJASTRINGName des Kanals
dataTypeJASTRINGsiehe untenDatentyp des Kanals
bufferSizeNeinINT1 -globale "bufferSize" des ModulsPuffergröße des angelegten Kanals
functionJASTRINGsiehe untenzu produzierende Funktion
...zusätzliche Parameter (siehe unten)

Unterstützte Kanaldatentypen 'dataType'

Anmerkung: Nicht alle Datentypen sind in Kombination mit allen Funktionsspezifikationen "function" sinnvoll einsetzbar.

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

Unterstützte Funktionen 'function'

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

Mathematische Funktionen

Folgene Funktionen stellen mathematische Funktionen dar

  • linear
  • sine
  • sawtooth
  • triangle
  • rectangle

Sie haben folgende Parameter gemeinsam

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
amplitudeNeinFLOAT- 0.0 -1.0Die Amplitude (bzw. multiplikative Skalierung) der Funktion
offsetNeinFLOAT- 0.0 -0.0Der additive Offset der Funktion
frequencyNeinFLOAT0.0 -1.0Die Frequenz der Funktion [Hz]
onOffRatioNeinFLOAT-1.0 - 1.00.5Das Verhältnis zwischen ein- und ausgeschaltetem Zustand einer Rechtecksfunktion innerhalb einer Periode, bei negativen Werten ist die Funktion zu Beginn einer Periode ausgeschaltet

Funktion zur Produktion von Botschaften 'messages'

Mit Hilfe dieser Funktion lassen sich i.d.R. mehrere spezifizierte String- oder Bytearray-Botschaften produzieren. Hierfür ist es zweckmäßig, den globalen Parameter "startDate" als UTC Zulu String und damit eine absolute Zeitbasis festzulegen, da die Produktionszeitpunkte der Botschaften ebenfalls absolut spezifiziert werden.

Es wird ein einziges JSON Array "messages" von JSON Objekten spezifiziert, diese Objekte sind parametrisiert wie folgt:

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
timestampJASTRINGZulu UTC StringAbsoluter Produktionszeitpunkt
textJASTRINGText der Botschaft (stets UTF-8 kodiert)

Funktion zur Produktion diskreter Datenpunkte 'datapoints'

Mit Hilfe dieser Funktion lassen sich i.d.R. mehrere spezifizierte Datenpunkte (Samples) SKALARER und IN JSON DARSTELLBARER Datentypen produzieren. Hierfür ist es zweckmäßig, den globalen Parameter "startDate" als UTC Zulu String und damit eine absolute Zeitbasis festzulegen, da die Produktionszeitpunkte der Datenpunkte ebenfalls absolut spezifiziert werden.

Es wird ein einziges JSON Array "datapoints" von JSON Objekten spezifiziert, diese Objekte sind parametrisiert wie folgt:

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
timestampJASTRINGZulu UTC StringAbsoluter Produktionszeitpunkt
valueJA...In JSON dargestellter Wert des Datenpunkts

Funktion zur Produktion von 3D GPS Ortsangaben 'gpslocations'

Mit Hilfe dieser Funktion lassen sich i.d.R. mehrere spezifizierte GPS Locations produzieren. Hierfür ist es zweckmäßig, den globalen Parameter "startDate" als UTC Zulu String und damit eine absolute Zeitbasis festzulegen, da die Produktionszeitpunkte der GPS Locations ebenfalls absolut spezifiziert werden.

Es wird ein einziges JSON Array "gpslocations" von JSON Objekten spezifiziert, diese Objekte sind parametrisiert wie folgt:

ParameternameErforderlichDatentypsinnvoller WertebereichDefaultBeschreibung
timestampJASTRINGZulu UTC StringAbsoluter Produktionszeitpunkt
latitudeJAFLOATBreitengrad
longitudeJAFLOATLängengrad
altitudeJAFLOATgeographische Höhe

Modul-Informationen

InformationWert
AutorenoptiMEAS Measurement and Automation Systems GmbH
seit smartCORE0.1
ModultypProducer
AbhängigkeitenKEINE