VR-Link API Documentation for HLA 1.3
elecEmitPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #ifndef DtElectromagneticEmissionPdu_H_
11 #define DtElectromagneticEmissionPdu_H_
12 
13 #if DtDIS
14 
15 #include "hostStructs.h"
16 #include "eventId.h"
17 #include "stateMsg.h"
18 #include <matrix/vlMath.h>
19 #include "packets/elecEmitP.h"
20 
21 #define DtEMISSION_SUCCESS 0
22 #define DtBAD_SYS_NUM 1
23 #define DtBAD_BEAM_NUM 2
24 #define DtBAD_TARGET_NUM 3
25 #define DtBAD_SYS_ADDR 4
26 #define DtBAD_BEAM_ADDR 5
27 #define DtBAD_TARGET_ADDR 6
28 #define DtINCONSISTENT_SYS_LENGTHS_PDU_LENGTH 7
29 #define DtINCONSISTENT_BEAM_LENGTHS_SYS_LENGTH 8
30 #define DtINCONSISTENT_NUM_TARGETS_BEAM_LENGTH 9
31 
32 class DT_DLL_VL DtFundamentalParameterData
33 {
34 public:
35  float frequency;
36  float frequencyRange;
37  float effectiveRadiatedPower;
38  float pulseRepetitionFrequency;
39  float pulseWidth;
40  float beamAzCenter;
41  float beamAzSweep;
42  float beamElCenter;
43  float beamElSweep;
44  float beamSweepSync;
45  virtual void printData() const;
46  virtual void printDataToStream(std::ostream& stream) const;
47 };
48 
49 class DT_DLL_VL DtTrackJamTarget
50 {
51 public:
52  DtEntityIdentifier entityId;
53  int emitterId;
54  int beamId;
55  virtual void printData() const;
56  virtual void printDataToStream(std::ostream& stream) const;
57 };
58 
60 class DT_DLL_VL DtElectromagneticEmissionPdu;
61 
62 typedef void (*DtElectromagneticEmissionPduCb)(
63  DtElectromagneticEmissionPdu *pdu, void *usr);
64 
65 class DT_DLL_VL DtElectromagneticEmissionPdu : public DtStateMsg
66 {
67 public:
68 
69  enum
70  {
71  PduStaticSize=28,
72  DtEmitterSystemStaticSize=20,
73  DtEmitterBeamStaticSize=52
74  };
75 
76 public:
77 
78  DtElectromagneticEmissionPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
79 
80  DtElectromagneticEmissionPdu(const DtNetElectromagneticEmissionPdu *initial,
82 
83  static DtPdu *create(const DtNetPacket *initial,
85 
86  static void addCallback(DtExerciseConn *conn,
87  DtElectromagneticEmissionPduCb cb, void *usr);
88 
89  static void removeCallback(DtExerciseConn *conn,
90  DtElectromagneticEmissionPduCb cb, void *usr);
91 
92  const DtEntityIdentifier &emittingEntityId() const;
93  void setEmittingEntityId(const DtEntityIdentifier &id);
94 
95  const DtEventID &eventId() const;
96  void setEventId(const DtEventID &id);
97 
98  DtEmissionPduType stateUpdateIndicator() const;
99  void setStateUpdateIndicator(DtEmissionPduType indicator);
100 
101  int numSystems() const;
102  void setNumSystems(int num);
103 
104  /************ FOR A PARTICULAR SYSTEM **************/
105  int systemDataWords(int sysNum, int *retcode = 0) const;
106 
107  int numBeams(int sysNum, int *retcode = 0) const;
108  void setNumBeams(int sysNum, int numBeams, int *retcode = 0);
109 
110  DtEmitterSysName systemName(int sysNum, int *retcode = 0) const;
111  void setSystemName(int sysNum, DtEmitterSysName name, int *retcode = 0);
112 
113  DtEmissionFunc systemFunction(int sysNum, int *retcode = 0) const;
114  void setSystemFunction(int sysNum, DtEmissionFunc func, int *retcode = 0);
115 
116  int emitterId(int sysNum, int *retcode = 0) const;
117  void setEmitterId(int sysNum, int id, int *retcode = 0);
118 
119  const DtVector& location(int sysNum, int *retcode = 0) const;
120  void setLocation(int sysNum, const DtVector& loc, int *retcode = 0);
121 
122  /************ FOR A PARTICULAR BEAM **************/
123  int beamDataWords(int sysNum, int beamNum, int *retcode = 0) const;
124 
125  int beamId(int sysNum, int beamNum, int *retcode = 0) const;
126 
127  void setBeamId(int sysNum, int beamNum, int id, int *retcode = 0);
128 
129  int beamParameterIndex(int sysNum, int beamNum, int *retcode = 0) const;
130 
131  void setBeamParameterIndex(int sysNum, int beamNum, int bpIndex,
132  int *retcode = 0);
133 
134  const DtFundamentalParameterData& parameterData(int sysNum, int beamNum,
135  int *retcode = 0) const;
136 
137  void setParameterData(int sysNum, int beamNum,
138  const DtFundamentalParameterData &data, int *retcode = 0);
139 
140  int beamFunction(int sysNum, int beamNum, int *retcode = 0) const;
141 
142  void setBeamFunction(int sysNum, int beamNum, int func, int *retcode = 0);
143 
144  int numTargetsInBeam(int sysNum, int beamNum,int *retcode = 0) const;
145  void setNumTargetsInBeam(int sysNum, int beamNum, int num, int *retcode = 0);
146 
147  DtTrackingJamming trackingAllTargets(int sysNum, int beamNum,
148  int *retcode = 0) const;
149 
150  void setTrackingAllTargets(int sysNum, int beamNum,
151  DtTrackingJamming trackJamAll, int *retcode = 0);
152 
153  unsigned long jammingModeSequence(int sysNum, int beamNum,
154  int *retcode = 0) const;
155 
156  void setJammingModeSequence(int sysNum, int beamNum, unsigned long seq,
157  int *retcode = 0);
158 
159  const DtTrackJamTarget &trackJamTarget(int sysNum, int beamNum,
160  int targetNum, int *retcode = 0) const;
161 
162  void setTrackJamTarget(int sysNum, int beamNum, int targetNum,
163  const DtTrackJamTarget &targ, int *retcode = 0);
164 
165  virtual void printData() const;
166 
167  virtual void printDataToStream(std::ostream& stream) const;
168 
169 protected:
170 
171  DtPduKind internalGetPduKind() const {return DtElectromagneticEmissionPduKind;}
172 
173  DtNetSystemData *emitterSystemAddr(int sysNum, int *retcode = 0) const;
174 
175  DtNetBeamData *emitterBeamAddr(int sysNum, int beamNum,
176  int *retcode = 0) const;
177 
178  DtNetEmitterTrackJam *targetAddr(int sysNum, int beamNum, int targetNum,
179  int *retcode = 0) const;
180 
181  int computedSystemDataLength(int sysNum) const;
182  int computedBeamDataLength(int sysNum, int beamNum) const;
183  void printSystem(std::ostream& stream,int i) const;
184  void printBeam(std::ostream& stream,int i, int j) const;
185  int addressInPacket(void *addr) const;
186  int computeStatus() const;
187 
188  DtEntityIdentifier cacheId;
189  DtEventID cacheEvent;
190  DtVector cacheLoc;
191  DtFundamentalParameterData cacheData;
192  DtTrackJamTarget cacheTarget;
193 
194 };
195 
196 #endif
197 #endif
198 

Document ID: Generated on Wed Aug 14 15:35:11 EDT 2013 from SVN revision 130445
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)