WSF
WsfRIPRProcessor.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// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFRIPRPROCESSOR_HPP
16#define WSFRIPRPROCESSOR_HPP
17
18#include "UtCallbackHolder.hpp"
19#include "UtWallClock.hpp"
21class WsfMessage;
22class WsfTrack;
23class WsfTrackMessage;
24class WsfWeapon;
26#include "WsfRIPRCommon.hpp"
27#include "WsfTrackId.hpp"
28
29class WsfProcessor;
30class WsfRIPRJob;
31class WsfRIPRJobBoard;
32class UtInput;
33class UtScript;
34class WsfRIPRManager;
35
36namespace wsf
37{
38namespace comm
39{
40class Comm;
41}
42} // namespace wsf
43
45{
46public:
47 WsfRIPRProcessor(WsfScenario& aScenario, const char* aPretendName, bool aJobPassThrough = false);
48 WsfRIPRProcessor(WsfScenario& aScenario, bool aJobPassThrough = false);
49
51 const std::string& aPartClass,
52 const std::string& aPartVarName,
53 bool aJobPassThrough = false);
55 ~WsfRIPRProcessor() override;
56
60 void BiddingHijacked(bool aValue);
61
63 bool BiddingHijacked() const { return mBiddingHijacked; }
64
67 WsfProcessor* Clone() const override;
68
69 bool Initialize(double aSimTime) override;
70 bool Initialize2(double aSimTime) override;
71
72 void Update(double aSimTime) override;
73
74 bool ProcessInput(UtInput& aInput) override;
75
76 const char* GetScriptClassName() const override;
77
78 virtual bool RegisterScriptBiddingBlock(std::string aJobType, WsfScriptContext* aContextPtr, UtScript* aScriptPtr);
79
80 virtual bool UnregisterScriptBiddingBlock(std::string aJobType);
81
82 unsigned int GetId(unsigned int aIndex = 0) { return mJobChannelIds[aIndex]; }
83
84 unsigned int NumJobChannels() const { return static_cast<unsigned int>(mJobChannelIds.size()); }
85 void SetNumJobChannels(unsigned int aNumChannels);
86 int JobChannelByProcId(unsigned int aRIPRProcId);
87
90
91 std::vector<unsigned int> JobTypeChannels(std::string aJobType);
92 std::vector<std::string> ChannelJobTypes(unsigned int aChannelIndex);
93 bool ValidJobTypeChannel(std::string aJobType, unsigned int aChannelIndex);
94
95 double WallClock();
96
97 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
98 bool ReceiveMessage(double aSimTime, const WsfMessage& aMessage) override;
99
100 // commander stuff
101
103 WsfRIPRProcessor* CommanderProcessor(const std::string&);
104
106 WsfPlatform* CommanderPlatform(const std::string&);
107
108 std::vector<WsfRIPRProcessor*> SubordinateProcessors();
109 std::vector<WsfRIPRProcessor*> SubordinateProcessors(const std::string& aCommandChainName);
110
111 std::vector<WsfPlatform*> SubordinatePlatforms();
112 std::vector<WsfPlatform*> SubordinatePlatforms(const std::string& aCommandChainName);
113
114 double QuerySubordinatesMaxBid(WsfRIPRJob& aJob, bool expandPassThroughAgents = true);
115
116 std::vector<WsfPlatform*> Subordinates();
118
119 virtual WsfRIPRJobBoard* JobBoard();
120
121 void SetJobPassThrough(bool aJobPassThrough);
123
124 bool JobWindowOpen(double aSimTime);
125 bool BidWindowOpen(double aSimTime);
126
127 void SetJobWindowOpen(bool aOpen);
128 void SetBidWindowOpen(bool aOpen);
129
130 void SetJobStickiness(double aStickiness);
131
132 double QueryBid(WsfRIPRJob& aJob);
133
135 void SetJobBoardComm(wsf::comm::Comm* aCommPtr) { mJobBoardCommPtr = aCommPtr; }
136
137 // sent comm message to (probably) one of my subordinates with a job award
138 void SendMessageJobAward(wsf::comm::Comm* aCommPtr, WsfRIPRProcessor* aSourcePtr, int aChannelIndex, int aJobId);
139
140 // returns the job awarded to aProc/aChannelIndex; sends over comm if available and returns buffered job
141 WsfRIPRJob* JobFor(double aSimTime, WsfRIPRProcessor* aProcPtr, int aChannelIndex);
142
143 // get and set the jobs I've got buffered for each of my channels
144 // job "-1" means no job has been assigned
145 int BufferedJobForChannel(int aChannelIndex) { return mBufferedJobs[aChannelIndex]; };
146 void SetBufferedJobForChannel(int aChannelIndex, int aJob) { mBufferedJobs[aChannelIndex] = aJob; }
147
148 // subordinate stuff
149
150 // returns 1 if targeting, 0 otherwise
151 int Targeting(const WsfTrack* aTrackPtr);
152
153 int WeaponsActive(const WsfTrack& aTrack);
154 int WeaponsActiveOfType(const WsfWeapon& aWeapon);
155
156 int WeaponsActive();
157 WsfPlatform* ActiveWeaponPlatform(unsigned int aIndex);
158
159 int SubsTargeting(const WsfTrack* aTrackPtr, const WsfPlatform* aExcludePlatform = nullptr);
160 int SubsWeaponsActive(const WsfTrack* aTrackPtr, const WsfPlatform* aExcludePlatform = nullptr);
161
162 int PeersWeaponsActive(const WsfTrack& aTrack);
163 int PeersTargeting(const WsfTrack& aTrack);
164
165 std::vector<WsfPlatform*> WeaponsIncoming();
166
167 std::string TargetName();
169 size_t TargetPlatformId();
171
172 bool SetTargetByName(std::string aTargetName);
173 bool SetTargetByPlatform(WsfPlatform* aPlatformPtr);
174 void SetTargetByPlatformId(size_t aTargetId);
175 bool SetTargetByTrack(WsfTrack* aTargetTrackPtr);
176
177 bool ClearTarget();
179
180 // From here down taken from WsfTaskManager
181 UtCallbackHolder mCallbacks;
182
202
203 using ActiveWeaponList = std::list<ActiveWeapon>;
204 using ActiveWeaponListIter = std::list<ActiveWeapon>::iterator;
205
207
218 {
219 public:
220 WeaponStatus(const WsfTrackId& aTrackId, size_t aAssigneeIndex, WsfStringId aWeaponSystemName)
221 : mTrackId(aTrackId)
222 , mAssigneeIndex(aAssigneeIndex)
223 , mWeaponSystemName(aWeaponSystemName)
224 , mTargetIndex(0)
229 , mRoundsPending(0)
230 , mRoundsActive(0)
231 , mRoundsHit(0)
233 , mRoundsMissed(0)
235 {
236 }
237
240
243
246
248 size_t mTargetIndex; // not from WsfTaskManager
249
252
255
258
261
264
267
270
273
276
279 };
280
281 using WeaponStatusList = std::list<WeaponStatus>;
282 using WeaponStatusListIter = std::list<WeaponStatus>::iterator;
284
285 WeaponStatusList::iterator FindWeaponStatus(const WsfTrackId& aTrackId,
286 size_t aAssigneeIndex,
287 WsfStringId aWeaponSystemName);
288
290
291
292 void WeaponFired(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, const WsfTrack* aTargetTrackPtr);
293
294 void WeaponTerminated(double aSimTime, const WsfWeaponEngagement* aEngagementPtr);
295
296 void WeaponHit(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, WsfPlatform* aTargetPlatformPtr);
297
298 void WeaponMissed(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, WsfPlatform* aTargetPlatformPtr);
299
300
301 bool UplinkCapable();
302
303 bool StartUplinking(size_t receiverIndex, size_t targetIndex = 0);
304 bool StartUplinking(WsfPlatform* receiverPtr, WsfTrack* targetPtr = nullptr);
305
306 bool StopUplinking(size_t receiverIndex);
307 bool StopUplinking(WsfPlatform* receiverPtr);
308
309 bool IsUplinkingTo(int receiverIndex);
310 bool IsUplinkingTo(WsfPlatform* receiverPtr);
311
312 unsigned int WeaponUplinkCount();
313 WsfPlatform* UplinkWeaponPlatform(unsigned int aIndex);
315
316protected:
317 // Pointer to the RIPR manager if this processor has been added to the simulation
319 // processor stuff
321
323 using JobTypeIter = ripr::JobTypeChannelsMap::iterator;
324
326
327 // commander stuff
330
331 // ripr job stuff
332 // stores the local bidding script blocks until initialization, when they are registered into the map below
333 std::vector<std::pair<std::string, UtScript*>> mBiddingBlocks;
334
335 // holds the context & the script pointer of any named query_bid_type script blocks
336 // this allows the blocks to exist on any context (hopefully just the processor)
337 using QueryBidMapType = std::map<std::string, std::pair<WsfScriptContext*, UtScript*>>;
339
340 // this is needed because we can't create job channels until Initialize(), not during construction
342
343 UtWallClock mRiprWallClock;
344
347
350
353
356};
357
358#endif
size_t targetIndex(aVarArgs[0].GetInt())
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfProcessor.hpp:39
Definition WsfRIPRJobBoard.hpp:44
Definition WsfRIPRJob.hpp:57
Definition WsfRIPRManager.hpp:71
Definition WsfRIPRProcessor.hpp:45
std::vector< std::pair< std::string, UtScript * > > mBiddingBlocks
Definition WsfRIPRProcessor.hpp:333
int Targeting(const WsfTrack *aTrackPtr)
Definition WsfRIPRProcessor.cpp:1283
UtCallbackHolder mCallbacks
Definition WsfRIPRProcessor.hpp:181
WsfPlatform * TargetPlatform()
Definition WsfRIPRProcessor.cpp:1484
void SetTargetByPlatformId(size_t aTargetId)
Definition WsfRIPRProcessor.cpp:1525
WsfPlatform * CommanderPlatform()
Definition WsfRIPRProcessor.cpp:597
int JobChannelByProcId(unsigned int aRIPRProcId)
Definition WsfRIPRProcessor.cpp:492
int SubsWeaponsActive(const WsfTrack *aTrackPtr, const WsfPlatform *aExcludePlatform=nullptr)
Definition WsfRIPRProcessor.cpp:1336
WsfRIPRProcessor & operator=(const WsfRIPRProcessor &)=delete
double QueryBid(WsfRIPRJob &aJob)
Definition WsfRIPRProcessor.cpp:304
void SetJobBoardComm(wsf::comm::Comm *aCommPtr)
Definition WsfRIPRProcessor.hpp:135
WsfPlatform * UplinkWeaponPlatform(unsigned int aIndex)
Return the weapon platform at aIndex in the list of the weapons currently being uplinked to.
Definition WsfRIPRProcessor.cpp:1204
ripr::JobChannelIdList JobChannelIds() const
Returns a copy of the Job Channels Id list.
Definition WsfRIPRProcessor.hpp:89
unsigned int NumJobChannels() const
Definition WsfRIPRProcessor.hpp:84
WeaponStatusList::iterator FindWeaponStatus(const WsfTrackId &aTrackId, size_t aAssigneeIndex, WsfStringId aWeaponSystemName)
Definition WsfRIPRProcessor.cpp:1547
std::vector< WsfPlatform * > WeaponsIncoming()
Definition WsfRIPRProcessor.cpp:1414
double WallClock()
Definition WsfRIPRProcessor.cpp:328
void SetNumJobChannels(unsigned int aNumChannels)
Definition WsfRIPRProcessor.cpp:464
bool UplinkCapable()
Definition WsfRIPRProcessor.cpp:1009
bool JobWindowOpen(double aSimTime)
Definition WsfRIPRProcessor.cpp:279
WsfRIPRManager * GetManager() const
Definition WsfRIPRProcessor.hpp:314
const char * GetScriptClassName() const override
Definition WsfRIPRProcessor.cpp:1750
void WeaponHit(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPlatformPtr)
Definition WsfRIPRProcessor.cpp:959
bool ValidJobTypeChannel(std::string aJobType, unsigned int aChannelIndex)
Definition WsfRIPRProcessor.cpp:541
ripr::JobTypeChannelsMap::iterator JobTypeIter
Definition WsfRIPRProcessor.hpp:323
void WeaponTerminated(double aSimTime, const WsfWeaponEngagement *aEngagementPtr)
Definition WsfRIPRProcessor.cpp:906
std::vector< unsigned int > JobTypeChannels(std::string aJobType)
Definition WsfRIPRProcessor.cpp:513
wsf::comm::Comm * JobBoardComm()
Definition WsfRIPRProcessor.hpp:134
void SetBufferedJobForChannel(int aChannelIndex, int aJob)
Definition WsfRIPRProcessor.hpp:146
WsfRIPRProcessor * CommanderProcessor()
Definition WsfRIPRProcessor.cpp:658
int PeersTargeting(const WsfTrack &aTrack)
Definition WsfRIPRProcessor.cpp:1392
bool IsUplinkingTo(int receiverIndex)
Definition WsfRIPRProcessor.cpp:1173
WsfProcessor * Clone() const override
Definition WsfRIPRProcessor.cpp:140
bool mJobPassThrough
Definition WsfRIPRProcessor.hpp:329
ActiveWeaponList mActiveWeaponList
Definition WsfRIPRProcessor.hpp:206
WsfRIPRJob * JobFor(double aSimTime, WsfRIPRProcessor *aProcPtr, int aChannelIndex)
Definition WsfRIPRProcessor.cpp:1563
size_t TargetPlatformId()
Definition WsfRIPRProcessor.cpp:1489
std::list< ActiveWeapon > ActiveWeaponList
Definition WsfRIPRProcessor.hpp:203
unsigned int GetId(unsigned int aIndex=0)
Definition WsfRIPRProcessor.hpp:82
bool StartUplinking(size_t receiverIndex, size_t targetIndex=0)
Definition WsfRIPRProcessor.cpp:1021
int BufferedJobForChannel(int aChannelIndex)
Definition WsfRIPRProcessor.hpp:145
bool Initialize(double aSimTime) override
Definition WsfRIPRProcessor.cpp:154
bool BidWindowOpen(double aSimTime)
Definition WsfRIPRProcessor.cpp:284
WeaponStatusList mWeaponStatusList
Definition WsfRIPRProcessor.hpp:283
void SetBidWindowOpen(bool aOpen)
Definition WsfRIPRProcessor.cpp:294
~WsfRIPRProcessor() override
Definition WsfRIPRProcessor.cpp:101
bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfRIPRProcessor.cpp:1729
std::vector< WsfRIPRProcessor * > SubordinateProcessors()
Definition WsfRIPRProcessor.cpp:761
UtWallClock mRiprWallClock
Definition WsfRIPRProcessor.hpp:343
void WeaponMissed(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPlatformPtr)
Definition WsfRIPRProcessor.cpp:986
void SetJobStickiness(double aStickiness)
Definition WsfRIPRProcessor.cpp:299
unsigned int mDesiredJobChannels
Definition WsfRIPRProcessor.hpp:341
bool SetTargetByPlatform(WsfPlatform *aPlatformPtr)
Definition WsfRIPRProcessor.cpp:1514
bool StopUplinking(size_t receiverIndex)
Definition WsfRIPRProcessor.cpp:1131
void Update(double aSimTime) override
Definition WsfRIPRProcessor.cpp:232
int WeaponsActiveOfType(const WsfWeapon &aWeapon)
Definition WsfRIPRProcessor.cpp:1251
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfRIPRProcessor.cpp:1629
std::string TargetName()
Definition WsfRIPRProcessor.cpp:1474
bool SetTargetByName(std::string aTargetName)
Definition WsfRIPRProcessor.cpp:1508
std::vector< std::string > ChannelJobTypes(unsigned int aChannelIndex)
Definition WsfRIPRProcessor.cpp:526
ripr::JobChannelIdList mJobChannelIds
Definition WsfRIPRProcessor.hpp:320
WsfPlatform * ActiveWeaponPlatform(unsigned int aIndex)
Return the platform of the active weapon at the given index.
Definition WsfRIPRProcessor.cpp:1266
wsf::comm::Comm * mJobBoardCommPtr
pointer to the WsfComm object to be used by mJobBoard
Definition WsfRIPRProcessor.hpp:349
virtual WsfRIPRJobBoard * JobBoard()
Definition WsfRIPRProcessor.cpp:253
size_t mTargetPlatformIndex
Definition WsfRIPRProcessor.hpp:178
int PeersWeaponsActive(const WsfTrack &aTrack)
Definition WsfRIPRProcessor.cpp:1369
WsfTrack * TargetTrack()
Definition WsfRIPRProcessor.cpp:1494
WsfRIPRJobBoard * mJobBoardPtr
Definition WsfRIPRProcessor.hpp:328
bool ProcessInput(UtInput &aInput) override
Definition WsfRIPRProcessor.cpp:364
WsfRIPRManager * mManagerPtr
Definition WsfRIPRProcessor.hpp:318
bool SetTargetByTrack(WsfTrack *aTargetTrackPtr)
Definition WsfRIPRProcessor.cpp:1530
void SendMessageJobAward(wsf::comm::Comm *aCommPtr, WsfRIPRProcessor *aSourcePtr, int aChannelIndex, int aJobId)
Definition WsfRIPRProcessor.cpp:1594
virtual bool RegisterScriptBiddingBlock(std::string aJobType, WsfScriptContext *aContextPtr, UtScript *aScriptPtr)
Definition WsfRIPRProcessor.cpp:334
bool ClearTarget()
Definition WsfRIPRProcessor.cpp:1541
WsfStringId mJobBoardCommInput
nameid of the WsfComm object to stick in mJobBoardComm during initialize; read during process input
Definition WsfRIPRProcessor.hpp:352
bool Initialize2(double aSimTime) override
Definition WsfRIPRProcessor.cpp:146
int SubsTargeting(const WsfTrack *aTrackPtr, const WsfPlatform *aExcludePlatform=nullptr)
Definition WsfRIPRProcessor.cpp:1306
WsfRIPRProcessor(WsfScenario &aScenario, const char *aPretendName, bool aJobPassThrough=false)
Definition WsfRIPRProcessor.cpp:47
void SetJobPassThrough(bool aJobPassThrough)
Definition WsfRIPRProcessor.cpp:269
bool BiddingHijacked() const
True means script calls to set bids for this processor are n.
Definition WsfRIPRProcessor.hpp:63
bool mBiddingHijacked
If true, this processor cannot bid from script calls.
Definition WsfRIPRProcessor.hpp:346
unsigned int WeaponUplinkCount()
Definition WsfRIPRProcessor.cpp:1193
void WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTargetTrackPtr)
Definition WsfRIPRProcessor.cpp:801
std::list< WeaponStatus > WeaponStatusList
Definition WsfRIPRProcessor.hpp:281
std::list< WeaponStatus >::iterator WeaponStatusListIter
Definition WsfRIPRProcessor.hpp:282
ripr::RIPRChannelJobMap mBufferedJobs
map of which job id each channel id thinks it should currently be doing, indexed by job id
Definition WsfRIPRProcessor.hpp:355
std::vector< WsfPlatform * > Subordinates()
Definition WsfRIPRProcessor.cpp:1292
bool JobPassThrough()
Definition WsfRIPRProcessor.hpp:122
QueryBidMapType mQueryBidTypeMap
Definition WsfRIPRProcessor.hpp:338
ripr::JobTypeChannelsMap mJobTypeChannels
Definition WsfRIPRProcessor.hpp:322
int WeaponsActive()
Return the count of the number of weapons that are active.
Definition WsfRIPRProcessor.cpp:1215
ripr::RIPRCommanderList Commanders()
Definition WsfRIPRProcessor.cpp:635
std::list< ActiveWeapon >::iterator ActiveWeaponListIter
Definition WsfRIPRProcessor.hpp:204
void SetJobWindowOpen(bool aOpen)
Definition WsfRIPRProcessor.cpp:289
std::vector< WsfPlatform * > SubordinatePlatforms()
Definition WsfRIPRProcessor.cpp:710
double QuerySubordinatesMaxBid(WsfRIPRJob &aJob, bool expandPassThroughAgents=true)
Definition WsfRIPRProcessor.cpp:767
std::map< std::string, std::pair< WsfScriptContext *, UtScript * > > QueryBidMapType
Definition WsfRIPRProcessor.hpp:337
virtual bool UnregisterScriptBiddingBlock(std::string aJobType)
Definition WsfRIPRProcessor.cpp:349
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptContext.hpp:71
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
Definition WsfTrackId.hpp:33
Definition WsfTrackMessage.hpp:28
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
Definition WsfWeapon.hpp:63
Definition WsfComm.hpp:43
std::map< int, int > RIPRChannelJobMap
Definition WsfRIPRCommon.hpp:36
std::multimap< std::string, unsigned int > JobTypeChannelsMap
Definition WsfRIPRCommon.hpp:37
std::vector< unsigned int > JobChannelIdList
Definition WsfRIPRCommon.hpp:35
std::list< RIPRCommanderInfo > RIPRCommanderList
Definition WsfRIPRCommon.hpp:68
Definition WsfComm.cpp:34
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Definition WsfRIPRProcessor.hpp:190
size_t mTargetIndex
The platform index of the target, not in WsfTaskManager.
Definition WsfRIPRProcessor.hpp:200
WsfStringId mWeaponSystemName
The name of the weapon system that was fired. (NOT the name of the launched weapon).
Definition WsfRIPRProcessor.hpp:194
WsfTrackId mTaskTrackId
The track ID of the track that was provided to WsfWeapon::Fire.
Definition WsfRIPRProcessor.hpp:192
size_t mPlatformIndex
Platform index of the launched weapon platform.
Definition WsfRIPRProcessor.hpp:196
unsigned int mSerialNumber
The serial number of the weapon engagement.
Definition WsfRIPRProcessor.hpp:198
double mTimeWeaponLastHit
The time the last weapon hit.
Definition WsfRIPRProcessor.hpp:272
double mTimeWeaponLastTerminated
The simulation time when of the most recent weapon termination event for this task.
Definition WsfRIPRProcessor.hpp:254
int mRoundsHit
The number of weapons that hit.
Definition WsfRIPRProcessor.hpp:269
int mRoundsMissed
The number of weapons that missed.
Definition WsfRIPRProcessor.hpp:275
size_t mAssigneeIndex
The platform index of containing the weapon system.
Definition WsfRIPRProcessor.hpp:242
int mRoundsActive
The number of weapons that are active (in flight).
Definition WsfRIPRProcessor.hpp:266
int mTotalRoundsFired
The total number of weapons that have been fired for this task.
Definition WsfRIPRProcessor.hpp:260
int mTotalSalvosFired
The number of salvos that have been fired.
Definition WsfRIPRProcessor.hpp:257
double mTimeWeaponLastFired
The simulation time when of the most recent weapon firing event for this task.
Definition WsfRIPRProcessor.hpp:251
size_t mTargetIndex
The platform index of the target.
Definition WsfRIPRProcessor.hpp:248
WeaponStatus(const WsfTrackId &aTrackId, size_t aAssigneeIndex, WsfStringId aWeaponSystemName)
Definition WsfRIPRProcessor.hpp:220
int mRoundsPending
The number of weapons that are pending (requested but not yet in flight).
Definition WsfRIPRProcessor.hpp:263
double mTimeWeaponLastMissed
The time the last weapon missed.
Definition WsfRIPRProcessor.hpp:278
WsfStringId mWeaponSystemName
The string ID of the name of the weapon system.
Definition WsfRIPRProcessor.hpp:245
WsfTrackId mTrackId
The track ID.
Definition WsfRIPRProcessor.hpp:239
Copyrights Multiple, All Rights Reserved