WSF
WsfMilEventResults.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 2019 Infoscitex, a DCS 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 WSFMILEVENTRESULTS_HPP
13#define WSFMILEVENTRESULTS_HPP
14
15#include "wsf_mil_export.h"
16
17#include <ostream>
18
20#include "WsfEventResult.hpp"
24class WsfEM_Rcvr;
25class WsfEM_Xmtr;
26class WsfEW_Result;
27class WsfPlatform;
28class WsfSensor;
29class WsfSimulation;
30class WsfTrack;
31#include "WsfWeapon.hpp"
33
34namespace wsf
35{
36namespace event
37{
38
39// ===================================================================================================
40class WSF_MIL_EXPORT DirectedEnergyWeaponAbortShot : public Result
41{
42public:
43 static constexpr const char* cNAME = "DIRECTED_ENERGY_WEAPON_ABORT_SHOT";
45 WsfDirectedEnergyWeapon* aWeaponPtr,
46 const WsfWeaponEngagement* aEngagementPtr,
47 Settings aSettings = Settings())
48 : Result(aSimTime, std::move(aSettings), cNAME)
49 , mWeaponPtr(aWeaponPtr)
50 , mEngagementPtr(aEngagementPtr)
51 {
52 }
53
54 void Print(std::ostream& aStream) const override;
55 void PrintCSV(std::ostream& aStream) const override;
56
57 const WsfDirectedEnergyWeapon* GetWeapon() const { return mWeaponPtr; }
58 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
59
60private:
61 WsfDirectedEnergyWeapon* mWeaponPtr;
62 const WsfWeaponEngagement* mEngagementPtr;
63};
64
65// ===================================================================================================
66class WSF_MIL_EXPORT DirectedEnergyWeaponBeginShot : public Result
67{
68public:
69 static constexpr const char* cNAME = "DIRECTED_ENERGY_WEAPON_BEGIN_SHOT";
71 WsfDirectedEnergyWeapon* aWeaponPtr,
72 const WsfWeaponEngagement* aEngagementPtr,
73 Settings aSettings = Settings())
74 : Result(aSimTime, std::move(aSettings), cNAME)
75 , mWeaponPtr(aWeaponPtr)
76 , mEngagementPtr(aEngagementPtr)
77 {
78 }
79
80 void Print(std::ostream& aStream) const override;
81 void PrintCSV(std::ostream& aStream) const override;
82
83 const WsfDirectedEnergyWeapon* GetWeapon() const { return mWeaponPtr; }
84 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
85
86private:
87 WsfDirectedEnergyWeapon* mWeaponPtr;
88 const WsfWeaponEngagement* mEngagementPtr;
89};
90
91// ===================================================================================================
92class WSF_MIL_EXPORT DirectedEnergyWeaponEndShot : public Result
93{
94public:
95 static constexpr const char* cNAME = "DIRECTED_ENERGY_WEAPON_END_SHOT";
97 WsfDirectedEnergyWeapon* aWeaponPtr,
98 const WsfWeaponEngagement* aEngagementPtr,
99 Settings aSettings = Settings())
100 : Result(aSimTime, std::move(aSettings), cNAME)
101 , mWeaponPtr(aWeaponPtr)
102 , mEngagementPtr(aEngagementPtr)
103 {
104 }
105
106 void Print(std::ostream& aStream) const override;
107 void PrintCSV(std::ostream& aStream) const override;
108
109 const WsfDirectedEnergyWeapon* GetWeapon() const { return mWeaponPtr; }
110 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
111
112private:
113 WsfDirectedEnergyWeapon* mWeaponPtr;
114 const WsfWeaponEngagement* mEngagementPtr;
115};
116
117// ===================================================================================================
118class WSF_MIL_EXPORT DirectedEnergyWeaponUpdateShot : public Result
119{
120public:
121 static constexpr const char* cNAME = "DIRECTED_ENERGY_WEAPON_UPDATE_SHOT";
123 WsfDirectedEnergyWeapon* aWeaponPtr,
124 const WsfWeaponEngagement* aEngagementPtr,
125 Settings aSettings = Settings())
126 : Result(aSimTime, std::move(aSettings), cNAME)
127 , mWeaponPtr(aWeaponPtr)
128 , mEngagementPtr(aEngagementPtr)
129 {
130 }
131
132 void Print(std::ostream& aStream) const override;
133 void PrintCSV(std::ostream& aStream) const override;
134
135 const WsfDirectedEnergyWeapon* GetWeapon() const { return mWeaponPtr; }
136 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
137
138private:
139 WsfDirectedEnergyWeapon* mWeaponPtr;
140 const WsfWeaponEngagement* mEngagementPtr;
141};
142
143// ===================================================================================================
144class WSF_MIL_EXPORT DirectedEnergyWeaponCooldownComplete : public Result
145{
146public:
147 static constexpr const char* cNAME = "DIRECTED_ENERGY_WEAPON_COOLDOWN_COMPLETE";
148 DirectedEnergyWeaponCooldownComplete(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
149 : Result(aSimTime, std::move(aSettings), cNAME)
150 , mWeaponPtr(aWeaponPtr)
151 {
152 }
153
154 void Print(std::ostream& aStream) const override;
155 void PrintCSV(std::ostream& aStream) const override;
156
157 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
158
159private:
160 WsfWeapon* mWeaponPtr;
161};
162
163// ===================================================================================================
164class WSF_MIL_EXPORT ImplicitWeaponBeginEngagement : public Result
165{
166public:
167 static constexpr const char* cNAME = "IMPLICIT_WEAPON_BEGIN_ENGAGEMENT";
169 WsfImplicitWeapon* aWeaponPtr,
170 const WsfWeaponEngagement* aEngagementPtr,
171 Settings aSettings = Settings())
172 : Result(aSimTime, std::move(aSettings), cNAME)
173 , mWeaponPtr(aWeaponPtr)
174 , mEngagementPtr(aEngagementPtr)
175 {
176 }
177
178 void Print(std::ostream& aStream) const override;
179 void PrintCSV(std::ostream& aStream) const override;
180
181 const WsfImplicitWeapon* GetWeapon() const { return mWeaponPtr; }
182 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
183
184private:
185 WsfImplicitWeapon* mWeaponPtr;
186 const WsfWeaponEngagement* mEngagementPtr;
187};
188
189// ===================================================================================================
190class WSF_MIL_EXPORT ImplicitWeaponEndEngagement : public Result
191{
192public:
193 static constexpr const char* cNAME = "IMPLICIT_WEAPON_END_ENGAGEMENT";
195 WsfImplicitWeapon* aWeaponPtr,
196 const WsfWeaponEngagement* aEngagementPtr,
197 Settings aSettings = Settings())
198 : Result(aSimTime, std::move(aSettings), cNAME)
199 , mWeaponPtr(aWeaponPtr)
200 , mEngagementPtr(aEngagementPtr)
201 {
202 }
203
204 void Print(std::ostream& aStream) const override;
205 void PrintCSV(std::ostream& aStream) const override;
206
207 const WsfImplicitWeapon* GetWeapon() const { return mWeaponPtr; }
208 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
209
210private:
211 WsfImplicitWeapon* mWeaponPtr;
212 const WsfWeaponEngagement* mEngagementPtr;
213};
214
215// ===================================================================================================
216class WSF_MIL_EXPORT JammingAttempt : public Result
217{
218public:
219 static constexpr const char* cNAME = "JAMMING_ATTEMPT";
220 JammingAttempt(double aSimTime,
221 WsfEM_Xmtr* aXmtrPtr,
222 WsfEM_Rcvr* aRcvrPtr,
223 WsfEM_Interaction& aResult,
224 Settings aSettings = Settings())
225 : Result(aSimTime, std::move(aSettings), cNAME)
226 , mXmtrPtr(aXmtrPtr)
227 , mRcvrPtr(aRcvrPtr)
228 , mResult(aResult)
229 {
230 }
231
232 void Print(std::ostream& aStream) const override;
233 void PrintCSV(std::ostream& aStream) const override;
234
235 const WsfEM_Xmtr* GetXmtr() const { return mXmtrPtr; }
236 const WsfEM_Rcvr* GetRcvr() const { return mRcvrPtr; }
237 WsfEM_Interaction& GetInteraction() const { return mResult; }
238
239private:
240 WsfEM_Xmtr* mXmtrPtr;
241 WsfEM_Rcvr* mRcvrPtr;
242 WsfEM_Interaction& mResult;
243};
244
245// ===================================================================================================
246class WSF_MIL_EXPORT JammingRequestCanceled : public Result
247{
248public:
249 static constexpr const char* cNAME = "JAMMING_REQUEST_CANCELED";
250 JammingRequestCanceled(double aSimTime,
251 WsfWeapon* aWeaponPtr,
252 double aFrequency,
253 double aBandwidth,
254 size_t aTargetIndex,
255 Settings aSettings = Settings())
256 : Result(aSimTime, std::move(aSettings), cNAME)
257 , mWeaponPtr(aWeaponPtr)
258 , mFrequency(aFrequency)
259 , mBandwidth(aBandwidth)
260 , mTargetIndex(aTargetIndex)
261 {
262 }
263
264 void Print(std::ostream& aStream) const override;
265 void PrintCSV(std::ostream& aStream) const override;
266
267 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
268 double GetFrequency() const { return mFrequency; }
269 double GetBandwidth() const { return mBandwidth; }
270 size_t GetTargetIndex() const { return mTargetIndex; }
271
272private:
273 WsfWeapon* mWeaponPtr;
274 double mFrequency;
275 double mBandwidth;
276 size_t mTargetIndex;
277};
278
279// ===================================================================================================
280class WSF_MIL_EXPORT JammingRequestInitiated : public Result
281{
282public:
283 static constexpr const char* cNAME = "JAMMING_REQUEST_INITIATED";
284 JammingRequestInitiated(double aSimTime,
285 WsfWeapon* aWeaponPtr,
286 double aFrequency,
287 double aBandwidth,
288 WsfStringId aTechniqueId,
289 size_t aTargetIndex,
290 Settings aSettings = Settings())
291 : Result(aSimTime, std::move(aSettings), cNAME)
292 , mWeaponPtr(aWeaponPtr)
293 , mFrequency(aFrequency)
294 , mBandwidth(aBandwidth)
295 , mTechniqueId(aTechniqueId)
296 , mTargetIndex(aTargetIndex)
297 {
298 }
299
300 void Print(std::ostream& aStream) const override;
301 void PrintCSV(std::ostream& aStream) const override;
302
303 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
304 double GetFrequency() const { return mFrequency; }
305 double GetBandwidth() const { return mBandwidth; }
306 WsfStringId GetTechniqueId() const { return mTechniqueId; }
307 size_t GetTargetIndex() const { return mTargetIndex; }
308
309private:
310 WsfWeapon* mWeaponPtr;
311 double mFrequency;
312 double mBandwidth;
313 WsfStringId mTechniqueId;
314 size_t mTargetIndex;
315};
316
317// ===================================================================================================
318class WSF_MIL_EXPORT JammingRequestUpdated : public Result
319{
320public:
321 static constexpr const char* cNAME = "JAMMING_REQUEST_UPDATED";
322 JammingRequestUpdated(double aSimTime,
323 WsfWeapon* aWeaponPtr,
324 double aFrequency,
325 double aBandwidth,
326 WsfStringId aTechniqueId,
327 size_t aTargetIndex,
328 Settings aSettings = Settings())
329 : Result(aSimTime, std::move(aSettings), cNAME)
330 , mWeaponPtr(aWeaponPtr)
331 , mFrequency(aFrequency)
332 , mBandwidth(aBandwidth)
333 , mTechniqueId(aTechniqueId)
334 , mTargetIndex(aTargetIndex)
335 {
336 }
337
338 void Print(std::ostream& aStream) const override;
339 void PrintCSV(std::ostream& aStream) const override;
340
341 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
342 double GetFrequency() const { return mFrequency; }
343 double GetBandwidth() const { return mBandwidth; }
344 WsfStringId GetTechniqueId() const { return mTechniqueId; }
345 size_t GetTargetIndex() const { return mTargetIndex; }
346
347private:
348 WsfWeapon* mWeaponPtr;
349 double mFrequency;
350 double mBandwidth;
351 WsfStringId mTechniqueId;
352 size_t mTargetIndex;
353};
354
355// ===================================================================================================
356class WSF_MIL_DEPRECATED_EXPORT PlatformKilled : public Result
357{
358public:
359 static constexpr const char* cNAME = "PLATFORM_KILLED";
360 PlatformKilled(double aSimTime, WsfPlatform* aPlatformPtr, Settings aSettings = Settings())
361 : Result(aSimTime, std::move(aSettings), "PLATFORM_KILLED")
362 , mPlatformPtr(aPlatformPtr)
363 {
364 }
365
366 void Print(std::ostream& aStream) const override;
367 void PrintCSV(std::ostream& aStream) const override;
368
369 const WsfPlatform* GetPlatform() const { return mPlatformPtr; }
370
371private:
372 WsfPlatform* mPlatformPtr;
373};
374
375// ===================================================================================================
376class WSF_MIL_EXPORT GuidanceComputerPhaseChanged : public Result
377{
378public:
379 static constexpr const char* cNAME = "MOVER_GUIDANCE_PHASE_CHANGED";
380 GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer* aComputerPtr, Settings aSettings = Settings())
381 : Result(aSimTime, std::move(aSettings), cNAME)
382 , mComputerPtr(aComputerPtr)
383 {
384 }
385
386 void Print(std::ostream& aStream) const override;
387 void PrintCSV(std::ostream& aStream) const override;
388
389 WsfGuidanceComputer* GetGuidanceComputer() const { return mComputerPtr; }
390
391private:
392 WsfGuidanceComputer* mComputerPtr;
393};
394
395// ===================================================================================================
396class WSF_MIL_EXPORT WeaponFireAborted : public Result
397{
398public:
399 static constexpr const char* cNAME = "WEAPON_FIRE_ABORTED";
400 WeaponFireAborted(double aSimTime,
401 WsfWeapon* aWeaponPtr,
402 const WsfTrack* aTargetTrackPtr,
403 double aQuantity,
404 Settings aSettings = Settings())
405 : Result(aSimTime, std::move(aSettings), cNAME)
406 , mWeaponPtr(aWeaponPtr)
407 , mTargetTrackPtr(aTargetTrackPtr)
408 , mQuantity(aQuantity)
409 {
410 }
411
412 void Print(std::ostream& aStream) const override;
413 void PrintCSV(std::ostream& aStream) const override;
414
415 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
416 const WsfTrack* GetTrack() const { return mTargetTrackPtr; }
417 double GetQuantity() const { return mQuantity; }
418
419private:
420 WsfWeapon* mWeaponPtr;
421 const WsfTrack* mTargetTrackPtr;
422 double mQuantity;
423};
424
425// ===================================================================================================
426class WSF_MIL_EXPORT WeaponFireRequested : public Result
427{
428public:
429 static constexpr const char* cNAME = "WEAPON_FIRE_REQUESTED";
430 WeaponFireRequested(double aSimTime,
431 WsfWeapon* aWeaponPtr,
432 const WsfTrack* aTargetTrackPtr,
433 double aQuantity,
434 Settings aSettings = Settings())
435 : Result(aSimTime, std::move(aSettings), cNAME)
436 , mWeaponPtr(aWeaponPtr)
437 , mTargetTrackPtr(aTargetTrackPtr)
438 , mQuantity(aQuantity)
439 {
440 }
441
442 void Print(std::ostream& aStream) const override;
443 void PrintCSV(std::ostream& aStream) const override;
444
445 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
446 const WsfTrack* GetTrack() const { return mTargetTrackPtr; }
447 double GetQuantity() const { return mQuantity; }
448
449private:
450 WsfWeapon* mWeaponPtr;
451 const WsfTrack* mTargetTrackPtr;
452 double mQuantity;
453};
454
455// ===================================================================================================
456class WSF_MIL_EXPORT WeaponFired : public Result
457{
458public:
459 static constexpr const char* cNAME = "WEAPON_FIRED";
460 WeaponFired(double aSimTime,
461 const WsfWeaponEngagement* aEngagementPtr,
462 const WsfTrack* aTargetTrackPtr,
463 Settings aSettings = Settings())
464 : Result(aSimTime, std::move(aSettings), cNAME)
465 , mEngagementPtr(aEngagementPtr)
466 , mTargetTrackPtr(aTargetTrackPtr)
467 {
468 }
469
470 void Print(std::ostream& aStream) const override;
471 void PrintCSV(std::ostream& aStream) const override;
472
473 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
474 const WsfTrack* GetTrack() const { return mTargetTrackPtr; }
475
476private:
477 const WsfWeaponEngagement* mEngagementPtr;
478 const WsfTrack* mTargetTrackPtr;
479};
480
481// ===================================================================================================
482class WSF_MIL_EXPORT WeaponHit : public Result
483{
484public:
485 static constexpr const char* cNAME = "WEAPON_HIT";
486 WeaponHit(double aSimTime,
487 const WsfWeaponEngagement* aEngagementPtr,
488 WsfPlatform* aTargetPtr,
489 Settings aSettings = Settings())
490 : Result(aSimTime, std::move(aSettings), cNAME)
491 , mEngagementPtr(aEngagementPtr)
492 , mTargetPtr(aTargetPtr)
493 {
494 }
495
496 void Print(std::ostream& aStream) const override;
497 void PrintCSV(std::ostream& aStream) const override;
498
499 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
500 const WsfPlatform* GetTarget() const { return mTargetPtr; }
501
502private:
503 const WsfWeaponEngagement* mEngagementPtr;
504 WsfPlatform* mTargetPtr;
505};
506
507// ===================================================================================================
508class WSF_MIL_EXPORT WeaponKilled : public Result
509{
510public:
511 static constexpr const char* cNAME = "WEAPON_KILLED";
512 WeaponKilled(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
513 : Result(aSimTime, std::move(aSettings), cNAME)
514 , mWeaponPtr(aWeaponPtr)
515 {
516 }
517
518 void Print(std::ostream& aStream) const override;
519 void PrintCSV(std::ostream& aStream) const override;
520
521 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
522
523private:
524 WsfWeapon* mWeaponPtr;
525};
526
527// ===================================================================================================
528class WSF_MIL_EXPORT WeaponModeActivated : public Result
529{
530public:
531 static constexpr const char* cNAME = "WEAPON_MISSED";
532 WeaponModeActivated(double aSimTime,
533 WsfWeapon* aWeaponPtr,
534 WsfWeapon::WsfWeaponMode* aModePtr,
535 Settings aSettings = Settings())
536 : Result(aSimTime, std::move(aSettings), cNAME)
537 , mWeaponPtr(aWeaponPtr)
538 , mModePtr(aModePtr)
539 {
540 }
541
542 void Print(std::ostream& aStream) const override;
543 void PrintCSV(std::ostream& aStream) const override;
544
545 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
546 const WsfWeapon::WsfWeaponMode* GetWeaponMode() const { return mModePtr; }
547
548private:
549 WsfWeapon* mWeaponPtr;
550 WsfWeapon::WsfWeaponMode* mModePtr;
551};
552
553// ===================================================================================================
554class WSF_MIL_EXPORT WeaponModeDeactivated : public Result
555{
556public:
557 static constexpr const char* cNAME = "WEAPON_MODE_ACTIVATED";
558 WeaponModeDeactivated(double aSimTime,
559 WsfWeapon* aWeaponPtr,
560 WsfWeapon::WsfWeaponMode* aModePtr,
561 Settings aSettings = Settings())
562 : Result(aSimTime, std::move(aSettings), cNAME)
563 , mWeaponPtr(aWeaponPtr)
564 , mModePtr(aModePtr)
565 {
566 }
567
568 void Print(std::ostream& aStream) const override;
569 void PrintCSV(std::ostream& aStream) const override;
570
571 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
572 const WsfWeapon::WsfWeaponMode* GetWeaponMode() const { return mModePtr; }
573
574private:
575 WsfWeapon* mWeaponPtr;
576 WsfWeapon::WsfWeaponMode* mModePtr;
577};
578
579// ===================================================================================================
580class WSF_MIL_EXPORT WeaponMissed : public Result
581{
582public:
583 static constexpr const char* cNAME = "WEAPON_MODE_DEACTIVATED";
584 WeaponMissed(double aSimTime,
585 const WsfWeaponEngagement* aEngagementPtr,
586 WsfPlatform* aTargetPtr,
587 Settings aSettings = Settings())
588 : Result(aSimTime, std::move(aSettings), cNAME)
589 , mEngagementPtr(aEngagementPtr)
590 , mTargetPtr(aTargetPtr)
591 {
592 }
593
594 void Print(std::ostream& aStream) const override;
595 void PrintCSV(std::ostream& aStream) const override;
596
597 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
598 const WsfPlatform* GetTarget() const { return mTargetPtr; }
599
600private:
601 const WsfWeaponEngagement* mEngagementPtr;
602 WsfPlatform* mTargetPtr;
603};
604
605// ===================================================================================================
606class WSF_MIL_EXPORT WeaponNonOperational : public Result
607{
608public:
609 static constexpr const char* cNAME = "WEAPON_NON_OPERATIONAL";
610 WeaponNonOperational(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
611 : Result(aSimTime, std::move(aSettings), cNAME)
612 , mWeaponPtr(aWeaponPtr)
613 {
614 }
615
616 void Print(std::ostream& aStream) const override;
617 void PrintCSV(std::ostream& aStream) const override;
618
619 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
620
621private:
622 WsfWeapon* mWeaponPtr;
623};
624
625// ===================================================================================================
626class WSF_MIL_EXPORT WeaponOperational : public Result
627{
628public:
629 static constexpr const char* cNAME = "WEAPON_OPERATIONAL";
630 WeaponOperational(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
631 : Result(aSimTime, std::move(aSettings), cNAME)
632 , mWeaponPtr(aWeaponPtr)
633 {
634 }
635
636 void Print(std::ostream& aStream) const override;
637 void PrintCSV(std::ostream& aStream) const override;
638
639 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
640
641private:
642 WsfWeapon* mWeaponPtr;
643};
644
645// ===================================================================================================
646class WSF_MIL_EXPORT WeaponReloadStarted : public Result
647{
648public:
649 static constexpr const char* cNAME = "WEAPON_RELOAD_STARTED";
650 WeaponReloadStarted(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
651 : Result(aSimTime, std::move(aSettings), cNAME)
652 , mWeaponPtr(aWeaponPtr)
653 {
654 }
655
656 void PrintCSV(std::ostream& aStream) const override;
657 void Print(std::ostream& aStream) const override;
658
659 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
660
661private:
662 WsfWeapon* mWeaponPtr;
663};
664
665// ===================================================================================================
666class WSF_MIL_EXPORT WeaponReloadEnded : public Result
667{
668public:
669 static constexpr const char* cNAME = "WEAPON_RELOAD_ENDED";
670 WeaponReloadEnded(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
671 : Result(aSimTime, std::move(aSettings), cNAME)
672 , mWeaponPtr(aWeaponPtr)
673 {
674 }
675
676 void Print(std::ostream& aStream) const override;
677 void PrintCSV(std::ostream& aStream) const override;
678
679 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
680
681private:
682 WsfWeapon* mWeaponPtr;
683};
684
685// ===================================================================================================
686class WSF_MIL_EXPORT WeaponSelected : public Result
687{
688public:
689 static constexpr const char* cNAME = "WEAPON_SELECTED";
690 WeaponSelected(double aSimTime,
691 WsfWeapon* aWeaponPtr,
692 WsfTrack* aTargetTrackPtr,
693 int aStoreId,
694 Settings aSettings = Settings())
695 : Result(aSimTime, std::move(aSettings), cNAME)
696 , mWeaponPtr(aWeaponPtr)
697 , mTargetTrackPtr(aTargetTrackPtr)
698 , mStoreId(aStoreId)
699 {
700 }
701
702 void Print(std::ostream& aStream) const override;
703 void PrintCSV(std::ostream& aStream) const override;
704
705 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
706 const WsfTrack* GetTargetTrack() const { return mTargetTrackPtr; }
707 int GetStoreId() const { return mStoreId; }
708
709private:
710 WsfWeapon* mWeaponPtr;
711 WsfTrack* mTargetTrackPtr;
712 int mStoreId;
713};
714
715// ===================================================================================================
716class WSF_MIL_EXPORT WeaponTerminated : public Result
717{
718public:
719 static constexpr const char* cNAME = "WEAPON_TERMINATED";
720 WeaponTerminated(double aSimTime, const WsfWeaponEngagement* aEngagementPtr, Settings aSettings = Settings())
721 : Result(aSimTime, std::move(aSettings), cNAME)
722 , mEngagementPtr(aEngagementPtr)
723 {
724 }
725
726 void Print(std::ostream& aStream) const override;
727 void PrintCSV(std::ostream& aStream) const override;
728
729 const WsfWeaponEngagement* GetEngagement() const { return mEngagementPtr; }
730
731private:
732 const WsfWeaponEngagement* mEngagementPtr;
733};
734
735// ===================================================================================================
736class WSF_MIL_EXPORT WeaponTurnedOff : public Result
737{
738public:
739 static constexpr const char* cNAME = "WEAPON_TURNED_OFF";
740 WeaponTurnedOff(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
741 : Result(aSimTime, std::move(aSettings), cNAME)
742 , mWeaponPtr(aWeaponPtr)
743 {
744 }
745
746 void Print(std::ostream& aStream) const override;
747 void PrintCSV(std::ostream& aStream) const override;
748
749 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
750
751private:
752 WsfWeapon* mWeaponPtr;
753};
754
755// ===================================================================================================
756class WSF_MIL_EXPORT WeaponTurnedOn : public Result
757{
758public:
759 static constexpr const char* cNAME = "WEAPON_TURNED_ON";
760 WeaponTurnedOn(double aSimTime, WsfWeapon* aWeaponPtr, Settings aSettings = Settings())
761 : Result(aSimTime, std::move(aSettings), cNAME)
762 , mWeaponPtr(aWeaponPtr)
763 {
764 }
765
766 void Print(std::ostream& aStream) const override;
767 void PrintCSV(std::ostream& aStream) const override;
768
769 const WsfWeapon* GetWeapon() const { return mWeaponPtr; }
770
771private:
772 WsfWeapon* mWeaponPtr;
773};
774
775} // namespace event
776} // namespace wsf
777
778#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfDirectedEnergyWeapon.hpp:27
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfEW_Result.hpp:28
Definition WsfGuidanceComputer.hpp:52
Definition WsfImplicitWeapon.hpp:31
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfSensor.hpp:92
The main controller for a simulation.
Definition WsfSimulation.hpp:109
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
DirectedEnergyWeaponAbortShot(double aSimTime, WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:44
const WsfDirectedEnergyWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:57
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:43
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:58
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:69
const WsfDirectedEnergyWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:83
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:84
DirectedEnergyWeaponBeginShot(double aSimTime, WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:70
DirectedEnergyWeaponCooldownComplete(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:148
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:147
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:157
const WsfDirectedEnergyWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:109
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:110
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:95
DirectedEnergyWeaponEndShot(double aSimTime, WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:96
const WsfDirectedEnergyWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:135
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:121
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:136
DirectedEnergyWeaponUpdateShot(double aSimTime, WsfDirectedEnergyWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:122
GuidanceComputerPhaseChanged(double aSimTime, WsfGuidanceComputer *aComputerPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:380
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:379
WsfGuidanceComputer * GetGuidanceComputer() const
Definition WsfMilEventResults.hpp:389
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:167
ImplicitWeaponBeginEngagement(double aSimTime, WsfImplicitWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:168
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:182
const WsfImplicitWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:181
const WsfImplicitWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:207
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:208
ImplicitWeaponEndEngagement(double aSimTime, WsfImplicitWeapon *aWeaponPtr, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:194
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:193
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:219
const WsfEM_Xmtr * GetXmtr() const
Definition WsfMilEventResults.hpp:235
JammingAttempt(double aSimTime, WsfEM_Xmtr *aXmtrPtr, WsfEM_Rcvr *aRcvrPtr, WsfEM_Interaction &aResult, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:220
const WsfEM_Rcvr * GetRcvr() const
Definition WsfMilEventResults.hpp:236
WsfEM_Interaction & GetInteraction() const
Definition WsfMilEventResults.hpp:237
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:249
double GetFrequency() const
Definition WsfMilEventResults.hpp:268
JammingRequestCanceled(double aSimTime, WsfWeapon *aWeaponPtr, double aFrequency, double aBandwidth, size_t aTargetIndex, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:250
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:267
double GetBandwidth() const
Definition WsfMilEventResults.hpp:269
size_t GetTargetIndex() const
Definition WsfMilEventResults.hpp:270
size_t GetTargetIndex() const
Definition WsfMilEventResults.hpp:307
JammingRequestInitiated(double aSimTime, WsfWeapon *aWeaponPtr, double aFrequency, double aBandwidth, WsfStringId aTechniqueId, size_t aTargetIndex, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:284
double GetFrequency() const
Definition WsfMilEventResults.hpp:304
WsfStringId GetTechniqueId() const
Definition WsfMilEventResults.hpp:306
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:283
double GetBandwidth() const
Definition WsfMilEventResults.hpp:305
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:303
size_t GetTargetIndex() const
Definition WsfMilEventResults.hpp:345
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:341
WsfStringId GetTechniqueId() const
Definition WsfMilEventResults.hpp:344
double GetBandwidth() const
Definition WsfMilEventResults.hpp:343
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:321
JammingRequestUpdated(double aSimTime, WsfWeapon *aWeaponPtr, double aFrequency, double aBandwidth, WsfStringId aTechniqueId, size_t aTargetIndex, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:322
double GetFrequency() const
Definition WsfMilEventResults.hpp:342
PlatformKilled(double aSimTime, WsfPlatform *aPlatformPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:360
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:359
const WsfPlatform * GetPlatform() const
Definition WsfMilEventResults.hpp:369
Result(double aSimTime, Settings aSettings=Settings{}, std::string aEventName="UNSET")
Definition WsfEventResult.hpp:119
Definition WsfEventResult.hpp:35
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:415
WeaponFireAborted(double aSimTime, WsfWeapon *aWeaponPtr, const WsfTrack *aTargetTrackPtr, double aQuantity, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:400
double GetQuantity() const
Definition WsfMilEventResults.hpp:417
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:399
const WsfTrack * GetTrack() const
Definition WsfMilEventResults.hpp:416
WeaponFireRequested(double aSimTime, WsfWeapon *aWeaponPtr, const WsfTrack *aTargetTrackPtr, double aQuantity, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:430
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:429
const WsfTrack * GetTrack() const
Definition WsfMilEventResults.hpp:446
double GetQuantity() const
Definition WsfMilEventResults.hpp:447
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:445
const WsfTrack * GetTrack() const
Definition WsfMilEventResults.hpp:474
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:473
WeaponFired(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, const WsfTrack *aTargetTrackPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:460
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:459
WeaponHit(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:486
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:485
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:499
const WsfPlatform * GetTarget() const
Definition WsfMilEventResults.hpp:500
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:511
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:521
WeaponKilled(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:512
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:583
WeaponMissed(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, WsfPlatform *aTargetPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:584
const WsfPlatform * GetTarget() const
Definition WsfMilEventResults.hpp:598
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:597
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:545
WeaponModeActivated(double aSimTime, WsfWeapon *aWeaponPtr, WsfWeapon::WsfWeaponMode *aModePtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:532
const WsfWeapon::WsfWeaponMode * GetWeaponMode() const
Definition WsfMilEventResults.hpp:546
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:531
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:571
const WsfWeapon::WsfWeaponMode * GetWeaponMode() const
Definition WsfMilEventResults.hpp:572
WeaponModeDeactivated(double aSimTime, WsfWeapon *aWeaponPtr, WsfWeapon::WsfWeaponMode *aModePtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:558
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:557
WeaponNonOperational(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:610
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:619
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:609
WeaponOperational(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:630
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:629
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:639
WeaponReloadEnded(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:670
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:679
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:669
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:649
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:659
WeaponReloadStarted(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:650
WeaponSelected(double aSimTime, WsfWeapon *aWeaponPtr, WsfTrack *aTargetTrackPtr, int aStoreId, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:690
int GetStoreId() const
Definition WsfMilEventResults.hpp:707
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:689
const WsfTrack * GetTargetTrack() const
Definition WsfMilEventResults.hpp:706
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:705
const WsfWeaponEngagement * GetEngagement() const
Definition WsfMilEventResults.hpp:729
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:719
WeaponTerminated(double aSimTime, const WsfWeaponEngagement *aEngagementPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:720
WeaponTurnedOff(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:740
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:739
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:749
WeaponTurnedOn(double aSimTime, WsfWeapon *aWeaponPtr, Settings aSettings=Settings())
Definition WsfMilEventResults.hpp:760
static constexpr const char * cNAME
Definition WsfMilEventResults.hpp:759
const WsfWeapon * GetWeapon() const
Definition WsfMilEventResults.hpp:769
Template specialization for wsf::comm::Address. Allows usage of Address in std::unordered_map/set.
Definition WsfCommAddress.hpp:185
Definition WsfXIO_EventResults.cpp:33
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved