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
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.
Application-related modules
Module | Description |
---|---|
accelerometer | Interface to the accelerometer |
batmon | interface to batMON |
canbus | Interface to CAN bus interfaces for communicating raw CAN bus data |
dbc | Interpreter/decoder for extracting channel data from raw CAN bus data using a DBC specification |
fmconsumer | Encoder of channel data for providing raw data that can be sent via external interfaces, e.g. CAN bus |
fmproducer | Interpreter/decoder for extracting channel data from raw data that can be read by external interfaces such as CAN bus or MVB |
fmudp | UDP interface that provides interpretable raw data (only in read direction) |
gps | Interface to GPS (GPSD service either on the device or on the Internet) |
hwio | Interface for mapping digital inputs and outputs as well as LEDs of the measuring device |
modbus | interface to the ModBus |
smiohp | Interface to optiMEAS smartIO High Performance Hardware |
Application-related modules for rail vehicles
Module | Description |
---|---|
mvb | Interface for reading out the MVB via UDP protocol, as provided by duagon D503 |
smartmvb | Interface for reading out the MVB via optiMEAS smartIO MVB hardware |
User-related modules
Module | Description |
---|---|
csvwriter | Module for creating CSV files from channel data (incl. various options for triggered recording) |
diagnostics | Module for monitoring channels and creating alarms based on this data |
eventcounter | event counter |
geofencing | Module for geofencing tasks |
http | Module for communication via HTTP requests |
math | Module for mathematical processing of channel data in channel data |
mqtt | Module for communication via MQTT |
odometer | Module for distance measurement |
opticloud | Module for communication with the optiMEAS optiCLOUD |
osfudpstreamer | Module that sends channel data in the form of an OSF data stream via UDP |
osfwriter | Module that writes channel data to files in the form of an OSF data stream |
sms | Module that sends an SMS in response to a trigger signal |
smsalarms | Module that sends an SMS in response to a new alarm message |
ssh | Module for communication via SFTP and SSH |
systeminfos | Module for providing system information about the measuring device |
uptime | Module for recording meter readings (e.g. the operating hours of a system) |
Modules that can be used in both application and user contexts
Module | Description |
---|---|
opcuaclient | Client for communication with OPC/UA servers |
opcuaserver | Server for communication with OPC/UA clients |
remote | Module that provides bidirectional channel data communication via IPC |
Modules for test scenarios
Module | Description |
---|---|
functiongenerator | Function generator for the production of channel data |
playback | Module for the synthetic production of channel data using a playback protocol |