vectorgrp / sil-kit

Vector SIL Kit – Open-Source Library for Connecting Software-in-the-Loop Environments
https://vectorgrp.github.io/sil-kit-docs
MIT License
100 stars 28 forks source link

SILKIT-1572 core: message aggregation #93

Closed VJonasHolley closed 2 weeks ago

VJonasHolley commented 1 month ago

Subject

Implementation of a message aggregation mechanism for the VAsioPeer (time sync case only).

Description

For simulations with time synchronization, user data messages (PubSub, RPC, CAN, Ethernet) are aggregated in the VAsioPeer and send en bloc at the end of the corresponding time step. Messages are only aggregated, once the state of the lifecycle is ReadyToRun. The aggregation feature can be enabled/disabled via the flag "EnableMessageAggregation" in the participant config file.

NB: The Test_MetricsManager has been deactivated (failure in previous commit). We need to fix this and reactivate the test.

Instructions for review / testing

Developer checklist (address before review)

VJonasHolley commented 1 month ago

I added messages of type 'ParticipantStatus' in the classification of FlushAggregationMessages (AggregationMessageTraits.hpp). Using the modified PubSubDemo shows that this change solves the 'no-message-reception-problem'.