WSF
WsfBMSensorsManager.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: WsfBMSensorsManager.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: This is a core class implementation for a HELIOS-like sensors
23* manager base class.
24*
25*******************************************************************************/
26
27#ifndef WSF_BM_SENSORS_MANAGER_HPP
28#define WSF_BM_SENSORS_MANAGER_HPP
29
30namespace il
31{
32 class AssetManagerInterface;
33 class SensorsManagerInterface;
34}
35
36#include <memory>
37
40
43#include "WsfBMCommon.hpp"
46#include <WsfApplication.hpp>
48
50{
51 public:
52
54 const std::string& aPartClass = WsfScriptSensorsManagerClass::SCRIPT_CLASS_NAME,
55 const std::string& aPartVarName = "PROCESSOR",
56 const std::shared_ptr<il::SensorsManagerInterface>& sm_component = std::make_shared<il::SensorsManagerInterface>());
57
58 virtual ~WsfBMSensorsManager();
59
60 WsfProcessor* Clone() const override;
61
62 // Plugin Interface
63 static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication* aApplicationPtr);
64 static WSF_IADS_C2_LIB_EXPORT WsfProcessor* Create(WsfScenario& aScenario);
65 static WSF_IADS_C2_LIB_EXPORT std::unique_ptr<WsfBMSensorsManager> CreateUnique(WsfScenario& aScenario);
66 // End Plugin Interface
67
68 bool ProcessInput(UtInput& aInput)override;
69
70 const char* GetScriptClassName() const override;
71 virtual const char* GetBaseClassName();
72
73 bool Initialize(double aSimTime) override;
74 bool Initialize2(double aSimTime) override;
75 void Update(double aSimTime) override;
76 void Run(const double aSimTime) override; // HELIOS C2 component interface for invoking processor periodic updates
77 bool ProcessMessage(double aSimTime, const WsfMessage& aMessage) override;
78 bool ReceiveMessage(double aSimTime, const WsfMessage& aMessage) override;
79
80 protected:
82
83 virtual bool ProcessSensorsManagerInput(UtInput& aInput);
84 virtual void UpdateSensorCuePerception();
85
86 virtual void SetTTRTrackingModeName(const std::string& opt_mode_name);
87 virtual std::string GetTTRTrackingModeName() const;
88
89 private:
90 WsfBMSensorsManager& operator=(const WsfBMSensorsManager& rhs) = delete;;
91
92 std::string m_ttr_tracking_mode_name;
93 WsfDefaultSensorsManagerImpl m_default_sensors_manager_impl;
94
96};
97
98#endif
Definition WsfApplication.hpp:45
static WSF_IADS_C2_LIB_EXPORT WsfProcessor * Create(WsfScenario &aScenario)
Definition WsfBMSensorsManager.cpp:84
virtual bool ProcessSensorsManagerInput(UtInput &aInput)
Definition WsfBMSensorsManager.cpp:210
friend class WsfDefaultSensorsManagerImpl
Definition WsfBMSensorsManager.hpp:95
virtual void UpdateSensorCuePerception()
Definition WsfBMSensorsManager.cpp:255
virtual void SetTTRTrackingModeName(const std::string &opt_mode_name)
Definition WsfBMSensorsManager.cpp:284
bool ReceiveMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfBMSensorsManager.cpp:196
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfBMSensorsManager.cpp:181
virtual const char * GetBaseClassName()
Definition WsfBMSensorsManager.cpp:103
static WSF_IADS_C2_LIB_EXPORT std::unique_ptr< WsfBMSensorsManager > CreateUnique(WsfScenario &aScenario)
Definition WsfBMSensorsManager.cpp:91
virtual std::string GetTTRTrackingModeName() const
Definition WsfBMSensorsManager.cpp:289
const char * GetScriptClassName() const override
Definition WsfBMSensorsManager.cpp:98
bool ProcessInput(UtInput &aInput) override
Definition WsfBMSensorsManager.cpp:108
bool Initialize(double aSimTime) override
Definition WsfBMSensorsManager.cpp:124
bool Initialize2(double aSimTime) override
Definition WsfBMSensorsManager.cpp:139
void Run(const double aSimTime) override
Definition WsfBMSensorsManager.cpp:174
virtual ~WsfBMSensorsManager()
Definition WsfBMSensorsManager.cpp:62
void Update(double aSimTime) override
Definition WsfBMSensorsManager.cpp:161
static WSF_IADS_C2_LIB_EXPORT void RegisterScriptTypes(WsfApplication *aApplicationPtr)
Definition WsfBMSensorsManager.cpp:72
WsfProcessor * Clone() const override
Definition WsfBMSensorsManager.cpp:66
WsfBMSensorsManager(WsfScenario &aScenario, const std::string &aPartClass=WsfScriptSensorsManagerClass::SCRIPT_CLASS_NAME, const std::string &aPartVarName="PROCESSOR", const std::shared_ptr< il::SensorsManagerInterface > &sm_component=std::make_shared< il::SensorsManagerInterface >())
Definition WsfBMSensorsManager.cpp:41
WsfC2ComponentContainer(const std::shared_ptr< il::BattleManagerInterface > &component, const std::shared_ptr< il::moeLoggingInterface > &logger=nullptr)
Definition WsfC2ComponentRefInterface.cpp:31
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfScriptOverridableProcessor(const bool autonomous_updates)
Definition WsfScriptOverridableProcessor.hpp:36
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
static const char * SCRIPT_CLASS_NAME
Definition WsfScriptSensorsManagerClass.hpp:46
Definition WsfAssetManager.hpp:34
Copyrights Multiple, All Rights Reserved