KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FundamentalParameterData.h
Go to the documentation of this file.
1 /*********************************************************************
2 Copyright 2013 Karl Jones
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7 
8 1. Redistributions of source code must retain the above copyright notice, this
9  list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright notice,
11  this list of conditions and the following disclaimer in the documentation
12  and/or other materials provided with the distribution.
13 
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 
25 For Further Information Please Contact me at
26 Karljj1@yahoo.com
27 http://p.sf.net/kdis/UserGuide
28 *********************************************************************/
29 
30 /********************************************************************
31  class: FundamentalParameterData
32  created: 2008/10/19
33  author: Karl Jones
34 
35  purpose: Contains electromagnetic emission regeneration parameters that
36  are variable throughout a scenario.
37  size: 320 bits / 40 octets
38 *********************************************************************/
39 
40 #pragma once
41 
42 #include "./DataTypeBase.h"
43 
44 namespace KDIS {
45 namespace DATA_TYPE {
46 
48 {
49 protected:
50 
52 
54 
56 
58 
60 
62 
64 
66 
68 
70 
71 public:
72 
73  static const KUINT16 FUNDAMENTAL_PARAMETER_SIZE = 40;
74 
76 
78 
79  FundamentalParameterData( KFLOAT32 Freq, KFLOAT32 FreqRange, KFLOAT32 EffectiveRadiatedPower,
80  KFLOAT32 PulseRepetitionFreq, KFLOAT32 PulseWidth, KFLOAT32 BeamAzimuthCenter,
81  KFLOAT32 BeamAzimuthSweep, KFLOAT32 BeamElevationCenter, KFLOAT32 BeamElevationSweep,
82  KFLOAT32 BeamSweepSync );
83 
84  virtual ~FundamentalParameterData();
85 
86  //************************************
87  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetFrequency
88  // KDIS::DATA_TYPE::FundamentalParameterData::GetFrequency
89  //!Description: Hertz
90  // Parameter: KFLOAT32 F, void
91  //************************************
92  void SetFrequency( KFLOAT32 F );
93  KFLOAT32 GetFrequency() const;
94 
95  //************************************
96  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetFrequencyRange
97  // KDIS::DATA_TYPE::FundamentalParameterData::GetFrequencyRange
98  //!Description: Bandwidth range of frequencies, if a single frequency then set to 0.
99  // Parameter: KFLOAT32 F, void
100  //************************************
101  void SetFrequencyRange( KFLOAT32 FR );
102  KFLOAT32 GetFrequencyRange() const;
103 
104  //************************************
105  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetEffectiveRadiatedPower
106  // KDIS::DATA_TYPE::FundamentalParameterData::GetEffectiveRadiatedPower
107  //!Description: Average peak radiated power in dBm.
108  // Parameter: KFLOAT32 F, void
109  //************************************
110  void SetEffectiveRadiatedPower( KFLOAT32 ERP );
111  KFLOAT32 GetEffectiveRadiatedPower() const;
112 
113  //************************************
114  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetPulseRepetitionFrequency
115  // KDIS::DATA_TYPE::FundamentalParameterData::GetPulseRepetitionFrequency
116  //!Description: Hertz
117  // Parameter: KFLOAT32 F, void
118  //************************************
119  void SetPulseRepetitionFrequency( KFLOAT32 PRF );
120  KFLOAT32 GetPulseRepetitionFrequency() const;
121 
122  //************************************
123  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetPulseWidth
124  // KDIS::DATA_TYPE::FundamentalParameterData::GetPulseWidth
125  //!Description: Average pulse width of the emission in microseconds.
126  // Parameter: KFLOAT32 F, void
127  //************************************
128  void SetPulseWidth( KFLOAT32 PW );
129  KFLOAT32 GetPulseWidth() const;
130 
131  //************************************
132  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetBeamAzimuthCenter
133  // KDIS::DATA_TYPE::FundamentalParameterData::GetBeamAzimuthCenter
134  //!Description: If coverage is a full 360 degrees then set to 0. In radians.
135  // Parameter: KFLOAT32 F, void
136  //************************************
137  void SetBeamAzimuthCenter( KFLOAT32 BAC );
138  KFLOAT32 GetBeamAzimuthCenter() const;
139 
140  //************************************
141  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetBeamAzimuthSweep
142  // KDIS::DATA_TYPE::FundamentalParameterData::GetBeamAzimuthSweep
143  //!Description: If coverage is a full 360 degrees then set to 0. In radians.
144  // Parameter: KFLOAT32 F, void
145  //************************************
146  void SetBeamAzimuthSweep( KFLOAT32 BAS );
147  KFLOAT32 GetBeamAzimuthSweep() const;
148 
149  //************************************
150  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetBeamElevationCenter
151  // KDIS::DATA_TYPE::FundamentalParameterData::GetBeamElevationCenter
152  //!Description: If coverage is a full 360 degrees then set to 0. In radians.
153  // Parameter: KFLOAT32 F, void
154  //************************************
155  void SetBeamElevationCenter( KFLOAT32 BEC );
156  KFLOAT32 GetBeamElevationCenter() const;
157 
158  //************************************
159  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetBeamElevationSweep
160  // KDIS::DATA_TYPE::FundamentalParameterData::GetBeamElevationSweep
161  //!Description: If coverage is a full 360 degrees then set to 0. In radians.
162  // Parameter: KFLOAT32 F, void
163  //************************************
164  void SetBeamElevationSweep( KFLOAT32 BES );
165  KFLOAT32 GetBeamElevationSweep() const;
166 
167  //************************************
168  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::SetBeamSweepSync
169  // KDIS::DATA_TYPE::FundamentalParameterData::GetBeamSweepSync
170  //!Description: Used to allow a receiver to synchronize its regenerated scan pattern
171  //! to that of the emitter. Specifies the percentage of time a scan is through
172  //! its pattern from its origin.
173  // Parameter: KFLOAT32 F, void
174  //************************************
175  void SetBeamSweepSync( KFLOAT32 BSS );
176  KFLOAT32 GetBeamSweepSync() const;
177 
178  //************************************
179  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::GetAsString
180  //!Description: Returns a string representation
181  //************************************
182  virtual KString GetAsString() const;
183 
184  //************************************
185  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::Decode
186  //!Description: Convert From Network Data.
187  // Parameter: KDataStream & stream
188  //************************************
189  virtual void Decode( KDataStream & stream ) throw( KException );
190 
191  //************************************
192  // FullName: KDIS::DATA_TYPE::FundamentalParameterData::Encode
193  //!Description: Convert To Network Data.
194  // Parameter: KDataStream & stream
195  //************************************
196  virtual KDataStream Encode() const;
197  virtual void Encode( KDataStream & stream ) const;
198 
199  KBOOL operator == ( const FundamentalParameterData & Value ) const;
200  KBOOL operator != ( const FundamentalParameterData & Value ) const;
201 };
202 
203 } // END namespace DATA_TYPES
204 } // END namespace KDIS
KFLOAT32 m_f32PulseWidth
Definition: FundamentalParameterData.h:59
KFLOAT32 m_f32BeamAzimuthCenter
Definition: FundamentalParameterData.h:61
KFLOAT32 m_f32FreqRange
Definition: FundamentalParameterData.h:53
KFLOAT32 m_f32BeamAzimuthSweep
Definition: FundamentalParameterData.h:63
unsigned short int KUINT16
Definition: KDefines.h:101
KFLOAT32 m_f32BeamSweepSync
Definition: FundamentalParameterData.h:69
KFLOAT32 m_f32PulseRepetitionFreq
Definition: FundamentalParameterData.h:57
KFLOAT32 m_f32BeamElevationSweep
Definition: FundamentalParameterData.h:67
float KFLOAT32
Definition: KDefines.h:113
KFLOAT32 m_f32EffectiveRadiatedPower
Definition: FundamentalParameterData.h:55
Definition: KDefines.h:182
Definition: KDataStream.h:48
Definition: DataTypeBase.h:49
bool KBOOL
Definition: KDefines.h:119
std::string KString
Definition: KDefines.h:116
KFLOAT32 m_f32Freq
Definition: FundamentalParameterData.h:51
Definition: FundamentalParameterData.h:47
#define KDIS_EXPORT
Definition: KDefines.h:82
KFLOAT32 m_f32BeamElevationCenter
Definition: FundamentalParameterData.h:65