VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
griddedDataPdu.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtHLA || DtDIS
13 
14 #include "gridAxisRecordVariable.h"
15 #include <vlutil/vlMachineTypes.h>
16 #include "hostStructs.h"
17 #include "pdu.h"
18 #include "stateMsg.h"
19 #include <matrix/vlMath.h>
20 
21 #include "packets/gridDataP.h"
22 
23 #include "gridAxisRecordFixed.h"
24 
25 #include "gridDataRecord.h"
26 #include "gridDataRecordType0.h"
27 #include "gridDataRecordType1.h"
28 #include "gridDataRecordType2.h"
29 
31 
33 
35 typedef void (*DtGriddedDataPduCb)(DtGriddedDataPdu* pdu, void* usr);
36 
40 #if DtHLA
42 #else // DtDIS
44 #endif
45 {
46 
47 public:
48 
52  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
54 
56  virtual ~DtGriddedDataPdu();
57 
60  static DtPdu* create(const DtNetPacket* initial,
61  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
62 
65  static void addCallback(DtExerciseConn* conn,
66  DtGriddedDataPduCb cb, void* usr);
67  static void removeCallback(DtExerciseConn* conn,
68  DtGriddedDataPduCb cb, void* usr);
69 
72 
74  virtual void setEnvSimAppID(const DtEntityIdentifier& app);
75  virtual const DtEntityIdentifier& envSimAppID() const;
76 
78  virtual void setFieldNumber(DtU16 field);
79  virtual DtU16 fieldNumber() const;
80 
82  virtual void setPduNumber(DtU16 num);
83  virtual DtU16 pduNumber() const;
84 
86  virtual void setPduTotal(DtU16 total);
87  virtual DtU16 pduTotal() const;
88 
90  virtual void setCoordSystem(DtU16 sys);
91  virtual DtU16 coordSystem() const;
92 
94  virtual bool setNumGridAxes(DtU8 axes);
95  virtual DtU8 numGridAxes() const;
96 
98  virtual void setConstantGrid(DtU8 constant);
99  virtual DtU8 constantGrid() const;
100 
102  virtual void setEnvironmentType(const DtEnvironmentTypeRecord& type);
103  virtual const DtEnvironmentTypeRecord& environmentType() const;
104 
106  virtual void setOrientation(const DtTaitBryan& orientation);
107  virtual const DtTaitBryan& orientation() const;
108 
112  virtual void setSampleTime(int index, DtU32 time);
113  virtual DtU32 sampleTime(int index) const;
114 
116  virtual void setTotalValues(DtU32 total);
117  virtual DtU32 totalValues() const;
118 
121  virtual bool setVectorDim(DtU8 dim);
122  virtual DtU8 vectorDim() const;
123 
125  virtual DtGridAxisType gridAxisRecordType(int index) const;
126 
133  virtual bool setGridAxisRecord(int index,
134  const DtGridAxisRecordFixed& init);
135  virtual bool getGridAxisRecord(int index,
136  DtGridAxisRecordFixed& record) const;
137  virtual bool setGridAxisRecord(int index,
138  const DtGridAxisRecordVariable& init);
139  virtual bool getGridAxisRecord(int index,
140  DtGridAxisRecordVariable& record) const;
141 
143  virtual DtGridDataRecType gridDataRecordType(int index) const;
144 
151  virtual bool setGridDataRecord(int index,
152  const DtGridDataRecordType0& init);
153  virtual bool getGridDataRecord(int index,
154  DtGridDataRecordType0& record) const;
155  virtual bool setGridDataRecord(int index,
156  const DtGridDataRecordType1& init);
157  virtual bool getGridDataRecord(int index,
158  DtGridDataRecordType1& record) const;
159  virtual bool setGridDataRecord(int index,
160  const DtGridDataRecordType2& init);
161  virtual bool getGridDataRecord(int index,
162  DtGridDataRecordType2& record) const;
163 
165  virtual void printData() const;
166 
168  virtual void printDataToStream(std::ostream& stream) const;
169 
170 protected:
171 
173  virtual DtPduKind internalGetPduKind() const;
174 
176  virtual DtNetGriddedDataPdu* netPduStruct() const;
177 
179  virtual char* var() const;
180 
183  DtGriddedDataPdu* self() const;
184 
186  virtual int gridAxisRecordLength(DtNetGridAxisRecordFixed* rec) const;
187 
189  virtual int gridDataRecordLength(DtNetGridDataRecord* rec) const;
190 
192  virtual int gridAxisRecordOffset(int recordIndex) const;
193 
195  virtual int gridDataRecordOffset(int recordIndex) const;
196 
199  int newSize);
200 
202  virtual bool resizeGridDataRecord(DtNetGridDataRecord* rec,
203  int newSize);
204 
205 protected:
206 
208  static const int theStaticSize;
209 
210 protected:
211 
216 
217 };
218 
219 #endif // DtHLA || DtDIS
virtual int gridDataRecordOffset(int recordIndex) const
Returns a buffer offset to the given grid data record.
virtual bool setVectorDim(DtU8 dim)
Set/Get vector dimension.
DtEntityIdentifier myEntityID
Temporary objects for reference returns.
Definition: griddedDataPdu.h:213
Instances of DtEnvironmentTypeRecord are used by the DtGriddedDataPdu for specifying environmental ty...
Definition: environmentTypeRecord.h:17
virtual void setConstantGrid(DtU8 constant)
Set/Get constant grid indicator.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
DtEnvironmentTypeRecord myEnvironmentType
Definition: griddedDataPdu.h:214
virtual const DtEnvironmentTypeRecord & environmentType() const
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual DtU8 vectorDim() const
Instances of DtGridDataRecordType2 are used to contain the information in the grid data records (of r...
Definition: gridDataRecordType2.h:27
virtual DtNetGriddedDataPdu * netPduStruct() const
Casts the netPdu element to our network struct.
virtual bool resizeGridAxisRecord(DtNetGridAxisRecordFixed *rec, int newSize)
Resizes a grid axis record.
static DtPdu * create(const DtNetPacket *initial, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER, DtPduFactory *pduFactory=0)
Create a DtGriddedDataPdu.
virtual DtU32 totalValues() const
Definition: pduHeader.h:14
static void addCallback(DtExerciseConn *conn, DtGriddedDataPduCb cb, void *usr)
Add (register)/Remove (deregister) function to be called when pdu is received.
virtual DtGridDataRecType gridDataRecordType(int index) const
Get the grid data record type for a particular record.
DtNetGriddedDataPdu is the network structure for the gridded data PDU.
Definition: gridDataP.h:154
virtual void setTotalValues(DtU32 total)
Set/Get total values.
virtual void setOrientation(const DtTaitBryan &orientation)
Set/Get orientation.
DtTaitBryans are used to represent orientation of an object, using a set of three Euler angles...
Definition: vlTaitBryan.h:43
virtual bool getGridDataRecord(int index, DtGridDataRecordType0 &record) const
DtGriddedDataPdu(DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
Constructors.
virtual void printDataToStream(std::ostream &stream) const
Print the data contained by this PDU to the specified stream.
virtual void printData() const
Print the data contained by this PDU to DtInfo.
This file defines math constants and methods which may be useful in simulations.
virtual ~DtGriddedDataPdu()
destructor
virtual void setPduTotal(DtU16 total)
Set/Get total number of PDUs used to transmit the environmental data.
virtual DtU16 pduNumber() const
DtTaitBryan myEulerAngles
Definition: griddedDataPdu.h:215
DtNetGridAxisRecord is the base class for the three grid axis record structures.
Definition: gridDataP.h:106
virtual DtU8 numGridAxes() const
virtual int gridDataRecordLength(DtNetGridDataRecord *rec) const
Returns the length of a given grid data record.
virtual void setSampleTime(int index, DtU32 time)
Set/Get sample time.
virtual const DtEntityIdentifier & envSimAppID() const
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
virtual bool setGridAxisRecord(int index, const DtGridAxisRecordFixed &init)
Set/Get the grid axis record type and values of record index to values specified by the initializer i...
virtual char * var() const
Returns a pointer to the first byte of variable length data.
static void removeCallback(DtExerciseConn *conn, DtGriddedDataPduCb cb, void *usr)
virtual DtU16 fieldNumber() const
virtual DtU16 coordSystem() const
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
virtual bool setGridDataRecord(int index, const DtGridDataRecordType0 &init)
Set/Get the grid data record type and values of record index to values specified by the initializer i...
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: griddedDataPdu.h:208
DtGridDataRecType
Gridded data PDU enums.
Definition: disEnums.h:2064
Instances of DtGridDataRecordType0 are used to contain the information in the grid data records (of r...
Definition: gridDataRecordType0.h:25
Instances of DtGridAxisRecordVariable are used to contain the information in the grid axis variable s...
Definition: gridAxisRecordVariable.h:25
virtual DtGridAxisType gridAxisRecordType(int index) const
Get the grid axes record type for a particular record.
Instances of DtGriddedDataPdu are used to communicate environmental data defined on a grid...
Definition: griddedDataPdu.h:41
This file declares classes related to the Gridded Data Object.
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
void(* DtGriddedDataPduCb)(DtGriddedDataPdu *pdu, void *usr)
DtGriddedDataPdu callback function signature.
Definition: griddedDataPdu.h:35
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
virtual void setEnvironmentType(const DtEnvironmentTypeRecord &type)
Set/Get environment type.
virtual DtPduKind internalGetPduKind() const
Returns the internal PDU kind.
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtGridAxisType
Definition: disEnums.h:2071
virtual int gridAxisRecordLength(DtNetGridAxisRecordFixed *rec) const
Returns the length of a given grid axis record.
DtGridAxisRecordFixed is the fixed grid axis record used by the gridded data PDU class (DtGridDataPdu...
Definition: gridAxisRecordFixed.h:23
virtual int gridAxisRecordOffset(int recordIndex) const
Returns a buffer offset to the given grid axis record.
virtual void setPduNumber(DtU16 num)
Set/Get the PDU index number.
virtual DtU16 pduTotal() const
DtGriddedDataPdu & operator=(const DtGriddedDataPdu &orig)
Assignment operator.
The following are the network structures for the gridded data PDU class and other HLA/RPR structures...
Definition: gridDataP.h:24
virtual bool setNumGridAxes(DtU8 axes)
Set/Get number of grid axes.
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
virtual bool resizeGridDataRecord(DtNetGridDataRecord *rec, int newSize)
Resizes a grid data record.
virtual void setEnvSimAppID(const DtEntityIdentifier &app)
Set/Get environmental simulation application identifier.
virtual void setFieldNumber(DtU16 field)
Set/Get field number.
virtual bool getGridAxisRecord(int index, DtGridAxisRecordFixed &record) const
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
virtual const DtTaitBryan & orientation() const
class DtStateMsg:
Definition: stateMsgHLA.h:32
Instances of DtGridDataRecordType1 are used to contain the information in the grid data records (of r...
Definition: gridDataRecordType1.h:24
virtual DtU8 constantGrid() const
virtual DtU32 sampleTime(int index) const
This file contains typedefs for machine dependant types.
virtual void setCoordSystem(DtU16 sys)
Set/Get coordinate system.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)