Changelog
All notable changes to this project will be documented in this file.
[2.10.1] - 2026-05-12
Added
- Tx93 Support
- Diagnostics:
- Monitoring for
<string>patterns
- Monitoring for
- Math:
rampLimit(), which limits the steepness of a signal curve to a maximum gradient.encoder(), which emits a sequence of pulses as an encoder would do for given rotational speed
- Fmproducer:
- Imagetypes
ANTIVALENTandANTIVALENT2as alias for a 2-bit unsigned integer.
- Imagetypes
- Airpurifier:
- A customised module for monitoring and controlling air filter units
- Canbus:
- The new property
keepEFFFlagis used to pass the -bit field (EFF) to the message ID in fmproducer as a signature for 29-bit addressing modes. This allows messages in the range 0..2047 to be distinguished by addressing type (11-bit or 29-bit) and assigned their own specific meaning and interpretation. All 29-bit addresses must then be shifted by the offset in fmproducer.
- The new property
Changed
- Osfwriter
- reenabled property "compressed", default is false Need to be set explicitly by customer in RAIL / BATMON applications.
- Diagnostics:
- intensive code review process and reimplementation, documentation
- No longer any distinction between ErrorStream and value monitoring
- The monitoring type is independent of the data type of the monitored channel
- Math:
- Catalog Version 12
#versionmacro allows to limit the available function catalog to a former version.
- Rawplayback:
- code review process and documentation
- fmDispatcher receives the name of the module instance
- Fmproducer:
- property "addressSpec": renamed enum label
ReversedForMsbNumericstoEN61375_MVB - The
EN61375_MVBschema rejects all configurations that do not comply with the EN/IEC standard, e.g. Little-Endian or the shifting of an image across a byte boundary.
- property "addressSpec": renamed enum label
- smartCORE:
- A new API class
ChannelConsumerhas been introduced to read smartCORE channels in a type-neutral manner. This simplifies and speeds up plugin development.
- A new API class
- Opticloud:
- The ignore list is always expanded to include the patterns
"status.*"and"hidden.*", unless these are explicitly specified in the search pattern. - GPS splitting by default (if not listed in "splitGpsLocationChannels"): remove suffix ".Location" (if exists), append ".Latitude", ".Longitude", ".Altitude"
- The ignore list is always expanded to include the patterns
- Batmon:
- Internally disable AlwaysOn/Off config if less than 15.0 V
Fixed
- Diagnostics:
- Malfunction depending on different data types
- A strictly limited timeout for snapshot and monitored channels, ensuring that messages can be sent promptly
- Fmproducer:
- Corrected incorrect offset calculation for 2- and 4-bit images in the ?MVB? compatibility scheme, e.g. ANTIVALENT2 or ENUM4
- Canbus:
- The -bit (EFF) used as a signature for 29-bit addressing modes was always passed on to the message ID in fmproducer. As a result, 29-bit messages were not recognised or processed. Now, by default, only the address itself is used, without any status flags.
- Opticloud:
- Disabled GPS data transfer as Json-Object (as used in alarm snapshots), not yet supported by opticloud,
- GPS channels are no longer silently removed if they are not listed in "splitGpsLocationChannels", thereby resolving the unusual behaviour caused by empty "splitGpsLocationChannels" array
- Batmon:
- Unassigned alwaysOn/Off limits resulted in incorrect default values and a permanent breach of the spacing rule.
- Send control commands only shortly after measured data has been received to avoid collisions in ATMELs command processing queue
- PIC FW Workaround (2C-bug) for time and voltage parameters.
- Reading parameter set a 2nd time was skipped due to automatic time stamps on parameter data. Command get parameter now repeated up to 3 times on failure, too.
- Math:
bTest()did not pick the designated bit correctly.periodic(..., {mode: prbs})ignoredp##notation to select the feedback polynomplayback()fixed handling of second parameter as vector- `playback
[2.10.0] - 2026-03-10
Added
- smartRAIL V2.2 support
- Baumer:
- New plugin for connecting Baumer's BPIK high-performance bearingless encoder for measurement on wheel axles of rail vehicles
- Uses fmproducer to decode the content of data telegrams
- Mav:
- New plugin for GPS reporting to Hungarian State Railways Magyar Államvasutak
- Math: implements Catalog V11
- status of input channels is signaled to math and readable using isTimeout(), isEmpty(), isConnected(), isDefault()
- isTimeout() returns true, if input channel data is older than specified timeout interval
- isEmpty() returns true if the input channel has not yet received any data; a default may be assigned temporarily
- isConnected() returns true if the input channel is connected to smartCore; otherwise, a default is assigned
- isDefault() returns true if an input variable is forced to the default value
- isError() returns true if a calculated value/expression/variable is in an error state
- typeOf() returns index of a values type
- value() pick latest value from input channel ignoring the timestamp, breaking circular dependencies
- time() returns current time or latest timestamp of input channel
- propagate sequence properties to channel meta data
- experimental:
- playback() playback individual channels from OSF files
- shiftT() adjust timebase of an input channel by a small amount of time
#propertynew attributestimeout=<val>anddefault=<val>- timer() puts a warning into the log, if there's an enclosed automatic declaration in the crontab
- getField() supports reading complex numbers and array/matrix [...] data types
- Floating point NAN/INF values were copied into the Math context and eventually published into smartCORE channels; they are now filtered out.
- GRPC
- add new calls: getRelaisCount, GetHasTerminationResistor (RS485)
- GPS
- added one new signal: TrackCourse
- Added data reduction filter for GPS coordinates and removed unused production parameter
- Batmon
- Added notification of status for PING/ATTN messages
- Setting voltage limits is suspended if doing so would cause the BATMON to be lost at the current operating voltage
- RPC call
requestShutdown({"sender": <str>})to put the Batmon into sleep mode in a controlled manner - Property
"passive": <bool>runs the plugin in read-only mode, in order to follow the BATMON shutdown command - Property
"auxPower": <bool>disables shutdown by smartCORE and the kernel if smartRAIL is not powered by the BATMON (debug) - Property
"debug": <uint32>bitmask to control debug output; the default may change with future versions / stability improvements
- FunctionGenerator:
- added check if both timeout parameters are not 0 to prevent CPU load from being too high
- Ruuvi:
- Add a parameter to set reduceDelta value for channel filters
- Added default channel filter deltareduce of 0.1
- OptiCloud:
- Property
"transmitStatusChannels" : <bool>added to turn on/off STATUS channels about the optiCLoud module - Property:
"debugMask": <uint32>to control detailed debug output. Meaning of bits available on request. - Property:
"debugChannels": [<string>], array with wild-card-patterns to enable data transfer debugging for matching channels. sharedAttributes[]: property:"debug": <bool>, enables data transfer debugging- Explicit auxiliary support points on boolean, integer, or float channels are added and transferred by MQTT a certain period (0.5 to 1.0 sec) before the transfer of all changed telemetry data.
- Property
- fmProducer:
- Property
"byteOrder": <enum>, default for all channels, support for littleEndian, bigEndian and custom byte mapping - Property
"addressSpec": <enum>, default for all channels, support for MVB, DBC, and other addressing schemes channels[]:- property
"byteOrder": <enum>, overrides default - property
"addressSpec": <enum>, overrides default - property
"debug": <bool>, for now: output picking info - property
"noFilter": <bool>to disable any input filtering at all -> performance boost for high speed data streams - Picked Floatingpoint-NAN/INF values were produced into OSF-channels, they are now filtered out
- property
- Property
- osfWriter:
-
Floatingpoint-NAN values were written into the OSF file, they are now filtered out.
Changed
-
- Support for Debian version 13 / Trixie
- valijson: update to version 1.1.0
- fmProducer:
- Major rework of the internal "SimpleBufferPicker" class which is used to pick values out of process image for flexibility, performance and stability (see also section Fixed below)
- FastMessageDispatcher: major rework for performance and stability
- Support for
"double"and"BCD"image types bitlength: 1enforces<bool>as image and channel datatype"imageType": "bool"enforces"bitlength": 1as"float"(32) or"double"(64),"timedate48"(48) or"time64"(64) do with their implicit length, too."dataType": <enum>is obsolete for 99% of use cases. Let the plugin decide in the first place.
- Batmon:
- Minor code changes in notification info
- New status channel 'PluginState' for the new state machine (new enum tags) replaces 'OperatingMode'
- All measured values now published as float rather than double.
- Output signals AboutToShutdown, CriticalPowerStates, LowPowerState, RequestEnergySave changed their behavior slightly, now being more precise in their naming.
- Check for non-unique CAN IDs and report
- TRDP
- Switch to PcapPlusPlus library
- GPS
- Changed default channel name
- Removed status signal, not supported by GPS chip
- GPS-Location output is now a persisted channel, restarting at the last known position after reboot.
- osfWriter
- Always writes to compressed osfz files now avoiding additional read/write-streams on the SD Card for data compression
- Property
"compress": <bool>is ignored but reported, if set to false.
- opticloud
- Major rework of implementation for flexibility, performance, and stability.
- If a splitter is not specified or matching, GpsLocation data is encoded as JSON-Subobject
"<chName>: {"lat": <numeric>, "lon": <numeric>, "alt": <numeric>}"by default rather than being ignored.
- Math
-
Catalog Version and Libraries git-ID is now published into omVersions.ini.
Fixed
-
- alarmmanager:
- Integrity error in the internal list of alarm messages, responsible for ghost messages and incomplete processing -> resolved, continue to monitor
- Missing lifetime control of internal list of alarm messages -> resolved
- fmProducer:
- picking of Timebase48, Time64, BiPolar, UniPolar types optimized for performance and fixed buggy scaling
- picking of String/ByteArray did not respect the configured bitoffset.
- Math:
- Produced samples that were not given by libmathexpressions -> fixed
- Unlinked input channel was orphaned and not handled -> assign const default
- Created time series channels with zero length -> fixed
- Picking variable indexed element from a const vector cVal[idx] or GetCol(cVal, idx) was const, too, and never updated -> fixed.
- decodeTime(): returned with failure on success -> fixed.
- timer(): had 0 as default for month/day filters, now 1
- timer(): syntax
a-b/ndid not start ataand did not check for range at first - timer(): syntax
*/ndid not start at 1 for month/day - assign
=: forwards const and linInterpolation flags - sample(): runs only to t_horizon, not INVAILD_TIME
- trigger(), threshold(), delay(), pulse(), prioEnc() forwarded const inputs though having timing parameters
- OPC/UA Server:
- fix if no channel values exist
- OPC/UA Client:
- fix when disconnecting from server. Nodes list will be recreated and reads the node ids again from server
- fix when reconfigure smartcore and write error message only once to log file
- Batmon:
- Historic battery voltage data was received with mod for mV, limiting the range to 0 .. 65.5V. Now recovering the missing upper bits based on the measured voltage and assumed slow rates of change. This is a workaround for smartIO BATMON FW older than 2.1
- Historic data eventually had time stamps in the future, now filtered out
- Transferring parameter sets to the BATMON no longer causes the device to be lost due to an internal invalidated parameter set. This is a workaround for smartIO BATMON FW older than 2.1.
- Alarm snapshots now contain the correct channel names, identical to those in smartCore
- Ruuvi:
- Fixed wrong data type in schema
- GPS:
- Losing timebase when receiving and producing GPS data.
- Produced NAN values in HDOP, VDOP, PDOP channels -> filtered now.
- Somehow null GPS coordinates bypassed the filters or were inserted in opticloud / osfwriter / math -> fixed now.
- opticloud:
- Handling of multiple matches in channel selection -> first one wins, others ignored
- Handling of wild-mask syntax in channel name patterns -> fixed
- Handling of (automatic) ignore list, if system or hidden channels are explicitly selected in the search pattern.
[2.9.1] - 2025-05-23
Added
-
Support for owa5x
-
Geofencing Added function to specify valid week day for a geofence
-
Dostos2: Added new shared attribute AbfangenHyterese
-
Zedas: Add fault import on alarm creation
Changed
-
AlarmManager: use UUID format V1 (MAC + time based) instead of V4 for compatibility with optiCLOUD internal database
-
optiCLOUD: send alarm uuid without curly brackets
-
optiCLOUD: Added parameter to log alarm mqtt payload to log files
-
Math: Function catalog version 9
-
Math: Improvements and implementation of the following functions: stopwatch(), sFind(), isScalar(), isVector(), isMatrix(), isTensor(), peakHold()
-
Dostos2: Changed status text for decision seven
-
Dostos2: Removed timescatter for starttime in shutdown plan
-
Dosto2: Using default values if two shared attributes are not found in data pool
-
Dosto2: Increased shift logic number
-
SCPI: MODules:FACTories:DOC?: return description from metadata.json and URL to documentation
-
modules: remove MD files (documentation and CHANGELOG)
-
thirdparty/valijson: update to version 1.0.5
Fixed
-
AlarmManager: Fixed error in handling LoseSight alarm messages after reconfiguring smartcore.
-
optiCLOUD: Release finished alarms. Handle Send and Idle states
-
Math: Minor bug fixes in the math core
-
Geofencing: Fixed logical bug
-
Colibri: Fixed bug when reading timestamp in milliseconds.
-
fmproducer, fmudp: fix json syntax errors in metadata.json
-
Zedas: Fix alarm and faults SOAP communication
[2.9] - 2025-03-05
Added
-
TRDP (PREVIEW): NEW module (PREVIEW)
-
Geofencing: Adds option to specify a valid time period for a geofence
-
CAN-Bus: added restart-ms setup parameter
-
System Info: allow WWAN interface name USB (Quectel NCM devices)
-
optiCLOUD: add option to trace every shared attribute change (for debugging)
-
Generic MQTT: add option to suppress null values
-
Generic MQTT: add support for timestamp token to generate ISO 8601 timestamp
-
CAN bus: added check if GPIOs are enabled in CMake settings
-
CAN bus: added option to record rtr and error frames
Changed
-
Core: update valijson to version 1.0.4
-
Dosto2: renaming shared attribute name
-
Dosto2: added two new shared attributes for duration in manual state
-
Dosto2: changes in shift logic 1. and 2. scenario
-
Math (PREVIEW): update libmathexpressions to latest version
-
optiCLOUD: Report all relevant connection state
-
optiCLOUD: shared attribute tracing: mark InitialValue entries
-
Generic MQTT: ignore retained message
-
CAN bus: renamed config parameters and removed unneeded code
-
CAN bus: Documentation updated
Fixed
-
Core: remove unneeded thread move on stopping thread
-
Core: SmartModuleThreaded: Fix dead lock
-
Core: remove unneeded thread move on stopping thread
-
Core: fixed apparent memory leak
-
Core: moving modules to destructing thread before destruction
-
Geofencing: Fix when checking gps-channels during init process
-
Geofencing: Removed unused min satcount channel
-
Geofencing: Removed unused satcount channel
-
Math (PREVIEW): latest fix for #timeless operation in math
-
System Info: do not overwrite the old/existing ICCID with n.a. if no iccid is transmitted
-
optiCLOUD: FIX: gps location not translated in snapshot data
-
optiCLOUD: remove warning when shared attribute message does not contain every channel
-
optiCLOUD: fixed threading related memory leak
-
Generic MQTT: fixed threading-related memory leak
-
SSH Client (PREVIEW): FIX: copy file with invalid destination path to server (now checking isNull(), isValid() and [0] == '\0') MOD: extended warning messages with more information about paths and files
[2.8.1] - 2024-09-12
Added
-
microstrain (PREVIEW): NEW module (PREVIEW)
-
performancereport (PREVIEW): NEW module (PREVIEW)
-
fmproducer: improved configuration robustness by allowing for case-insensitive enum value selection where applicable
Fixed
-
fmproducer : extracting MVB BIPOLAR typed data
-
Remote (PREVIEW) : wildcard handling in channel name specification
-
Remote (PREVIEW) : streaming restart on subsequent ReadSamplesBegin requests
-
Remote (PREVIEW) : module cleanup
-
System Infos : improved MD documentation
-
Uptime : uptime estimation now using the monotonic clock fixing date and time adjustment related issues
[2.8] - 2024-08-05
Added
-
batMON: NEW alarms for low and critical power states and for terminal 15
-
CSV Writer (PREVIEW): NEW module (PREVIEW)
-
Math (PREVIEW): added MD documentation (PREVIEW)
-
ModBus: NEW transport parameter deviceTimeoutInMilliseconds
-
OPC/UA Client (PREVIEW): support for node IDs instead of browsepath
-
OPC/UA Client (PREVIEW): parameter for signal node ID
-
OPC/UA Client (PREVIEW): alias parameter to set channel name
-
optiCLOUD: NEW channel config option useTrueTimestamps
-
OSF Writer: NEW config parameter ignore for ignoring channels to be recorded
-
OSF Writer: NEW CAN bus frame support
-
Remote (PREVIEW): NEW plugin for inter-process communication (PREVIEW)
-
SMS Alarms (PREVIEW): NEW module (PREVIEW)
-
SSH Client (PREVIEW): NEW module (PREVIEW)
-
ZEDAS (PREVIEW): NEW module (PREVIEW)
Changed
-
Math (PREVIEW): using new logging mechanism
-
OPC/UA Client (PREVIEW): using new log message type
Fixed
-
Geofencing: added MD documentation
-
GPS: filtering out locations containing zero coordinates
-
Math (PREVIEW): fixed channel consumption issues wrt delayed samples
-
ModBus: allowing for slave IDs up to 255
-
ModBus: improved logging behavior
-
ModBus: fixed response timeout issues
-
ModBus: reading register blocks now grouped by slaves
-
OPC/UA Client (PREVIEW): added German MD documentation
-
System Info: improved logging behavior
-
SCPI: NEW config parameter within omScpi.ini for restricting remote access
Removed
-
notifier: REMOVED PLUGIN
-
MVB: REMOVED D017M (TCN) support completely
[2.7.1] - 2024-04-29
Added
-
Generic MQTT: NEW string data subscription
-
Generic MQTT: NEW topic config option processOnChangeOnly
-
Generic MQTT: NEW publish channel config option publishLastValue
-
Generic MQTT: NEW payloadHint json-iterator
-
Generic MQTT: NEW facilities for advanced timestamp extraction from subscribed data
Fixed
-
HTTP: corrupt data transmissions
-
SMS: error handling and process value formatting
-
SMS: event queueing issues
[2.7] - 2024-04-04
Added
-
Ecowitt: NEW support for selecting between Ecowitt WS2910 display with WN67 sensor and Ecowitt GW200A gateway with WH65 sensor in simulation
-
Geofencing: timeout check for GPS data
-
Generic MQTT: NEW support for authentication via Azure SAS Token
-
OPC/UA Client (PREVIEW): NEW module (PREVIEW)
-
System Info: NEW disk statistics estimation
Changed
-
REMOVED Debian 11 (bullseye) support
-
batMON: running on current flash configuration parameters when JSON configuration is invalid
-
Ecowitt: NEW user-configurable measurement data channels
-
Geofencing: cleaned up logging
Fixed
-
Diagnostics (PREVIEW): fixed missing alarms
-
Diagnostics (PREVIEW): improved documentation
-
GPS: improved documentation
-
Math (PREVIEW): fixed input timeout handling
-
Math (PREVIEW): fixed persistent storage handling
-
ModBus: allowing for slave address 247
-
Generic MQTT: NEW MQTT client fixing various issues
-
OPC/UA Client (PREVIEW): fixed missing data after reconnect
-
OPC/UA Client (PREVIEW): removed connecting attempts from module initialization phase
-
OPC/UA Client (PREVIEW): checking for configuration type mismatch
-
OPC/UA Client (PREVIEW): module destruction and memory issues
-
optiCLOUD: NEW MQTT client fixing various issues
-
SCPI: identification query response
[2.6] - 2023-12-19
Added
-
CAN bus: changed configuration parameter interface to additionally allow arbitrary selection
-
Diagnostics (PREVIEW): NEW module (PREVIEW)
-
GPS: NEW config parameter speedLimit
-
GPS: NEW config parameter forwardToPort allowing for GPSD port forwarding
-
GPS: NEW config parameter rebootIntervalMs for reboot on broken GPSD connection
-
Math (PREVIEW): NEW module (PREVIEW)
-
Generic MQTT: NEW module (PREVIEW)
-
OPC/UA Client (PREVIEW): Floating-point support
-
OPC/UA Client (PREVIEW): config parameter acceptAllCertificates
-
optiCLOUD: NEW alarm message transmission mechanism (PREVIEW) when config parameter alarmsEnabled is set to true
-
optiCLOUD: implemented status channels
-
optiCLOUD: transmitting device serial number
-
ruuvi: NEW module (PREVIEW)
-
System Info: NEW channels for monthly and total monthly WWAN traffic amount
Changed
-
Accelerometer: updated sensor setup to configure high resolution mode
-
Accelerometer: updated default scale value to 2g
-
HTTP: updated to latest cURL library
-
optiCLOUD: adjusted log file categories
-
optiCLOUD: augmented log messages by module instance index
-
optiCLOUD: increased minimum polling cycle interval to one second
-
System Info: optiMEAS device detection
-
SCPI: integrated SCPI module into smartCORE application
-
SCPI: made start, stop, and restart actions synchronous
Fixed
-
Accelerometer: calculation for axes
-
Accelerometer: removed debug logging
-
batMON: writing historical data to temporary file
-
batMON: processing recently recorded historical data only
-
DBC: fixed automatic signal data type selection
-
GPS: blocking in GPSD reconnect mechanism
-
GPS: no direct reboot on broken GPSD connection
-
ModBus: skipping RS485 configuration on generic serial port
-
ModBus: fixed crash on RS485 configuration
-
ModBus: fixed LSB address calculation
-
ModBus: fixed crash upon invalid channel configuration
-
ModBus: allowing for bitOffsets greater than or equal to 8
-
ModBus: fixed return schema for probeChanel call interface
-
ModBus: allowing for multi-channel configurations based on a single register
-
OPC/UA Client (PREVIEW): node and timestamp handling
-
OPC/UA Client (PREVIEW): crash on module destruction
-
optiCLOUD: fixed naming issues within GPS location channel splitting
-
optiCLOUD: fixed issues with invalid NaN and Inf representations within JSON payloads
-
optiCLOUD: fixed invalid timestamp formatting leading up to connection losses
-
optiCLOUD: fixed value to string conversion
-
optiCLOUD: removed totally enqueued message size limit
-
playback: allowing for empty string production
-
smartIO MVB: fixed MVB port filtering wrt message data, single events and group events
-
smartIO MVB: ignoring slave timeouts for single, group and general events
-
smartIO MVB: interface to MVB messages module
-
SCPI: missing error reporting on failed restart
[2.5] - 2023-06-29
Added
-
Accelerometer: NEW module
-
CAN bus: support for up to four CAN bus interfaces
-
Event counter: NEW module
-
GPS: NEW config parameter posFixModeStabilizationTimeMs
-
HTTP: NEW module
-
OPC/UA client (PREVIEW): NEW module (PREVIEW)
-
OPC/UA Server (PREVIEW): NEW module (PREVIEW)
-
optiCLOUD: NEW MQTT client timing and message amount config parameters
-
optiCLOUD: NEW typical config examples
-
optiCLOUD: NEW configuration option trustStore
-
OSF Writer: NEW support for equidistant channels
-
playback: NEW simulation module
-
rawplayback: NEW simulation module
-
smartIO HP: NEW module
-
SMS: NEW module
Changed
-
NEW combined data reduction filter
-
ModBus: ModBus RTU reconnect on read error
-
optiCLOUD: requesting initial shared attribute values by default
-
optiCLOUD: creating shared attribute channels in a persistent way allowing for multi-cloud support
-
optiCLOUD: renamed configuration parameter pollingIntervalMs (ensuring compatibility)
-
optiCLOUD: adjusted default broker address
-
optiCLOUD: allowing for simple plain channel name specification
Fixed
-
improved documentation
-
batMON: flash parameter reproduction
-
batMON: inoperative state upon failed firmware version query
-
fmproducer: measurement restart crashes
-
GPS: module shutdown issues
-
ModBus: improved stability
-
MVB: measurement restart crashes
-
optiCLOUD: MQTT client construction
-
optiCLOUD: shared attribute request mechanism
-
optiCLOUD: error message on failed RPC topic subscription
-
System Info: reading combined CPU usage for all CPUs
-
System Info: CAN port naming issues
[2.4.1] - 2023-04-13
Added
-
GPS: simple plausibility check of GPS speed over ground
-
Odometer: NEW offset parameter
Changed
-
GPS: GPSD reconnect attempts and GPSD waiting timeout cycles
-
GPS: Reporting first received GPS sentence
-
GPS: Rebooting upon unsuccessful GPSD restart retry
Fixed
-
GPS: GPSD waiting timeout upon reconnect
-
Odometer: checksum calculation
-
Odometer: issues with channel buffer size
-
Odometer: cleaned up logging
[2.4] - 2023-03-16
Added
-
CAN bus: call interface function write for sending CAN messages
-
DBC: NEW CAN multiplex support
-
Geofencing: MD documentation
-
Geofencing: polygon support
-
GPS: location and status notifications (in case of a GPSD connection)
-
Odometer: MD documentation
-
optiCLOUD: logging MQTT build and runtime library information
-
optiCLOUD: channel-specific parameter minimumSendIntervalMs
-
optiCLOUD: channel for MQTT upstream traffic amount estimation
-
optiCLOUD: logging first MQTT message transmission on reconnect and error
-
OSF Writer: NEW refreshIntervalMs configuration parameter for consumer-based sample rewrite
-
OSF Writer: channel for OSF data volume amount estimation
-
SCPI: Added UPTIME:SET action
-
smartIO MVB: configuration parameter programFileString for including base64 encoded FPGA programs
-
smartIO MVB: configuration parameter logEnabled
-
smartIO MVB: logging first MVB frame arrival upon connection and reconnection
-
smartIO MVB: dispatching MVB function codes MVB MASTERSHIP (0x08), MVB GENERAL EVENT (0x09) and MVB DEVICE STATUS (0x0F)
-
System Info: channel for CPU load per thread information
-
System Info: channels for WWAN upstream and downstream traffic amount estimation
-
Uptime: NEW call interface function setCounter (used e.g. via SCPI action UPTIME:SET)
Changed
-
batMON: running upon current flash parameters if invalid JSON configuration parameters are specified
-
DBC: combined handling of channelPrefix and NEW namespace parameters
-
fmproducer: combined handling of channelPrefix and NEW namespace parameters
-
Geofencing: default location id value
-
MVB: combined handling of channelPrefix and NEW namespace parameters
-
Odometer: adjusted default channel names and naming parameters
-
optiCLOUD: sending additional last consumed sample before value change when needed
-
optiCLOUD: renamed configuration parameter reproductionTimeoutMs to refreshIntervalMs (ensuring compatibility)
-
optiCLOUD: removed configuration parameter brokerClientId
-
optiCLOUD: augmenting default clientId by instance index when multiple modules are instantiated
-
OSF Writer: writing additional trusted sample before value change when needed
-
SCPI: writing multi-sample OSF data blocks within SCPI Live View (reducing data amount)
-
smartIO MVB: NEW enabling MVB port and message filtering when in dispatching mode
-
smartIO MVB: deactivated via configuration options portFilterDisabled and messageFilterDisabled
-
smartIO MVB: disabled additional module-specific MVB frame and error log, removing ancient log files
-
Uptime: renamed configuration parameter counterChannel to outputChannel
-
Uptime: removed configuration parameter counterVariable (now set to outputChannel name)
Fixed
-
CAN bus: removed unneeded reproduction parameter from demo configurations
-
DBC: improved performance
-
Geofencing: checking for valid geofence ID
-
Geofencing: cleaned up logging
-
GPS: GPSD server reconnect mechanism
-
ModBus: added slaveId parameter for readWriteSequence call-interface function
-
Odometer: issues with channel namespace separator
-
Odometer: module destruction issues
-
Odometer: added missing data reduction
-
optiCLOUD: fixed reconnect and connection loss detection issues
-
optiCLOUD: refactored and simplified consumption mechanism internals
-
optiCLOUD: refactored and simplified MQTT message transmission mechanism internals
-
optiCLOUD: removed unneeded samplesPerConsume configuration parameter
-
optiCLOUD: fixed send-on-change-only behavior
-
optiCLOUD: renamed MQTT client logging category for easier identification
-
optiCLOUD: fixed SSL server verification issues when RTC was unsynchronized initially
-
optiCLOUD: fixed blocking issues within SSL verification
-
optiCLOUD: improved robustness in subscribing shared attributes and RPC request topics
-
OSF Writer: refactored and simplified consumption mechanism internals
-
OSF Writer: fixed writing empty multi-sample OSF data blocks
-
SCPI: interface unblocking upon unsuccessful statemachine transition
-
SCPI: fixed SYSTEM:VERSION:MINOR query for patched versions
-
smartIO MVB: NEW smartIO restarting behavior upon MVB End-Of-Stream
-
smartIO MVB: NEW configuration parameter eosRestartTimeoutMs (default 60s)
-
smartIO MVB: NEW restarting on connection loss ONLY
-
smartIO MVB: improved smartIO MVB library logging behavior upon restart
-
smartIO MVB: fixed log file splitting within module-specific logging mechanism
-
smartIO MVB: fixed default log file prefix within module-specific logging mechanism
-
smartIO MVB: removed artificial restriction on log file count within module-specific logging mechanism
-
System Info: fixed stability issues
-
Uptime: refactored and simplified consumption mechanism internals
-
Uptime: now using trigger channel timestamps for counter channel samples
-
Uptime: ensuring compatibility with configuration parameter counterChannel
[2.3.1] - 2022-12-10
Added
-
batMON: NEW support for firmwares sending delayed ACK CAN frames
-
batMON: NEW voltageDropDelayTime config parameter (for FW>=2 and PIC FW>=2)
-
batMON: NEW batMON status channel
-
batMON: NEW call interface for shutdown locking (used e.g. with the SMS module)
Changed
-
batMON: NEW shutdown procedure SYSTEM:POWER:HALT (for smartMINI and smartRAIL systems with DeviceManager >= 20.2)
-
batMON: writing firmware versions to omVersions INI file
-
batMON: setting smartIO batMON RTC only once (and optionally to 0ns since epoch when not synced)
-
batMON: integrated shutdown extension mechanism into new shutdown-locking mechanism
Fixed
-
batMON: behavior on short voltage drops
-
batMON: using CAN timestamps for diagnostics channels
-
batMON: shutdown time configuration now wrt the internal offset
-
batMON: initialization of diagnostics channels
-
batMON: CAN frame data formatting within diagnostics output (now HEX encoded)
-
batMON: removed redundant shutdown initialization via CAN command
[2.3] - 2022-08-11
Added
-
batMON: configuration error status channel
-
CAN bus: sample configuration for writing raw CAN data byte arrays to OSF file
-
Ecowitt: NEW module
-
Geofencing: channel representing the geofencing configuration JSON object
-
Geofencing: configuration attributes for radius scaling and offsetting
-
GPS: NEW seamless migration mechanism from serial (aka legacy) GPS modules to gpsd backend based
-
ModBus: option enableInternalDataReduction (default==false)
-
ModBus: Workload channel
-
OSF Writer: tag and namespacesep attributes within OSF header
-
OSF Writer: shifting the last (aka ancient) sample for channels with no production and setting its timestamp as a channel attribute
-
SCPI: Added version queries
-
SCPI: Added TIMEOUT and TIMEOUT? actions and queries for the execution timeout
-
SCPI: Added migration mechanism for internal and external device specific configurations
-
SCPI: Added CONFIG:GET? and CONFIG:SET queries for the persistent configuration
-
System Info: NEW module for obtaining system information
-
System Info: Added board temperature
-
System Info: Added mobile network traffic information
Changed
-
general: introduced standardized default channel names
-
general: added English MD documentation files
-
general: added configuration examples
-
general: improved logging messages
-
batMON: NEW asynchronous configuration mechanism
-
fmproducer: simplified channel configuration utilizing default values
-
fmproducer: Filter chain based data reduction
-
Geofencing: checking for valid GPS signal
-
Geofencing: adjusted default channel names and naming parameters
-
MVB: simplified channel configuration utilizing default values
-
MVB: filter chain-based data reduction
-
optiCLOUD: timestamping of telemetry when clock is synced
-
optiCLOUD: auto-splitting of GPS location channels
-
optiCLOUD: case-insensitive channel name specification
-
optiCLOUD: added ignore config option for excluding channels
-
OSF Writer: implemented zero-parameter configuration
-
OSF Writer: case-insensitive channel name specification
-
System Info: filter chain-based data reduction
-
System Info: using NTP UDP communication for checking the clock synchronization state (Yocto 4 only)
-
System Info: improved configuration examples within MD documentation files
Fixed
-
general: configuration schemas
-
fmproducer: Fixed LONG INT data extraction
-
fmproducer: Support for key-independent messages
-
Geofencing: added missing data reduction
-
Geofencing: cleaned up metadata
-
Geofencing: fixed spelling issues
-
Geofencing: removed invalid trip types from ipd list
-
Geofencing: cleaned up logging
-
GPS: simplified GPS NMEA device configuration
-
ModBus: Advanced ModBus Auto-Address improvements
-
MVB: Fixed LONG INT data extraction
-
optiCLOUD: Removed additional data reduction, fixing missing data transmission
-
optiCLOUD: Fixed crash on invalid broker address
-
optiCLOUD: Removed internal message queueing
-
optiCLOUD: Fixed consumption mechanism on overflow
-
OSF Writer: Fixed trusted sample consumption
-
OSF Writer: Fixed process value (PV) handling
-
OSF Writer: Fixed consumption mechanism on overflow
-
OSF Writer: Renamed ancient utc parameter
-
SCPI: Fixed compound statement execution behavior
-
SCPI: Fixed start, stop, and restart transitions (esp. on external configuration change)
-
SCPI: Fixed CONFIG:SET behavior (esp. wrt. configuration overlays)
-
Uptime: moved persistent file backup to external partition
-
Uptime: Migrated counter channels to timeserieses
Deprecated
-
notifier: DEPRECATED module
-
candbc: DEPRECATED module (use canbus and dbc instead)
[2.2] - 2022-03-25
Added
- Module Change Logs
- NEW Versioning scheme: distinguishing between STABLE, UNSTABLE, and EXPERIMENTAL releases
- batMON: Spike filter for supply voltage, current, and MOSFET temperature
- SysInfos: NEW System Info module providing device-specific information
- Module-specific Change Logs
- SCPI: Queries for documentation and change log retrieval
Fixed
- SCPI: IDN? query
- SCPI: enabled restart within Ready state
- calc, CAN DBC, DBC, smartCALC: potential memory leaks on data reduction filter destruction
- GPS: checking for valid altitude
- ModBus: module shutdown
- OSF writer: disabled writing invalid samples
Changed
- SCPI: disabled schema validation within CONFIG:SET action
[2.1] - 2022-03-10
Added
- Module documentation files (MD)
- OSF writer: including latest sample within every newly generated OSF file
- GPS: NMEA parser error reporting
Fixed
- smartmvb: default log file settings
- GPS: configuration and communication mechanisms
- GPS, optiCLOUD: lat/lon/alt precision within optiCLOUD dashboard transmission
- uptime counter: fixed crash on non-existing trigger channel
- optiCLOUD: Byte Array data transmission
Changed
- SCPI: Revision of SCPI interface (??? TODO: describe what is changed !!!)
- optiCLOUD: non-string data transmission to JSON standard
[0.174] - 2022-02-09
Changed
- SCPI: Revision of SCPI interface
[0.172] - 2022-02-03
Changed
- (classic) MVB: duagon D017M driver removed
[0.171] - 2022-02-01
Added
- Robust reading of configuration and DBC content (autom. removal of '\r')
Fixed:
- Bug fixes data reduction filter
[0.167] - 2022-01-31
Added
- candbc, dbc: advanced data reduction
- smartcalc: new calculation module
Changed:
ModBus: removal of BEKO Log specific HW Init
[0.165] - 2022-01-07
Added
- batMON: Data
- gpsd: New gpsd client module
- Completion of Cmake support
[0.164] - 2021-12-17
Added
- GPS/SCPI: New diagnostic functions Location/Date and log outputs
- Geofencing: additional parameters
Changed:
- Serialbus: cleanup
Fixed:
- smartIO MVB module: Error corrections
- OSF_UDP_Streamer: bugfix
- Odometer: fixed parameter handling
[0.161] - 2021-12-15
Added
- Improvements in smartCORE log output
- Provision of GPS information
- in the header section of OSF files
- via the SCPI interface
- via the smartCORE call interface
Fixed:
- opticloud plugin:
- Bug fix regarding empty credentials for the dashboard
[0.157] - 2021-12-14
Added
- Provision SIM card number / mobile signal strength
- opticloud plugin:
- Ability to use device specific credentials for dashboard
- Use of device serial number as default credentials for dashboard
Changed:
- scpi plugin:
- Rework
Fixed:
-
opticloud plugin:
- Reconnect mechanism
- SSL server verification
-
smartmvb plugin:
- Bug fixing
[0.139] - 2021-10-21
Changed:
- smartmvb plugin:
- Rework