WSF
WsfXIO_SimTimeRequest.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFXIO_SIMTIMEREQUEST_HPP
13#define WSFXIO_SIMTIMEREQUEST_HPP
14
15#include "wsf_export.h"
16
17class WsfClockSource;
18class WsfSimulation;
21
25{
26public:
29 double aInterval = 1.0,
30 bool aIsReliable = true);
31
32 void SetUpdateInterval(double aSimTimeInterval) { mRequest.mTimerInterval = aSimTimeInterval; }
33
34 double GetUpdateInterval() const { return mRequest.mTimerInterval; }
35
36 void SetTimerType(WsfXIO_RequestSimTimePkt::TimerType aTimerType) { mRequest.mTimerType = aTimerType; }
37
38private:
39 void Initialized() override;
40
42};
43
53{
54public:
55 WsfXIO_TimeSynchronization(WsfXIO_Connection* aConnectionPtr, WsfSimulation* aSimulationPtr);
56
58
59 void JumpToRemoteTime(bool aDoJump) { mJumpToRemoteTime = aDoJump; }
60
61 void SetTiming(double aTargetTimeOffset, double aMinimumTimeError, double aMaximumTimeError, double aTimerUpdateInterval);
62
63 void HandleResponse(WsfXIO_ResponsePkt& aPkt) override;
64
65 void SetSmoothRate(bool aSmoothRate) { mSmoothRate = aSmoothRate; }
66 void SetSyncPackets(bool aDoSync) { mSynPackets = aDoSync; }
67 WsfClockSource* GetClockSource() const { return mClockSourcePtr; }
68 void SetClockSource(WsfClockSource* aClockSourcePtr);
69
71
72private:
73 void InitializeSync(WsfXIO_SimTimePkt& aPkt);
74
75 void UpdateState(WsfXIO_SimTimePkt& aPkt);
76
77 double mBaseOffset;
78 bool mSmoothRate;
79 bool mSynPackets;
80 bool mIsInitialized;
81 bool mJumpToRemoteTime;
82 WsfSimulation* mSyncWithSimulation;
83 WsfClockSource* mClockSourcePtr;
84 double mTargetTimeOffset;
85 double mMinimumErrorOffset;
86 double mMaximumErrorOffset;
87};
88
89#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Maintain the current simulation clock.
Definition WsfClockSource.hpp:22
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfXIO_Connection.hpp:37
Definition WsfXIO_PacketRegistry.hpp:916
TimerType
Definition WsfXIO_PacketRegistry.hpp:925
@ cSIM_TIME_INTERVAL
Definition WsfXIO_PacketRegistry.hpp:928
virtual void HandleResponse(WsfXIO_ResponsePkt &aPkt)
Definition WsfXIO_Request.hpp:87
virtual void Initialized()=0
WsfXIO_Request(WsfXIO_Connection *aConnectionPtr, bool aIsReliable=true)
Definition WsfXIO_Request.cpp:160
Definition WsfXIO_PacketRegistry.hpp:171
Definition WsfXIO_PacketRegistry.hpp:944
WsfXIO_SimTimeRequest(WsfXIO_Connection *aConnectionPtr, WsfXIO_RequestSimTimePkt::TimerType aTimerType=WsfXIO_RequestSimTimePkt::cSIM_TIME_INTERVAL, double aInterval=1.0, bool aIsReliable=true)
Definition WsfXIO_SimTimeRequest.cpp:17
void SetUpdateInterval(double aSimTimeInterval)
Definition WsfXIO_SimTimeRequest.hpp:32
double GetUpdateInterval() const
Definition WsfXIO_SimTimeRequest.hpp:34
void SetTimerType(WsfXIO_RequestSimTimePkt::TimerType aTimerType)
Definition WsfXIO_SimTimeRequest.hpp:36
WsfXIO_SimTimePkt mLastState
Definition WsfXIO_SimTimeRequest.hpp:70
WsfClockSource * GetClockSource() const
Definition WsfXIO_SimTimeRequest.hpp:67
void SetSmoothRate(bool aSmoothRate)
Definition WsfXIO_SimTimeRequest.hpp:65
WsfXIO_TimeSynchronization(WsfXIO_Connection *aConnectionPtr, WsfSimulation *aSimulationPtr)
Definition WsfXIO_SimTimeRequest.cpp:32
void JumpToRemoteTime(bool aDoJump)
Definition WsfXIO_SimTimeRequest.hpp:59
void SetSyncPackets(bool aDoSync)
Definition WsfXIO_SimTimeRequest.hpp:66
Copyrights Multiple, All Rights Reserved