WSF
WsfSIMDIS_Interface.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 2018 - 2019 Lockheed Martin Corporation. All Rights Reserved.
7// Lockheed Martin Corporation hereby provides the below source code to the
8// United States Government with Unlimited Rights as such is defined in
9// DFARS 252.227 - 7014.
10//
11// The use, dissemination or disclosure of data in this file is subject to
12// limitation or restriction. See accompanying README and LICENSE for details.
13// ****************************************************************************
14
15#ifndef WSFSIMDISINTERFACE_HPP
16#define WSFSIMDISINTERFACE_HPP
17
18#include "wsf_simdis_export.h"
19
20#include <set>
21
22#include "UtCallbackHolder.hpp"
23
27#include "WsfStringId.hpp"
28
29class WsfPlatform;
30class WsfSensor;
31class WsfTrack;
32class WsfTrackId;
34
35namespace wsf
36{
37namespace simdis
38{
39
40class SensorUpdateEvent;
41
44class WSF_SIMDIS_EXPORT ScenarioExtension : public WsfScenarioExtension
45{
46 public:
48
49 static ScenarioExtension* Find(const WsfScenario& aScenario);
50
51 void SimulationCreated(WsfSimulation& aSimulation) override;
52 bool ProcessInput(UtInput& aInput) override;
53
54 const std::string& GetOutputFilename() const { return mOutputFilename; }
55 const std::string& GetHitIcon() const { return mHitIcon; }
56 const std::string& GetKillIcon() const { return mKillIcon; }
57 const double GetEventDuration() const { return mEventDuration; }
58 const bool EnableBeams() const { return mEnableBeams; }
59 const std::string& GetBeamColor(const std::string& aSensorTypeName) const;
60 const double GetLatitude() const { return mLatitude; }
61 const double GetLongitude() const { return mLongitude; }
62 const double GetAltitude() const { return mAltitude; }
63 const char GetFHN(const std::string& aSide) const;
64 private:
65 std::string mOutputFilename;
66 std::string mHitIcon;
67 std::string mKillIcon;
68 double mEventDuration;
69 bool mEnableBeams;
70 std::string mDefaultBeamColor;
71 std::map<std::string, std::string> mBeamColorMap;
72 double mLatitude;
73 double mLongitude;
74 double mAltitude;
75 std::map<std::string, char> mFHN_Map;
76};
77
79class WSF_SIMDIS_EXPORT Interface : public WsfSimulationExtension
80{
81 public:
82 Interface(ScenarioExtension& aExtension);
83 ~Interface() override = default;
84
85 static Interface* Find(const WsfSimulation& aSimulation);
86
87 void AddedToSimulation() override;
88 private:
89 bool OpenOutput();
90
91 void WriteHeader();
92
93 void PlatformInitialized(double aSimTime,
94 WsfPlatform* aPlatformPtr);
95 void PlatformKilled(double aSimTime,
96 WsfPlatform* aPlatformPtr);
97 void WeaponHit(double aSimTime,
98 const WsfWeaponEngagement* aEngagementPtr,
99 WsfPlatform* aTargetPtr);
100
101 void SensorTrackDropped(double aSimTime,
102 WsfSensor* aSensorPtr,
103 const WsfTrack* aTrackPtr);
104
105 void SensorTrackInitiated(double aSimTime,
106 WsfSensor* aSensorPtr,
107 const WsfTrack* aTrackPtr);
108
109 void DeadReckonChange(double aSimTime,
111 void UpdatePlatform(double aSimTime,
112 WsfPlatform* aPlatformPtr);
113
114 unsigned int LookupPlatformId(const std::string& aPlatformName);
115 unsigned int LookupTrackId(const WsfTrackId& aTrackId);
116
117 // A reference back to the scenario extension for accessing input data.
118 const ScenarioExtension& mExtension;
119 std::string mOutputFilename;
120 std::ofstream* mFileStreamPtr;
121 UtCallbackHolder mEntityStateCallbacks;
122 UtCallbackHolder mBaseCallbacks;
123 std::map<std::string, unsigned int> mPlatformNameLookup;
124 std::set<unsigned int> mInitSet;
125 unsigned int mUID_Assigner;
126 unsigned int mHitID_Assigner;
127 unsigned int mKillID_Assigner;
128 std::map<WsfTrackId, unsigned int> mTrackIdLookup;
129};
130
131}
132}
133
134
135#endif
Maintains a platform's dead reckon state.
Definition WsfExtEntityDeadReckon.hpp:108
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfScenarioExtension()
Definition WsfScenarioExtension.cpp:21
friend class WsfScenario
Definition WsfScenarioExtension.hpp:39
Definition WsfSensor.hpp:92
WsfSimulationExtension()
Definition WsfSimulationExtension.cpp:23
friend class WsfSimulation
Definition WsfSimulationExtension.hpp:43
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfWeaponEngagement.hpp:43
void AddedToSimulation() override
Definition WsfSIMDIS_Interface.cpp:239
static Interface * Find(const WsfSimulation &aSimulation)
Definition WsfSIMDIS_Interface.cpp:234
Interface(ScenarioExtension &aExtension)
Definition WsfSIMDIS_Interface.cpp:228
~Interface() override=default
Definition WsfSIMDIS_Interface.hpp:45
bool ProcessInput(UtInput &aInput) override
Definition WsfSIMDIS_Interface.cpp:93
const double GetAltitude() const
Definition WsfSIMDIS_Interface.hpp:62
const double GetLongitude() const
Definition WsfSIMDIS_Interface.hpp:61
const std::string & GetKillIcon() const
Definition WsfSIMDIS_Interface.hpp:56
ScenarioExtension()
Definition WsfSIMDIS_Interface.cpp:68
const std::string & GetHitIcon() const
Definition WsfSIMDIS_Interface.hpp:55
const double GetEventDuration() const
Definition WsfSIMDIS_Interface.hpp:57
const std::string & GetOutputFilename() const
Definition WsfSIMDIS_Interface.hpp:54
void SimulationCreated(WsfSimulation &aSimulation) override
Definition WsfSIMDIS_Interface.cpp:88
const double GetLatitude() const
Definition WsfSIMDIS_Interface.hpp:60
const bool EnableBeams() const
Definition WsfSIMDIS_Interface.hpp:58
static ScenarioExtension * Find(const WsfScenario &aScenario)
Definition WsfSIMDIS_Interface.cpp:83
Definition WsfSIMDIS_Interface.hpp:38
Function definitions for those who need run-time access to the version.
Definition WsfComm.cpp:32
Copyrights Multiple, All Rights Reserved