mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-17 21:29:19 +02:00
hardware protocol v2: answer a subscription with current state
The snapshot sent right after SUBSCRIBE was taken from the previous frame, which on the first frame of a session meant every value came back as UNAVAILABLE. The link now publishes the state of the current frame before the received frames are processed.
This commit is contained in:
@@ -202,6 +202,9 @@ void hardware_link::update( double const Deltatime, state_snapshot const &Snapsh
|
||||
m_lastframeerrors = counters;
|
||||
m_session.add_frame_errors( delta );
|
||||
|
||||
// the session answers a subscription with an immediate snapshot, so it needs the current state first
|
||||
m_session.set_snapshot( Snapshot );
|
||||
|
||||
for( auto const &packet : packets )
|
||||
{
|
||||
m_session.handle_packet( packet );
|
||||
|
||||
@@ -49,6 +49,8 @@ public:
|
||||
void reset();
|
||||
// consumes one decoded frame
|
||||
void handle_packet( decoded_packet const &Packet );
|
||||
// publishes the state of the current simulation frame, before the received frames are processed
|
||||
void set_snapshot( state_snapshot const &Snapshot ) { m_snapshot = Snapshot; }
|
||||
// periodic work: heartbeats, subscription updates, timeouts
|
||||
void update( double const Deltatime, state_snapshot const &Snapshot );
|
||||
// copies the current condition into the debug report
|
||||
|
||||
Reference in New Issue
Block a user