19 #define DtPDU_STATUS_BIT_SHIFT(attr, val) \
20 const unsigned int DtPduStatus##attr##BitShift = val;
32 #define DtPDU_STATUS_UNSET_INDICATOR_ONE_BIT(attr) \
33 val &= ~(0x1 << DtPduStatus##attr##BitShift)
35 #define DtPDU_STATUS_SET_INDICATOR_ONE_BIT(attr, indicator) \
36 DtPDU_STATUS_UNSET_INDICATOR_ONE_BIT(attr); \
37 val |= DtPduStatus##attr##indicator << DtPduStatus##attr##BitShift
39 #define DtPDU_STATUS_GET_BOOL_ONE_BIT(attr) \
40 (((val >> DtPduStatus##attr##BitShift) & 0x1) == 0x1)
42 #define DtPDU_STATUS_GET_ENUM_ONE_BIT(attr) \
43 DtPduStatus##attr((val >> DtPduStatus##attr##BitShift) & 0x1)
45 #define DtPDU_STATUS_SET_INDICATOR_TWO_BIT(attr, indicator) \
46 DtPDU_STATUS_UNSET_INDICATOR_TWO_BIT(attr); \
47 val |= indicator << DtPduStatus##attr##BitShift
49 #define DtPDU_STATUS_UNSET_INDICATOR_TWO_BIT(attr) \
50 val &= ~(0x3 << DtPduStatus##attr##BitShift)
52 #define DtPDU_STATUS_GET_ENUM_TWO_BIT(attr) \
53 DtPduStatus##attr((val >> DtPduStatus##attr##BitShift) & 0x3)
56 #define DtSTATUS_NOT_OK 1
86 virtual void* packet()
const;
90 virtual int status()
const;
93 virtual void setVersion(
int vers);
94 virtual int protocolVersion()
const;
97 virtual void setExerciseId(
int id);
98 virtual int exerciseId()
const;
109 virtual void setTimeStamp(
DtTime time,
114 virtual DtTime timeStamp()
const;
126 virtual void setPduLength(
unsigned int length);
129 virtual unsigned int pduLength()
const;
132 virtual void setPduStatus(
int);
135 virtual int pduStatus()
const;
140 virtual void setTransferredEntityIndicator(
bool difference);
144 virtual bool transferredEntityIndicator()
const;
154 virtual void setCoupledExtensionIndicator(
bool coupled);
158 virtual bool coupledExtensionIndicator()
const;
181 virtual void setIffSimulationMode(
bool interactive);
183 virtual bool iffSimulationMode()
const;
186 virtual void setActiveInterrogationIndicator(
bool active);
188 virtual bool activeInterrogationIndicator()
const;
194 virtual DtTime guessTimeValid(
DtTime referenceTime)
const;
200 virtual void print()
const;
204 virtual void printToStream(std::ostream& stream)
const;
207 virtual void printHeader()
const;
210 virtual void printHeaderToStream(std::ostream& stream)
const;
218 virtual void printData()
const;
219 virtual void printDataToStream(std::ostream& stream)
const;
220 virtual void printDataToString(
DtString& str)
const;
223 virtual void printPduInHexToStream(std::ostream& stream,
unsigned int numberOfColumns)
const;
226 virtual void encode();
233 virtual bool isTransientPdu()
const;
242 virtual void setStatus(
int okStatus);
246 virtual void initPdu(
int size,
DtBufferPtr buffer);
252 virtual DtPduKind internalGetPduKind()
const = 0;
261 virtual void clearData();
264 virtual void initHeader(
DtPduKind kind,
int size);
268 virtual bool isTEIApplicable()
const;
269 virtual bool isLVCApplicable()
const;
270 virtual bool isCEIApplicable()
const;
271 virtual bool isFTIApplicable()
const;
272 virtual bool isDTIApplicable()
const;
273 virtual bool isRAIApplicable()
const;
274 virtual bool isIAIApplicable()
const;
275 virtual bool isISMApplicable()
const;
276 virtual bool isAIIApplicable()
const;
279 virtual bool shouldAttributePduBeCoupled()
const;
289 #define netPdu packet()
The DtPduDecoder class provides a base class for all DIS decoders.
Definition: pduDecoder.h:18
DtPduStatusLVCIndicator
Definition: disEnums.h:3007
virtual void setStatus(int okStatus)
Sets the PDU's status to okStatus.
Definition: pdu.h:369
int DtProtocolVersionToRecvMin
virtual void setVersion(int vers)
Set/Get protocol version from PDU header.
Definition: pdu.h:374
virtual DtTime timeStamp() const
Return the time (in seconds past an hour) encoded in the PDU header's time stamp. ...
Definition: pdu.h:320
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
virtual void sizeChanged(int size)=0
Called by changeSize.
void setTime(DtTime time)
Get the time contained in the timestamp to time % an hour.
DtTimeStampType type() const
virtual const char * netRep() const
Get network representation.
Definition: vlBaseMsg.h:108
int myOKStatus
Definition: pdu.h:285
virtual int protocolVersion() const
Definition: pdu.h:301
virtual DtProtocolFamily protocolFamily() const
Returns protocol family from PDU header.
Definition: pdu.h:315
Definition: vlTimeStampType.h:18
The DtPduEncoder class provides a base class for all DIS encoders.
Definition: pduEncoder.h:18
virtual int status() const
Get PDU status.
Definition: pdu.h:364
int DtProtocolVersionToRecvMax
virtual void setPduStatus(int)
Set the PDU Status in the PDU header.
Definition: pdu.h:359
DtPduEncoder * myEncoder
Definition: pdu.h:283
DtTime time() const
Get the time contained in the timestamp (in seconds).
class DtPduFactory:
Definition: pduFactory.h:38
DtPduStatusRadioAttachedIndicator
Definition: disEnums.h:3034
This file provides a declaration of the class DtBaseMsg.
DtPduDecoder * myDecoder
Definition: pdu.h:284
virtual void setExerciseId(int id)
Set/Get exerciseID in PDU header.
Definition: pdu.h:330
virtual void * packet() const
Older function that returns a pointer to the network representation.
Definition: pdu.h:296
virtual void setReceivedTime(DtTime t)
absRealTime when PDU was received into buffer.
Definition: pdu.h:120
A bass class for PDUs and other network messages.
Definition: vlBaseMsg.h:27
DtPdu is the base class for all PDU's in VR-Link.
Definition: pdu.h:69
virtual int exerciseId() const
Definition: pdu.h:306
virtual unsigned int pduLength() const
Return the length of the PDU, as indicated in the PDU header.
Definition: pdu.h:348
virtual void setPduLength(unsigned int length)
Set the PDU header's length.
Definition: pdu.h:343
void setType(DtTimeStampType type)
Set/Get timestamp type.
virtual int pduStatus() const
Returns the PDU Status from the PDU header.
Definition: pdu.h:354
DtProtocolFamily
([UID 5]) - Protocol Family
Definition: disEnums.h:353
virtual int length() const
Get size of message.
DtPduStatusIntercomAttachedIndicator
Definition: disEnums.h:3041
virtual DtTimeStampType timeStampType() const
Return the type of the time stamp, as indicated in PDU header.
Definition: pdu.h:325
DtPduStatusFireTypeIndicator
Definition: disEnums.h:3021
DtBaseMsg & operator=(const DtBaseMsg &msg)
Assignment.
DtTime myReceivedTime
Definition: pdu.h:286
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
Contains the standard DIS enumerations.
virtual DtNetPduHeader * netHeader() const
Returns a pointer to the PDU's header.
Definition: pdu.h:291
DtTimeStampType
Definition: vlTimeStampType.h:16
int DtProtocolVersionToSend
unsigned long DtU32
A 32 bit unsigned integer value.
Definition: vlMachineTypes.h:153
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:29
virtual void setTimeStamp(DtTime time, DtTimeStampType type=DtTimeStampRelative)
Set the PDU header's time stamp to reflect time and type.
Definition: pdu.h:335
#define DtPDU_STATUS_BIT_SHIFT(attr, val)
Definition: pdu.h:19
DtPduStatusDetonationTypeIndicator
Definition: disEnums.h:3027
virtual DtTime receivedTime() const
Definition: pdu.h:121
virtual DtPduKind kind() const
Returns PDU kind from PDU header.
Definition: pdu.h:311