WSF
WsfXIO_WeaponComponent.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_WEAPONCOMPONENT_HPP
13#define WsfXIO_WEAPONCOMPONENT_HPP
14
15#include "wsf_mil_export.h"
16
17#include <vector>
18
19#include "UtCallbackHolder.hpp"
20class WsfApplication;
21class WsfEW_EA_EP;
22class WsfPlatformPart;
23class WsfSimulation;
24#include "WsfWeapon.hpp"
33
34class WSF_MIL_EXPORT WsfXIO_WeaponComponent : public WsfXIO_Component
35{
36public:
38 enum
39 {
42 };
43
45 ~WsfXIO_WeaponComponent() override = default;
46
48
49 WsfComponent* CloneComponent() const override { return new WsfXIO_WeaponComponent(*this); }
50 void* QueryInterface(int aRole) override { return (aRole == mRoles[0]) ? this : nullptr; }
51 void ComponentParentChanged(WsfXIO_Simulation* aXIO_SimulationPtr) override;
53
55
57 WsfSimulation& GetSimulation() const;
58 double GetSimTime() const;
60
62
63 void EM_RcvrInfo_Load(WsfXIO_EM_RcvrInfo& aInfo, const WsfEM_Rcvr& aRcvr) override;
64
65 void EM_XmtrInfo_Load(WsfXIO_EM_XmtrInfo& aInfo, const WsfEM_Xmtr& aXmtr) override;
66
68
69 void RegisterSimulationObservers(WsfSimulation& aSimulation, UtCallbackHolder& aCallbacks) override;
70
71 bool FillPartState(const WsfPlatformPart& aPart, WsfXIO_PartStateChangePkt& aPkt) override;
72
73 WsfObject* FindPartType(int aPartType, WsfStringId aPartTypeName) override;
74
75 WsfObject* FindPart(const WsfPlatform& aPlatform, int aPartType, WsfStringId aPartName) override;
76
77 bool HandleStateChangeRequest(double aSimTime,
79 WsfPlatform* aPlatformPtr,
80 WsfEM_Xmtr*& aXmtrPtr,
81 WsfEM_Rcvr*& aRcvrPtr) override;
82
83 bool HandleTaskCommand(double aSimTime,
85 WsfTaskProcessor* aProcA_Ptr,
86 WsfTaskProcessor* aProcB_Ptr,
87 WsfTrack* aTrackPtr,
88 WsfTaskResource* aResourcePtr) override;
90
91private:
93
94 void HandleFireWeaponRequest(WsfXIO_FireWeaponPkt& aPkt);
95 void HandleEW_TechniqueStateChangeRequest(WsfXIO_EW_TechniqueStateChangeRequestPkt& aPkt);
97
99
100 void WeaponStateChange(double aSimTime, WsfWeapon* aWeaponPtr);
101
102 void WeaponModeChange(double aSimTime, WsfWeapon* aWeaponPtr, WsfWeapon::WsfWeaponMode* aModePtr);
103
104 void WeaponFired(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, const WsfTrack* aTrackPtr);
105
106 void AfterWeaponFired();
108
109 void LoadTechniques(WsfXIO_EM_XmtrRcvrInfo& aInfo, WsfEW_EA_EP* aEWPtr);
110
111 WsfXIO_PlatformInfoService* mPlatformInfoServicePtr;
112 UtCallbackHolder mCallbacks;
113
115 std::vector<std::pair<size_t, WsfStringId>> mWeaponsFired;
116};
117
118#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfApplication.hpp:45
virtual void ComponentParentChanged(ParentType *aParentPtr)
Definition WsfComponent.hpp:150
ParentType * GetComponentParent() const
Definition WsfComponent.hpp:154
Definition WsfComponent.hpp:39
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfEW_EA_EP.hpp:38
Definition WsfObject.hpp:40
Definition WsfPlatformPart.hpp:61
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
int mRoles[2]
Definition WsfSimpleComponent.hpp:116
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTaskProcessor.hpp:29
Attributes of a task-able resource.
Definition WsfTaskResource.hpp:30
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
A 'mode' of the weapon.
Definition WsfWeapon.hpp:78
Definition WsfWeapon.hpp:63
virtual WsfXIO_PlatformPartInfo * CreatePlatformPartInfo(WsfPlatformPart &aPart)
Definition WsfXIO_Component.hpp:53
WsfXIO_Component(int aRole, const std::string &aName)
Definition WsfXIO_Component.cpp:14
virtual WsfObject * FindPart(const WsfPlatform &aPlatform, int aPartType, WsfStringId aPartName)
Definition WsfXIO_Component.hpp:64
virtual void EM_RcvrInfo_Load(WsfXIO_EM_RcvrInfo &aInfo, const WsfEM_Rcvr &aRcvr)
Definition WsfXIO_Component.hpp:48
virtual WsfObject * FindPartType(int aPartType, WsfStringId aPartTypeName)
Definition WsfXIO_Component.hpp:62
virtual void RegisterSimulationObservers(WsfSimulation &aSimulation, UtCallbackHolder &aCallbacks)
Definition WsfXIO_Component.hpp:58
virtual bool FillPartState(const WsfPlatformPart &aPart, WsfXIO_PartStateChangePkt &aPkt)
Definition WsfXIO_Component.hpp:60
virtual bool HandleTaskCommand(double aSimTime, WsfXIO_TaskCommandPkt &aPkt, WsfTaskProcessor *aProcA_Ptr, WsfTaskProcessor *aProcB_Ptr, WsfTrack *aTrackPtr, WsfTaskResource *aResourcePtr)
Definition WsfXIO_Component.hpp:81
virtual bool HandleStateChangeRequest(double aSimTime, WsfXIO_PartStateChangeRequestPkt &aPkt, WsfPlatform *aPlatformPtr, WsfEM_Xmtr *&aXmtrPtr, WsfEM_Rcvr *&aRcvrPtr)
Definition WsfXIO_Component.hpp:69
virtual void EM_XmtrInfo_Load(WsfXIO_EM_XmtrInfo &aInfo, const WsfEM_Xmtr &aXmtr)
Definition WsfXIO_Component.hpp:49
XIO representation of a WsfEM_Rcvr.
Definition WsfXIO_ObjectInfo.hpp:138
XIO representation of a WsfEM_Xmtr.
Definition WsfXIO_ObjectInfo.hpp:158
XIO representation of Wsf_EM_XmtrRcvr.
Definition WsfXIO_ObjectInfo.hpp:120
Requests an application to turn on or off an EA/EP technique.
Definition WsfXIO_WeaponPacketRegistry.hpp:88
Triggers a weapon to fire on a track.
Definition WsfXIO_WeaponPacketRegistry.hpp:63
Inform other applications about a platform part state change.
Definition WsfXIO_PacketRegistry.hpp:460
Requests that an application changes either state or mode of a platform part.
Definition WsfXIO_PacketRegistry.hpp:487
Definition WsfXIO_PlatformInfoService.hpp:66
Definition WsfXIO_ObjectInfo.hpp:249
@ cPART_1_INFO
Definition WsfXIO_PacketRegistry.hpp:431
Definition WsfXIO_Simulation.hpp:49
Requests a task manager processor to create or modify a task.
Definition WsfXIO_PacketRegistry.hpp:727
@ cTASK_COMMAND_1
Definition WsfXIO_PacketRegistry.hpp:767
Definition WsfXIO_WeaponComponent.hpp:35
@ cWEAPON_INFO
Definition WsfXIO_WeaponComponent.hpp:40
@ cABORT_FIRE
Definition WsfXIO_WeaponComponent.hpp:41
~WsfXIO_WeaponComponent() override=default
void * QueryInterface(int aRole) override
Definition WsfXIO_WeaponComponent.hpp:50
WsfComponent * CloneComponent() const override
Definition WsfXIO_WeaponComponent.hpp:49
WsfXIO_Simulation * GetXIO_Simulation() const
Definition WsfXIO_WeaponComponent.hpp:56
WsfXIO_WeaponComponent()
Definition WsfXIO_WeaponComponent.cpp:89
Provides information about a weapon.
Definition WsfXIO_WeaponObjectInfo.hpp:60
Copyrights Multiple, All Rights Reserved