VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
transmitterState.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 <vlpi/entityType.h>
16 #include <matrix/vlVector.h>
17 #include <vector>
18 
19 
21 {
22 public:
23  enum ModulationSystemType {ModulationSystemType_OTHER, ModulationSystemType_GENERIC, ModulationSystemType_HQ, ModulationSystemType_HQII, ModulationSystemType_HQIIA, ModulationSystemType_SINCGARS, ModulationSystemType_CCTT_SINCGARS, ModulationSystemType_EPLRS, ModulationSystemType_JTIDS};
24  enum ModulationDetailAplitudeAngleType {ModulationDetailAplitudeAngleType_OTHER, ModulationDetailAplitudeAngleType_APLITUDE_ANGLE};
25  enum ClearChannel {ClearChannel_NOT_CLEAR, ClearChannel_CLEAR};
26  enum CryptoSystem {CryptoSystem_OTHER, CryptoSystem_KY_28, CryptoSystem_VINSON, CryptoSystem_NSVE, CryptoSystem_WSVE, CryptoSystem_SINGARS_ICOM, CryptoSystem_KY_75, CryptoSystem_KY_100};
27  enum ModulationDetailPulseType {ModulationDetailPulseType_OTHER, ModulationDetailPulseType_PULSE, ModulationDetailPulseType_X_BAND, ModulationDetailPulseType_Y_BAND};
28  enum InputSource {InputSource_OTHER, InputSource_PILOT, InputSource_COPILOT, InputSource_FIRST_OFFICER, InputSource_DRIVER, InputSource_LOADER, InputSource_GUNNER, InputSource_COMMANDER, InputSource_DIGITAL_DATA_DEVICE, InputSource_INTERCOM};
29  enum ReferenceSystem {ReferenceSystem_WORLDCOORD=1, ReferenceSystem_ENTITYCOORD=2};
30  enum ModulationDetailCombinationType {ModulationDetailCombinationType_OTHER, ModulationDetailCombinationType_AMPLITUDE_ANGLE_PULSE};
31  enum ModulationMajorType {ModulationMajorType_OTHER, ModulationMajorType_AMPLITUDE, ModulationMajorType_AMPLITUDE_ANGLE, ModulationMajorType_ANGLE=3, ModulationMajorType_COMBINATION=4, ModulationMajorType_PULSE=5, ModulationMajorType_UNMODULATED=6, ModulationMajorType_CARRIER_PHASE_SHIFT=7};
32  enum TransmitTerminalSecondaryMode {TransmitTerminalSecondaryMode_NONE, TransmitTerminalSecondaryMode_NET_POSITION_REFERENCE, TransmitTerminalSecondaryMode_PRIMARY_NAVIGATION_CONTROLLER, TransmitTerminalSecondaryMode_SECONDARY_NAVIGATION_CONTROLLER};
33  enum TransmitState {TransmitState_OFF, TransmitState_RADIO_ON_NOT_TRANSMITTING, TransmitState_ON};
34  enum CryptoMode {CryptoMode_BASEBAND, CryptoMode_DIPHASE};
35  enum StartOfMessage {StartOfMessage_NOT_START, StartOfMessage_START};
36  enum TransmitTerminalPrimaryMode {TransmitTerminalPrimaryMode_NTR, TransmitTerminalPrimaryMode_JTIDS};
37  enum SyncState {SyncState_COURSE=1, SyncState_FINE=2};
38  enum ModulationDetailCarrierPhaseShiftType {ModulationDetailCarrierPhaseShiftType_OTHER };
39  enum ModulationDetailUnmodulatedType {ModulationDetailUnmodulatedType_OTHER, ModulationDetailUnmodulatedType_CONTINOUS_WAVE};
40  enum ModulationDetailAngleType {ModulationDetailAngleType_OTHER, ModulationDetailAngleType_FM, ModulationDetailAngleType_FSK, ModulationDetailAngleType_PM};
41  enum ModulationDetailAplitudeType {ModulationDetailAplitudeType_OTHER, ModulationDetailAplitudeType_AFSK, ModulationDetailAplitudeType_AM, ModulationDetailAplitudeType_CW, ModulationDetailAplitudeType_DSB, ModulationDetailAplitudeType_ISB, ModulationDetailAplitudeType_LSB, ModulationDetailAplitudeType_SSB_FULL, ModulationDetailAplitudeType_SSB_REDUC, ModulationDetailAplitudeType_USB, ModulationDetailAplitudeType_VSB};
42  enum AntennaPatternType {AntennaPatternType_OMNIDIRECTIONAL=0, AntennaPatternType_BEAM=1, AntennaPatternType_SPHERICALHARMONIC=2};
43 
44 
46  {
47  unsigned char myOrder;
48  std::vector<float> myCoefficients;
50 
51 
52  int size()
53  {
54  int size=0;
55  size+=sizeof(unsigned char);
56  size+=4; //for the count of the items in the list
57  for(unsigned int i=0; i<myCoefficients.size(); i++)
58  {
59  size+=sizeof(float);
60  }
61 
62  size+=sizeof(int);
63 
64  return size;
65  }
66 
67  void serialize(DtStreamWriter& writer)
68  {
69  writer.writeUInt8(myOrder);
70  writer.writeInt32(myCoefficients.size()); //for the count of the items in the list
71  for(unsigned int i=0; i<myCoefficients.size(); i++)
72  {
73  writer.writeSingle(myCoefficients[i]);
74  }
75 
76  writer.writeInt32((int)myReferenceSystem);
77 
78  }
79 
81  {
82  myOrder=reader.readUInt8();
83  unsigned int myCoefficients_count=reader.readInt32(); //for the count of the items in the list
84  for(unsigned int i=0; i<myCoefficients_count; i++)
85  {
86  float afloat;
87  afloat=reader.readSingle();
88  myCoefficients.push_back(afloat);
89  }
90  myReferenceSystem=(ReferenceSystem)reader.readInt32();
91 
92  }
93  };
94 
95 
97  {
99  unsigned short myDetail;
101 
102 
103  int size()
104  {
105  int size=0;
106  size+=sizeof(int);
107  size+=sizeof(unsigned short);
108  size+=sizeof(int);
109 
110  return size;
111  }
112 
113  void serialize(DtStreamWriter& writer)
114  {
115  writer.writeInt32((int)myMajor);
116  writer.writeUInt16(myDetail);
117  writer.writeInt32((int)mySystem);
118 
119  }
120 
122  {
123  myMajor=(ModulationMajorType)reader.readInt32();
124  myDetail=reader.readUInt16();
125  mySystem=(ModulationSystemType)reader.readInt32();
126 
127  }
128  };
129 
130 
132  {
133 
134 
135  int size()
136  {
137  int size=0;
138 
139  return size;
140  }
141 
142  void serialize(DtStreamWriter& writer)
143  {
144 
145  }
146 
148  {
149 
150  }
151  };
152 
153 
155  {
160  float myEZ;
161  float myEX;
162  float myPhase;
163 
164 
165  int size()
166  {
167  int size=0;
168  size+=sizeof(double)*3;
169  size+=sizeof(float);
170  size+=sizeof(float);
171  size+=sizeof(int);
172  size+=sizeof(float);
173  size+=sizeof(float);
174  size+=sizeof(float);
175 
176  return size;
177  }
178 
179  void serialize(DtStreamWriter& writer)
180  {
181  writer.writeDouble(myOrientation.psi());
182  writer.writeDouble(myOrientation.theta());
183  writer.writeDouble(myOrientation.phi());
184 
185  writer.writeSingle(myAzimuthBeamWidth);
186  writer.writeSingle(myElevationBeamWidth);
187  writer.writeInt32((int)myReferenceSystem);
188  writer.writeSingle(myEZ);
189  writer.writeSingle(myEX);
190  writer.writeSingle(myPhase);
191 
192  }
193 
195  {
196  myOrientation.setPsi(reader.readDouble());
197  myOrientation.setTheta(reader.readDouble());
198  myOrientation.setPhi(reader.readDouble());
199 
200  myAzimuthBeamWidth=reader.readSingle();
201  myElevationBeamWidth=reader.readSingle();
202  myReferenceSystem=(ReferenceSystem)reader.readInt32();
203  myEZ=reader.readSingle();
204  myEX=reader.readSingle();
205  myPhase=reader.readSingle();
206 
207  }
208  };
209 
210 
211 
212 
214  virtual ~TransmitterStateMessage();
215 
216  virtual std::string getHostGlobalIdentifier();
217  virtual void setHostGlobalIdentifier(std::string val);
218 
219  virtual unsigned short getEmbeddedIndex();
220  virtual void setEmbeddedIndex(unsigned short val);
221 
222  virtual std::string getHostEntityIdentifier();
223  virtual void setHostEntityIdentifier(std::string val);
224 
225  virtual DtEntityType getRadioEntityType();
226  virtual void setRadioEntityType(DtEntityType val);
227 
228  virtual TransmitState getTransmitState();
229  virtual void setTransmitState(TransmitState val);
230 
231  virtual InputSource getInputSource();
232  virtual void setInputSource(InputSource val);
233 
234  virtual DtVector getWorldAntennaLocation();
235  virtual void setWorldAntennaLocation(DtVector val);
236 
237  virtual DtVector32 getRelativeAntennaLocation();
238  virtual void setRelativeAntennaLocation(DtVector32 val);
239 
240  virtual AntennaPatternType getAntennaPatternType();
241  virtual void setAntennaPatternType(AntennaPatternType val);
242 
243  virtual unsigned long long getFrequency();
244  virtual void setFrequency(unsigned long long val);
245 
246  virtual float getTransmitBandwidth();
247  virtual void setTransmitBandwidth(float val);
248 
249  virtual float getPower();
250  virtual void setPower(float val);
251 
252  virtual ModulationType getModulationType();
253  virtual void setModulationType(ModulationType val);
254 
255  virtual CryptoMode getCryptoMode();
256  virtual void setCryptoMode(CryptoMode val);
257 
258  virtual CryptoSystem getCryptoSystem();
259  virtual void setCryptoSystem(CryptoSystem val);
260 
261  virtual unsigned short getCryptoKey();
262  virtual void setCryptoKey(unsigned short val);
263 
264  virtual std::vector<unsigned char> getModulationParameters();
265  virtual void setModulationParameters(std::vector<unsigned char> val);
266 
267  virtual std::vector<unsigned char> getAntennaPatternParameters();
268  virtual void setAntennaPatternParameters(std::vector<unsigned char> val);
269 
270  virtual bool getFreqHopInUse();
271  virtual void setFreqHopInUse(bool val);
272 
273  virtual bool getPseudoNoiseInUse();
274  virtual void setPseudoNoiseInUse(bool val);
275 
276  virtual bool getTimeHopInUse();
277  virtual void setTimeHopInUse(bool val);
278 
279 
280 
281  virtual int messageSize();
282 
283  static DtMessage* decode(unsigned char* buffer, int length);
284  static std::string theMessageName();
285 
286 protected:
287  static std::string theFullName;
288 
290  unsigned short myEmbeddedIndex;
298  unsigned long long myFrequency;
300  float myPower;
304  unsigned short myCryptoKey;
305  std::vector<unsigned char> myModulationParameters;
306  std::vector<unsigned char> myAntennaPatternParameters;
310 
311  virtual void serialize(DtStreamWriter& writer);
312  virtual void deserialize(DtStreamReader& reader);
313 };
int size()
Definition: transmitterState.h:165
bool myTimeHopInUse
Definition: transmitterState.h:309
float myEZ
Definition: transmitterState.h:160
std::string myHostGlobalIdentifier
Definition: transmitterState.h:289
AntennaPatternType myAntennaPatternType
Definition: transmitterState.h:297
unsigned short myEmbeddedIndex
Definition: transmitterState.h:290
std::vector< unsigned char > myModulationParameters
Definition: transmitterState.h:305
unsigned short myDetail
Definition: transmitterState.h:99
unsigned char readUInt8()
value readers return a value and increment the current position in the byte stream based on the size ...
Contains the DtEntityType and DtRadioEntityType class declarations.
void writeUInt16(unsigned short num)
value readers return a value and increment the current position in the byte stream based on the size ...
virtual int messageSize()
this function needs to be in each derived class for decoding
#define MANAGEDINTERFACE_DLL
Definition: plugin.h:15
ModulationDetailCombinationType
Definition: transmitterState.h:30
InputSource myInputSource
Definition: transmitterState.h:294
Definition: transmitterState.h:131
ReferenceSystem
Definition: transmitterState.h:29
ClearChannel
Definition: transmitterState.h:25
double readDouble()
value readers return a value and increment the current position in the byte stream based on the size ...
ModulationDetailAplitudeType
Definition: transmitterState.h:41
ModulationType myModulationType
Definition: transmitterState.h:301
unsigned long long myFrequency
Definition: transmitterState.h:298
unsigned char myOrder
Definition: transmitterState.h:47
ReferenceSystem myReferenceSystem
Definition: transmitterState.h:159
Definition: transmitterState.h:28
void writeDouble(double num)
value readers return a value and increment the current position in the byte stream based on the size ...
CryptoSystem
Definition: transmitterState.h:26
InputSource
Definition: transmitterState.h:28
Defines the base class for all messages that are sent to and from C#.
Definition: transmitterState.h:25
int size()
Definition: transmitterState.h:52
TransmitTerminalPrimaryMode
Definition: transmitterState.h:36
ModulationDetailUnmodulatedType
Definition: transmitterState.h:39
float myPhase
Definition: transmitterState.h:162
This is the DtMessage class.
Definition: message.h:20
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
DtVector32 myRelativeAntennaLocation
Definition: transmitterState.h:296
ModulationDetailAplitudeAngleType
Definition: transmitterState.h:24
std::vector< unsigned char > myAntennaPatternParameters
Definition: transmitterState.h:306
unsigned short readUInt16()
value readers return a value and increment the current position in the byte stream based on the size ...
void serialize(DtStreamWriter &writer)
Definition: transmitterState.h:113
DtEntityType myRadioEntityType
Definition: transmitterState.h:292
void serialize(DtStreamWriter &writer)
Definition: transmitterState.h:179
ModulationDetailPulseType
Definition: transmitterState.h:27
ModulationMajorType
Definition: transmitterState.h:31
void writeSingle(float num)
value readers return a value and increment the current position in the byte stream based on the size ...
This file declares DtVector and DtVector32.
ModulationDetailAngleType
Definition: transmitterState.h:40
bool myPseudoNoiseInUse
Definition: transmitterState.h:308
ModulationDetailCarrierPhaseShiftType
Definition: transmitterState.h:38
CryptoMode myCryptoMode
Definition: transmitterState.h:302
DtTaitBryan myOrientation
Definition: transmitterState.h:156
float myEX
Definition: transmitterState.h:161
StartOfMessage
Definition: transmitterState.h:35
Definition: vlVector.h:224
TransmitState myTransmitState
Definition: transmitterState.h:293
void serialize(DtStreamWriter &writer)
Definition: transmitterState.h:67
Definition: transmitterState.h:154
std::string myHostEntityIdentifier
Definition: transmitterState.h:291
Definition: vlVector.h:162
std::vector< float > myCoefficients
Definition: transmitterState.h:48
int readInt32()
value readers return a value and increment the current position in the byte stream based on the size ...
Instances of DtStreamWriter encode values into a byte array.
Definition: byteStream.h:74
float myPower
Definition: transmitterState.h:300
ReferenceSystem myReferenceSystem
Definition: transmitterState.h:49
float myTransmitBandwidth
Definition: transmitterState.h:299
TransmitState
Definition: transmitterState.h:33
ModulationSystemType mySystem
Definition: transmitterState.h:100
static std::string theFullName
Definition: transmitterState.h:287
CryptoSystem myCryptoSystem
Definition: transmitterState.h:303
SyncState
Definition: transmitterState.h:37
void deserialize(DtStreamReader &reader)
Definition: transmitterState.h:194
Instances of DtStreamReader decode values from a byte array.
Definition: byteStream.h:31
void serialize(DtStreamWriter &writer)
Definition: transmitterState.h:142
virtual void serialize(DtStreamWriter &writer)
ModulationMajorType myMajor
Definition: transmitterState.h:98
int size()
Definition: transmitterState.h:103
Definition: transmitterState.h:96
void deserialize(DtStreamReader &reader)
Definition: transmitterState.h:121
int size()
Definition: transmitterState.h:135
void deserialize(DtStreamReader &reader)
Definition: transmitterState.h:147
void writeUInt8(unsigned char num)
value readers return a value and increment the current position in the byte stream based on the size ...
DtVector myWorldAntennaLocation
Definition: transmitterState.h:295
float myAzimuthBeamWidth
Definition: transmitterState.h:157
float readSingle()
value readers return a value and increment the current position in the byte stream based on the size ...
Definition: transmitterState.h:20
ModulationSystemType
Definition: transmitterState.h:23
unsigned short myCryptoKey
Definition: transmitterState.h:304
Definition: transmitterState.h:26
bool myFreqHopInUse
Definition: transmitterState.h:307
CryptoMode
Definition: transmitterState.h:34
float myElevationBeamWidth
Definition: transmitterState.h:158
void deserialize(DtStreamReader &reader)
Definition: transmitterState.h:80
AntennaPatternType
Definition: transmitterState.h:42
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
Definition: transmitterState.h:45
TransmitTerminalSecondaryMode
Definition: transmitterState.h:32
virtual void deserialize(DtStreamReader &reader)
void writeInt32(int num)
value readers return a value and increment the current position in the byte stream based on the size ...

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)