Skip to main content

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
  • 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 ANTIVALENT and ANTIVALENT2 as alias for a 2-bit unsigned integer.
  • Airpurifier:
    • A customised module for monitoring and controlling air filter units
  • Canbus:
    • The new property keepEFFFlag is used to pass the 2312^{31}-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 231=21474836482^{31} = 2147483648 in fmproducer.

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
    • #version macro 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 ReversedForMsbNumerics to EN61375_MVB
    • The EN61375_MVB schema 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.
  • smartCORE:
    • A new API class ChannelConsumer has been introduced to read smartCORE channels in a type-neutral manner. This simplifies and speeds up plugin development.
  • 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"
  • 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 2312^{31}-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}) ignored p## notation to select the feedback polynom
    • playback() 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
    • #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