Version 4.xx
[4.0.56] - 2025-05-19
This is a Quality Assured Release.
Note: the Ubuntu 18.04 binary distribution package is deprecated
We are sunsetting the distribution of Ubuntu 18.04 packages with this release. With the next release, we will provide Ubuntu 24.04 binary distribution packages instead.
Note: we will change our versioning scheme to semantic versioning
Please read the full notice in the Semantic Versioning
page in the documentation.
Fixed
Three static methods which are part of the C++ (Hourglass) API implementation and passed as callbacks to the C-API, did not use the correct calling convention if the default calling convention wasn’t
__cdecl
on Windows. This has been remedied.SilKitDemoSimStepAsync
did not work as intended, due to the predicate lambda capturing by-value instead of by-reference.During hop-on of another participant, participants will send the current simulation step instead of the next simulation step, if they are inside of their simulation step.
Changed
The participant configuration
TcpNoDelay
now defaults to true. Please note, that this has performance implications. On Linux platforms this improves throughput, and latency in particular when used in combination withTcpQuickAck: true
.Updated third party libraries -
asio
to1.30.2
-fmt
to11.1.4
-spdlog
to1.15.2
Add the
myst_parser
extension to documentation build, which allows using Markdown for documentation pagesAutomatically ‘upgrade’ the
Doxyfile
usingdoxygen -u
, which avoids warnings when with differentdoxygen
versions across distibutionsCAN XL: Update documentation, tests, and the demo to (better) reflect that we support it
Added
The documentation now contains a page that explains the upcoming new versioning scheme.
Experimental ‘other-simulation-steps-completed’ API
[4.0.55] - 2025-01-31
This is a Quality Assured Release.
Changed
Important
SilKit_LinDataLengthUnknown
in the C headerLin.h
used to be aconst
global, which could cause linker issues if the header file is used in multiple translation units in the same binary.It has been turned into a
#define
, like all the other constants in the C header files.The symbol was not present in the dynamic symbol table of the
SilKit.dll
/.so
, so this change does not break the ABI of the shared libraries.Aligned C API error return codes
SilKit_ReturnCode_<ERRORTYPE>
and SIL Kit specific exceptions. All exceptions are now forwarded through the hourglass and thrown in the C++ API. For users of the C API, a more detailed error handling is possible with the extended error return codes.Before, all execptions ended up as
SilKitError
on the user side.Overhaul of SIL Kit demos
Restructured into categories communication, api and tools
Communication demos: Can, Ethernet, Lin, Flexray, PubSub and Rpc demos
These demos are split into one participant per executable
Basic SIL Kit features are implemented in a base class used by the demos
No command line arguments needed for basic execution (with time synchronization and coordinated start)
Useful command line arguments are provided for all demos (e.g. rename the participant or network, logging, execution modes)
The old
--async
mode of the demos now is accessible by--async --autonomous
(or short form-aA
)
Added
New demos for basic API usage
SimpleCan
Orchestration demos
Demos: Sample participant configurations
Fixed
Registry: Block all attempts to connect with an already present participant name, not just the first.
CMake: When demos are installed into the
bin
directory under the installation prefix, their RPATH will be set such that they are able to find thelibSilKit[d].so
. This is the same RPATH value as the utility executables.System Monitor: Show all participants, not just the ones that joined during the monitors execution.
[4.0.54] - 2024-11-11
Added
Override the labels of
DataPublisher
,DataSubscriber
,RpcClient
, andRpcServer
instances through the participant configuration, extending the already possible override of the topic / function name.
Changed
Changed log messages for controller and participant creation, message tracing, system state tracker and time sync service
Revised the documentation (demos, troubleshooting, doxygen output, file structure)
Improved platform/compiler/architecture detection
Fixed
Failure to configure and package cross-builds to QNX on Windows
[4.0.53] - 2024-10-11
Changed
Harmonized user interface of commandline utilities Registry, Monitor, and SystemController.
All utilities listen to OS signals to detect termination request.
Old: Monitor and Registry wait for the user to press
[Enter]
to shutdown.New: Monitor and Registry can be requested to shutdown via
[Ctrl]-[C]
. Registry option-s, --use-signal-handler
is deprecated.
All utilities no longer require user interaction.
Old: Registry, Monitor and System Controller prompt the user by default to press
[Enter]
to end process after shutdown.New: All utilities terminate without prompting for user input. SystemController option
-ni, --non-interactive
is deprecated.
The Logger now adds the participant’s name (as a normalized string) to the user-defined
LogName
for file sinks.Implemented the union (de-)serialization stubs in the
silkit/util/serdes
headers.
Fixed
If using the
SimStepHandlerAsync
, the log message that reports the end of the simulation step is now printed after the call toCompleteSimulationStep
.Fixed an issue with the NetSim API that caused an exception when used with log level
trace
.
[4.0.52] - 2024-09-02
Fixed
Fixed crash in
sil-kit-registry
utility that happened when the dashboard is enabled, but not actually available.
Added
Message aggregation for simulations with time synchronization. Accessible via the experimental section in the Participant Configuration (Experimental | TimeSynchronization | EnableMessageAggregation).
[4.0.51] - 2024-07-18
Added
Couple the virtual time to the wall clock. An animation factor can be configured that describes how fast the simulation is allowed to run relative to the local wall clock. Accessible via a new experimental section in the Participant Configuration (Experimental | TimeSynchronization | AnimationFactor).
Event flow documentation for the Network Simulation API.
Registry (Dashboard): Automatically use bulk-endpoint if it is available
Configuration option for structured logging in JSON format
[4.0.50] - 2024-05-15
This is a Quality Assured Release.
Fixed
Fixed crash in
sil-kit-system-controller
utility.Fixed source directory contents in
.zip
release archives.
[4.0.49] - 2024-05-08
Changed
SystemController utility: Listens for OS signals to end simulation: Press
[Ctrl]-[C]
(SigInt) instead of[Enter]
to end simulation. Better reports about the current system state in case of Error.
Fixed
Valid state transition from
Aborting
toShutdown
no longer emits a warning message.
Added
Participant Configuration: Support include semantics in participant configuration files/strings.
Network Simulation: Experimental API for custom simulation of CAN, LIN, Ethernet and FlexRay networks.
[4.0.48] - 2024-04-15
Changed
We now use a linker script to limit the exported symbol visibility to the public C API and some legacy C++ symbols.
The
--enable-dashboard
CLI parameter for the registry is now a no-op. It is now activated when using--dashboard-uri
or via the registry configuration.
Fixed
Fix MinGW build.
Various fixes for dashboard integration.
Added
Man pages for linux.
All public struct members are now included by default in the documentation.
[4.0.47] - 2024-03-01
Fixed
Fixed building from the packaged sources (
SilKit-Source
).LIN Demo: Removed duplicate call to StartLifecyle when run as the LIN slave
[4.0.46] - 2024-02-27
Fixed
Added the
*.manifest
files to the source distribution. Building from theSilKit-Source
directory in the distributed.zip
files was broken.Update
yaml-cpp
to version 0.8.0 to fix linker errors caused by a missing symbol.The system controller utility now logs parts of the command line output using the logger object of the participant.
Added
Added a
--log
option to the system controller utility which cannot be used together with the--configuration
option. It provides a shortcut to set the log level of the utility.Utilities: prepare the registry for handling multiple simulations
Added a licensecheck to prevent source files without a license header
[4.0.45] - 2024-02-06
Fixed
Registry failed to start correctly, if the dashboard is enabled, but the registry is letting the system determine the listening port, e.g., when using a URI like
silkit://localhost:0
.
Changed
Add links to API sections in the documentation overview
Added
RPC usage example with lifecycle
Windows: Utilities and demos are now compiled with a manifest that sets the active codepage to UTF-8. The required commands to change the output codepage of the Windows console in
cmd
or PowerShell are documented in a new FAQ entry.
[4.0.44] - 2024-01-22
Fixed
Changing the TCP send and receive buffer size failed on Windows
Added
Links to related SIL Kit projects in documentation and github Readme
[4.0.43] - 2023-12-12
Fixed
Dashboard can be enabled using CLI arguments
Demos did not terminate when simulation is aborted (AbortSimulation)
Fix order of debug log message parameters
[4.0.42] - 2023-11-29
Changed
LIN Demo: Adapted the schedule of the LIN Master and disallowed sending while in wrong controller state.
[4.0.41] - 2023-11-28
Fixed
Potential deadlock when switching to virtual time-synchronization while replay is in use
[4.0.40] - 2023-11-27
Added
Allow configuration of the connection timeout (
Middleware/ConnectTimeoutSeconds
)
Changed
Improved the documentation of Data Pub/Sub controllers
Improved the documentation of RPC controllers
Fixed
The LIN demo does not skip the first entry (sending frame 16) on all but the first iteration through the schedule anymore.
The name of the domain-socket used by the registry will use the hostname passed in the listen URI, not the resolved IP address (if any), for generating the name of the domain-socket.
When mixing autonomous participants without time-synchronization, and participants with time-synchronization, the timestamps for messages received before the virtual time is started, is now the ‘invalid’ timestamp value, normally used by participants without time-synchronization.
Reworked the pause/continue logic such that it pauses the virtual time synchronization without blocking the I/O thread.
[4.0.39] - 2023-11-14
Fixed
Replaced remaining mentions of integrators with users.
Added
Usage examples for tracing and replay.
Timeouts per connection attempt.
Two-sided connection establishment: Allow direct connections, even if connections are only possible in one direction.
[4.0.38] - 2023-11-02
Fixed
The dashboard now handles AbortSimulation.
The dashboard resolves the registry IP address if needed.
Added
Reintroduced build requirements to documentation
Changed
Consolidate SIL Kit tests into four executables
[4.0.37] - 2023-10-17
Changed
Reworked the documentation on Virtual Time Synchronization
The documentation of the demo section now refers to the pre built Vector SIL Kit packages and not to a source build.
[4.0.36] - 2023-09-19
Added
Documentation on
DashboardUri
Fixed
Fixed misbehavior of the sil-kit-system-controller in interactive mode on user input:
The sil-kit-system-controller now triggers a Stop() in SystemState::Running or SystemState::Paused.
The sil-kit-system-controller only triggers AbortSimulation when not SystemState::Running, SystemState::Paused, SystemState::Shutdown or SystemState::Aborting.
Changed
Performance improvement of the internal serialization
The final state handling of the sil-kit-system-controller in interactive mode on user input has changed:
Old: The sil-kit-system-controller triggered AbortSimulation if the finalState was not received after 5s.
New: The sil-kit-system-controller retries receiving the finalState 3x5s. If this fails, the sil-kit-system-controller triggers AbortSimulation (if not already happened) and tries receiving the finalState 3x5s again. If this fails, the sil-kit-system-controller just terminates.
[4.0.35] - 2023-09-04
Added
Memory management documentation introduced.
Integration tests for communication in the stop/shutdown/abort handlers.
Changed
When building the SIL Kit documentation, the sphinx build command is no longer called in a pipenv.
Fixed
Ensured that calling
ISystemController::AbortSimulation()
does not lead to the system controller terminating prior to other participants receiving its abort message.Ensure that userContext field for external CanFrameTransmitEvents is always null.
Fixed warning in VS2017 (x86) build
[4.0.34] - 2023-08-21
Changed
Behavior change of
ParticipantState::Error
Old: Several situations could lead to an
ParticipantState::Error
before the user calledStartLifecycle()
Reception of an invalid
WorkflowConfiguration
Remote participant disconnected
Reception of
AbortSimulation
New:
ParticipantState::Error
should only be reached afterStartLifecycle()
was calledReception of a WorkflowConfiguration is not validated before
StartLifecycle()
A disconnected remote participant is only transitioned to
ParticipantState::Error
if he had a started LifecycleReaction on
SystemCommang::AbortSimulation
is deferred beforeStartLifecycle()
(see below)
Behavior change of
SystemCommand::AbortSimulation
Old: Reception of
AbortSimulation
beforeStartLifecycle()
led toParticipantState::Error
New: Reception of
AbortSimulation
beforeStartLifecycle()
is firstly ignored. A later call toStartLifecycle()
then directly leads to an abort (transition toParticipantState::Aborting
, calling theAbortHandler
)
clang presets in
CMakePresets.json
now have the clang version in their namesAdded an internal barrier between
ParticipantState::Shutdown
and setting the final state promise. This ensures that the participant state updates are all transmitted while shutting down.Revised log messages when shutting down / disconnecting participants
Graceful, participant has lifecycle: “Participant <participantName> has disconnected after gracefully shutting down”,
Not graceful, participant has lifecycle: “Participant <participantName> has disconnected without gracefully shutting down.”
Registry shutdown: “Connection to SIL Kit Registry was lost - no new participant connections can be established.”
Participant without lifecycle: “Participant <participantName> has disconnected.”
Fixed
Made simulation time stop for all coordinated participants when one coordinated participant disconnects ungracefully
[4.0.33] - 2023-08-07
Added
New experimental extension of the LIN API that allows a user to send frame headers and respond to them without setting up a static configuration beforehand.
Added link to FMU importer in Readme.md
Changed
Restructured the documentation to have separate sections for overview. It is now divided into an overall introduction, a developer guide, and a user guide.
Removed internal use of exceptions for failing connections to the registry if another connection mechanism succeeded.
Fixed
Fixed missing entry of RegistryAsFallbackProxy in YAML schema.
[4.0.32] - 2023-07-19
This is a Quality Assured Release.
Fixed
Ensure that the registry rejects a connecting participant if a participant with the same name is already connected.
[4.0.31] - 2023-07-10
Added
Improved Lifecycle and TimeSyncService features:
Full support for Operation Mode Autonomous with TimeSyncService including hopping onto / leaving a running simulation
Abort simulation in case Coordinated participants want to join a running simulation
Abort simulation in case an Autonomous with TimeSyncService sees an incompatible participant
Extended integration tests for communication ready guarantees
Fixed
Fixed a bug in internal barriers where in-between connecting participants could break the communicaiton guarantees
Fixed transition when aborting from ErrorState, now the state changes to Shutdown like all aborting paths (formery the transition was to ShuttingDown)
Internal fixes for thread-safety
Fixed that the SimTask cannot be triggered again after calling
ILifecycleService::Stop()
in the SimTask
Changed
CreateLifecycleService with OperationMode::Invalid now throws a ConfigurationError
Improved documentation on how to run demos in asynchronous mode
[4.0.30] - 2023-06-26
Added
Added optional timeout mechanism to RPC service.
Fixed
Fix builds with CMake versions before
3.19
Fixed crash in SilKitRpcDemo when run with
<config> Client --async
without a server.
Changed
SIL Kit Demos (Can, Ethernet, Rpc, Lin, and PubSub) with
--async
now use an autonomous lifecycle.Refactored documentation for participant configurations: The intent was made clearer, noting that it is an optional feature.
[4.0.29] - 2023-06-14
Fixed
Registry: Set windows service state to
stopped
on error
[4.0.28] - 2023-06-02
Added
Added documentation for Data Serialization/Deserialization (SerDes) API
Fixed
Fixed inconsistencies in API documentation
Fixed starting the registry without the
--registry-configuration
parameter
[4.0.27] - 2023-05-30
Changed
Added detection of simulation start and end for the dashboard.
The simulation id initialization is deferred until the first dashboard relevant event happens.
A simulation is considered as ended, when the last participant disconnects.
Added
SIL Kit Registry (
sil-kit-registry(.exe)
)Support for overriding command line settings via a YAML configuration file
[4.0.26] - 2023-05-22
Added
Introducing an internal communication barrier between participant states. This happens in the transition from the states ServicesCreated to CommunicationInitializing and from Stopped to ShuttingDown. It leads to extended communication guarantees in the CommunicationReadyHandler, primarily for participants that use the autonomous lifecycle (see the documentation for details).
Fixed
Corrected spelling mistakes in the documentation
The dashboard is disabled for cross-builds to QNX, to avoid build errors
[4.0.25] - 2023-05-17
This version was skipped due to compatibility issues with dependent projects.
[4.0.24] - 2023-05-04
Known issue: A LIN transmission by a LIN Slave may have a timestamp that is smaller than the LinSendFrameHeaderRequest of the LIN Master that triggered the Slave response.
Added
Header-only C++ API implementation following the hourglass-pattern
The C++ symbols are still provided by the shared library, but are not used by default anymore
If a participant cannot establish a direct connection to another participant, it will fall back to using the registry as a proxy for communications with this particular participant
Support can be disabled on a particular participant using the new “Middleware/RegistryAsFallbackProxy” field in the participant configuration
Fixed
Messages are sent in the same order as the SIL Kit API calls that triggered them, regardless of the thread or handler the API calls were executed from. There are no ordering guarantees for API calls that are executed in parallel from different threads.
[4.0.23] - 2023-04-17
Changed
Added network simulator information to the dashboard REST API
Fixed
Fixed data type of simulation id returned by the dashboard REST API
Ethernet and CAN (Trivial Sim.): The self-delivery with
TransmitDirection::TX
is now triggered only after the frame has been sent withTransmitDirection::RX
.
Removed
Visual Studio 2015 is no longer maintained and therefore not officially supported anymore.
[4.0.22] - 2023-04-05
Fixed
Resolved issue that lead to wrong label matching behavior under certain circumstances.
[4.0.21] - 2023-04-03
Changed
Improved FAQ
Preparation for upcoming tracing / replay
[4.0.20] - 2023-03-20
Changed
Make additional data and rpc information available to the dashboard.
Added
Added frequently asked questions (FAQ) section to documentation.
Modification of BenchmarkDemo: Change the communication topology by modifying the PubSub topics. A participant should only send to a single other participant.
Add LatencyDemo: Measure the average latency between two participants in different processes.
Fixed
C-API: Fixed a bug where the
SilKit_EthernetFrameEvent
delivered in the Ethernet frame handler had theuserContext
field always set tonullptr
, instead of the value passed in the correspondingSilKit_EthernetController_SendFrame
call.C++-API: Fixed a bug where the
userContext
was set in the frame handlers registered on other controllers than the one callingSendFrame
. TheuserContext
is only ever set when a frame event withTransmitDirection::TX
is received, which is only possible on the same controller that sent it.
[4.0.19] - 2023-03-02
Changed
Use function-try-blocks for C-API definitions to reduce indentation and reformat some code for better readability.
Fixed
Allow installing and starting the sil-kit-registry.exe as a Windows Service on Windows Containers during
docker build
steps. The layer creation fails if a domain socket is still active during shutdown of the temporary container. Disables the local-domain sockets of thesil-kit-registry.exe
when running as a Windows Service.When a participant is unable to connect to another participant, the correct error message is logged, and an error is raised.
[4.0.18] - 2023-02-21
Added
Added descriptions to troubleshooting section for common errors.
Changed
Complete the Hourglass implementation of the C++ API used internally for testing.
Fixed
Properly handle IPv6 acceptors in the registry when transmitting to a remote participant
[4.0.17] - 2023-02-09
This is a Quality Assured Release.
Fixed
Fix DNS resolver issues on Ubuntu 18.04 and systemd-resolved. We now properly strip square brackets from IPv6 addresses in URIs.
Fixed a race-condition in the ITest_SystemMonitor. This caused sporadic failures on CI builds.
Removed
Removed the deprecated CMakeSettings.json file from the source tree. If you are a developer, use the CMakePreset.json instead which is more portable and flexible.
Removed usr/share/doc from the delivery packages. This should only be part of Debian packages.
[4.0.16] - 2023-02-03
Changed
Improved error messages when connections between participants/to the registry have failed.
CMake: Reduced weak symbols exported in debug builds.
Allow configuration of acceptor URIs in the participant configuration.
The third party dependencies were updated.
fmt
to version 9.1.0.spdlog
to version 1.11.0.
[4.0.15] - 2023-01-23
Changed
Registry:
Allow running the
sil-kit-registry
as a windows service. In this case, the registry grants others thePROCESS_QUERY_LIMITED_INFORMATION
permission.The registry must be run with the
--windows-service
command line flag. This argument is not shown in the command line usage information available via--help
. This command line flag may be removed in the future.
Docs: Add registry requirement to demos documentation.
CMake: The minimum required CMake version has been bumped to 3.10
[4.0.14] - 2023-01-10
Added
CMake: Prepared cross-compiling for QNX
Changed
Tests: Improved tests regarding configuration parsing
Fixed
Catch and print exceptions when parsing utility CLI arguments
Various issues found by the Address Sanitizer and Thread Sanitizer of Clang 14 are now resolved.
[4.0.13] - 2022-12-14
Changed
PubSub/Rpc: Improved performance in startup-phase when using labels.
Documentation: Configuration structure for PCAP tracing and replay
Fixed
LIN: Previously, only when using the network simulator, the FrameStatusHandler on the LIN Master was not called in case of an unconfigured response (RX_NO_RESPONSE). This inconsistency has been fixed.
Registry
The acceptor URIs the known participants list sent by the registry are now rewritten correctly. Previously, certain startup scenarios only worked when the participants were started in a certain order.
SerDes: Added missing limit library include.
[4.0.12] - 2022-11-24
Fixed
Integration Tests
Linking executables with both, the dynamic library, and certain internal, static library components leads to ODR violations. The ASAN / UBSAN instrumentation from recent Clang versions is able to detect these.
C-API Tests
Fixed some memory leaks in C-API tests.
LIN
Fixed faulty behavior of
ILinController::SendFrame()
forLinFrameResponseType::MasterResponse
. The method now consistently uses the input frame data.
Lifecycle Service
Alleviate potential loss of the ‘stop’ signal issued from the lifecycle service of a participant.
Various fixes related to warnings
Remove duplicate variables in PubSub demo.
Fix ‘D9025: overriding…’ diagnostics in MSVC.
Fix warnings in hourglass code.
Fix cmake configuration on macos.
Properly initialize variable in unit test.
[4.0.11] - 2022-11-18
Changed
Ethernet
The Ethernet controller now quietly pads Ethernet frames with zeros to the minimum size of 60 bytes.
(Re-)added experimental support for PCAP tracing and replay on ethernet controllers. The tracing and replay behavior may change in the future.
Registry
Only exit if neither TCP, nor domain sockets are available.
SIL Kit Library
Changed the default symbol visibility to hidden, which is now also enforced for Linux builds.
Symbols for ASIO are not exported as weak symbols anymore.
Fixed
C: CAN:
Added missing
canId
field to theSilKit_CanFrameTransmitEvent
and bumped the structure version.
[4.0.10] - 2022-11-07
Changed
Documentation
Improved Quickstart Docs and fixed sample code
Updated build instructions for documentation
Logging
Trace-Log was extended with outputs for controller creation.
Default verbosity of lifecycle reduced to debug
Demos: Replaced JSON configuration files with YAML files. The provided configurations did not change.
Extended SilKitDemoBenchmark
Calculates standard deviation for throughput, message rate, speedup
Added
--write-csv
command line argument to output results to csv fileHelper scripts for msg-size-scaling and performance-diff
Changed the lifecycle service to be less verbose in log level info. See log level debug for more detailed information of the lifecycle.
Updated participant configuration file schema and added it to the json schema support. Use .silkit.yaml/json suffix for automated schema support.
[4.0.9] - 2022-10-19
Added
The LinDemo, PubSubDemo, and RpcDemo now allow using
--async
cli flag for unsynchronized execution.
Fixed
C-API:
Data race on static variable
Setting the direction field of the
CanFrameEvent
Initialize the struct header of the embedded
CanFrame
structure in theCanFrameEvent
Immediate shutdown of the asynchronous mode of the LIN demo
[4.0.8] - 2022-10-07
Changed
The third party dependencies were updated.
yaml-cpp
to version 0.7.0.asio
to version 1.24.0.fmt
to version 8.1.1.spdlog
to version 1.10.0.googletest
to version 1.12.1.
The FlexRay controller now issues a warning if the static buffer payload is truncated or padded with zeros, i.e., if the size is not exactly as specified in the controller configuration.
The registry now transmits a diagnostic string when a participant announcement cannot be processed, e.g., because a participant with the same name already exists. The second participant will not time out after a few seconds anymore, but fail much faster.
[4.0.7] - 2022-09-20
Changed
The documentation is now packaged separately in a SilKit-4.0.7-Docs.zip file. This simplifies the CI set up and reproducibility of the generated HTML. To build the documentation you should set up the build environment using pip:
pip3 install -r SilKit/ci/docker/docs_requirements.txt
The source tree is now packaged separately in a SilKit-4.0.7-Source.zip file. The SIL Kit Demos are part of this package.
We no longer have a #if defined(HAVE_FMT) in the silkit/services/logging/ILogger.hpp and variadic logging functions. This define was disabled by default for users and only used internally.
LIN allows sending with an unknown checksum model in master responses, now.
The Pub/Sub Demo was updated to use the internal serialization/deserialization routines.
Fixed
Fix building and linking on macOs. This platform is not part of the continuous test suite.
Fix to allow setting the hard and soft watchdog timeouts in the HealthCheck separately.
[4.0.6] - 2022-09-06
Changed
Removed an empty directory from the packages
Updated the description of SIL Kit in the top-level README.rst
Fixed
Clean up peers after a remote participant disconnects
Windows: Fixed the internal name and original filename attributes of the
sil-kit-monitor.exe
[4.0.5] - 2022-08-25 Initial public release (quality assured release)
This is the first public open source release of the Vector SIL Kit.
Starting with this version, Vector SIL Kit will provide longterm API, ABI, and network compatibility. Note that prior versions do not provide this compatibility.
[4.0.4] - 2022-08-22
Compatibility with 4.0.3
Application binary interface (ABI): Yes
Application software interface (API): No
Middleware network protocol: No
Changed
Utility (SerDes)
SilKit/include/silkit/util/serdes/Serialization.hpp
:The media type for PubSub was changed from
application/vnd.vector.sil.data; protocolVersion=1
toapplication/vnd.vector.silkit.data; protocolVersion=1
The media type for RPC was changed from
application/vnd.vector.sil.rpc; protocolVersion=1
toapplication/vnd.vector.silkit.rpc; protocolVersion=1
LIN
SilKit_LinChecksumModel_Undefined
was renamed toSilKit_LinChecksumModel_Unknown
.
C: Orchestration
SilKit_LifecycleService_Stop
was added to the C-API. This corresponds toSilKit::Services::Orchestration::ILifecycleService::Stop
.
C: Ethernet
Frames delivered in user-provided
SilKit_EthernetFrameHandler
functions had an invalid payload delivered. This was fixed, the frame is now correctly delivered. The error only occured in the C API, the C++ API correctly delivered the entire frame.
[4.0.3] - 2022-08-22
Compatibility with 4.0.2
Application binary interface (ABI): No
Application software interface (API): No
Middleware network protocol: Yes
Added
LIN
SilKit/include/silkit/services/lin/ILinController.hpp
:The new method SetFrameResponse allows LIN nodes to adjust their LIN response configuration during operation (i.e., after Init()). Calls to SetFrameResponse trigger the LinSlaveConfigurationHandler on the LIN master.
The LIN types LinChecksumModel::Unknown and / or LinDataLengthUnknown now have wildcard functionality for nodes configured with LinFrameResponseMode::RX on that id. The first transmission will set the checksum model and / or data length.
CAN
Added
SilKit_CanTransmitStatus_DefaultMask
.
Ethernet
Added
SilKit_EthernetTransmitStatus_DefaultMask
.
Changed
LIN
SilKit/include/silkit/services/lin/ILinController.hpp
:The methods AddLinSlaveConfigurationHandler, RemoveLinSlaveConfigurationHandler, GetSlaveConfiguration and related data structures LinSlaveConfigurationEvent, LinSlaveConfigurationHandler and LinSlaveConfiguration have been moved to the experimental namespace and now reside in
SilKit/include/silkit/experimental/services/lin/LinControllerExtensions.hpp
.LinChecksumModel::Undefined is renamed to LinChecksumModel::Unknown.
Utility
Moved the headers from
silkit/util/serdes/sil/*.hpp
tosilkit/util/serdes/*.hpp
.
CAN
Removed unused
SilKit_CanTransmitStatus_DuplicatedTransmitId
andSilKit::Services::Can::CanTransmitStatus::DuplicatedTransmitId
enumerators.
Ethernet
Removed unused
SilKit_EthernetTransmitStatus_DuplicatedTransmitId
andSilKit::Services::Ethernet::EthernetTransmitStatus::DuplicatedTransmitId
enumerators.
FlexRay
Renamed
FlexrayHeader::HeaderFlag
toFlexrayHeader::Flag
and introducedFlexrayHeader::FlagMask
.
RPC
Renamed
RpcSpec::Topic
toRpcSpec::FunctionName
.Renamed enumerators
SilKit_CallStatus_UPPER_SNAKE_CASE
toSilKit_RpcCallStatus_PascalCase
.
Removed
Orchestration
Removed the deprecated
ITimeSyncService::SetSimulationStepHandler
handler which took a handler function without theduration
argument.
FlexRay
Removed the convenience functions
FlexrayHeader::IsSet
,FlexrayHeader::Clear
, andFlexrayHeader::Set
.
Fixed
Coordinated, but non-required participants that received the required participant list before calling ILifecycleService::StartLifecycle() did not go to the error state.
[4.0.2] - 2022-08-15
Compatibility with 4.0.1
Application binary interface (ABI): Yes
Application software interface (API): Yes
Middleware network protocol: Yes
Changed
SilKit will now build on NetBSD (currently not tested automatically)
[4.0.1] - 2022-08-15
Compatibility with 4.0.0
Application binary interface (ABI): No
Application software interface (API): Yes
Middleware network protocol: Yes
Changed
The calling convention used in the C-API was changed to
cdecl
on 32-bit Windows.
Removed
The
sil-kit-registry
command line argument--configuration
was removed.
[4.0.0] - 2022-08-11
Compatibility with 3.99.30
Application binary interface (ABI): No
Application software interface (API): No
Middleware network protocol: No
Added
Added the
SILKIT_ENABLE_COVERAGE
CMake option for adding code-coverage compiler flags when building with GCC or Clang.
Changed
Added an CLI argument to sil-kit-system-controller to run it without user interaction (–non-interactive or -ni)
Participants to not go to ParticipantState::Error anymore when the system state changes to SystemState::Error
Removed
Removed various demos (CCan, CEthernet, CFlexray, CLin, Lifecycle, and TimeAnnotation) as they were meant for testing
Removed benchmark demo
Fixed
The sil-kit-system-controller crashed when any button was pressed. This is fixed.