KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
SEES_PDU.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: SEES_PDU
32  DIS: (6) 1278.1A - 1998
33  created: 2009/01/15
34  author: Karl Jones
35 
36  purpose: Supplemental Emission / Entity State (SEES)
37  Contains infomation on an entitys physical state that
38  is not contained within the Entity_State_PDU.
39  size: 224 bits / 28 octets - Min size
40 *********************************************************************/
41 
42 #pragma once
43 
44 #include "./../Header.h"
45 #include "./../../DataTypes/EntityIdentifier.h"
46 #include <vector>
47 #include "./../../DataTypes/PropulsionSystem.h"
48 #include "./../../DataTypes/VectoringNozzleSystem.h"
49 
50 namespace KDIS {
51 namespace PDU {
52 
53 class KDIS_EXPORT SEES_PDU : public Header
54 {
55 protected:
56 
58 
60 
62 
64 
66 
68 
69  std::vector<KDIS::DATA_TYPE::PropulsionSystem> m_vPropSys;
70 
71  std::vector<KDIS::DATA_TYPE::VectoringNozzleSystem> m_vVecNozzleSys;
72 
73 public:
74 
75  static const KUINT16 SEES_PDU_SIZE = 28; // Min size
76 
77  SEES_PDU();
78 
79  SEES_PDU( KDataStream & stream ) throw( KException );
80 
81  SEES_PDU( const Header & H, KDataStream & stream ) throw( KException );
82 
83  SEES_PDU( const KDIS::DATA_TYPE::EntityIdentifier & OriginatingEnt, KUINT16 IrSigIndex,
84  KUINT16 AcousticSigIndex, KUINT16 RadarCrossSectionSigIndex );
85 
86  virtual ~SEES_PDU();
87 
88  //************************************
89  // FullName: KDIS::PDU::SEES_PDU::SetOriginatingEntityID
90  // KDIS::PDU::SEES_PDU::GetOriginatingEntityID
91  //!Description: Entity that is the source of the information
92  // Parameter: const EntityIdentifier & ID
93  //************************************
94  void SetOriginatingEntityID ( const KDIS::DATA_TYPE::EntityIdentifier & ID );
95  const KDIS::DATA_TYPE::EntityIdentifier & GetOriginatingEntityID() const;
96  KDIS::DATA_TYPE::EntityIdentifier & GetOriginatingEntityID();
97 
98  //************************************
99  // FullName: KDIS::PDU::SEES_PDU::SetInfraredSignatureRepresentationIndex
100  // KDIS::PDU::SEES_PDU::GetInfraredSignatureRepresentationIndex
101  //!Description: Represents an index to a specific value or an index pointer
102  //! to a data table accessed with other information to obtain a specific value
103  //! for the system state in which the entity is currently.
104  // Parameter: KUINT16 ISRI
105  //************************************
106  void SetInfraredSignatureRepresentationIndex( KUINT16 ISRI );
107  KUINT16 GetInfraredSignatureRepresentationIndex() const;
108 
109  //************************************
110  // FullName: KDIS::PDU::SEES_PDU::SetAcousticSignatureRepresentationIndex
111  // KDIS::PDU::SEES_PDU::GetAcousticSignatureRepresentationIndex
112  //!Description: Represents an index to a specific value or an index pointer
113  //! to a data table accessed with other information to obtain a specific value
114  //! for the system state in which the entity is currently.
115  // Parameter: KUINT16 ASRI
116  //************************************
117  void SetAcousticSignatureRepresentationIndex( KUINT16 ASRI );
118  KUINT16 GetAcousticSignatureRepresentationIndex() const;
119 
120  //************************************
121  // FullName: KDIS::PDU::SEES_PDU::SetRadarCrossSectionSignatureRepresentationIndex
122  // KDIS::PDU::SEES_PDU::GetRadarCrossSectionSignatureRepresentationIndex
123  //!Description: Represents an index to a specific value or an index pointer
124  //! to a data table accessed with other information to obtain a specific value
125  //! for the system state in which the entity is currently.
126  // Parameter: KUINT16 RCSSRI
127  //************************************
128  void SetRadarCrossSectionSignatureRepresentationIndex( KUINT16 RCSSRI );
129  KUINT16 GetRadarCrossSectionSignatureRepresentationIndex() const;
130 
131  //************************************
132  // FullName: KDIS::PDU::SEES_PDU::GetNumberOfPropulsionSystems
133  //!Description: Specifies the number of operational propulsion systems aboard the entity. one, several
134  //! or all may be specified in a single SEES PDU.
135  //************************************
136  KUINT16 GetNumberOfPropulsionSystems() const;
137 
138  //************************************
139  // FullName: KDIS::PDU::SEES_PDU::GetNumberOfVectoringNozzleSystems
140  //!Description: Specifies the number of operational vector nozzle systems aboard the entity. one, several
141  //! or all may be specified in a single SEES PDU.
142  //************************************
143  KUINT16 GetNumberOfVectoringNozzleSystems() const;
144 
145  //************************************
146  // FullName: KDIS::PDU::SEES_PDU::AddPropulsionSystem
147  // KDIS::PDU::SEES_PDU::SetPropulsionSystem
148  // KDIS::PDU::SEES_PDU::GetPropulsionSystem
149  //!Description: Entity propulsion system
150  // Parameter: const PropulsionSystem & PS, const vector<PropulsionSystem> & PS
151  //************************************
152  void AddPropulsionSystem( const KDIS::DATA_TYPE::PropulsionSystem & PS );
153  void SetPropulsionSystem( const std::vector<KDIS::DATA_TYPE::PropulsionSystem> & PS );
154  const std::vector<KDIS::DATA_TYPE::PropulsionSystem> GetPropulsionSystem() const;
155 
156  //************************************
157  // FullName: KDIS::PDU::SEES_PDU::AddVectoringNozzleSystem
158  // KDIS::PDU::SEES_PDU::SetVectoringNozzleSystem
159  // KDIS::PDU::SEES_PDU::GetVectoringNozzleSystem
160  //!Description:
161  // Parameter: const VectoringNozzleSystem & VNS, const vector<VectoringNozzleSystem> & VNS
162  //************************************
163  void AddVectoringNozzleSystem( const KDIS::DATA_TYPE::VectoringNozzleSystem & VNS );
164  void SetVectoringNozzleSystem( const std::vector<KDIS::DATA_TYPE::VectoringNozzleSystem> & VNS );
165  const std::vector<KDIS::DATA_TYPE::VectoringNozzleSystem> GetVectoringNozzleSystem() const;
166 
167  //************************************
168  // FullName: KDIS::PDU::SEES_PDU::GetAsString
169  //!Description: Returns a string representation of the PDU.
170  //************************************
171  virtual KString GetAsString() const;
172 
173  //************************************
174  // FullName: KDIS::PDU::SEES_PDU::Decode
175  //!Description: Convert From Network Data.
176  // Parameter: KDataStream & stream
177  // Parameter: bool ignoreHeader = false - Decode the header from the stream?
178  //************************************
179  virtual void Decode( KDataStream & stream, bool ignoreHeader = false ) throw( KException );
180 
181  //************************************
182  // FullName: KDIS::PDU::SEES_PDU::Encode
183  //!Description: Convert To Network Data.
184  //************************************
185  virtual KDataStream Encode() const;
186  virtual void Encode( KDataStream & stream ) const;
187 
188  KBOOL operator == ( const SEES_PDU & Value ) const;
189  KBOOL operator != ( const SEES_PDU & Value ) const;
190 };
191 
192 } // END namespace PDU
193 } // END namespace KDIS
KUINT16 m_ui16NumPropulsionSys
Definition: SEES_PDU.h:65
KUINT16 m_ui16IrSigRepIndex
Definition: SEES_PDU.h:59
unsigned short int KUINT16
Definition: KDefines.h:101
Definition: PropulsionSystem.h:47
KUINT16 m_ui16CrossSection
Definition: SEES_PDU.h:63
Definition: VectoringNozzleSystem.h:47
KUINT16 m_ui16NumVectoringNozzleSys
Definition: SEES_PDU.h:67
std::vector< KDIS::DATA_TYPE::PropulsionSystem > m_vPropSys
Definition: SEES_PDU.h:69
Definition: KDefines.h:182
Definition: KDataStream.h:48
std::vector< KDIS::DATA_TYPE::VectoringNozzleSystem > m_vVecNozzleSys
Definition: SEES_PDU.h:71
bool KBOOL
Definition: KDefines.h:119
KDIS::DATA_TYPE::EntityIdentifier m_OriginatingEntity
Definition: SEES_PDU.h:57
std::string KString
Definition: KDefines.h:116
Definition: SEES_PDU.h:53
Definition: EntityIdentifier.h:49
Definition: Header7.h:142
#define KDIS_EXPORT
Definition: KDefines.h:82
KUINT16 m_ui16AcousticSigRepIndex
Definition: SEES_PDU.h:61