Zum Hauptinhalt springen

"systeminfos" smartCORE Modul

Beschreibung

Die Aufgabe des systeminfos Moduls ist es, Information über die Hardware und Software des Gerätes zur Verfügung zu stellen. Die Daten werden zyklisch aktualisiert und in den smartCORE Datenpool geschrieben. So werden sie anderen Modulen zur Verfügung gestellt und können über die Scpi-Schnittstelle von anderen Systemen abgefragt werden. Es werden nur Daten produziert, nicht konsumiert!

JSON-Konfiguration

Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls und die einzelnen Parameter beschrieben werden. Das Modul ist in verschiedene Themenbereiche unterteilt, die Informationen zu unterschiedlichen Geräte-/Systembereiche liefern.

  • hardware
  • filesystem
  • modem
  • cpuinfo
  • device
  • config
  • metainfo
  • network

hardware

SignalDatentypEinheitBeschreibung
BoardMajorVersionint8Hauptversionsnummer der Geräte-Platine
BoardMinorVersionint8Minor-Versionsnummer der Geräte-Platine
BoardVariantInfoStringString mit Infos zur Boardvarainte. Für smartMini z.B. "smartMINI V2.3"
SocVariantInfoStringString mit Infos zur Socvarainte. Für smartMini z.B."TX6S-8035"
"CanBusName"FramesAvailableboolGibt an ob CAN Bus Daten über diese socketcan Schnittstelle empfangen werden.
ActiveCanInterfacesuint16Anzahl aller im System aktiven/konfigurierten CAN Bus Schnittstellen, die auf dem Gerät gefunden wurden. Zur Zeit werden nur CAN Bus Schnittstellen vom Type "socketcan" unterstützt!

filesystem

Bietet Informationen zur "/sde/" und optional zu anderen Partition an.

SignalDatentypEinheitBeschreibung
SDCard.StatusboolSD-Karte ("/sde/") verfügbar u. gemounted oder nicht.
SDCard.FreefloatGBVerfügbarer freier Speicher auf der SD-Karte
SDCard.UsedfloatGBVerbrauchter Speicher auf der SD-Karte
SDCard.SizefloatGBGesamtgröße der SD-Karte.

Es können noch weitere Partitionen in der Konfiguration eingetragen werden, die als Signale produziert werden. Siehe Beispiel-Konfig weiter unten.

modem

Falls das Modem eingeschaltet ist, bietet dieser Bereich Information zur Mobilfunkverbindung des Modems an.

SignalDatentypEinheitBeschreibung
ICCIDStringDie ICCID der SIM-Karte.
RSSIint32dBmReceived Signal Strength Indicator (RSSI ) ist ein Indikator für die empfangene Signalstärke.
ConnectedboolGibt an ob eine Mobilfunkverbindung zur Zeit besteht.
CellIdint32Mobilfunkzellenidentifikation
LACint32Die "Location Area" bezeichnet im Mobilfunk (GSM und UMTS) den aktuellen Aufenthaltsbereich eines Mobiltelefons innerhalb eines Mobilfunknetzes.
MNCint32"Mobile Network Code" wird zur Identifizierung eines GSM-, UMTS- oder TETRA-Funknetzanbieters verwendet.
MCCint32"Mobile Country Code" ist eine festgelegte Länderkennung, die zusammen mit dem Mobile Network Code (MNC) zur Identifizierung eines Mobilfunknetzes verwendet wird.
LevelStringGibt an wie die Empfangsstärke im aktuellen Netz ist. Mögliche Werte sind: "excellent", "good", "fair", "poor" und "no signal"
NetworkStringGibt an welches Mobilfunknetz gerade verwendet wird. Mögliche Werte sind: "lte", "gsm", "3g"
LevelIdint8Gibt an wie die Empfangsstärke im aktuellen Netz ist. Wird hier als Ganzzahl angegeben. Mögliche Werte sind: 4 = "excellent", 3 = "good", 2 = "fair", 1 = "poor" und 0 = "no signal"
NetworkIdint8Gibt an welches Mobilfunknetz gerade verwendet wird. Wird hier als Ganzzahl angegeben. Mögliche Werte sind: 4 = "lte", 3 = "umts", 2 = "gsm", 1 = "cdma" oder 0 = "td-scdma"

cpuinfo

SignalDatentypEinheitBeschreibung
UptimedoublehGesamte Uptime des Systems
Loadfloat%CPU-Auslastung des Systems
AppRamUsagefloat%Speicherverbrauch des smartCOREs
TotalRamUsagefloat%Kompletter Arbeitsspeicher-Verbrauch des Systems.
TotalRamfloatMBGröße des verfügbaren Arbeitsspeicher des Gerätes.
Temperaturfloat°CAktuelle CPU-Temperatur. Wird aus "/sys/class/thermal/thermal_zone0/temp" ermittelt.

device

SignalDatentypEinheitBeschreibung
NamestringGerätename
AppstringName der aktiven App (i.d.R. immer smartCORE)
App_versionstringSoftware-Versionsnummer der App
DevicemanagerstringVersionsnummer des DeviceManagers.
BspstringInfos-String zum bsp (BoardSupportPackage) des Systems.
SerialstringSeriennummer des Gerätes.
AppStartedint64_tsLetzter Startzeitpunkt (UTC) der smartCORE App in Sekunden seit 1970.
AppRuntimeuint64_tminLaufzeit der App in Minuten.
VersionstringKernel- und Compiler-Version aus /proc/version.
ModemEnabledboolGibt an ob das Modem eingeschaltet oder deaktiviert ist.
clock_synchronisedboolGibt an ob die System-Uhr synchronsiert ist.
PowerSupplyVoltagefloatVVersorgungsspannung des Systems. Ist nur auf smartRAIL Systemen verfügbar.
BoardTemperaturefloat°CTemperatur der Geräte-Platine. Nur auf smartRAIL und smartMini Systemen verfügbar.

config

SignalDatentypEinheitBeschreibung
StaticModifiedint64_tsLetztes Änderungsdatum (UTC )der statisch Konfigurationsdatei (smartcore.json) in Millisekunden seit 1970.
DynamicModifiedint64_tsLetztes Änderungsdatum (UTC) der dynamischen Konfigurationsdatei (smartcore_dynamic.json) in Millisekunden seit 1970.
VersionstringFrei zu beschreibendes Textfeld, um eine einfache Versionierung der Konfig zu ermöglichen. Ist das Feld leer oder wird nicht in der Konfig angegeben, wird das Signal nicht übertragen.

metainfo

Stellt alle in der Konfiguration eingetragenen Werte als String-Signale zur Verfügung.

SignalDatentypEinheitBeschreibung
"keys_1"string
...
"keys_N"string

Network

Information zur Netzwerkanbindung und Uploads von Dateien an Cloud-Instanzen. Über den Zeitstempel können die Informationen in Relation gesetzt werden.

SignalDatentypEinheitBeschreibung
Upload.SpeedfloatkBit/sUpload-Geschwindigkeit einer Datei, die an eine Cloud-Instanz geschickt wurde.
Upload.FilesizefloatkByteGröße der Datei, die an eine Cloud-Instanz geschickt wurde.
Upload.CloudIndexint8Index der Cloud-Instanz, an den eine Datei geschickt wurde. Welche Cloud welchen Index besitzt, kann in der Cloud-Konfiguration eingesehn werden.
Upload.ErrorCodeint16ErrorCode der bei fehlerhaften Upload zurück geleifert wird. Liste der Codes: https://doc.qt.io/qt-5/qnetworkreply.html#NetworkError-enum
WWAN.MonthlyTrafficfloatMByteIn Echtzeit aktualisiertes, bidirektional übertragenes Datenvolumen des laufenden (Abrechnungs-)Monats seit einschließlich Rücksetztag, konfigurierbar via Parameter "resetDayOfMonth", defaultmäßig zum Monatsersten
WWAN.TotalMonthlyTrafficfloatMByteBidirektional übertragenes Datenvolumen abgeschlossener (Abrechnungs-)Monate, jeweils aktualisiert zu Beginn des Rücksetztags "resetDayOfMonth"
WWAN.EstimatedDownloadTrafficint64MByte/hIn Echtzeit aktualisierte Schätzung des Download-Datenvolumens bezüglich eines stündlich festgelegten Startzeitpunkts
WWAN.EstimatedUploadTrafficint64MByte/hIn Echtzeit aktualisierte Schätzung des Upload-Datenvolumens bezüglich eines stündlich festgelegten Startzeitpunkts

Komplette Konfiguration

Es gibt keine Must-Have Parameter, daher muss für keinen Parameter ein Eintrag gemacht werden. Für jeden Parameter gibt es einen sinnvollen Default-Wert, damit das Modul ohne größere Kenntnisse der Paramter sofort lauffähig ist.

Minimale Konfig

{
"factory": "systeminfos",
"module": "SystemInfos",
"config": {
}
}

Konfiguration mit allen Parametern

{
"factory": "systeminfos",
"module": "SystemInfos",
"config": {
"timeoutMs": 1000,
"baseModuleNamespace": "System",
"hardware": {
"enabled": true,
"name": "Hardware",
"onChange": true,
"reproductionTimeout": 120
},
"filesystem": {
"enabled": true,
"name": "Filesystem",
"onChange": true,
"reproductionTimeout": 120,
"monitorSdeCard":true,
"partitions":
[
{
"name":"sdi",
"partition":"/sdi/"
}
]
},
"modem": {
"enabled": true,
"name": "Modem",
"onChange": true,
"reproductionTimeout": 120
},
"cpuinfo": {
"enabled": true,
"name": "CPU",
"onChange": false,
"reproductionTimeout": 2
},
"device": {
"enabled": true,
"name": "Device",
"reproductionTimeout": 300
},
"config": {
"enabled": true,
"name": "Config",
"reproductionTimeout": 300,
"versionStr": "Config V1.2"
},
"network": {
"enabled": true,
"name": "Network",
"uploadMinFileSize": 0.8,
"resetDayOfMonth": 1
},
"metainfo": {
"enabled": true,
"name": "Meta",
"reproductionTimeout": 300,
"keys": [
{
"name": "Key1",
"value": "Value1"
},
{
"name": "Decription",
"value": "A new config..."
},
{
"name": "Plant",
"value": "XYZ"
}
]
}
}
}

Beispiel

Aus der obigen Konfiguration ergeben sich folgende Signalname für die einzelnen Bereiche:

  • "SDCard.Size"
  • "System.Filesystem.sdi_used"
  • "System.Hardware.BoardMajorVersion"
  • "System.Modem.RSSI"
  • "System.CPU.Load"
  • "System.Device.Serial"
  • "System.Config.Version"
  • "System.Meta.Key1"
  • "System.Meta.Plant"
  • "System.Network.Upload.Speed"
  • "System.Network.Upload.Filesize"

Parameter-Liste

ParameternameMust-HaveDatentypDefault-WertBeschreibung
timeoutMsNeinint5000Ausführungsintervall des Moduls in Ms
baseModuleNamespaceNeinString"System"Der Basis-Namespace. Mit diesem String beginnt jeder Kanalname im smartCORE des Moduls.
hardwareNeinObjekt-Bietet Infos zu der Gerätehardware
filesystemNeinObjekt-Infos zu der SD-Karte ("/sde/") - Größe, freier und verbrauchter Speicher, SD-Karte verfügbar und gemounted. Des Weiteren können auch noch weitere Partitionen in der Konfig angegeben werden, deren Eigenschaften (Größe, freier und verbrauchter Speicher) dann produziert werden.
modemNeinObjekt-Alle Informationen zur Mobilfunkverbeindung sowie der ICCD-Nr der eingelegten SIM Karte.
cpuinfoNeinObjekt-Infos zur Prozessorauslastung und Speicherverbrauch des Systems.
deviceNeinObjekt-Stellt Versions-Infos der Software auf Gerät (yocto, smartCORE, devicemanager) zur Verfügung sowie Name und Seriennummer des Systems.
configNeinObjekt-Stellt Informationen, wie z.B. letztes Änderungsdatum, zu den Konfigurationsdateien zur Verfügung.
metainfoNeinObjekt-Hier können statische Wertepaare ("Key-Value") eingetragen werden, die als String Signale übertragen und erfasst werden.
networkNeinObjekt-Stellt Information zum Netzwerk zur Verfügung, z.B. Datenraten für Uploads von Osf-Dateien.

Parameter-Objekte

Die Parameter-Objekte "filesystem", "modem", "hardware", "cpuinfo", "network" und "device" haben alle die gleichen Parameter. Ausnahme ist das "device" Objekt, das kein "onlyOnChange" Parameter besitzt. Der Bereich "network" hat besitzt kein "onlyOnChange" und "reproductionTimeout" Parameter, da die Daten eventbasiert erfasst werden.

ParameternameMust-HaveDatentypDefault-WertBeschreibung
enabledNeinbooltrueAktiviert das Modul. Wenn deaktiviert (false) werden keine Signale angelegt und Daten gespeichert.
nameNeinString"Modulname"Name bzw. Namespace des Bereichs.
onChangeNeinbooltrueGibt an ob Werte, sobald sie sich geändernt haben, sofort gespeichert werden sollen oder nicht.
reproductionTimeoutNeinuint120Gibt an in welchem zeitlichen Mindestabstand Werte gespeichert/erfasst werden, auch wenn sie sich nicht geändert haben.

Der Bereich "filesystem" hat weitere Parameter, die nur in diesem Bereich verüfgbar sind:

ParameternameMust-HaveDatentypDefault-WertBeschreibung
monitorSdeCardNeinbooltrueGibt an dass die SdCard ("/sde/" überwacht werden soll. Normalerweise nur auf optiMEAS Geräten vorhanden. Kann dahe rauch deaktiviert werden.
partitionsNeinArray-Kann eine Liste (JSON-Array) mit weiterne Partitionen enthalten, die auf dem System überwacht und erfasst werden sollen.

Der Bereich "network" hat weitere Parameter, die nur in diesem Bereich verüfgbar sind:

ParameternameMust-HaveDatentypDefault-WertBeschreibung
uploadMinFileSizeNeinfloat0.5Gibt die mindest Dateigröße an, ab der ein Datei-Upload berücksichtigt und erfasst wird. Wird in kByte angegeben.

Modul-Informationen/Steckbrief

InformationWert
AutoroptiMEAS Measurement and Automation Systems GmbH
Konsumiert SignaleNein
Produziert SignaleJa
smartCORE Version>= 0.175

Verwendete Schnittstellen, Protokolle & Bibliotheken

  • DeviceManager (Modem-Informationen per Notification)
  • libhal

Unterstützte Systeme

  • smartMini
  • smartMini-S
  • smartRAIL