WSF
WsfSensorComponent.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 2003-2015 The Boeing 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 WSFSENSORCOMPONENT_HPP
13#define WSFSENSORCOMPONENT_HPP
14
15class UtInput;
16#include "WsfComponent.hpp"
17class WsfPlatform;
18class WsfSensor;
19class WsfSensorBeam;
20class WsfSensorMode;
21class WsfSensorResult;
23class WsfSimulation;
25class WsfTrack;
26class WsfTrackId;
27
36{
37public:
38 // Makes things a little shorter.
40
42
43 WsfSensor* GetSensor() const { return GetComponentParent(); }
44 WsfPlatform* GetPlatform() const;
45 WsfSimulation* GetSimulation() const;
47
55
60
61 virtual bool ProcessModeInput(UtInput& aInput, WsfSensorMode& aSensorMode) { return false; }
62 virtual bool ProcessBeamInput(UtInput& aInput, WsfSensorBeam& aSensorBeam) { return false; }
63
64 virtual void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr) {}
65 virtual void PlatformDeleted(WsfPlatform* aPlatformPtr) {}
66
67 virtual void SelectMode(double aSimTime, WsfStringId aModeNameId) {}
68 virtual void DeselectMode(double aSimTime, WsfStringId aModeNameId) {}
69 virtual void TurnOn(double aSimTime) {}
70 virtual void TurnOff(double aSimTime) {}
72
78
79
80 virtual void AttemptToDetect(double aSimTime, WsfSensorResult& aResult) {}
81
85 virtual void PostAttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, WsfSensorResult& aResult) {}
86
91 {
92 }
93
94 // NOTE The callbacks from PerformScheduledDetections were broken up to pre and post to
95 // enable the same order of operations as was present in WSF 1.x.
96
99 virtual void PrePerformScheduledDetections(double aSimTime) {}
100
103 virtual void PostPerformScheduledDetections(double aSimTime) {}
104
105 // Extends WsfSensorMode::UpdateTrack
106 virtual void UpdateTrack(double aSimTime, WsfTrack* aTrackPtr, WsfPlatform* aTargetPtr, WsfSensorResult& aResult) {}
108
112
113
123 virtual bool TrackerAllowTracking(double aSimTime,
124 const TrackerSettings& aSettings,
125 const WsfTrackId& aRequestId,
126 size_t aObjectId,
127 WsfTrack* aTrackPtr,
128 WsfSensorResult& aResult)
129 {
130 return true;
131 }
132
140 virtual void TrackerInitializeTrack(double aSimTime,
141 const TrackerSettings& aSettings,
142 const WsfTrackId& aRequestId,
143 size_t aObjectId,
144 WsfSensorMode* aModePtr,
145 WsfTrack*& aTrackPtr)
146 {
147 }
148
158 virtual void TrackerUpdateTrack(double aSimTime,
159 const TrackerSettings& aSettings,
160 const WsfTrackId& aRequestId,
161 size_t aObjectId,
162 WsfSensorMode* aModePtr,
163 WsfTrack* aTrackPtr,
164 WsfPlatform* aTargetPtr,
165 WsfSensorResult& aResult)
166 {
167 }
168
176 virtual void TrackerDropTrack(double aSimTime,
177 const TrackerSettings& aSettings,
178 const WsfTrackId& aRequestId,
179 size_t aObjectId,
180 WsfSensorMode* aModePtr,
181 WsfTrack* aTrackPtr)
182 {
183 }
184
185
189
190 static void AttemptToDetect(WsfSensor& aSensor, double aSimTime, WsfSensorResult& aResult);
191
192 static bool PostAttemptToDetect(WsfSensor& aSensor, double aSimTime, WsfPlatform* aTargetPtr, WsfSensorResult& aResult);
193
194 WSF_DEPRECATED static void ComputeMeasurementErrors(WsfSensor& aSensor,
195 WsfSensorResult& aResult,
196 double& aAzError,
197 double& aElError,
198 double& aRangeError,
199 double& aRangeRateError);
200
201 static void ComputeSphericalMeasurementErrors(WsfSensor& aSensor,
202 const WsfSensorResult& aResult,
204
205 static void PrePerformScheduledDetections(WsfSensor& aSensor, double aSimTime);
206
207 static void PostPerformScheduledDetections(WsfSensor& aSensor, double aSimTime);
208
209 static void UpdateTrack(WsfSensor& aSensor,
210 double aSimTime,
211 WsfTrack* aTrackPtr,
212 WsfPlatform* aTargetPtr,
213 WsfSensorResult& aResult);
215};
216
217#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
WsfComponentT()
Definition WsfComponent.hpp:124
ParentType * GetComponentParent() const
Definition WsfComponent.hpp:154
virtual bool Initialize(double aSimTime)
Definition WsfComponent.cpp:45
virtual bool PreInitialize(double aSimTime)
Definition WsfComponent.cpp:24
virtual bool Initialize2(double aSimTime)
Definition WsfComponent.cpp:63
virtual bool ProcessInput(UtInput &aInput)
Definition WsfComponent.cpp:100
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Definition WsfSensorBeam.hpp:58
Definition WsfSensorComponent.hpp:36
virtual void PrePerformScheduledDetections(double aSimTime)
Definition WsfSensorComponent.hpp:99
virtual void TrackerUpdateTrack(double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Definition WsfSensorComponent.hpp:158
virtual void PlatformDeleted(WsfPlatform *aPlatformPtr)
Definition WsfSensorComponent.hpp:65
virtual void AttemptToDetect(double aSimTime, WsfSensorResult &aResult)
Extends the sensor-model implementation of AttemptToDetect.
Definition WsfSensorComponent.hpp:80
virtual void PostAttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Definition WsfSensorComponent.hpp:85
WsfSensor * GetSensor() const
Definition WsfSensorComponent.hpp:43
virtual void TurnOn(double aSimTime)
Definition WsfSensorComponent.hpp:69
WsfSensorTrackerSettings TrackerSettings
Definition WsfSensorComponent.hpp:39
virtual void DeselectMode(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorComponent.hpp:68
virtual void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfSensorComponent.hpp:64
virtual void PostPerformScheduledDetections(double aSimTime)
Definition WsfSensorComponent.hpp:103
virtual void UpdateTrack(double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult)
Definition WsfSensorComponent.hpp:106
virtual bool ProcessBeamInput(UtInput &aInput, WsfSensorBeam &aSensorBeam)
Definition WsfSensorComponent.hpp:62
virtual void ComputeSphericalMeasurementErrors(const WsfSensorResult &aResult, wsf::SphericalMeasurementErrors &aErrors) const
Definition WsfSensorComponent.hpp:89
virtual void TurnOff(double aSimTime)
Definition WsfSensorComponent.hpp:70
virtual void TrackerInitializeTrack(double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *&aTrackPtr)
Definition WsfSensorComponent.hpp:140
virtual bool TrackerAllowTracking(double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfTrack *aTrackPtr, WsfSensorResult &aResult)
Definition WsfSensorComponent.hpp:123
virtual void TrackerDropTrack(double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr)
Definition WsfSensorComponent.hpp:176
virtual bool ProcessModeInput(UtInput &aInput, WsfSensorMode &aSensorMode)
Definition WsfSensorComponent.hpp:61
virtual void SelectMode(double aSimTime, WsfStringId aModeNameId)
Definition WsfSensorComponent.hpp:67
Definition WsfSensorMode.hpp:36
Definition WsfSensorResult.hpp:27
Definition WsfSensorTracker.hpp:34
Definition WsfSensor.hpp:92
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
A standard set of errors associated with single sensor mono-static detections.
Definition WsfStandardSensorErrorModel.hpp:26
Copyrights Multiple, All Rights Reserved