VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
electromagneticEmissionPdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vl/stateMsg.h>
15 #include <vl/packets/elecEmitP.h>
16 #include <vl/eventId.h>
17 
18 #include <matrix/vlMath.h>
19 
20 class DtExerciseConn;
22 
23 #define DtEMISSION_SUCCESS 0
24 #define DtBAD_SYS_NUM 1
25 #define DtBAD_BEAM_NUM 2
26 #define DtBAD_TARGET_NUM 3
27 #define DtBAD_SYS_ADDR 4
28 #define DtBAD_BEAM_ADDR 5
29 #define DtBAD_TARGET_ADDR 6
30 #define DtINCONSISTENT_SYS_LENGTHS_PDU_LENGTH 7
31 #define DtINCONSISTENT_BEAM_LENGTHS_SYS_LENGTH 8
32 #define DtINCONSISTENT_NUM_TARGETS_BEAM_LENGTH 9
33 
37 {
38 public:
39 
40  float frequency;
44  float pulseWidth;
45  float beamAzCenter;
46  float beamAzSweep;
47  float beamElCenter;
48  float beamElSweep;
50 
51  virtual void printData() const;
52  virtual void printDataToStream( std::ostream& stream ) const;
53 
54 };
55 
59 {
60 public:
61 
63  int emitterId;
64  int beamId;
65 
66  virtual void printData() const;
67  virtual void printDataToStream( std::ostream& stream ) const;
68 
69 };
70 
73 
77 {
78 public:
79 
80  enum
81  {
82  PduStaticSize = 28,
83  DtEmitterSystemStaticSize = 20,
84  DtEmitterBeamStaticSize = 52
85  };
86 
87 public:
88 
89  static DtPdu* create( const DtNetPacket* initial,
90  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );
91 
93 
95  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0 );
96 
97  static void addCallback( DtExerciseConn* conn,
98  DtElectromagneticEmissionPduCb cb, void* usr );
99 
100  static void removeCallback( DtExerciseConn* conn,
101  DtElectromagneticEmissionPduCb cb, void* usr );
102 
103  virtual const DtEntityIdentifier& emittingEntityId() const;
104  virtual void setEmittingEntityId( const DtEntityIdentifier& id );
105 
106  virtual const DtEventID& eventId() const;
107  virtual void setEventId( const DtEventID& id );
108 
109  virtual DtEmissionPduType stateUpdateIndicator() const;
110  virtual void setStateUpdateIndicator( DtEmissionPduType indicator );
111 
112  virtual int numSystems() const;
113  virtual void setNumSystems( int num );
114 
117 
118  virtual int systemDataWords( int sysNum, int* retcode = 0 ) const;
119 
120  virtual int numBeams( int sysNum, int* retcode = 0 ) const;
121  virtual void setNumBeams( int sysNum, int numBeams, int* retcode = 0 );
122 
123  virtual DtEmitterSysName systemName( int sysNum, int* retcode = 0 ) const;
124  virtual void setSystemName( int sysNum, DtEmitterSysName name, int* retcode = 0 );
125 
126  virtual DtEmissionFunc systemFunction( int sysNum, int* retcode = 0 ) const;
127  virtual void setSystemFunction( int sysNum, DtEmissionFunc func, int* retcode = 0 );
128 
129  virtual int emitterId( int sysNum, int* retcode = 0 ) const;
130  virtual void setEmitterId( int sysNum, int id, int* retcode = 0 );
131 
132  virtual const DtVector32& location( int sysNum, int* retcode = 0 ) const;
133  virtual void setLocation( int sysNum, const DtVector32& loc, int* retcode = 0 );
134 
136 
139 
140  virtual int beamDataWords( int sysNum, int beamNum, int* retcode = 0 ) const;
141 
142  virtual int beamId( int sysNum, int beamNum, int* retcode = 0 ) const;
143  virtual void setBeamId( int sysNum, int beamNum, int id, int* retcode = 0 );
144 
145  virtual int beamParameterIndex( int sysNum, int beamNum, int* retcode = 0 ) const;
146  virtual void setBeamParameterIndex( int sysNum, int beamNum, int bpIndex, int* retcode = 0 );
147 
148  virtual const DtFundamentalParameterData& parameterData( int sysNum, int beamNum, int* retcode = 0 ) const;
149  virtual void setParameterData( int sysNum, int beamNum, const DtFundamentalParameterData& data, int* retcode = 0 );
150 
151  virtual int beamFunction( int sysNum, int beamNum, int* retcode = 0 ) const;
152  virtual void setBeamFunction( int sysNum, int beamNum, int func, int* retcode = 0 );
153 
154  virtual int numTargetsInBeam( int sysNum, int beamNum,int* retcode = 0 ) const;
155  virtual void setNumTargetsInBeam( int sysNum, int beamNum, int num, int* retcode = 0 );
156 
157  virtual DtTrackingJamming trackingAllTargets( int sysNum, int beamNum, int* retcode = 0 ) const;
158  virtual void setTrackingAllTargets( int sysNum, int beamNum, DtTrackingJamming trackJamAll, int* retcode = 0 );
159 
160  virtual DtU8 beamStatus( int sysNum, int beamNum, int* retcode = 0 ) const;
161  virtual void setBeamStatus( int sysNum, int beamNum, DtU8 seq, int* retcode = 0 );
162 
163  virtual unsigned long jammingModeSequence( int sysNum, int beamNum, int* retcode = 0 ) const;
164  virtual void setJammingModeSequence( int sysNum, int beamNum, unsigned long seq, int* retcode = 0 );
165 
166  virtual const DtTrackJamTarget& trackJamTarget( int sysNum, int beamNum, int targetNum, int* retcode = 0 ) const;
167  virtual void setTrackJamTarget( int sysNum, int beamNum, int targetNum, const DtTrackJamTarget& targ, int* retcode = 0 );
168 
170 
171  virtual void printData() const;
172  virtual void printDataToStream( std::ostream& stream ) const;
173  virtual void printSystem( std::ostream& stream, int i ) const;
174  virtual void printBeam( std::ostream& stream, int i, int j ) const;
175 
176 protected:
177 
179 
182 
183  DtNetSystemData* emitterSystemAddr( int sysNum, int* retcode = 0 ) const;
184  DtNetBeamData* emitterBeamAddr( int sysNum, int beamNum, int* retcode = 0 ) const;
185  DtNetEmitterTrackJam* targetAddr( int sysNum, int beamNum, int targetNum, int* retcode = 0 ) const;
186 
188 
189  virtual int computedSystemDataLength( int sysNum ) const;
190  virtual int computedBeamDataLength( int sysNum, int beamNum ) const;
191  virtual int addressInPacket( void* addr ) const;
192  virtual int computeStatus() const;
193 
194 protected:
195 
198 
204 
206 
207 };
208 
209 #endif // DtHLA
Storage struct for emitter beam fundamental parameter data.
Definition: electromagneticEmissionPdu.h:36
float beamAzSweep
Definition: electromagneticEmissionPdu.h:46
float frequencyRange
Definition: electromagneticEmissionPdu.h:41
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: disEnums.h:264
Definition: elecEmitP.h:42
Definition: pduHeader.h:14
Definition: elecEmitP.h:21
float pulseRepetitionFrequency
Definition: electromagneticEmissionPdu.h:43
Storage struct for emitter beam fundamental parameter data.
Definition: electromagneticEmissionPdu.h:58
DIS Electromagnetic Emission PDU.
Definition: electromagneticEmissionPdu.h:76
DtEntityIdentifier myEittingEntityId
Definition: electromagneticEmissionPdu.h:199
class DtPduFactory:
Definition: pduFactory.h:38
DtFundamentalParameterData myParameterData
Definition: electromagneticEmissionPdu.h:202
DtPduKind internalGetPduKind() const
Returns the PDU kind associated with the derived PDU class.
Definition: electromagneticEmissionPdu.h:178
virtual void printDataToStream(std::ostream &stream) const
float beamAzCenter
Definition: electromagneticEmissionPdu.h:45
This file defines math constants and methods which may be useful in simulations.
float pulseWidth
Definition: electromagneticEmissionPdu.h:44
Definition: elecEmitP.h:73
DtEmissionPduType
Definition: disEnums.h:589
int emitterId
Definition: electromagneticEmissionPdu.h:63
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
float beamElSweep
Definition: electromagneticEmissionPdu.h:48
Definition: vlVector.h:162
float beamElCenter
Definition: electromagneticEmissionPdu.h:47
Represents Events in DIS.
Definition: eventId.h:154
void(* DtElectromagneticEmissionPduCb)(DtElectromagneticEmissionPdu *pdu, void *usr)
Definition: electromagneticEmissionPdu.h:72
DtTrackJamTarget myTrackJamTarget
Definition: electromagneticEmissionPdu.h:203
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
DtEventID myEventId
Definition: electromagneticEmissionPdu.h:200
DtEmissionFunc
Definition: disEnums.h:600
virtual void printData() const
Print the PDU&#39;s data (not including header).
float beamSweepSync
Definition: electromagneticEmissionPdu.h:49
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
int beamId
Definition: electromagneticEmissionPdu.h:64
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
float effectiveRadiatedPower
Definition: electromagneticEmissionPdu.h:42
DtTrackingJamming
Definition: disEnums.h:699
DtVector32 myLocation
Definition: electromagneticEmissionPdu.h:201
This file declares classes related to emitter systems.
Contains the DtEventId class declaration.
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
DtEmitterSysName
Definition: disEnums.h:595
float frequency
Definition: electromagneticEmissionPdu.h:40
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
Definition: elecEmitP.h:63
DtEntityIdentifier entityId
Definition: electromagneticEmissionPdu.h:62

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)