WSF
MTT_RadarMeasurement.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 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 MTT_RADARMEASUREMENT_HPP
13#define MTT_RADARMEASUREMENT_HPP
14
15#include <array>
16#include <fstream>
17#include <string>
18
19#include "MTT_Measurement.hpp"
20
22{
23public:
25 {
26 public:
27 Data() = default;
28
29 MTT_Measurement::Data* Clone() const override { return new Data(*this); }
30
31 // Suppressor offset
32 double mRange{0.0}; // 0
33 double mAzimuth{0.0}; // 1
34 double mElevation{0.0}; // 2
35 double mRangeRate{0.0}; // 3
36 double mRangeStDev{0.0}; // 4
37 double mAzimuthStDev{0.0}; // 5
38 double mElevationStDev{0.0}; // 6
39 double mRangeRateStDev{0.0}; // 7
40 std::array<double, 3> mSensorLocation = {{0.0, 0.0, 0.0}}; // 8-10
41 double mSignalToNoise{0.0}; // 11
42 double mTrueRange{0.0}; // 12
43 double mTrueAzimuth{0.0}; // 13
44 double mTrueElevation{0.0}; // 14
45 double mTrueRangeRate{0.0}; // 15
46 std::array<double, 3> mSensorVelocity = {{0.0, 0.0, 0.0}}; // 16-18
47
48 virtual void ConvertFrom(const SupBlock& aBlock)
49 {
50 mRange = aBlock.mFloatBlock[0];
51 mAzimuth = aBlock.mFloatBlock[1]; // 1
52 mElevation = aBlock.mFloatBlock[2]; // 2
53 mRangeRate = aBlock.mFloatBlock[3]; // 3
54 mRangeStDev = aBlock.mFloatBlock[4]; // 4
55 mAzimuthStDev = aBlock.mFloatBlock[5]; // 5
56 mElevationStDev = aBlock.mFloatBlock[6]; // 6
57 mRangeRateStDev = aBlock.mFloatBlock[7]; // 7
58 mSensorLocation[0] = aBlock.mFloatBlock[8]; // 8-10
59 mSensorLocation[1] = aBlock.mFloatBlock[9];
60 mSensorLocation[2] = aBlock.mFloatBlock[10];
61 mSignalToNoise = aBlock.mFloatBlock[11]; // 11
62 mTrueRange = aBlock.mFloatBlock[12]; // 12
63 mTrueAzimuth = aBlock.mFloatBlock[13]; // 13
64 mTrueElevation = aBlock.mFloatBlock[14]; // 14
65 mTrueRangeRate = aBlock.mFloatBlock[15]; // 15
66 mSensorVelocity[0] = aBlock.mFloatBlock[16]; // 16-18
67 mSensorVelocity[1] = aBlock.mFloatBlock[17];
68 mSensorVelocity[2] = aBlock.mFloatBlock[18];
69 }
70 /*
71 void Log(std::fstream& aFS)
72 {
73 aFS << mRange << std::endl;
74 aFS << mAzimuth << std::endl;
75 aFS << mElevation << std::endl;
76 aFS << mRangeRate << std::endl;
77 aFS << mRangeStDev << std::endl;
78 aFS << mAzimuthStDev << std::endl;
79 aFS << mElevationStDev << std::endl;
80 aFS << mRangeRateStDev << std::endl;
81 }
82 */
83 };
84
85public:
91
96
98
99 MTT_Measurement* Clone() const override { return new MTT_RadarMeasurement(*this); }
100
102
104 {
105 if (mDataPtr != nullptr)
106 {
107 delete mDataPtr;
108 }
110 }
111};
112
113
114#endif
Definition MTT_Measurement.hpp:24
Data * mDataPtr
Definition MTT_Measurement.hpp:51
MTT_Measurement()=default
Definition MTT_RadarMeasurement.hpp:25
MTT_Measurement::Data * Clone() const override
Definition MTT_RadarMeasurement.hpp:29
std::array< double, 3 > mSensorLocation
Definition MTT_RadarMeasurement.hpp:40
double mElevationStDev
Definition MTT_RadarMeasurement.hpp:38
double mAzimuthStDev
Definition MTT_RadarMeasurement.hpp:37
double mElevation
Definition MTT_RadarMeasurement.hpp:34
double mRange
Definition MTT_RadarMeasurement.hpp:32
double mRangeRate
Definition MTT_RadarMeasurement.hpp:35
double mTrueRange
Definition MTT_RadarMeasurement.hpp:42
double mAzimuth
Definition MTT_RadarMeasurement.hpp:33
virtual void ConvertFrom(const SupBlock &aBlock)
Definition MTT_RadarMeasurement.hpp:48
double mTrueAzimuth
Definition MTT_RadarMeasurement.hpp:43
double mTrueRangeRate
Definition MTT_RadarMeasurement.hpp:45
std::array< double, 3 > mSensorVelocity
Definition MTT_RadarMeasurement.hpp:46
double mRangeRateStDev
Definition MTT_RadarMeasurement.hpp:39
double mTrueElevation
Definition MTT_RadarMeasurement.hpp:44
double mRangeStDev
Definition MTT_RadarMeasurement.hpp:36
double mSignalToNoise
Definition MTT_RadarMeasurement.hpp:41
MTT_RadarMeasurement()
Definition MTT_RadarMeasurement.hpp:86
void SetData(const MTT_RadarMeasurement::Data &aData)
Definition MTT_RadarMeasurement.hpp:103
MTT_RadarMeasurement::Data & GetData() const
Definition MTT_RadarMeasurement.hpp:101
MTT_Measurement * Clone() const override
Definition MTT_RadarMeasurement.hpp:99
~MTT_RadarMeasurement() override
Definition MTT_RadarMeasurement.hpp:97
MTT_RadarMeasurement(const MTT_RadarMeasurement &aSrc)
Definition MTT_RadarMeasurement.hpp:92
Definition SupBlock.hpp:21
float * mFloatBlock
Definition SupBlock.hpp:45
Copyrights Multiple, All Rights Reserved