VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
minefieldQueryPdu.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 <vlutil/vlMachineTypes.h>
14 #include "hostStructs.h"
15 #include "interactionDIS.h"
16 #include "exerciseConn.h"
17 
18 #include "packets/mineQueryP.h"
19 
21 
22 
24 
26 typedef void (*DtMinefieldQueryPduCb)(DtMinefieldQueryPdu* pdu, void* usr);
27 
28 
33 {
34 
35 public:
36 
40  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
42 
44  virtual ~DtMinefieldQueryPdu();
45 
48 
50  virtual void setMinefieldID(const DtEntityIdentifier& id);
51  virtual const DtEntityIdentifier& minefieldID() const;
52 
54  virtual void setRequestingEntityID(const DtEntityIdentifier& id);
55  virtual const DtEntityIdentifier& requestingEntityID() const;
56 
58  virtual void setRequestID(DtU8 id);
59  virtual DtU8 requestID() const;
60 
62  virtual bool setNumPerimeterPoints(DtU8 num);
63  virtual DtU8 numPerimeterPoints() const;
64 
66  virtual bool setNumSensorTypes(DtU8 num);
67  virtual DtU8 numSensorTypes() const;
68 
70  virtual void setDataFilter(DtU32 value);
71  virtual DtU32 dataFilter() const;
72 
76  virtual void setDataFilterField(
77  DtMinefieldDataFilterField field, bool value);
78  virtual bool getDataFilterField(DtMinefieldDataFilterField field);
79 
81  virtual void setRequestedMineType(const DtEntityType& type);
82  virtual const DtEntityType& requestedMineType() const;
83 
86  virtual bool setPerimeterPoint(int index,
87  const DtMinefieldPerimeterRecord& init);
88  virtual bool getPerimeterPoint(int index,
89  DtMinefieldPerimeterRecord& record) const;
90 
93  virtual bool getSensorTypeCategory(int index,
94  DtSensorTypeCategory& value);
95 
99  virtual bool setSensorTypeSubcategory(int index,
101  virtual bool setSensorTypeSubcategory(int index,
103  virtual bool setSensorTypeSubcategory(int index,
105  virtual bool setSensorTypeSubcategory(int index,
107  virtual bool setSensorTypeSubcategory(int index,
109  virtual bool setSensorTypeSubcategory(int index,
111  virtual bool setSensorTypeSubcategory(int index,
113  virtual bool setSensorTypeSubcategory(int index,
115 
120  virtual bool getSensorTypeSubcategory(int index,
122  virtual bool getSensorTypeSubcategory(int index,
124  virtual bool getSensorTypeSubcategory(int index,
126  virtual bool getSensorTypeSubcategory(int index,
128  virtual bool getSensorTypeSubcategory(int index,
130  virtual bool getSensorTypeSubcategory(int index,
132  virtual bool getSensorTypeSubcategory(int index,
134  virtual bool getSensorTypeSubcategory(int index,
136 
138  virtual void printData() const;
139 
141  virtual void printDataToStream(std::ostream &stream) const;
142 
143 public:
144 
147  static DtPdu* create(const DtNetPacket* initial,
148  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
149 
152  static void addCallback(DtExerciseConn* conn,
153  DtMinefieldQueryPduCb cb, void* usr);
154  static void removeCallback(DtExerciseConn* conn,
155  DtMinefieldQueryPduCb cb, void* usr);
156 
157 protected:
158 
160  virtual DtPduKind internalGetPduKind() const;
161 
163  virtual DtNetMinefieldQueryPdu* netPduStruct() const;
164 
167  DtMinefieldQueryPdu* self() const;
168 
170  virtual char* var() const;
171 
173  virtual int perimeterPointRecordOffset(int recordIndex) const;
174 
176  virtual int sensorTypeRecordOffset(int recordIndex) const;
177 
179  virtual void setSensorType(int index, DtU16 value);
180  virtual DtU16 sensorType(int index) const;
181 
182 protected:
183 
185  static const int theStaticSize;
186 
187 protected:
188 
193 
194 };
195 
196 #endif
DtInteraction is an base class for representing DIS PDUs which don&#39;t have state.
Definition: interactionDIS.h:24
DtMagneticSensorTypeSubcategory
Definition: disEnums.h:2571
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:61
The following is the network structure for the minefield query PDU.
Definition: mineQueryP.h:17
DtInteraction & operator=(const DtInteraction &orig)
assignment operator
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtEntityIdentifier myEntityID
Temporary objects for reference returns.
Definition: minefieldQueryPdu.h:190
void(* DtMinefieldQueryPduCb)(DtMinefieldQueryPdu *pdu, void *usr)
DtMinefieldQueryPdu callback function signature.
Definition: minefieldQueryPdu.h:26
class DtMinefieldPerimeterRecord:
Definition: minefieldPerimeterRecord.h:28
Definition: pduHeader.h:14
DtMultispectralSensorTypeSubcategory
Definition: disEnums.h:2597
class DtPduFactory:
Definition: pduFactory.h:38
DtRADAR_SensorTypeSubcategory
Definition: disEnums.h:2561
virtual void printDataToStream(std::ostream &stream) const
DtLaserSensorTypeSubcategory
Definition: disEnums.h:2579
virtual DtPduKind internalGetPduKind() const =0
Returns the PDU kind associated with the derived PDU class.
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
Instances of DtMinefieldQueryPdu are used to communicate minefield state information.
Definition: minefieldQueryPdu.h:32
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: minefieldQueryPdu.h:185
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
virtual void printData() const
Print the PDU&#39;s data (not including header).
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtMinefieldDataFilterField
Minefield PDU enums.
Definition: disEnums.h:2486
DtSONARSensorTypeSubcategory
Definition: disEnums.h:2585
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtFLIR_SensorTypeSubcategory
Definition: disEnums.h:2547
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
DtPhysicalSensorTypeSubcategory
Definition: disEnums.h:2590
DtOpticalSensorTypeSubcategory
Definition: disEnums.h:2531
DtEntityType myEntityType
Definition: minefieldQueryPdu.h:191
This file contains typedefs for machine dependant types.
DtEntityType is used to represent the type an entity object.
Definition: entityType.h:26
DtSensorTypeCategory
Definition: disEnums.h:2518
DtMinefieldPerimeterRecord myPerimeterRecord
Definition: minefieldQueryPdu.h:192

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)