WSF
WsfFalseTarget.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 WSFFALSETARGET_HPP
13#define WSFFALSETARGET_HPP
14
15#include "wsf_mil_export.h"
16
17#include <cfloat> // for DBL_MAX
18#include <map>
19#include <mutex>
20#include <vector>
21
22#include "UtEntity.hpp"
23class UtInput;
24#include "UtRandom.hpp"
25#include "UtVec2.hpp"
26#include "UtVec3.hpp"
27#include "WsfEM_Interaction.hpp"
28class WsfEM_Xmtr;
29class WsfEM_Rcvr;
34#include "WsfObject.hpp"
35class WsfPlatform;
36class WsfScenario;
37class WsfSimulation;
38#include "WsfStringId.hpp"
39
41// radar receivers that interact with the transmitter that includes this technique as part of its arsenal
48
49class WSF_MIL_EXPORT WsfFalseTarget : public WsfObject
50{
51private:
52 // static std::vector<double> sRCS_Values;
53 static std::map<WsfStringInt, size_t> sFT_NameCounter;
54 static size_t sFT_UniqueId;
55 static std::recursive_mutex sFT_Mutex;
56
57public:
59 friend class WsfFalseTargetBlip;
60
61 static void ResetStatic();
62 static size_t AssignFT_BlipUniqueId();
63
72
79
87
95
103
106 {
109 };
110
118
119 // Blip reference for speed and heading
125
127 {
128 bool mBlipsCreated{false};
129 double mLastScan{std::numeric_limits<double>::lowest()};
130 double mLastUpdate{std::numeric_limits<double>::lowest()};
131 double mLastBlipUpdate{std::numeric_limits<double>::lowest()};
132 double mLastBlipLocWCS[3]{0.0};
133 unsigned int mScreenedNumberOfFTs{0};
134 bool mFTsRejected{false};
135 };
136
137 struct BaseData
138 {
139 double mLocationWCS[3];
140 double mSpeed;
141 double mHeading;
143 size_t mUniqueId;
144
145 void Clear()
146 {
147 UtVec3d::Set(mLocationWCS, 0.0);
148 mSpeed = 0.0;
149 mHeading = 0.0;
150 mNameId = nullptr;
151 mUniqueId = 0;
152 }
153 };
154
156 {
157 double mMin;
158 double mMax;
159 };
160
161 using RadarSnsrPair = std::pair<WsfStringInt, WsfStringInt>;
162 using ExtentData = std::vector<ExtentPair>;
163
164 using BaseLocsVec = std::vector<BaseData>;
165 using Blips = std::vector<WsfFalseTargetBlip*>;
166 using BlipsIterators = std::vector<Blips::iterator>;
167 using JammerIdToBlipsMap = std::map<unsigned int, Blips>;
168 using JammerIdToStateMap = std::map<unsigned int, JammerState>;
169
170 using ScreenerPtrJammerXmtrPtr = std::pair<WsfFalseTargetScreener*, WsfEM_Xmtr*>;
171 using BlipStateVec = std::vector<ScreenerPtrJammerXmtrPtr>;
172
173 explicit WsfFalseTarget(WsfScenario& aScenario);
174 WsfFalseTarget(const WsfFalseTarget& aSrc);
176 ~WsfFalseTarget() override;
177
178 WsfFalseTarget* Clone() const override;
179 virtual bool Initialize(WsfSimulation* aSimulationPtr);
180 bool ProcessInput(UtInput& aInput) override;
181 virtual void Update(double aSimTime, WsfEM_Xmtr* aJammerXmtrPtr);
182
183 bool Initialize(double aSimTime, WsfEM_Xmtr* aJammerXmtrPtr);
184 void Reset();
185
186 BlipBehavior GetBlipBehavior() const { return mBlipBehavior; }
187 RadarBehavior GetRadarBehavior() const { return mRadarBehavior; }
188 PlatformBehavior GetPlatformBehavior() const { return mPlatformBehavior; }
189
190 double GetScanInterval() const { return mScanInterval; }
191
192 bool GetNewBlipsState(WsfFalseTargetScreener* aScreenerPtr, WsfEM_Xmtr* aJammerXmtrPtr);
193 void SetNewBlipsState(WsfFalseTargetScreener* aScreenerPtr, WsfEM_Xmtr* aJammerXmtrPtr, bool aState);
194
195 virtual void ClearAllBlips();
196 virtual void ClearBlips(unsigned int aJammerId);
197 Blips& GetBlips(unsigned int aJammerId);
198 Blip* GetBlipPtr(WsfStringId aBlipNameId, unsigned int aJammerId);
199 Blip* GetBlipPtr(size_t aBlipUniqueId, unsigned int aJammerId);
200 bool GetBlipsCreated(unsigned int aJammerId);
201 void CreateBlipNameId(Blip* aBlipPtr);
202
203 void SetBlipBehavior(BlipBehavior aBlipBehavior) { mBlipBehavior = aBlipBehavior; };
204 void SetRadarBehavior(RadarBehavior aRadarBehavior) { mRadarBehavior = aRadarBehavior; }
205 void SetPlatformBehavior(PlatformBehavior aPlatformBehavior) { mPlatformBehavior = aPlatformBehavior; }
206 void SetScanInterval(double aScanInterval);
207 void SetPersistence(double aPersistence);
208 void SetInitialNumberOfFTs(unsigned int aInitialNumberOfFTs, bool aIsExplicit = false);
209
210 void SetAzimuthExtent(double aAzLower, double aAzUpper);
211 void SetRangeExtent(double aRangeLower, double aRangeUpper);
212 void SetBlipSpeeds(double aMinSpeed, double aMaxSpeed);
213
214 void GetBlipSpeeds(double& aMinBlipSpeed, double& aMaxBlipSpeed) const;
215 void GetBlipHeadings(double& aMinBlipHeading, double& aMaxBlipHeading) const;
216
217 void SetBearingReference(ReferenceBearing aBearingReference) { mBearingReference = aBearingReference; }
218 ReferenceBearing GetBearingReference() const { return mBearingReference; }
219
220 void SetReferenceCentroid(double aLatitude, double aLongitude, double aAltitude);
221 void GetReferenceCentroid(double& aLatitude, double& aLongitude, double& aAltitude);
222 WsfPlatform* GetCentroidPlatform() const { return mCentroidPlatformPtr; }
223
224 virtual void RemoveJammer(WsfEM_Xmtr* aJammerXmtrPtr);
225
226 bool GetChanged() const { return mChanged; }
227 void SetDebug(bool aDebug) { mDebug = aDebug; }
228 bool GetDebug() const { return mDebug; }
229
230 unsigned int GetInitialNumberOfFTs() const { return mInitialNumberOfFTs; }
231 double GetPersistence() const { return mPersistence; }
232 bool GetRangeConstrained() const { return mRangeConstrained; }
233 void SetRangeConstrained(bool aRangeConstrained) { mRangeConstrained = aRangeConstrained; }
234
235 void SetState(OnOffState aState) { mState = aState; }
236 OnOffState GetState() const { return mState; }
237
238 void SetToggled(bool aToggled) { mToggled = aToggled; }
239 bool GetToggled() const { return mToggled; }
240
241 void DropTracks(RadarSnsrPair aIdKey, WsfEM_Xmtr* aJammerXmtrPtr);
242
243 // bool UpdateGeometry(double aSimTime, WsfEM_Rcvr* aRcvrPtr, WsfEM_Xmtr* aJammerXmtrPtr);
244
245 bool PowerSufficiencyCheck(double aSimTime, WsfEM_Xmtr* aJammerXmtrPtr, WsfEM_Xmtr* aRadarXmtrPtr, WsfEM_Rcvr* aRadarRcvrPtr);
246
247 void SetBlips(int aJammerID, WsfFalseTarget::Blips& aBlips) { mBlipsMap[aJammerID] = aBlips; }
248
249 bool ExplicitAzimuthExtent() const { return mExplicitAzimuthExtent; }
250 bool ExplicitNumberOfFTs() const { return mExplicitNumberOfFTs; }
251 bool ExplicitRangeConstraint() const { return mExplicitRangeConstraint; }
252 bool ExplicitRangeExtent() const { return mExplicitRangeExtent; }
253 bool ExplicitReferenceCentroid() const { return mExplicitReferenceCentroid; }
254 bool ExplicitScanInterval() const { return mExplicitScanInterval; }
255 bool ExplicitBlipSpeeds() const { return mExplicitBlipSpeeds; }
256
257
258protected:
259 WsfSimulation* GetSimulation() const { return mSimulationPtr; }
260 virtual void Rescan(double aSimTime, WsfEM_Xmtr* aJammerXmtrPtr);
261 virtual void UpdateBlipPositions(double aSimTime, unsigned int aJammerId);
262 void UpdateBaseBlipPositions(double aSimTime);
263 void UpdateCentroidPosition(double aSimTime);
264
265private:
266 bool mDebug;
267 WsfSimulation* mSimulationPtr;
268 BlipBehavior mBlipBehavior;
269 RadarBehavior mRadarBehavior;
270 PlatformBehavior mPlatformBehavior;
271 unsigned int mInitialNumberOfFTs;
272 double mScanInterval;
273 double mPersistence;
274
275 ExtentData mAzimuthExtent;
276 ExtentData mRangeExtent;
277 bool mRangeConstrained;
278 ReferenceBearing mBearingReference;
279 RangeDistribution mRangeDistribution;
280
281 WsfPlatform* mCentroidPlatformPtr;
282 double mCentroidHeading;
283 double mCentroidSpeed;
284 double mLastCentroidUpdate;
285 bool mCentroidNeedsAGL_Adjustment;
286
287 bool mExplicitReferenceCentroid;
288 bool mExplicitNumberOfFTs;
289 bool mExplicitScanInterval;
290 bool mExplicitAzimuthExtent;
291 bool mExplicitRangeConstraint;
292 bool mExplicitRangeExtent;
293 bool mExplicitBlipSpeeds;
294
295 double mBlipHeadings[2];
296 double mBlipSpeeds[2];
297 BlipReference mBlipReference;
298
299 bool mInitialized;
300 double mInitializationTime;
301
302 bool mChanged;
303
304 JammerIdToBlipsMap mBlipsMap;
305 BaseLocsVec mBaseLocations;
306
307 WsfStringId mFusedPlatformId;
308
309 JammerIdToStateMap mJammerIdToStateMap;
310
311 double mLastBaseLocWCS[3];
312 double mLastBaseLocsUpdate;
313 double mLastScan;
314 double mLastUpdate;
315
316 BlipStateVec mNewBlipsStateVec;
317
318 OnOffState mState;
319 // WsfPlatform* mTempPlatformPtr;
320 bool mToggled;
321
322 // Unique Blip Name Id variables
323 size_t mFTNameExtensionId;
324 size_t mBlipIdCounter;
325
326 ut::Random mRandom;
327
328 mutable std::recursive_mutex mMutex;
329};
330
331class WSF_MIL_EXPORT WsfFalseTargetBlip : public UtEntity
332{
333public:
336 using RadarSnsrVec = std::vector<RadarSnsrPair>;
337
347
348 struct BlipData
349 {
355 double mLocationDelta[3];
357
358 void Clear()
359 {
360 mActualSNR = -DBL_MAX;
361 mRadarToBlipRange = -DBL_MAX;
362 mEquivalentRCS = -DBL_MAX;
363 mJammerToRadarRange = -DBL_MAX;
365 UtVec3d::Set(mLocationDelta, 0.0);
366 if (mInteractionPtr != nullptr)
367 {
368 mInteractionPtr->Reset();
369 }
370 }
371 };
372
373 using BlipDataMap = std::map<RadarSnsrPair, BlipData>;
374
377
378 ~WsfFalseTargetBlip() override;
379
380 void SetPlatform(WsfPlatform* aPlatformPtr) { mPlatformPtr = aPlatformPtr; }
381 WsfPlatform* GetPlatform() const { return mPlatformPtr; }
382
383 void SetJammerXmtr(WsfEM_Xmtr* aJammerXmtrPtr) { mJammerXmtrPtr = aJammerXmtrPtr; }
384 WsfEM_Xmtr* GetJammerXmtr() const { return mJammerXmtrPtr; }
385
386 WsfFalseTarget* GetFalseTarget() const { return mFtPtr; }
387 void SetFalseTarget(WsfFalseTarget* aFtPtr) { mFtPtr = aFtPtr; }
388
389 BlipBehavior GetBehavior() const { return mFtBehavior; }
390 void SetBehavior(BlipBehavior aFalseTargetBehavior) { mFtBehavior = aFalseTargetBehavior; }
391
392 void AddStrength(RadarSnsrPair aIdKey, BlipStrength aStrength);
393
394 void AddTargetedRadarId(RadarSnsrPair aIdKey);
395 bool IsValidTargetedRadarId(RadarSnsrPair aIdKey);
396 void ResetBlipData(RadarSnsrPair aIdKey);
397 void UpdateBlipData(RadarSnsrPair aIdKey,
398 const WsfEM_Interaction& aBlipInteraction,
399 const WsfEM_Interaction& aJammerInteraction);
400
401 void AddRadarToBlipRange(RadarSnsrPair aIdKey, double aRadar2BlipRange);
402 double GetRadarToBlipRange(RadarSnsrPair aIdKey);
403
404 void AddJammerToRadarRange(RadarSnsrPair aIdKey, double aJammer2RadarRange);
405 double GetJammerToRadarRange(RadarSnsrPair aIdKey);
406 double GetReferenceJammerToRadarRange();
407
408 void UnDetect(RadarSnsrPair aIdKey);
409 BlipStrength GetStrength(RadarSnsrPair aIdKey);
410
411 void AddLocationDelta(RadarSnsrPair aIdKey, const double aLocationDelta[3]);
412 void GetLocationDelta(RadarSnsrPair aIdKey, double aLocationDelta[3]);
413
414 void AddActualSNR(RadarSnsrPair aIdKey, double aActualSNR);
415 double GetActualSNR(RadarSnsrPair aIdKey);
416 double ComputeSNR(double aSimTime, WsfEM_Interaction& aBlipInteraction, WsfEM_Interaction& aJammerInteraction);
417 double GetMinimumActualSNR(const RadarSnsrVec& aRadarSensorVec);
418
419 double ComputeRcvdPower(double aSimTime, WsfEM_Interaction& aBlipInteraction, WsfEM_Interaction& aJammerInteraction);
420
421 void AddEquivalentRCS(RadarSnsrPair aIdKey, double aEquivalentRCS);
422 double GetEquivalentRCS(RadarSnsrPair aIdKey);
423 double ComputeEquivalentRCS(const WsfEM_Interaction& aBlipInteraction) const;
424
425 // double GetToRadarRange(RadarSnsrPair aIdKey) const;
426
427 void SetNameId(WsfStringId aNameId) { mNameId = aNameId; }
428 WsfStringId GetNameId() const { return mNameId; }
429
430 std::string GetTypeId() const { return mFT_BlipTypeId; }
431
432 void SetUniqueId(size_t aUniqueId) { mUniqueId = aUniqueId; }
433 size_t GetUniqueId() const { return mUniqueId; }
434
435 void SetInteraction(RadarSnsrPair aIdKey, WsfEM_Interaction* aInteractionPtr);
436 WsfEM_Interaction* GetInteraction(RadarSnsrPair aIdKey);
437
438private:
439 WsfStringId mNameId;
440 size_t mUniqueId;
441
442 WsfStringId mFT_BlipTypeId;
443
444 // Map of the radar to data
445 BlipDataMap mDataMap;
446
447 BlipBehavior mFtBehavior;
448 WsfFalseTarget* mFtPtr;
449 WsfEM_Xmtr* mJammerXmtrPtr;
450
451 // Platform instance that may be set if needed by WsfFusionCenter.
452 // Note: Care must be taken as this uses a WsfUniqueId in the simulation when used.
453 WsfPlatform* mPlatformPtr;
454
455 RadarSnsrVec mRadarSensorIds;
456
457 mutable std::recursive_mutex mMutex;
458};
459
460#endif
aObjectPtr Update(simTime)
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfEM_Interaction.hpp:68
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Manages simulation-wide variables used by EW Effects.
Definition WsfEW_EffectManager.hpp:27
Definition WsfFalseTarget.hpp:332
void SetJammerXmtr(WsfEM_Xmtr *aJammerXmtrPtr)
Definition WsfFalseTarget.hpp:383
void SetNameId(WsfStringId aNameId)
Definition WsfFalseTarget.hpp:427
BlipStrength
Definition WsfFalseTarget.hpp:342
@ cStrong
Definition WsfFalseTarget.hpp:343
@ cWeak
Definition WsfFalseTarget.hpp:344
@ cUndetected
Definition WsfFalseTarget.hpp:345
size_t GetUniqueId() const
Definition WsfFalseTarget.hpp:433
WsfFalseTargetBlip(const WsfFalseTargetBlip &aSrc)=delete
WsfFalseTarget * GetFalseTarget() const
Definition WsfFalseTarget.hpp:386
void SetUniqueId(size_t aUniqueId)
Definition WsfFalseTarget.hpp:432
WsfFalseTargetBlip()
Definition WsfFalseTarget.cpp:1378
BlipBehavior GetBehavior() const
Definition WsfFalseTarget.hpp:389
std::map< RadarSnsrPair, BlipData > BlipDataMap
Definition WsfFalseTarget.hpp:373
std::vector< RadarSnsrPair > RadarSnsrVec
Definition WsfFalseTarget.hpp:336
std::string GetTypeId() const
Definition WsfFalseTarget.hpp:430
void SetPlatform(WsfPlatform *aPlatformPtr)
Definition WsfFalseTarget.hpp:380
void SetBehavior(BlipBehavior aFalseTargetBehavior)
Definition WsfFalseTarget.hpp:390
void SetFalseTarget(WsfFalseTarget *aFtPtr)
Definition WsfFalseTarget.hpp:387
WsfPlatform * GetPlatform() const
Definition WsfFalseTarget.hpp:381
WsfStringId GetNameId() const
Definition WsfFalseTarget.hpp:428
WsfEM_Xmtr * GetJammerXmtr() const
Definition WsfFalseTarget.hpp:384
WsfFalseTarget::BlipBehavior BlipBehavior
Definition WsfFalseTarget.hpp:335
WsfFalseTarget::RadarSnsrPair RadarSnsrPair
Definition WsfFalseTarget.hpp:334
Definition WsfFalseTargetScreener.hpp:41
An instance of this class quantitatively models the multiple false targets that will be perceived by.
Definition WsfFalseTarget.hpp:50
unsigned int GetInitialNumberOfFTs() const
Definition WsfFalseTarget.hpp:230
RadarBehavior GetRadarBehavior() const
Definition WsfFalseTarget.hpp:187
BlipBehavior GetBlipBehavior() const
Definition WsfFalseTarget.hpp:186
std::vector< ExtentPair > ExtentData
Definition WsfFalseTarget.hpp:162
bool ExplicitNumberOfFTs() const
Definition WsfFalseTarget.hpp:250
PlatformBehavior
Definition WsfFalseTarget.hpp:68
@ cCONSISTENT_TO_MULTIPLE_PLATFORMS
Perception from multiple platforms is correlated.
Definition WsfFalseTarget.hpp:70
@ cRANDOM_TO_MULTIPLE_PLATFORMS
Perception from multiple platforms is uncorrelated.
Definition WsfFalseTarget.hpp:69
void SetDebug(bool aDebug)
Definition WsfFalseTarget.hpp:227
WsfFalseTargetBlip Blip
Definition WsfFalseTarget.hpp:58
static size_t AssignFT_BlipUniqueId()
Definition WsfFalseTarget.cpp:58
virtual bool Initialize(WsfSimulation *aSimulationPtr)
Definition WsfFalseTarget.cpp:202
void SetBlipBehavior(BlipBehavior aBlipBehavior)
Definition WsfFalseTarget.hpp:203
bool ExplicitRangeExtent() const
Definition WsfFalseTarget.hpp:252
std::vector< BaseData > BaseLocsVec
Definition WsfFalseTarget.hpp:164
std::pair< WsfFalseTargetScreener *, WsfEM_Xmtr * > ScreenerPtrJammerXmtrPtr
Definition WsfFalseTarget.hpp:170
double GetScanInterval() const
Definition WsfFalseTarget.hpp:190
BlipReference
Definition WsfFalseTarget.hpp:121
@ cBR_JAMMER
Uses the jammer (i.e. transmitter) platform for the heading and speed of the blips.
Definition WsfFalseTarget.hpp:123
@ cBR_NONE
Uses the input speed and heading for the false target blip movement.
Definition WsfFalseTarget.hpp:122
OnOffState
OnOffState indicates what the state of this false target technique.
Definition WsfFalseTarget.hpp:106
@ cOff
Definition WsfFalseTarget.hpp:108
@ cOn
Definition WsfFalseTarget.hpp:107
std::pair< WsfStringInt, WsfStringInt > RadarSnsrPair
Definition WsfFalseTarget.hpp:161
WsfFalseTarget(WsfScenario &aScenario)
Definition WsfFalseTarget.cpp:70
std::vector< ScreenerPtrJammerXmtrPtr > BlipStateVec
Definition WsfFalseTarget.hpp:171
bool GetDebug() const
Definition WsfFalseTarget.hpp:228
std::vector< WsfFalseTargetBlip * > Blips
Definition WsfFalseTarget.hpp:165
void SetToggled(bool aToggled)
Definition WsfFalseTarget.hpp:238
bool GetChanged() const
Definition WsfFalseTarget.hpp:226
std::vector< Blips::iterator > BlipsIterators
Definition WsfFalseTarget.hpp:166
WsfPlatform * GetCentroidPlatform() const
Definition WsfFalseTarget.hpp:222
bool ExplicitAzimuthExtent() const
Definition WsfFalseTarget.hpp:249
void SetState(OnOffState aState)
Definition WsfFalseTarget.hpp:235
PlatformBehavior GetPlatformBehavior() const
Definition WsfFalseTarget.hpp:188
ReferenceBearing GetBearingReference() const
Definition WsfFalseTarget.hpp:218
friend class WsfFalseTargetBlip
Definition WsfFalseTarget.hpp:59
void SetBlips(int aJammerID, WsfFalseTarget::Blips &aBlips)
Definition WsfFalseTarget.hpp:247
WsfSimulation * GetSimulation() const
Definition WsfFalseTarget.hpp:259
void SetPlatformBehavior(PlatformBehavior aPlatformBehavior)
Definition WsfFalseTarget.hpp:205
bool GetToggled() const
Definition WsfFalseTarget.hpp:239
bool ExplicitBlipSpeeds() const
Definition WsfFalseTarget.hpp:255
bool ExplicitReferenceCentroid() const
Definition WsfFalseTarget.hpp:253
std::map< unsigned int, Blips > JammerIdToBlipsMap
Definition WsfFalseTarget.hpp:167
std::map< unsigned int, JammerState > JammerIdToStateMap
Definition WsfFalseTarget.hpp:168
bool GetRangeConstrained() const
Definition WsfFalseTarget.hpp:232
WsfFalseTarget & operator=(const WsfFalseTarget &)=delete
BlipDistribution
"BlipDistribution" appearance describes how the false targets are spread over an area surrounding a r...
Definition WsfFalseTarget.hpp:90
@ cSECTORED
Definition WsfFalseTarget.hpp:93
@ cCIRCULAR
Definition WsfFalseTarget.hpp:92
@ cRANDOM
Definition WsfFalseTarget.hpp:91
void SetRadarBehavior(RadarBehavior aRadarBehavior)
Definition WsfFalseTarget.hpp:204
void SetBearingReference(ReferenceBearing aBearingReference)
Definition WsfFalseTarget.hpp:217
bool ExplicitScanInterval() const
Definition WsfFalseTarget.hpp:254
bool ExplicitRangeConstraint() const
Definition WsfFalseTarget.hpp:251
BlipBehavior
Definition WsfFalseTarget.hpp:83
@ cRANDOM_SCAN_TO_SCAN
Perception changes randomly from scan to scan.
Definition WsfFalseTarget.hpp:84
@ cCONSISTENT_SCAN_TO_SCAN
Relative to the true track geometry, perception is consistent from scan to scan.
Definition WsfFalseTarget.hpp:85
ReferenceBearing
ReferenceBearing indicates what the reference angle for zero azimuth is.
Definition WsfFalseTarget.hpp:113
@ cPROTECTED_ENTITY
Definition WsfFalseTarget.hpp:116
@ cNORTH
Definition WsfFalseTarget.hpp:115
@ cJAMMER
Definition WsfFalseTarget.hpp:114
double GetPersistence() const
Definition WsfFalseTarget.hpp:231
RangeDistribution
"RangeDistribution" describes how the false targets are spread over the range from the radar site.
Definition WsfFalseTarget.hpp:98
@ cUNIFORM
Definition WsfFalseTarget.hpp:99
@ cEXPONENTIAL
Definition WsfFalseTarget.hpp:101
@ cLOG
Definition WsfFalseTarget.hpp:100
RadarBehavior
"RadarBehavior" describes the observed time-variant behavior for the false-target blips among differe...
Definition WsfFalseTarget.hpp:75
@ cCONSISTENT_TO_MULTIPLE_RADARS
Perception from multiple radars is correlated.
Definition WsfFalseTarget.hpp:77
@ cRANDOM_TO_MULTIPLE_RADARS
Perception from multiple radars is uncorrelated.
Definition WsfFalseTarget.hpp:76
static void ResetStatic()
Definition WsfFalseTarget.cpp:50
void Reset()
Definition WsfFalseTarget.cpp:1328
OnOffState GetState() const
Definition WsfFalseTarget.hpp:236
void SetRangeConstrained(bool aRangeConstrained)
Definition WsfFalseTarget.hpp:233
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
virtual bool ProcessInput(UtInput &aInput)
Definition WsfObject.cpp:140
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
The main controller for a simulation.
Definition WsfSimulation.hpp:109
Definition WsfFalseTarget.hpp:349
double mRadarToBlipRange
Definition WsfFalseTarget.hpp:351
BlipStrength mStrength
Definition WsfFalseTarget.hpp:354
double mLocationDelta[3]
Definition WsfFalseTarget.hpp:355
double mActualSNR
Definition WsfFalseTarget.hpp:350
WsfEM_Interaction * mInteractionPtr
Definition WsfFalseTarget.hpp:356
double mEquivalentRCS
Definition WsfFalseTarget.hpp:352
double mJammerToRadarRange
Definition WsfFalseTarget.hpp:353
void Clear()
Definition WsfFalseTarget.hpp:358
Definition WsfFalseTarget.hpp:138
void Clear()
Definition WsfFalseTarget.hpp:145
double mHeading
Definition WsfFalseTarget.hpp:141
double mSpeed
Definition WsfFalseTarget.hpp:140
WsfStringId mNameId
Definition WsfFalseTarget.hpp:142
double mLocationWCS[3]
Definition WsfFalseTarget.hpp:139
size_t mUniqueId
Definition WsfFalseTarget.hpp:143
Definition WsfFalseTarget.hpp:156
double mMax
Definition WsfFalseTarget.hpp:158
double mMin
Definition WsfFalseTarget.hpp:157
Definition WsfFalseTarget.hpp:127
unsigned int mScreenedNumberOfFTs
Definition WsfFalseTarget.hpp:133
double mLastScan
Definition WsfFalseTarget.hpp:129
bool mBlipsCreated
Definition WsfFalseTarget.hpp:128
double mLastBlipUpdate
Definition WsfFalseTarget.hpp:131
double mLastBlipLocWCS[3]
Definition WsfFalseTarget.hpp:132
bool mFTsRejected
Definition WsfFalseTarget.hpp:134
double mLastUpdate
Definition WsfFalseTarget.hpp:130
Copyrights Multiple, All Rights Reserved