VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
transmitterPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include "hostStructs.h"
14 #include "pdu.h"
15 #include <matrix/vlMath.h>
16 #include "packets/transmitterP.h"
18 #include "stateMsg.h"
19 
20 
23 typedef void (*DtTransmitterPduCb)(DtTransmitterPdu *pdu, void *usr);
24 
25 #define DtFREQ_UPPER 0
26 #define DtFREQ_LOWER 1
27 
29 {
30 
31 public:
32  DtModulationType(int spectrum = 0,
33  DtRadioMajorModulation major =
35  int detail = 0,
37  : Spectrum(spectrum), Major(major), Detail(detail), Sys(sys) {}
38 
39  unsigned int spectrum() const {return Spectrum;}
40  DtRadioMajorModulation majorModType() const {return Major;}
41  int detail() const {return Detail;}
42  DtRadioSystem systemType() const {return Sys;}
43 
44  void setSpectrum(unsigned int s) {Spectrum = s;}
45  void setMajor(DtRadioMajorModulation m) {Major = m;}
46  void setDetail(int d) {Detail = d;}
47  void setSystemType(DtRadioSystem s) {Sys = s;}
48 
49  virtual void printData() const;
50  virtual void printDataToStream(std::ostream& stream) const;
51 
52 private:
53  unsigned int Spectrum;
55  int Detail;
57 };
58 
62 {
63 
64 public:
65 
66  enum { PduStaticSize=104 };
67 
68 public:
69 
70 
73  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
74 
76  virtual ~DtTransmitterPdu();
77 
80 
83 
84 
85  static DtPdu *create(const DtNetPacket *initial,
86  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
87 
88  static void addCallback(DtExerciseConn *conn,
89  DtTransmitterPduCb cb, void *usr);
90  static void removeCallback(DtExerciseConn *conn,
91  DtTransmitterPduCb cb, void *usr);
92 
93 
94  const DtEntityIdentifier &entityId() const;
95  void setEntityId(const DtEntityIdentifier &id);
96 
97  unsigned int radioId() const;
98  void setRadioId(unsigned int id);
99 
100  const DtRadioEntityType &radioEntityType() const;
101  void setRadioEntityType(const DtRadioEntityType &type);
102  void setRadioEntityType(const DtEntityType &type);
103 
104  DtRadioTransmitState transmitState() const;
105  void setTransmitState(DtRadioTransmitState state);
106 
107  DtRadioInputSource inputSource() const;
108  void setInputSource(DtRadioInputSource source);
109 
110  const DtVector& worldAntennaLoc() const;
111  void setWorldAntennaLoc(const DtVector& loc);
112 
113  const DtVector32& relativeAntennaLoc() const;
114  void setRelativeAntennaLoc(const DtVector32& loc);
115 
116  DtAntennaPatternType antennaPatternType() const;
117  void setAntennaPatternType(DtAntennaPatternType type);
118 
119  int antennaParamsLength() const;
120 
123 
124  unsigned long frequency(int upperLower) const;
125  void setFrequency(unsigned long upper, unsigned long lower);
127 
129 
130  void setFrequency(DtU64 freq);
131  DtU64 frequency() const;
133 
134  float bandwidth() const;
135  void setBandwidth(float bw);
136 
137  float power() const;
138  void setPower(float power);
139 
140  const DtModulationType &modulationType() const;
141  void setModulationType(const DtModulationType &type);
142 
143  DtRadioCryptoSystem cryptoSystem() const;
144  void setCryptoSystem(DtRadioCryptoSystem sys);
145 
146  int cryptoKeyId() const;
147  void setCryptoKeyId(int key);
148 
149  int modulationParamsLength() const;
150  void setModulationParams(void *networkRepresentation, int size);
151 
152  void getNetModulationParams(void *destination) const;
153  void getNetAntennaParams(void *destination) const;
154  const DtBeamAntennaPatternRecord &antennaParams() const;
155 
156  void setAntennaPatternParams(void *networkRepresentation, int size);
157  void setAntennaPatternParams(const DtBeamAntennaPatternRecord &rec);
158 
159  virtual void printData() const;
160  virtual void printDataToStream(std::ostream &stream) const;
161 
162 protected:
163 
171  void setModulationParamsLength(int length);
172  void setAntennaParamsLength(int length);
173  void *antennaParamsAddr() const;
174  void *modulationParamsAddr() const;
175  virtual void printModulationParams(std::ostream& stream) const;
176  virtual void printAntennaParams(std::ostream& stream) const;
177 private:
180  virtual void printModulationParams() const;
181  virtual void printAntennaParams() const;
182 };
183 
184 #endif
DtAntennaPatternType
Definition: disEnums.h:735
DtRadioTransmitState
Definition: disEnums.h:714
int detail() const
Definition: transmitterPdu.h:41
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
void setSpectrum(unsigned int s)
Definition: transmitterPdu.h:44
DtBeamAntennaPatternRecord pat
Definition: transmitterPdu.h:170
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtRadioCryptoSystem
Definition: disEnums.h:900
DtEntityIdentifier theId
Definition: transmitterPdu.h:165
Definition: entityType.h:126
Definition: pduHeader.h:14
unsigned long long DtU64
-------—— Network Layout for a long long (64 bytes unsigned)
Definition: vlMachineTypes.h:185
Definition: disEnums.h:266
class DtPduFactory:
Definition: pduFactory.h:38
DtModulationType modType
Definition: transmitterPdu.h:169
virtual void printDataToStream(std::ostream &stream) const
DtRadioEntityType theType
Definition: transmitterPdu.h:166
DtRadioSystem systemType() const
Definition: transmitterPdu.h:42
This file defines math constants and methods which may be useful in simulations.
int Detail
Definition: transmitterPdu.h:55
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
Definition: transmitterP.h:22
DtRadioMajorModulation majorModType() const
Definition: transmitterPdu.h:40
Definition: vlVector.h:224
unsigned int spectrum() const
Definition: transmitterPdu.h:39
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
void setDetail(int d)
Definition: transmitterPdu.h:46
Definition: disEnums.h:814
DtVector wLoc
Definition: transmitterPdu.h:167
Definition: vlVector.h:162
DtRadioSystem Sys
Definition: transmitterPdu.h:56
void setMajor(DtRadioMajorModulation m)
Definition: transmitterPdu.h:45
Definition: transmitterPdu.h:28
DtRadioMajorModulation Major
Definition: transmitterPdu.h:54
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
Instances of DtBeamAntennaPatternRecord are beam antenna pattern records used in conjunction with DtR...
Definition: beamAntennaPatternRecord.h:29
DtVector32 rLoc
Definition: transmitterPdu.h:168
DtPduKind internalGetPduKind() const
Returns the PDU kind associated with the derived PDU class.
Definition: transmitterPdu.h:164
DtRadioInputSource
Definition: disEnums.h:721
virtual void printData() const
Print the PDU&#39;s data (not including header).
DtRadioMajorModulation
The 7th enumerator, DtCarrierPhaseShiftModulation, is defined by SISO&#39;s standard for Link 16 simulati...
Definition: disEnums.h:812
DtModulationType(int spectrum=0, DtRadioMajorModulation major=DtRadioMajorModOther, int detail=0, DtRadioSystem sys=DtRadioSystemOther)
Definition: transmitterPdu.h:32
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
The transmitter pdu.
Definition: transmitterPdu.h:61
DtRadioSystem
[UID 163] - Radio System. The DtJTIDS_MIDS enumerator is specifically used for Link-16 simulation...
Definition: disEnums.h:876
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
void(* DtTransmitterPduCb)(DtTransmitterPdu *pdu, void *usr)
Definition: transmitterPdu.h:23
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
unsigned int Spectrum
Definition: transmitterPdu.h:53
This file provides a declaration of the class DtBeamAntennaPatternRecord.
Definition: disEnums.h:878
void setSystemType(DtRadioSystem s)
Definition: transmitterPdu.h:47
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26

Document ID: Generated on Tue Aug 10 00:12:31 EDT 2021 from SVN revision 232765
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)