VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
emitterState.h
Go to the documentation of this file.
1 /*********************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************************/
5 
10 #pragma once
11 
13 
14 #include <string>
15 #include <matrix/vlVector.h>
16 #include <vector>
17 
18 
20 {
21 public:
22  enum EmissionFunc {EmissionFunc_Other=0, EmissionFunc_MultiFunction = 1, EmissionFunc_EarlyWarningSurveillance = 2, EmissionFunc_HeightFinding = 3, EmissionFunc_FireControl = 4, EmissionFunc_AcquisitionDetection = 5, EmissionFunc_Tracking = 6, EmissionFunc_GuidanceIllumination = 7, EmissionFunc_FiringPointLaunchPointLocation = 8, EmissionFunc_Ranging = 9, EmissionFunc_RadarAltimeter = 10, EmissionFunc_Imaging = 11, EmissionFunc_MotionDetection = 12, EmissionFunc_Navigation = 13, EmissionFunc_Weather = 14, EmissionFunc_Instrumentation = 15, EmissionFunc_IdentificationClassification = 16, EmissionFunc_JammingNoise = 64, EmissionFunc_JammingDeception = 65, EmissionFunc_Decoy = 66, EmissionFunc_WeaponNonLethal = 96, EmissionFunc_WeaponLethal = 97};
23  enum BeamFunc {BeamFunc_BeamFuncOther, BeamFunc_BeamFuncSearch, BeamFunc_BeamFuncHeightFinder, BeamFunc_BeamFuncAcquisition, BeamFunc_BeamFuncTracking, BeamFunc_BeamFuncAcquisitionAndTracking, BeamFunc_BeamFuncCommandGuidance, BeamFunc_BeamFuncIllumination, BeamFunc_BeamFuncRangeOnlyRadar, BeamFunc_BeamFuncMissileBeacon, BeamFunc_BeamFuncMissileFuze, BeamFunc_BeamFuncActiveRadarMissileSeeker, BeamFunc_BeamFuncJammer=12, BeamFunc_BeamFuncIFF, BeamFunc_BeamFuncNavWeather, BeamFunc_BeamFuncMeteorological, BeamFunc_BeamFuncDataTransmission, BeamFunc_BeamFuncNavDirectionalBeacon};
24  enum EmitterSysName {EmitterSysName_Other};
25  enum BeamType {BeamType_RegularBeam= -1, BeamType_RadarBeam= 1, BeamType_TrackBeam= 1, BeamType_JamBeam= 0};
26 
27 
28  struct Beam
29  {
33  unsigned char myBeamStatus;
34  unsigned char myBeamId;
35  unsigned short myBeamParameterIndex;
38  std::string myEmittingSystemId;
39  float myERP;
40  float myFrequency;
42  float myPRF;
43  float myPulseWidth;
44  float mySweepSync;
45  unsigned int myJammingModeSequence;
49 
50 
51  int size()
52  {
53  int size=0;
54  size+=sizeof(float);
55  size+=sizeof(float);
56  size+=sizeof(int);
57  size+=sizeof(unsigned char);
58  size+=sizeof(unsigned char);
59  size+=sizeof(unsigned short);
60  size+=sizeof(float);
61  size+=sizeof(float);
62  size+=myEmittingSystemId.size() < 128 ? 1 : 2;
63  size+=myEmittingSystemId.size();
64 
65  size+=sizeof(float);
66  size+=sizeof(float);
67  size+=sizeof(float);
68  size+=sizeof(float);
69  size+=sizeof(float);
70  size+=sizeof(float);
71  size+=sizeof(unsigned int);
72  size+=sizeof(bool);
73  size+=sizeof(bool);
74  size+=sizeof(int);
75 
76  return size;
77  }
78 
79  void serialize(DtStreamWriter& writer)
80  {
81  writer.writeSingle(myAzimuthCenter);
82  writer.writeSingle(myAzimuthSweep);
83  writer.writeInt32((int)myBeamFunction);
84  writer.writeUInt8(myBeamStatus);
85  writer.writeUInt8(myBeamId);
86  writer.writeUInt16(myBeamParameterIndex);
87  writer.writeSingle(myElevationCenter);
88  writer.writeSingle(myElevationSweep);
89  writer.writeString(myEmittingSystemId);
90  writer.writeSingle(myERP);
91  writer.writeSingle(myFrequency);
92  writer.writeSingle(myFrequencyRange);
93  writer.writeSingle(myPRF);
94  writer.writeSingle(myPulseWidth);
95  writer.writeSingle(mySweepSync);
96  writer.writeUInt32(myJammingModeSequence);
97  writer.writeBool(myHighDensity);
98  writer.writeBool(myLauncherRaised);
99  writer.writeInt32((int)myBeamType);
100 
101  }
102 
103  void deserialize(DtStreamReader& reader)
104  {
105  myAzimuthCenter=reader.readSingle();
106  myAzimuthSweep=reader.readSingle();
107  myBeamFunction=(BeamFunc)reader.readInt32();
108  myBeamStatus=reader.readUInt8();
109  myBeamId=reader.readUInt8();
110  myBeamParameterIndex=reader.readUInt16();
111  myElevationCenter=reader.readSingle();
112  myElevationSweep=reader.readSingle();
113  myEmittingSystemId=reader.readString();
114  myERP=reader.readSingle();
115  myFrequency=reader.readSingle();
116  myFrequencyRange=reader.readSingle();
117  myPRF=reader.readSingle();
118  myPulseWidth=reader.readSingle();
119  mySweepSync=reader.readSingle();
120  myJammingModeSequence=reader.readUInt32();
121  myHighDensity=reader.readBool();
122  myLauncherRaised=reader.readBool();
123  myBeamType=(BeamType)reader.readInt32();
124 
125  }
126  };
127 
128 
129 
130 
132  virtual ~EmitterStateMessage();
133 
134  virtual std::string getHostId();
135  virtual void setHostId(std::string val);
136 
137  virtual DtVector32 getRelativePosition();
138  virtual void setRelativePosition(DtVector32 val);
139 
140  virtual int getEventId();
141  virtual void setEventId(int val);
142 
143  virtual EmissionFunc getEmissionFunction();
144  virtual void setEmissionFunction(EmissionFunc val);
145 
146  virtual EmitterSysName getSystemName();
147  virtual void setSystemName(EmitterSysName val);
148 
149  virtual unsigned char getEmitterNumber();
150  virtual void setEmitterNumber(unsigned char val);
151 
152  virtual std::vector<Beam> getBeams();
153  virtual void setBeams(std::vector<Beam> val);
154 
155 
156 
157  virtual int messageSize();
158 
159  static DtMessage* decode(unsigned char* buffer, int length);
160  static std::string theMessageName();
161 
162 protected:
163  static std::string theFullName;
164 
165  std::string myHostId;
170  unsigned char myEmitterNumber;
171  std::vector<Beam> myBeams;
172 
173  virtual void serialize(DtStreamWriter& writer);
174  virtual void deserialize(DtStreamReader& reader);
175 };

Document ID: Generated on Thu Feb 22 04:26:36 EST 2018 from SVN revision 186468
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)