WSF
WsfSensorResult.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 WSFSENSORRESULT_HPP
13#define WSFSENSORRESULT_HPP
14
15#include "wsf_export.h"
16
17#include "WsfEM_Interaction.hpp"
18#include "WsfMeasurement.hpp"
19#include "WsfSensor.hpp"
20
27{
28public:
30 enum
31 {
32 cCONCEALMENT = 0x00010000,
33 cDOPPLER_LIMITS = 0x00020000,
34 cVELOCITY_LIMITS = 0x00040000,
35 cTARGET_DELETED = 0x00080000,
36 cOTH_LIMITS = 0x00100000,
37 cEXCLUSION_SOLAR = 0x00200000,
38 cEXCLUSION_LUNAR = 0x00400000,
39 cMOON_BLOCKED = 0x00800000,
40 cDETECTION_STOP = 0x01000000,
41 cSCRIPT_CONSTRAINT = 0x02000000
42 };
43
44 WsfSensorResult() = default;
45 ~WsfSensorResult() override = default;
46
47 bool Detected() const;
48
50 void PrintStatus(ut::log::MessageStream& aStream) const override;
51 void PrintStatusP(ut::log::MessageStream& aStream) const override;
52
53 unsigned int BeginOneWayInteraction(WsfEM_Rcvr* aRcvrPtr, WsfPlatform* aTgtPtr) override;
54
55 unsigned int BeginOneWayInteraction(WsfEM_Xmtr* aXmtrPtr,
56 WsfEM_Rcvr* aRcvrPtr,
57 bool aCheckXmtrLimits,
58 bool aCheckRcvrLimits,
59 bool aCheckMaskingFactor = true) override;
60
61 unsigned int BeginTwoWayInteraction(WsfEM_Xmtr* aXmtrPtr, WsfPlatform* aTgtPtr, WsfEM_Rcvr* aRcvrPtr) override;
62
63 unsigned int BeginTwoWayOTH_Interaction(WsfEM_Xmtr* aXmtrPtr,
64 WsfPlatform* aTgtPtr,
65 WsfEM_Rcvr* aRcvrPtr,
66 double aReflectionLocWCS[3]) override;
67
68 unsigned int BeginGenericInteraction(WsfEM_Xmtr* aXmtrPtr, WsfPlatform* aTgtPtr, WsfEM_Rcvr* aRcvrPtr) override;
69
70 void ComputeUndefinedGeometry() override;
71
72 void Reset() override;
73 void Reset(const WsfSensor::Settings& aSettings);
74 void Reset(const WsfSensorResult& aResult);
75
78 const char* GetScriptClassName() const override;
79
84 size_t mModeIndex{0};
85
87 size_t mXmtrIndex{0};
88
90 size_t mRcvrIndex{0};
91
96 size_t mBeamIndex{0};
97
106
116 double mPd{0.0};
117
120 double mRequiredPd{0.0};
121
122private:
125 void ComputeWCS_ToBCS_Transform(const WsfEM_Rcvr& aRcvr, double aRcvrPointingAz, double aRcvrPointingEl);
126};
127
129{
130public:
132 ~WsfLocalSensorResult() override = default;
133
134 void Reset() override;
135
137 {
138 WsfSensorResult::operator=(aRhs);
139 return *this;
140 }
141
142 // Number of local measurements correlated/fused in result
143 unsigned int mMeasurementCount{0};
144};
145
147
149{
150public:
151 WsfScriptSensorInteractionClass(const std::string& aClassName, UtScriptTypes* aTypesPtr);
152
153 static void RegisterMethods(UtScriptClass* aClassPtr);
154
160};
161
162UT_MAP_CLASS_TO_SCRIPT_NAME(WsfSensorResult, "WsfSensorInteraction")
163
164#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual unsigned int BeginOneWayInteraction(WsfEM_Rcvr *aRcvrPtr, WsfPlatform *aTgtPtr)
Definition WsfEM_Interaction.cpp:53
virtual unsigned int BeginTwoWayOTH_Interaction(WsfEM_Xmtr *aXmtrPtr, WsfPlatform *aTgtPtr, WsfEM_Rcvr *aRcvrPtr, double aReflectionLocWCS[3])
Definition WsfEM_Interaction.cpp:472
virtual void Reset()
Reset the interaction data so it can be reused.
Definition WsfEM_Interaction.cpp:1723
virtual void PrintStatusP(ut::log::MessageStream &aMsgStream) const
Adds a list of notes to aMsgStream with the status.
Definition WsfEM_Interaction.cpp:1494
virtual void PrintStatus(ut::log::MessageStream &aMsgStream) const
PrintStatus adds a "Status" note and formats it properly if the status mFailedStatus is 0.
Definition WsfEM_Interaction.cpp:1476
virtual void ComputeUndefinedGeometry()
Definition WsfEM_Interaction.cpp:1084
virtual unsigned int BeginGenericInteraction(WsfEM_Xmtr *aXmtrPtr, WsfPlatform *aTgtPtr, WsfEM_Rcvr *aRcvrPtr)
Definition WsfEM_Interaction.cpp:629
virtual unsigned int BeginTwoWayInteraction(WsfEM_Xmtr *aXmtrPtr, WsfPlatform *aTgtPtr, WsfEM_Rcvr *aRcvrPtr)
Definition WsfEM_Interaction.cpp:302
WsfEM_Interaction()=default
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
~WsfLocalSensorResult() override=default
unsigned int mMeasurementCount
Definition WsfSensorResult.hpp:143
WsfLocalSensorResult & operator=(const WsfSensorResult &aRhs)
Definition WsfSensorResult.hpp:136
WsfLocalSensorResult()=default
A measurement class that provides WSF-specific interfaces and data extrapolation.
Definition WsfMeasurement.hpp:32
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
WsfScriptEM_InteractionClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfScriptEM_InteractionClass.cpp:78
WsfScriptSensorInteractionClass(const std::string &aClassName, UtScriptTypes *aTypesPtr)
The script interface 'class'.
Definition WsfSensorResult.cpp:267
static void RegisterMethods(UtScriptClass *aClassPtr)
Definition WsfSensorResult.cpp:275
Definition WsfSensorResult.hpp:27
bool Detected() const
Definition WsfSensorResult.cpp:25
WsfMeasurement mMeasurement
Definition WsfSensorResult.hpp:105
@ cTARGET_DELETED
Target deleted.
Definition WsfSensorResult.hpp:35
@ cDETECTION_STOP
Sensor stops detecting.
Definition WsfSensorResult.hpp:40
@ cSCRIPT_CONSTRAINT
Externally defined script check.
Definition WsfSensorResult.hpp:41
@ cCONCEALMENT
Concealment checked/failed.
Definition WsfSensorResult.hpp:32
@ cVELOCITY_LIMITS
Velocity limits checked/failed.
Definition WsfSensorResult.hpp:34
@ cMOON_BLOCKED
Moon is blocking the sensor from target.
Definition WsfSensorResult.hpp:39
@ cOTH_LIMITS
OTH Bounce Constraints.
Definition WsfSensorResult.hpp:36
@ cEXCLUSION_SOLAR
Solar exclusion is blocking sensor.
Definition WsfSensorResult.hpp:37
@ cDOPPLER_LIMITS
Doppler limits checked/failed.
Definition WsfSensorResult.hpp:33
@ cEXCLUSION_LUNAR
Lunar exclusion is blocking sensor.
Definition WsfSensorResult.hpp:38
double mRequiredPd
Definition WsfSensorResult.hpp:120
const char * GetScriptClassName() const override
size_t mModeIndex
Definition WsfSensorResult.hpp:84
size_t mXmtrIndex
The transmitter index.
Definition WsfSensorResult.hpp:87
size_t mRcvrIndex
The receiver index.
Definition WsfSensorResult.hpp:90
WsfSensorResult()=default
size_t mBeamIndex
Definition WsfSensorResult.hpp:96
~WsfSensorResult() override=default
double mPd
Definition WsfSensorResult.hpp:116
Definition WsfSensor.hpp:133
Copyrights Multiple, All Rights Reserved