Skip to main content

Changelog

All notable changes to this project will be documented in this file.

[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
    • #property new attributes timeout=<val> and default=<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.
  • 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
  • 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: 1 enforces <bool> as image and channel datatype
    • "imageType": "bool" enforces "bitlength": 1 as "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/n did not start at a and did not check for range at first
    • timer(): syntax */n did 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 2162^{16} 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