WSF
WsfMilDisPlatform.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 WSFMILDISPLATFORM_HPP
13#define WSFMILDISPLATFORM_HPP
14
15class DisSystem;
16#include "wsf_mil_export.h"
17
18#include "WsfComponent.hpp"
22class WsfWeapon;
23
24class WSF_MIL_EXPORT WsfMilDisPlatform : public WsfDisPlatformComponent
25{
26public:
27 static WsfMilDisPlatform* Find(const WsfDisPlatform& aPlatform);
28
29 WsfMilDisPlatform(WsfDisPlatform* aPlatformPtr);
30 ~WsfMilDisPlatform() override;
31
33
34 WsfComponent* CloneComponent() const override;
35 WsfStringId GetComponentName() const override;
36 const int* GetComponentRoles() const override;
37 void* QueryInterface(int aRole) override;
39
40 void SendingEmission(double aSimTime, DisEmission* aEmissionPtr, DisEventId& aPreviousNumber) override;
41
42 void AllocateEmissionSystems(DisUint8& emitterId) override;
43
44 void TurnOffEmission(DisEmission* aEmissionPtr) override;
45
46 // ============================================================================
48 DisSystem* GetJammerSystem(WsfWeapon* aWeaponPtr);
49
52 {
53 public:
54 JammerData(WsfWeapon* aWeaponPtr, DisSystem* aSystemPtr)
55 : mWeaponPtr(aWeaponPtr)
56 , mSystemPtr(aSystemPtr)
58 {
59 }
60
62 DisSystem* mSystemPtr;
63
66 };
67
69
70 void UpdateJammerSystem(double aSimTime, WsfWeapon* aWeaponPtr, DisSystem* aSystemPtr, size_t aTargetIndex);
71
72 void WeaponTurnedOff(double aSimTime, WsfWeapon* aWeaponPtr);
73 void WeaponTurnedOn(double aSimTime, WsfWeapon* aWeaponPtr);
74 void JammingRequestCanceled(double aSimTime, WsfWeapon* aWeaponPtr, size_t aTargetIndex);
75 void JammingRequestInitiated(double aSimTime, WsfWeapon* aWeaponPtr, size_t aTargetIndex);
76 void JammingRequestUpdated(double aSimTime, WsfWeapon* aWeaponPtr, size_t aTargetIndex);
77
78private:
79 WsfMilDisInterface* mMilInterfacePtr;
80 WsfDisPlatform* mPlatformPtr;
81
82 std::vector<JammerData> mJammers;
83};
84
86
87#endif
#define WSF_DECLARE_COMPONENT_ROLE_TYPE(TYPE, ROLE)
Definition WsfComponentRoles.hpp:44
@ cWSF_COMPONENT_MIL_DIS_PLATFORM
Definition WsfMilComponentRoles.hpp:23
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfComponent.hpp:39
virtual const int * GetComponentRoles() const =0
virtual WsfStringId GetComponentName() const =0
virtual WsfComponent * CloneComponent() const =0
virtual void * QueryInterface(int aRole)=0
Definition WsfDisPlatform.hpp:56
virtual void TurnOffEmission(DisEmission *aEmissionPtr)
Definition WsfDisPlatform.hpp:59
virtual void SendingEmission(double aSimTime, DisEmission *aEmissionPtr, DisEventId &aPreviousNumber)
Definition WsfDisPlatform.hpp:58
virtual void AllocateEmissionSystems(DisUint8 &emitterId)
Definition WsfDisPlatform.hpp:60
An internal class used by WsfDisInterface to maintain information about a platform.
Definition WsfDisPlatform.hpp:67
Definition WsfMilDisInterface.hpp:42
A class used to hold data needed by the interface that is related to a jammer.
Definition WsfMilDisPlatform.hpp:52
WsfWeapon * mWeaponPtr
Definition WsfMilDisPlatform.hpp:61
DisSystem * mSystemPtr
Definition WsfMilDisPlatform.hpp:62
DisUint8 mLastBeamCountSent
The number of beams sent in the last DIS system record.
Definition WsfMilDisPlatform.hpp:65
JammerData(WsfWeapon *aWeaponPtr, DisSystem *aSystemPtr)
Definition WsfMilDisPlatform.hpp:54
Definition WsfMilDisPlatform.hpp:25
void WeaponTurnedOn(double aSimTime, WsfWeapon *aWeaponPtr)
Definition WsfMilDisPlatform.cpp:224
WsfMilDisPlatform(WsfDisPlatform *aPlatformPtr)
Definition WsfMilDisPlatform.cpp:23
JammerData * GetJammerData(WsfWeapon *aWeaponPtr)
Definition WsfMilDisPlatform.cpp:125
static WsfMilDisPlatform * Find(const WsfDisPlatform &aPlatform)
Definition WsfMilDisPlatform.cpp:296
DisSystem * GetJammerSystem(WsfWeapon *aWeaponPtr)
Given a WSF weapon, locate its corresponding DIS system.
Definition WsfMilDisPlatform.cpp:139
void JammingRequestInitiated(double aSimTime, WsfWeapon *aWeaponPtr, size_t aTargetIndex)
Definition WsfMilDisPlatform.cpp:167
void UpdateJammerSystem(double aSimTime, WsfWeapon *aWeaponPtr, DisSystem *aSystemPtr, size_t aTargetIndex)
Definition WsfMilDisPlatform.cpp:239
void WeaponTurnedOff(double aSimTime, WsfWeapon *aWeaponPtr)
Definition WsfMilDisPlatform.cpp:207
void JammingRequestCanceled(double aSimTime, WsfWeapon *aWeaponPtr, size_t aTargetIndex)
Definition WsfMilDisPlatform.cpp:151
void JammingRequestUpdated(double aSimTime, WsfWeapon *aWeaponPtr, size_t aTargetIndex)
Definition WsfMilDisPlatform.cpp:183
Definition WsfWeapon.hpp:63
Copyrights Multiple, All Rights Reserved