Skip to main content

Architecture

This section introduces the components of the smartCORE edge device software.

Architecture

The smartCORE software is based on a producer-consumer-based data flow architecture. Here, producing modules (sources) are connected to consuming modules (sinks) via channels managed in smartCORE. These modules can be configured or parameterized by the user in a variety of ways.

The modules are normally adapted to the user's task by means of measurement configuration. The measurement configuration is stored in the configuration file

/sdi/config/smartcore_dynamic.json

is stored on the measuring device and is retained, especially when upgrading both smartCORE and the operating system.

Module types

From a software perspective, a basic distinction is made between producing and consuming modules, whereby

  • producing modules create channels and write data samples to these channels
  • consuming modules read data samples from channels
info

In addition to purely consuming and purely producing modules, there is also a whole series of modules that are both producers and consumers to enable bidirectional communication.

From the user's point of view, however, it makes more sense to categorize modules according to their functionality. Categorization into application-related and user-related modules has proven to be useful. While application-related modules ensure communication with the measurement/control technology side, user-related modules are (at least indirectly) responsible for communication with the user.

ModuleDescription
accelerometerInterface to the accelerometer
batmoninterface to batMON
canbusInterface to CAN bus interfaces for communicating raw CAN bus data
dbcInterpreter/decoder for extracting channel data from raw CAN bus data using a DBC specification
fmconsumerEncoder of channel data for providing raw data that can be sent via external interfaces, e.g. CAN bus
fmproducerInterpreter/decoder for extracting channel data from raw data that can be read by external interfaces such as CAN bus or MVB
fmudpUDP interface that provides interpretable raw data (only in read direction)
gpsInterface to GPS (GPSD service either on the device or on the Internet)
hwioInterface for mapping digital inputs and outputs as well as LEDs of the measuring device
modbusinterface to the ModBus
smiohpInterface to optiMEAS smartIO High Performance Hardware
ModuleDescription
mvbInterface for reading out the MVB via UDP protocol, as provided by duagon D503
smartmvbInterface for reading out the MVB via optiMEAS smartIO MVB hardware
ModuleDescription
csvwriterModule for creating CSV files from channel data (incl. various options for triggered recording)
diagnosticsModule for monitoring channels and creating alarms based on this data
eventcounterevent counter
geofencingModule for geofencing tasks
httpModule for communication via HTTP requests
mathModule for mathematical processing of channel data in channel data
mqttModule for communication via MQTT
odometerModule for distance measurement
opticloudModule for communication with the optiMEAS optiCLOUD
osfudpstreamerModule that sends channel data in the form of an OSF data stream via UDP
osfwriterModule that writes channel data to files in the form of an OSF data stream
smsModule that sends an SMS in response to a trigger signal
smsalarmsModule that sends an SMS in response to a new alarm message
sshModule for communication via SFTP and SSH
systeminfosModule for providing system information about the measuring device
uptimeModule for recording meter readings (e.g. the operating hours of a system)

Modules that can be used in both application and user contexts

ModuleDescription
opcuaclientClient for communication with OPC/UA servers
opcuaserverServer for communication with OPC/UA clients
remoteModule that provides bidirectional channel data communication via IPC

Modules for test scenarios

ModuleDescription
functiongeneratorFunction generator for the production of channel data
playbackModule for the synthetic production of channel data using a playback protocol