WSF
WsfBMMOELogger.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// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9/*******************************************************************************
10*
11* File: WsfBMMOELogger.hpp
12*
13* Classification: UNCLASSIFIED
14*
15* Details:
16*
17* Contract Number:
18* Contractor Name: Radiance Technologies
19* Address: 350 Wynn Drive
20* Huntsville, AL 35805
21*
22* Abstract: MOE Logger for the battle managers in ITASE. These will probably
23* be switched over to more expressive events eventually but currently
24* since we're riding on top of the WsfTask systems, we can't necessarily
25* hijack those event logs.
26*
27*******************************************************************************/
28
29#ifndef WSF_BM_MOE_LOGGER_HPP
30#define WSF_BM_MOE_LOGGER_HPP
31
32#include <UtMemory.hpp>
33
34#include <WsfBMCommon.hpp>
35#include <iadsLib/moeLoggingInterface.hpp>
36
40
41#include <UtPlugin.hpp>
42#include <UtCallback.hpp>
43#include "UtScriptDataPack.hpp"
44#include "UtScript.hpp"
45
46#include "WsfSimulation.hpp"
48
51class WsfSimulation;
52
53namespace il
54{
55 class evaluationAssignment;
56}
57
58class WSF_IADS_C2_LIB_EXPORT WsfBMHEFIRMOELogger : public il::moeLoggingInterface
59{
60 public:
62 ~WsfBMHEFIRMOELogger() override = default;
63
64 UtCallbackListN<void(const double, const il::evaluationAssignment*, const std::string)> OnAssignment;
65 UtCallbackListN<void(const double, const il::assignmentACKMessage*, const il::evaluationAssignment*)> OnAssignmentStatus;
66 UtCallbackListN<void(const double, const il::idRecord*, const il::evaluationAssignment*, const std::string&)> OnAssignmentCancel;
67 UtCallbackListN<void(const double, const il::idRecord*, const il::assignmentMessage*, const il::trackRecord*, const std::string&)> OnCANTCOAssignment;
68 UtCallbackListN<void(const double, const il::idRecord*, const il::assessmentRecord*)> OnAllocate;
69
70 UtCallbackListN<void(const double, const il::assetRecord*, const il::trackRecord*, const il::assignmentMessage*, const il::sensorRecord*)> OnSensorCue;
71 UtCallbackListN<void(const double, const il::assetRecord*, const il::trackRecord*, const il::assignmentMessage*, const il::sensorRecord*)> OnSensorDropCue;
72 UtCallbackListN<void(const double, const il::trackRecord*, const il::sensorRecord*)> OnSensorTracking;
73
74 UtCallbackListN<void(const double, const std::string, const il::trackRecord*, const il::assetRecord*, const double, const double)> OnAIAddBehavior;
75 UtCallbackListN<void(const double, const il::trackRecord*, const il::assetRecord*, const std::string&, const double, const double, const double)> OnAITakeAction;
76 UtCallbackListN<void(const double, const il::assetRecord*, const std::string&, const std::string&, const double)> OnAIEgress;
77
78 void Assignment(const double curr_time, const il::evaluationAssignment* assignment, const std::string assignment_flag) override;
79 void AssignmentStatus(const double curr_time, const il::assignmentACKMessage* status, const il::evaluationAssignment* related_assignment) override;
80 void AssignmentCancel(const double curr_time, const il::idRecord* cancelling_unit, const il::evaluationAssignment* active_assignment, const std::string& cancel_reason) override;
81 void CANTCOAssignment(const double curr_time, const il::idRecord* responding_unit, const il::assignmentMessage* assignment, const il::trackRecord* opt_track, const std::string& reason) override;
82 void WILCOAssignment(const double curr_time, const il::assignmentACKMessage* status, const il::evaluationAssignment* related_assignment) override;
83 void HAVCOAssignment(const double curr_time, const il::assignmentACKMessage* status, const il::evaluationAssignment* related_assignment) override;
84 void Allocate(const double curr_time, const il::idRecord* allocating_unit, const il::assessmentRecord* assessment) override;
85
86 void SensorCue(const double curr_time, const il::assetRecord* curr_unit, const il::trackRecord* master_track, const il::assignmentMessage* assignment, const il::sensorRecord* sensor_to_assign) override;
87 void SensorDropCue(const double curr_time, const il::assetRecord* curr_unit, const il::trackRecord* master_track, const il::assignmentMessage* assignment, const il::sensorRecord* sensor_to_assign) override;
88 void SensorTracking(const double curr_time, const il::trackRecord* master_track, const il::sensorRecord* assigned_sensor) override;
89
90 void AIAddBehavior(const double curr_time, const std::string behavior, const il::trackRecord* target, const il::assetRecord* ai_asset, const double range, const double range_to_zone) override;
91 void AITakeAction(const double curr_time, const il::trackRecord* track, const il::assetRecord* ai_asset, const std::string& action_type, const double end_time_s, const double range, const double range_to_zone) override;
92 void AIEgress(const double curr_time, const il::assetRecord* ai_asset, const std::string& egress_method, const std::string& corridor_name, const double speed) override;
93
94 void RegisterScriptObservers(WsfSimulation& aSimulation);
95
96 protected:
99
100 WsfSimulation* mSimulationPtr; // we don't own this, slice
101
102 std::shared_ptr<WsfBMEventOutput> mEventOutput;
103 std::shared_ptr<WsfBMCSV_EventOutput> mCSV_EventOutput;
104
105};
106
109class WSF_IADS_C2_LIB_EXPORT IADSC2SimulationExtension : public WsfSimulationExtension
110{
111public:
113
114 void AddedToSimulation() override;
115
116 void SetLogger(std::unique_ptr<il::moeLoggingInterface> aMoeLogger);
117 il::moeLoggingInterface* GetLogger() const;
118
119 static IADSC2SimulationExtension* Find(const WsfSimulation& aSimulation);
120
121private:
122 std::unique_ptr<il::moeLoggingInterface> mMoeLogger;
123};
124
125#endif
IADSC2SimulationExtension()
Definition WsfBMMOELogger.cpp:657
static IADSC2SimulationExtension * Find(const WsfSimulation &aSimulation)
Definition WsfBMMOELogger.cpp:680
void SetLogger(std::unique_ptr< il::moeLoggingInterface > aMoeLogger)
Definition WsfBMMOELogger.cpp:669
void AddedToSimulation() override
Definition WsfBMMOELogger.cpp:663
il::moeLoggingInterface * GetLogger() const
Definition WsfBMMOELogger.cpp:674
WsfBMCSV_EventOutput writes BM specific events to the event output logfile.
Definition WsfBMCSV_EventOutput.hpp:56
WsfBMEventOutput writes BM specific events to the event output logfile.
Definition WsfBMEventOutput.hpp:49
std::shared_ptr< WsfBMCSV_EventOutput > mCSV_EventOutput
Definition WsfBMMOELogger.hpp:103
WsfSimulation * mSimulationPtr
Definition WsfBMMOELogger.hpp:100
UtCallbackListN< void(const double, const il::idRecord *, const il::assessmentRecord *)> OnAllocate
Definition WsfBMMOELogger.hpp:68
void AssignmentCancel(const double curr_time, const il::idRecord *cancelling_unit, const il::evaluationAssignment *active_assignment, const std::string &cancel_reason) override
Definition WsfBMMOELogger.cpp:225
void AssignmentStatus(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:122
WsfBMHEFIRMOELogger(WsfBMHEFIRMOELogger const &)=default
void AIEgress(const double curr_time, const il::assetRecord *ai_asset, const std::string &egress_method, const std::string &corridor_name, const double speed) override
Definition WsfBMMOELogger.cpp:459
void SensorTracking(const double curr_time, const il::trackRecord *master_track, const il::sensorRecord *assigned_sensor) override
Definition WsfBMMOELogger.cpp:364
UtCallbackListN< void(const double, const il::trackRecord *, const il::sensorRecord *)> OnSensorTracking
Definition WsfBMMOELogger.hpp:72
WsfBMHEFIRMOELogger & operator=(WsfBMHEFIRMOELogger const &)=delete
void CANTCOAssignment(const double curr_time, const il::idRecord *responding_unit, const il::assignmentMessage *assignment, const il::trackRecord *opt_track, const std::string &reason) override
Definition WsfBMMOELogger.cpp:255
UtCallbackListN< void(const double, const il::assetRecord *, const std::string &, const std::string &, const double)> OnAIEgress
Definition WsfBMMOELogger.hpp:76
void Assignment(const double curr_time, const il::evaluationAssignment *assignment, const std::string assignment_flag) override
Definition WsfBMMOELogger.cpp:79
void SensorCue(const double curr_time, const il::assetRecord *curr_unit, const il::trackRecord *master_track, const il::assignmentMessage *assignment, const il::sensorRecord *sensor_to_assign) override
Definition WsfBMMOELogger.cpp:324
UtCallbackListN< void(const double, const il::trackRecord *, const il::assetRecord *, const std::string &, const double, const double, const double)> OnAITakeAction
Definition WsfBMMOELogger.hpp:75
void RegisterScriptObservers(WsfSimulation &aSimulation)
Add a new events to the script observer that maps our new WsfBMHEFIRMOELogger to a script function si...
Definition WsfBMMOELogger.cpp:478
void HAVCOAssignment(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:290
UtCallbackListN< void(const double, const il::idRecord *, const il::assignmentMessage *, const il::trackRecord *, const std::string &)> OnCANTCOAssignment
Definition WsfBMMOELogger.hpp:67
UtCallbackListN< void(const double, const il::idRecord *, const il::evaluationAssignment *, const std::string &)> OnAssignmentCancel
Definition WsfBMMOELogger.hpp:66
UtCallbackListN< void(const double, const il::assetRecord *, const il::trackRecord *, const il::assignmentMessage *, const il::sensorRecord *)> OnSensorCue
Definition WsfBMMOELogger.hpp:70
void AITakeAction(const double curr_time, const il::trackRecord *track, const il::assetRecord *ai_asset, const std::string &action_type, const double end_time_s, const double range, const double range_to_zone) override
Definition WsfBMMOELogger.cpp:427
void WILCOAssignment(const double curr_time, const il::assignmentACKMessage *status, const il::evaluationAssignment *related_assignment) override
Definition WsfBMMOELogger.cpp:285
~WsfBMHEFIRMOELogger() override=default
WsfBMHEFIRMOELogger(WsfSimulation *aSimulation)
Definition WsfBMMOELogger.cpp:58
UtCallbackListN< void(const double, const std::string, const il::trackRecord *, const il::assetRecord *, const double, const double)> OnAIAddBehavior
Definition WsfBMMOELogger.hpp:74
UtCallbackListN< void(const double, const il::evaluationAssignment *, const std::string)> OnAssignment
Definition WsfBMMOELogger.hpp:64
UtCallbackListN< void(const double, const il::assetRecord *, const il::trackRecord *, const il::assignmentMessage *, const il::sensorRecord *)> OnSensorDropCue
Definition WsfBMMOELogger.hpp:71
void Allocate(const double curr_time, const il::idRecord *allocating_unit, const il::assessmentRecord *assessment) override
Definition WsfBMMOELogger.cpp:295
std::shared_ptr< WsfBMEventOutput > mEventOutput
Definition WsfBMMOELogger.hpp:102
void SensorDropCue(const double curr_time, const il::assetRecord *curr_unit, const il::trackRecord *master_track, const il::assignmentMessage *assignment, const il::sensorRecord *sensor_to_assign) override
Definition WsfBMMOELogger.cpp:344
UtCallbackListN< void(const double, const il::assignmentACKMessage *, const il::evaluationAssignment *)> OnAssignmentStatus
Definition WsfBMMOELogger.hpp:65
void AIAddBehavior(const double curr_time, const std::string behavior, const il::trackRecord *target, const il::assetRecord *ai_asset, const double range, const double range_to_zone) override
Definition WsfBMMOELogger.cpp:396
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfAssetManager.hpp:34
Copyrights Multiple, All Rights Reserved