WSF
WsfBMEventResults.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
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 WSFBMEVENTRESULTS_HPP
13#define WSFBMEVENTRESULTS_HPP
14
15#include <ostream>
16
17#include "wsf_iads_c2_lib_export.h"
18
19#include <iadsLib/assetManagerInterface.hpp>
20#include <iadsLib/assignmentContainers.hpp>
21#include <iadsLib/moeLoggingInterface.hpp>
22#include <iadsLib/util.hpp>
23
25#include "WsfEventResult.hpp"
26#include "WsfPlatform.hpp"
27#include "WsfSimulation.hpp"
28#include "WsfWeapon.hpp"
29
30namespace wsf
31{
32namespace event
33{
34
35// ============================================= BMAssignment =============================================
36class WSF_IADS_C2_LIB_EXPORT BMAssignment : public Result
37{
38 public:
39 BMAssignment(double aSimTime,
40 const il::evaluationAssignment* aAssignment,
41 const std::string aAssignmentFlag,
42 WsfPlatform* aAssigningPlatform,
43 WsfPlatform* aAssignedPlatform,
44 WsfPlatform* aTargetPlatform,
45 WsfWeapon* aAssignedWeapon,
46 double aTargetLLA[3],
47 Settings& aSettings,
48 bool aIsDelegate = false)
49 : Result(aSimTime, aSettings),
50 mAssignment(aAssignment),
51 mAssignmentFlag(aAssignmentFlag),
52 mAssigningPlatform(aAssigningPlatform),
53 mAssignedPlatform(aAssignedPlatform),
54 mTargetPlatform(aTargetPlatform),
55 mAssignedWeapon(aAssignedWeapon),
56 mIsDelegate(aIsDelegate)
57 { UtVec3d::Set(mTargetLLA, aTargetLLA); }
58 ~BMAssignment() override = default;
59
60 void Print(std::ostream& aStream) const override;
61 void PrintCSV(std::ostream& aStream) const override;
62
63 private:
64 const il::evaluationAssignment* mAssignment;
65 const std::string mAssignmentFlag;
66 WsfPlatform* mAssigningPlatform;
67 WsfPlatform* mAssignedPlatform;
68 WsfPlatform* mTargetPlatform;
69 WsfWeapon* mAssignedWeapon;
70 double mTargetLLA[3];
71 bool mIsDelegate;
72};
73
74// ============================================= AssignmentStatus =========================================
75class WSF_IADS_C2_LIB_EXPORT AssignmentStatus : public Result
76{
77 public:
78 AssignmentStatus(double aSimTime,
79 const il::assignmentACKMessage* aStatus,
80 const il::evaluationAssignment* aRelatedAssignment,
81 std::string aStatusType,
82 WsfPlatform* aAssigningPlatform,
83 WsfPlatform* aAssignedPlatform,
84 WsfPlatform* aTargetPlatform,
85 WsfWeapon* aAssignedWeapon,
86 std::string aSystemicScope,
87 WsfSimulation& aSimulation,
88 Settings& aSettings)
89 : Result(aSimTime, aSettings),
90 mStatus(aStatus),
91 mRelatedAssignment(aRelatedAssignment),
92 mStatusType(aStatusType),
93 mAssigningPlatform(aAssigningPlatform),
94 mAssignedPlatform(aAssignedPlatform),
95 mTargetPlatform(aTargetPlatform),
96 mAssignedWeapon(aAssignedWeapon),
97 mSystemicScope(aSystemicScope),
98 mSimulation(aSimulation)
99 {}
100 ~AssignmentStatus() override = default;
101
102 void Print(std::ostream& aStream) const override;
103 void PrintCSV(std::ostream& aStream) const override;
104
105 private:
106 const il::assignmentACKMessage* mStatus;
107 const il::evaluationAssignment* mRelatedAssignment;
108 std::string mStatusType;
109 WsfPlatform* mAssigningPlatform;
110 WsfPlatform* mAssignedPlatform;
111 WsfPlatform* mTargetPlatform;
112 WsfWeapon* mAssignedWeapon;
113 std::string mSystemicScope;
114 WsfSimulation& mSimulation;
115};
116
117// ============================================= AssignmentCancel =========================================
118class WSF_IADS_C2_LIB_EXPORT AssignmentCancel : public Result
119{
120 public:
121 AssignmentCancel(double aSimTime,
122 const il::idRecord* aCancellingUnit,
123 const il::evaluationAssignment* aActiveAssignment,
124 const std::string& aCancelReason,
125 WsfPlatform* aCancellingPlatform,
126 WsfPlatform* aAssigningPlatform,
127 WsfPlatform* aAssignedPlatform,
128 WsfPlatform* aTargetPlatform,
129 WsfWeapon* aAssignedWeapon,
130 Settings& aSettings)
131 : Result(aSimTime, aSettings),
132 mCancellingUnit(aCancellingUnit),
133 mActiveAssignment(aActiveAssignment),
134 mCancelReason(aCancelReason),
135 mCancellingPlatform(aCancellingPlatform),
136 mAssigningPlatform(aAssigningPlatform),
137 mAssignedPlatform(aAssignedPlatform),
138 mTargetPlatform(aTargetPlatform),
139 mAssignedWeapon(aAssignedWeapon)
140 {}
141 ~AssignmentCancel() override = default;
142
143 void Print(std::ostream& aStream) const override;
144 void PrintCSV(std::ostream& aStream) const override;
145
146 private:
147 const il::idRecord* mCancellingUnit;
148 const il::evaluationAssignment* mActiveAssignment;
149 const std::string& mCancelReason;
150 WsfPlatform* mCancellingPlatform;
151 WsfPlatform* mAssigningPlatform;
152 WsfPlatform* mAssignedPlatform;
153 WsfPlatform* mTargetPlatform;
154 WsfWeapon* mAssignedWeapon;
155};
156
157// ============================================= CANTCOAssignment =========================================
158class WSF_IADS_C2_LIB_EXPORT CANTCOAssignment : public Result
159{
160 public:
161 CANTCOAssignment(double aSimTime,
162 const il::idRecord* aRespondingUnit,
163 const il::assignmentMessage* aAssignment,
164 const il::trackRecord* aOptTrack,
165 const std::string& aReason,
166 WsfPlatform* aAssigningPlatform,
167 WsfPlatform* aAssignedPlatform,
168 WsfPlatform* aTargetPlatform,
169 WsfPlatform* aReportingPlatform,
170 WsfWeapon* aAssignedWeapon,
171 Settings& aSettings)
172 : Result(aSimTime, aSettings),
173 mRespondingUnit(aRespondingUnit),
174 mAssignment(aAssignment),
175 mOptTrack(aOptTrack),
176 mReason(aReason),
177 mAssigningPlatform(aAssigningPlatform),
178 mAssignedPlatform(aAssignedPlatform),
179 mTargetPlatform(aTargetPlatform),
180 mReportingPlatform(aReportingPlatform),
181 mAssignedWeapon(aAssignedWeapon)
182
183 {}
184 ~CANTCOAssignment() override = default;
185
186 void Print(std::ostream& aStream) const override;
187 void PrintCSV(std::ostream& aStream) const override;
188
189 private:
190 const il::idRecord* mRespondingUnit;
191 const il::assignmentMessage* mAssignment;
192 const il::trackRecord* mOptTrack;
193 const std::string& mReason;
194 WsfPlatform* mAssigningPlatform;
195 WsfPlatform* mAssignedPlatform;
196 WsfPlatform* mTargetPlatform;
197 WsfPlatform* mReportingPlatform;
198 WsfWeapon* mAssignedWeapon;
199};
200
201// ============================================= Allocate =================================================
202class WSF_IADS_C2_LIB_EXPORT Allocate : public Result
203{
204 public:
205 Allocate(double aSimTime,
206 WsfPlatform* aAllocatingPlatform,
207 const il::assessmentRecord* aAssessment,
208 WsfPlatform* aTargetPlatform,
209 std::string aZoneTypes,
210 Settings& aSettings)
211 : Result(aSimTime, aSettings),
212 mAllocatingPlatform(aAllocatingPlatform),
213 mAssessment(aAssessment),
214 mTargetPlatform(aTargetPlatform),
215 mZoneTypes(aZoneTypes)
216 {
217 }
218 ~Allocate() override = default;
219
220 void Print(std::ostream& aStream) const override;
221 void PrintCSV(std::ostream& aStream) const override;
222
223 private:
224 WsfPlatform* mAllocatingPlatform;
225 const il::assessmentRecord* mAssessment;
226 WsfPlatform* mTargetPlatform;
227 std::string mZoneTypes;
228};
229
230// ============================================= SensorCue ================================================
231class WSF_IADS_C2_LIB_EXPORT SensorCue : public Result
232{
233 public:
234 SensorCue(double aSimTime,
235 const il::assetRecord* aCurrentUnit,
236 const il::trackRecord* aMasterTrack,
237 const il::assignmentMessage* aAssignment,
238 const il::sensorRecord* aSensorToAssign,
239 WsfPlatform* aTargetPlatform,
240 WsfSimulation& aSimulation,
241 Settings& aSettings)
242 : Result(aSimTime, aSettings),
243 mCurrentUnit(aCurrentUnit),
244 mMasterTrack(aMasterTrack),
245 mAssignment(aAssignment),
246 mSensorToAssign(aSensorToAssign),
247 mTargetPlatform(aTargetPlatform),
248 mSimulation(aSimulation)
249 {}
250 ~SensorCue() override = default;
251
252 void Print(std::ostream& aStream) const override;
253 void PrintCSV(std::ostream& aStream) const override;
254
255 private:
256 const il::assetRecord* mCurrentUnit;
257 const il::trackRecord* mMasterTrack;
258 const il::assignmentMessage* mAssignment;
259 const il::sensorRecord* mSensorToAssign;
260 WsfPlatform* mTargetPlatform;
261 WsfSimulation& mSimulation;
262};
263
264// ============================================= SensorDropCue ============================================
265class WSF_IADS_C2_LIB_EXPORT SensorDropCue : public Result
266{
267 public:
268 SensorDropCue(double aSimTime,
269 const il::assetRecord* aCurrentUnit,
270 const il::trackRecord* aMasterTrack,
271 const il::assignmentMessage* aAssignment,
272 const il::sensorRecord* aSensorToAssign,
273 WsfPlatform* aTargetPlatform,
274 WsfSimulation& aSimulation,
275 Settings& aSettings)
276 : Result(aSimTime, aSettings),
277 mCurrentUnit(aCurrentUnit),
278 mMasterTrack(aMasterTrack),
279 mAssignment(aAssignment),
280 mSensorToAssign(aSensorToAssign),
281 mTargetPlatform(aTargetPlatform),
282 mSimulation(aSimulation)
283 {}
284 ~SensorDropCue() override = default;
285
286 void Print(std::ostream& aStream) const override;
287 void PrintCSV(std::ostream& aStream) const override;
288
289 private:
290 const il::assetRecord* mCurrentUnit;
291 const il::trackRecord* mMasterTrack;
292 const il::assignmentMessage* mAssignment;
293 const il::sensorRecord* mSensorToAssign;
294 WsfPlatform* mTargetPlatform;
295 WsfSimulation& mSimulation;
296};
297
298// ============================================= SensorTracking ===========================================
299class WSF_IADS_C2_LIB_EXPORT SensorTracking : public Result
300{
301 public:
302 SensorTracking(double aSimTime,
303 const il::trackRecord* aMasterTrack,
304 const il::sensorRecord* aAssignedSensor,
305 const il::positionRecord aTrackingLocation,
306 WsfPlatform* aTargetPlatform,
307 double aTargetLLA[3],
308 WsfSimulation& aSimulation,
309 Settings& aSettings)
310 : Result(aSimTime, aSettings),
311 mMasterTrack(aMasterTrack),
312 mAssignedSensor(aAssignedSensor),
313 mTrackingLocation(aTrackingLocation),
314 mTargetPlatform(aTargetPlatform),
315 mSimulation(aSimulation)
316 { UtVec3d::Set(mTargetLLA, aTargetLLA); }
317 ~SensorTracking() override = default;
318
319 void Print(std::ostream& aStream) const override;
320 void PrintCSV(std::ostream& aStream) const override;
321
322 private:
323 const il::trackRecord* mMasterTrack;
324 const il::sensorRecord* mAssignedSensor;
325 const il::positionRecord mTrackingLocation;
326 WsfPlatform* mTargetPlatform;
327 double mTargetLLA[3];
328 WsfSimulation& mSimulation;
329};
330
331// ============================================= AIAddBehavior ============================================
332class WSF_IADS_C2_LIB_EXPORT AIAddBehavior : public Result
333{
334 public:
335 AIAddBehavior(double aSimTime,
336 const std::string aBehavior,
337 const il::trackRecord* aMasterTrack,
338 const il::assetRecord* aAIAsset,
339 const double aRange,
340 const double aRangeToZone,
341 double aTargetLLA[3],
342 Settings& aSettings)
343 : Result(aSimTime, aSettings),
344 mBehavior(aBehavior),
345 mMasterTrack(aMasterTrack),
346 mAIAsset(aAIAsset),
347 mRange(aRange),
348 mRangeToZone(aRangeToZone)
349 { UtVec3d::Set(mTargetLLA, aTargetLLA); }
350 ~AIAddBehavior() override = default;
351
352 void Print(std::ostream& aStream) const override;
353 void PrintCSV(std::ostream& aStream) const override;
354
355 private:
356 const std::string mBehavior;
357 const il::trackRecord* mMasterTrack;
358 const il::assetRecord* mAIAsset;
359 const double mRange;
360 const double mRangeToZone;
361 double mTargetLLA[3];
362};
363
364// ============================================= AITakeAction =============================================
365class WSF_IADS_C2_LIB_EXPORT AITakeAction : public Result
366{
367 public:
368 AITakeAction(double aSimTime,
369 const std::string& aActionType,
370 const double aEndTime,
371 const il::trackRecord* aMasterTrack,
372 const il::assetRecord* aAIAsset,
373 const double aRange,
374 const double aRangeToZone,
375 double aTargetLLA[3],
376 Settings& aSettings)
377 : Result(aSimTime, aSettings),
378 mActionType(aActionType),
379 mEndTime(aEndTime),
380 mMasterTrack(aMasterTrack),
381 mAIAsset(aAIAsset),
382 mRange(aRange),
383 mRangeToZone(aRangeToZone)
384 { UtVec3d::Set(mTargetLLA, aTargetLLA); }
385 ~AITakeAction() override = default;
386
387 void Print(std::ostream& aStream) const override;
388 void PrintCSV(std::ostream& aStream) const override;
389
390 private:
391 const std::string& mActionType;
392 const double mEndTime;
393 const il::trackRecord* mMasterTrack;
394 const il::assetRecord* mAIAsset;
395 const double mRange;
396 const double mRangeToZone;
397 double mTargetLLA[3];
398};
399
400// ============================================= AIEgress =================================================
401class WSF_IADS_C2_LIB_EXPORT AIEgress : public Result
402{
403 public:
404 AIEgress(double aSimTime,
405 const il::assetRecord* aAIAsset,
406 const std::string& aEgressMethod,
407 const std::string& aCorridorName,
408 Settings& aSettings)
409 : Result(aSimTime, aSettings),
410 mAIAsset(aAIAsset),
411 mEgressMethod(aEgressMethod),
412 mCorridorName(aCorridorName)
413 {
414 }
415 ~AIEgress() override = default;
416
417 void Print(std::ostream& aStream) const override;
418 void PrintCSV(std::ostream& aStream) const override;
419
420 private:
421 const il::assetRecord* mAIAsset;
422 const std::string& mEgressMethod;
423 const std::string& mCorridorName;
424};
425
426}
427}
428
429#endif
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfWeapon.hpp:63
~AIAddBehavior() override=default
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:462
AIAddBehavior(double aSimTime, const std::string aBehavior, const il::trackRecord *aMasterTrack, const il::assetRecord *aAIAsset, const double aRange, const double aRangeToZone, double aTargetLLA[3], Settings &aSettings)
Definition WsfBMEventResults.hpp:335
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:442
AIEgress(double aSimTime, const il::assetRecord *aAIAsset, const std::string &aEgressMethod, const std::string &aCorridorName, Settings &aSettings)
Definition WsfBMEventResults.hpp:404
~AIEgress() override=default
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:546
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:529
~AITakeAction() override=default
AITakeAction(double aSimTime, const std::string &aActionType, const double aEndTime, const il::trackRecord *aMasterTrack, const il::assetRecord *aAIAsset, const double aRange, const double aRangeToZone, double aTargetLLA[3], Settings &aSettings)
Definition WsfBMEventResults.hpp:368
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:506
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:484
~Allocate() override=default
Allocate(double aSimTime, WsfPlatform *aAllocatingPlatform, const il::assessmentRecord *aAssessment, WsfPlatform *aTargetPlatform, std::string aZoneTypes, Settings &aSettings)
Definition WsfBMEventResults.hpp:205
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:321
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:309
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:232
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:252
AssignmentCancel(double aSimTime, const il::idRecord *aCancellingUnit, const il::evaluationAssignment *aActiveAssignment, const std::string &aCancelReason, WsfPlatform *aCancellingPlatform, WsfPlatform *aAssigningPlatform, WsfPlatform *aAssignedPlatform, WsfPlatform *aTargetPlatform, WsfWeapon *aAssignedWeapon, Settings &aSettings)
Definition WsfBMEventResults.hpp:121
~AssignmentCancel() override=default
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:75
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:149
AssignmentStatus(double aSimTime, const il::assignmentACKMessage *aStatus, const il::evaluationAssignment *aRelatedAssignment, std::string aStatusType, WsfPlatform *aAssigningPlatform, WsfPlatform *aAssignedPlatform, WsfPlatform *aTargetPlatform, WsfWeapon *aAssignedWeapon, std::string aSystemicScope, WsfSimulation &aSimulation, Settings &aSettings)
Definition WsfBMEventResults.hpp:78
~AssignmentStatus() override=default
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:53
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:33
BMAssignment(double aSimTime, const il::evaluationAssignment *aAssignment, const std::string aAssignmentFlag, WsfPlatform *aAssigningPlatform, WsfPlatform *aAssignedPlatform, WsfPlatform *aTargetPlatform, WsfWeapon *aAssignedWeapon, double aTargetLLA[3], Settings &aSettings, bool aIsDelegate=false)
Definition WsfBMEventResults.hpp:39
~BMAssignment() override=default
~CANTCOAssignment() override=default
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:290
CANTCOAssignment(double aSimTime, const il::idRecord *aRespondingUnit, const il::assignmentMessage *aAssignment, const il::trackRecord *aOptTrack, const std::string &aReason, WsfPlatform *aAssigningPlatform, WsfPlatform *aAssignedPlatform, WsfPlatform *aTargetPlatform, WsfPlatform *aReportingPlatform, WsfWeapon *aAssignedWeapon, Settings &aSettings)
Definition WsfBMEventResults.hpp:161
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:271
Result(double aSimTime, Settings aSettings=Settings{}, std::string aEventName="UNSET")
Definition WsfEventResult.hpp:119
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:350
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:334
SensorCue(double aSimTime, const il::assetRecord *aCurrentUnit, const il::trackRecord *aMasterTrack, const il::assignmentMessage *aAssignment, const il::sensorRecord *aSensorToAssign, WsfPlatform *aTargetPlatform, WsfSimulation &aSimulation, Settings &aSettings)
Definition WsfBMEventResults.hpp:234
~SensorCue() override=default
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:383
~SensorDropCue() override=default
SensorDropCue(double aSimTime, const il::assetRecord *aCurrentUnit, const il::trackRecord *aMasterTrack, const il::assignmentMessage *aAssignment, const il::sensorRecord *aSensorToAssign, WsfPlatform *aTargetPlatform, WsfSimulation &aSimulation, Settings &aSettings)
Definition WsfBMEventResults.hpp:268
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:367
~SensorTracking() override=default
SensorTracking(double aSimTime, const il::trackRecord *aMasterTrack, const il::sensorRecord *aAssignedSensor, const il::positionRecord aTrackingLocation, WsfPlatform *aTargetPlatform, double aTargetLLA[3], WsfSimulation &aSimulation, Settings &aSettings)
Definition WsfBMEventResults.hpp:302
void PrintCSV(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:423
void Print(std::ostream &aStream) const override
Definition WsfBMEventResults.cpp:400
Definition WsfEventResult.hpp:35
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