WSF
WsfSurfaceWaveRadarSensor.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 WSFSURFACEWAVERADARSENSOR_HPP
13#define WSFSURFACEWAVERADARSENSOR_HPP
14
15#include "wsf_mil_export.h"
16
17#include <vector>
18
19#include "WsfEM_Antenna.hpp"
20#include "WsfEM_Noise.hpp"
21#include "WsfEM_Rcvr.hpp"
22#include "WsfEM_Xmtr.hpp"
23#include "WsfMarcumSwerling.hpp"
24#include "WsfSensor.hpp"
25#include "WsfSensorBeam.hpp"
26#include "WsfSensorMode.hpp"
27class WsfSensorResult;
28
30class WSF_MIL_EXPORT WsfSurfaceWaveRadarSensor : public WsfSensor
31{
32public:
36
37 WsfSensor* Clone() const override;
38 bool Initialize(double aSimTime) override;
39 void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr) override;
40 bool ProcessInput(UtInput& aInput) override;
41 void Update(double aSimTime) override;
42
43 size_t GetEM_RcvrCount() const override;
44 WsfEM_Rcvr& GetEM_Rcvr(size_t aIndex) const override;
45 size_t GetEM_XmtrCount() const override;
46 WsfEM_Xmtr& GetEM_Xmtr(size_t aIndex) const override;
47
48 // some compilers require inner classes to be declared friends if they want to
49 // access outer class members
50 class RadarMode;
51 friend class RadarMode;
52
54 class RadarMode : public WsfSensorMode, public WsfSensorBeam
55 {
56 public:
57 RadarMode();
58 RadarMode(const RadarMode& aSrc);
59 RadarMode& operator=(const RadarMode&) = delete;
60
61 // WsfSensorMode methods.
62 size_t GetBeamCount() const override { return 1; }
63 WsfSensorBeam* GetBeamEntry(size_t /* aBeamIndex */) override { return this; }
64
65 // WsfSensorBeam methods.
66 WsfEM_Rcvr* GetEM_Rcvr() override { return &mRcvr; }
67 WsfEM_Xmtr* GetEM_Xmtr() override { return &mXmtr; }
68
69 WsfMode* Clone() const override;
70 bool Initialize(double aSimTime) override;
71 bool ProcessInput(UtInput& aInput) override;
72
73 bool AttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, Settings& aSettings, WsfSensorResult& aResult) override;
74
75 void Deselect(double aSimTime) override;
76 void Select(double aSimTime) override;
77
78 void Calibrate();
79
80 void SetIntegrationGain(double aIntegrationGain) override { mIntegrationGain = aIntegrationGain; }
81 double GetIntegrationGain() const override { return mIntegrationGain; }
82 double GetDopplerResolution() const { return mDopplerResolution; }
83
84 protected:
85 void AttemptToDetect(double aSimTime, WsfPlatform* aTargetPtr, WsfEM_Xmtr* aXmtrPtr, WsfSensorResult& aResult);
86
89
92
95
97
100
102
105
108
111 };
112
113private:
115 std::vector<RadarMode*> mRadarModeList;
116};
117
118#endif
Definition WsfEM_Antenna.hpp:49
Definition WsfEM_Noise.hpp:21
Definition WsfEM_Rcvr.hpp:68
Definition WsfEM_Xmtr.hpp:55
Definition WsfMode.hpp:32
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
WsfSensorBeam()
Definition WsfSensorBeam.cpp:20
friend class WsfSensorMode
Definition WsfSensorBeam.hpp:60
Definition WsfSensorResult.hpp:27
Definition WsfSensor.hpp:133
bool ProcessInput(UtInput &aInput) override
Definition WsfSensor.cpp:380
void Update(double aSimTime) override
Definition WsfSensor.cpp:497
virtual WsfEM_Rcvr & GetEM_Rcvr(size_t aIndex) const
Definition WsfSensor.cpp:660
WsfSensor(const WsfScenario &aScenario)
Definition WsfSensor.cpp:52
virtual size_t GetEM_RcvrCount() const
Definition WsfSensor.cpp:646
WsfSensor * Clone() const override=0
virtual WsfEM_Xmtr & GetEM_Xmtr(size_t aIndex) const
Definition WsfSensor.cpp:714
bool Initialize(double aSimTime) override
Definition WsfSensor.cpp:255
virtual size_t GetEM_XmtrCount() const
Definition WsfSensor.cpp:700
virtual bool AttemptToDetect(double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult)
Definition WsfSensor.cpp:224
void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr) override
Definition WsfSensor.cpp:334
A 'mode' of the sensor.
Definition WsfSurfaceWaveRadarSensor.hpp:55
size_t GetBeamCount() const override
Definition WsfSurfaceWaveRadarSensor.hpp:62
WsfEM_Noise mNoise
the EM_noise for a radar beam
Definition WsfSurfaceWaveRadarSensor.hpp:110
WsfEM_Rcvr mRcvr
The receiver for a radar beam.
Definition WsfSurfaceWaveRadarSensor.hpp:107
double mAdjustmentFactor
A term to represent a general adjustment (multiplier) to the radar range equation.
Definition WsfSurfaceWaveRadarSensor.hpp:91
WsfEM_Xmtr * GetEM_Xmtr() override
Definition WsfSurfaceWaveRadarSensor.hpp:67
wsf::MarcumSwerling mDetector
Definition WsfSurfaceWaveRadarSensor.hpp:96
double GetDopplerResolution() const
Definition WsfSurfaceWaveRadarSensor.hpp:82
WsfSensorBeam * GetBeamEntry(size_t) override
Definition WsfSurfaceWaveRadarSensor.hpp:63
bool mUseDetector
If 'true' then used the detector.
Definition WsfSurfaceWaveRadarSensor.hpp:99
WsfEM_Antenna mAntenna
Definition WsfSurfaceWaveRadarSensor.hpp:101
WsfEM_Xmtr mXmtr
The transmitter for a radar beam.
Definition WsfSurfaceWaveRadarSensor.hpp:104
void SetIntegrationGain(double aIntegrationGain) override
Definition WsfSurfaceWaveRadarSensor.hpp:80
double mIntegrationGain
Integration gain for non-Swerling detector.
Definition WsfSurfaceWaveRadarSensor.hpp:94
double GetIntegrationGain() const override
Definition WsfSurfaceWaveRadarSensor.hpp:81
RadarMode()
Definition WsfSurfaceWaveRadarSensor.cpp:136
double mDopplerResolution
Doppler resolution as velocity (m/s).
Definition WsfSurfaceWaveRadarSensor.hpp:88
RadarMode & operator=(const RadarMode &)=delete
WsfEM_Rcvr * GetEM_Rcvr() override
Definition WsfSurfaceWaveRadarSensor.hpp:66
bool Initialize(double aSimTime) override
Definition WsfSurfaceWaveRadarSensor.cpp:100
WsfSensor * Clone() const override
Definition WsfSurfaceWaveRadarSensor.cpp:66
WsfSurfaceWaveRadarSensor & operator=(const WsfSurfaceWaveRadarSensor &)=delete
bool ProcessInput(UtInput &aInput) override
Definition WsfSurfaceWaveRadarSensor.cpp:117
WsfSurfaceWaveRadarSensor(WsfScenario &aScenario)
Definition WsfSurfaceWaveRadarSensor.cpp:46
Computation of probability of detection using the Marcum-Swerling algorithm.
Definition WsfMarcumSwerling.hpp:29
Copyrights Multiple, All Rights Reserved