VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
DtSignalPdu Class Reference

Instances of DtSignalPdu are used to send simulated signal data. More...

+ Inheritance diagram for DtSignalPdu:
+ Collaboration diagram for DtSignalPdu:

Public Types

enum  { PduStaticSize =32 }
 

Public Member Functions

 DtSignalPdu (DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Default constructor. More...
 
 DtSignalPdu (const DtNetSignalPdu *initial, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER, DtPduFactory *pduFactory=0)
 Constructor that creates a DtSignalPdu based on a network layout PDU. More...
 
virtual void printData () const
 Prints the signal's data to DtInfo. More...
 
virtual void printDataToStream (std::ostream &stream) const
 Prints the signal's data to the specified stream. More...
 
const DtEntityIdentifierentityId () const
 Set/get signal entity identifier. More...
 
void setEntityId (const DtEntityIdentifier &id)
 Set/get signal entity identifier. More...
 
unsigned int radioId () const
 Set/get signal radio identifier. More...
 
void setRadioId (unsigned int id)
 Set/get signal radio identifier. More...
 
DtEncodingClass encodingClass () const
 Set/get signal encoding class. More...
 
void setEncodingClass (DtEncodingClass encodingClass)
 Set/get signal encoding class. More...
 
unsigned int encodingType () const
 Set/get signal encoding type. More...
 
void setEncodingType (unsigned int codeType)
 Set/get signal encoding type. More...
 
long sampleRate () const
 Set/get signal sample rate. More...
 
void setSampleRate (long rate)
 Set/get signal sample rate. More...
 
int numDataBits () const
 Set/get signal number of bits in message. More...
 
void setNumDataBits (int lengthInBits)
 Set/get signal number of bits in message. More...
 
int numDataBytes () const
 Set/get signal number of bytes in message. More...
 
void setNumDataBytes (int lengthInBytes)
 Set/get signal number of bytes in message. More...
 
int numSamples () const
 Set/get signal number of samples in message. More...
 
void setNumSamples (int numSamples)
 Set/get signal number of bytes in message. More...
 
unsigned char dataByte (int byteNum) const
 Set/get signal a data byte. More...
 
void setDataByte (int byteNum, unsigned char data)
 Set/get signal a data byte. More...
 
void getData (unsigned char *buff) const
 Set/get multiple data bytes. More...
 
void * data () const
 Set/get multiple data bytes. More...
 
void setData (unsigned char *data, int numBytes)
 Set/get multiple data bytes. More...
 
int tdlType () const
 Set/get signal TDL type. More...
 
void setTdlType (int type)
 Set/get signal TDL type. More...
 
- Public Member Functions inherited from DtInteraction
 DtInteraction ()
 default constructor More...
 
virtual ~DtInteraction ()
 destructor More...
 
 DtInteraction (const DtInteraction &orig)
 copy constructor More...
 
DtInteractionoperator= (const DtInteraction &orig)
 assignment operator More...
 
- Public Member Functions inherited from DtPduWithAttributeRecordSets
 DtPduWithAttributeRecordSets ()
 Constructor. More...
 
 DtPduWithAttributeRecordSets (const DtPduWithAttributeRecordSets &orig)
 Constructor. More...
 
DtPduWithAttributeRecordSetsoperator= (const DtPduWithAttributeRecordSets &other)
 Assignment operator. More...
 
virtual ~DtPduWithAttributeRecordSets ()
 Destructor. More...
 
virtual void printToStream (std::ostream &stream) const
 Print the contents of the PDU. This will call DtPdu's printToStream and also call printRecordSets() More...
 
virtual void printRecordSets (bool printEntityObjectId=false) const
 Prints the Record Sets to DtInfo. More...
 
virtual void printRecordSetsToStream (std::ostream &stream, bool printEntityObjectId=false) const
 Prints the Record Sets to the specified stream. More...
 
virtual void addRecord (std::unique_ptr< DtStandardVariableRecord > record, const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Adds a Record. More...
 
virtual void removeRecord (unsigned int index, const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Removes a Record. More...
 
virtual void clearRecordSet (const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
 Removes all Records and deletes the recordSet for the given Entity/Object Identifier. More...
 
virtual void clearAllRecordSets ()
 Removes all RecordSets. More...
 
virtual std::vector
< DtEntityIdentifier
recordSetIdentifiers () const
 Returns a vector of Entity/Object Identifiers. These are the Identifiers for the Record Sets. More...
 
virtual void getRecordSetIdentifiers (std::vector< DtEntityIdentifier > &entityIdVector) const
 Returns by reference the vector of Entity/Object Identifiers. More...
 
virtual const
DtStandardVariableRecordPtrVector
records (const DtEntityIdentifier &id=DtEntityIdentifier::nullId()) const
 This will return the Records for a given Entity/Object Identifier. More...
 
virtual const
DtAttributeRecordSet
recordSet (const DtEntityIdentifier &id) const
 This will return the Record Set for a given Entity/Object Identifier. More...
 
virtual const
DtStandardVariableRecordPtrVector 
allRecords () const
 This will return the Records of all Record Sets. More...
 
virtual unsigned int numberOfRecords () const
 Returns the number of records for all Record Sets. More...
 
virtual unsigned int numberOfRecords (const DtEntityIdentifier &id) const
 Returns the number of records in the Record Set for the given Entity/Object Identifier. More...
 
virtual bool containsStandardRecordSets () const
 Returns if this PDU contains Standard Record Sets. (This is only applicable to DIS 7 and higher). More...
 
virtual const DtSimulationAddressattributePduSimulationAddress () const
 Returns the Simulation address if an attribute PDU was coupled. Used internally in VR-Link in Reflected Lists. More...
 
virtual void setAttributePduSimulationAddress (const DtSimulationAddress &addr)
 Sets the Simulation address if an attribute PDU was coupled. Used internally in VR-Link in Reflected Lists. More...
 
virtual void encode ()
 Encode method. More...
 
virtual void decode (DtPduFactory *pduFactory=0)
 Decode method. More...
 
virtual unsigned int attributeRecordSetsNetSize () const
 Network Size of the all Attribute Record Sets. More...
 
virtual unsigned int recordSetsNetSize () const
 Network Size of the all Record Sets. More...
 
virtual void setStandardVariableRecordFactory (DtStandardVariableRecordFactory *factory)
 Sets/gets the Standard Variable Record Factory used for decoding. More...
 
virtual
DtStandardVariableRecordFactory
standardVariableRecordFactory () const
 
virtual unsigned int numberOfRecordSets () const
 Gets the number of Attribute Record Sets. More...
 
virtual const
DtAttributeRecordSetMap
attributeRecordSetMap () const
 Get the AttributeRecordSet Map. More...
 
virtual int computeMasterAttributeRecordType () const
 Get the Master Attribute Record Type (if applicable, this will return MULTIPLES_PRESENT if not) More...
 
virtual void setAttributeStrategy (DtAttributePduStrategy strat)
 
virtual DtAttributePduStrategy attributePduStrategy () const
 
virtual bool shouldAttributePduBeCoupled () const
 
- Public Member Functions inherited from DtPdu
virtual ~DtPdu ()
 Destructor. More...
 
 DtPdu (const DtPdu &pdu, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Copy constructor. More...
 
DtPduoperator= (const DtPdu &pdu)
 Assignment operator. More...
 
virtual void * packet () const
 Older function that returns a pointer to the network representation. More...
 
virtual int status () const
 Get PDU status. More...
 
virtual void setVersion (int vers)
 Set/Get protocol version from PDU header. More...
 
virtual int protocolVersion () const
 
virtual void setExerciseId (int id)
 Set/Get exerciseID in PDU header. More...
 
virtual int exerciseId () const
 
virtual DtPduKind kind () const
 Returns PDU kind from PDU header. More...
 
virtual DtProtocolFamily protocolFamily () const
 Returns protocol family from PDU header. More...
 
virtual void setTimeStamp (DtTime time, DtTimeStampType type=DtTimeStampRelative)
 Set the PDU header's time stamp to reflect time and type. More...
 
virtual DtTime timeStamp () const
 Return the time (in seconds past an hour) encoded in the PDU header's time stamp. More...
 
virtual DtTimeStampType timeStampType () const
 Return the type of the time stamp, as indicated in PDU header. More...
 
virtual void setReceivedTime (DtTime t)
 absRealTime when PDU was received into buffer. More...
 
virtual DtTime receivedTime () const
 
virtual void setPduLength (unsigned int length)
 Set the PDU header's length. More...
 
virtual unsigned int pduLength () const
 Return the length of the PDU, as indicated in the PDU header. More...
 
virtual void setPduStatus (int)
 Set the PDU Status in the PDU header. More...
 
virtual int pduStatus () const
 Returns the PDU Status from the PDU header. More...
 
virtual void setTransferredEntityIndicator (bool difference)
 Set the Transferred Entity Indicator in the PDU header False is No Difference True is Difference. More...
 
virtual bool transferredEntityIndicator () const
 Returns the Transferred Entity Indicator from the PDU header False is No Difference True is Difference. More...
 
virtual void setLvcIndicator (DtPduStatusLVCIndicator lvcIndicator)
 Set the LVC Indicator in the PDU header. More...
 
virtual DtPduStatusLVCIndicator lvcIndicator () const
 Returns the LVC Indicator from the PDU header. More...
 
virtual void setCoupledExtensionIndicator (bool coupled)
 Set the Coupled Extension Indicator in the PDU Header False is Not Coupled True is Coupled. More...
 
virtual bool coupledExtensionIndicator () const
 Returns the Coupled Extension Indicator from the PDU Header False is Not Coupled True is Coupled. More...
 
virtual void setFireTypeIndicator (DtPduStatusFireTypeIndicator fireTypeIndicator)
 Set the Fire Type Indicator in the PDU header. More...
 
virtual
DtPduStatusFireTypeIndicator 
fireTypeIndicator () const
 Returns the Fire Type Indicator from the PDU header. More...
 
virtual void setDetonationTypeIndicator (DtPduStatusDetonationTypeIndicator detonationTypeIndicator)
 Set the Detonation Type Indicator in the PDU header. More...
 
virtual
DtPduStatusDetonationTypeIndicator 
detonationTypeIndicator () const
 Returns the Detonation Type Indicator from the PDU header. More...
 
virtual void setRadioAttachedIndicator (DtPduStatusRadioAttachedIndicator radioAttachedIndicator)
 Set the Radio Attached Indicator in the PDU header. More...
 
virtual
DtPduStatusRadioAttachedIndicator 
radioAttachedIndicator () const
 Returns the Radio Attached Indicator from the PDU header. More...
 
virtual void setIntercomAttachedIndicator (DtPduStatusIntercomAttachedIndicator intercomAttachedIndicator)
 Set the Intercom Attached Indicator in the PDU header. More...
 
virtual
DtPduStatusIntercomAttachedIndicator 
intercomAttachedIndicator () const
 Returns the Intercom Attached Indicator from the PDU header. More...
 
virtual void setIffSimulationMode (bool interactive)
 Set the IFF Simulation Mode in the PDU header. More...
 
virtual bool iffSimulationMode () const
 Returns the IFF Simulation Mode from the PDU header. More...
 
virtual void setActiveInterrogationIndicator (bool active)
 Set the Active Interrogation Indicator in the PDU header. More...
 
virtual bool activeInterrogationIndicator () const
 Returns the Active Interrogation Indicator from the PDU header. More...
 
virtual DtTime guessTimeValid (DtTime referenceTime) const
 Since timestamp only represents number of seconds past the hour, guessTimeValid chooses the hour that would make the timestamp closest to reference time, and returns a time that is timestamp seconds past that hour. More...
 
virtual DtNetPduHeadernetHeader () const
 Returns a pointer to the PDU's header. More...
 
virtual void print () const
 Print the contents of the PDU by calling printToStream(DtInfo). More...
 
virtual void printHeader () const
 Print the PDU's header. This calls printHeaderToStream(DtInfo). More...
 
virtual void printHeaderToStream (std::ostream &stream) const
 Print the PDU's header to a stream. More...
 
virtual void printDataToString (DtString &str) const
 
virtual void printPduInHexToStream (std::ostream &stream, unsigned int numberOfColumns) const
 Prints the entire PDU's internal buffer to the stream in Hex. More...
 
virtual bool isTransientPdu () const
 This method returns true if transient, false if state. More...
 
- Public Member Functions inherited from DtBaseMsg
virtual ~DtBaseMsg ()
 Destructor. More...
 
 DtBaseMsg (const DtBaseMsg &msg, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER)
 Copy constructor. More...
 
DtBaseMsgoperator= (const DtBaseMsg &msg)
 Assignment. More...
 
virtual const char * netRep () const
 Get network representation. More...
 
virtual int length () const
 Get size of message. More...
 
 DtBaseMsg ()
 Constructor Object is not fully constructed until initMsg is called. More...
 
void initMsg (int size, DtBufferPtr bufferPtr)
 
void initMsg (const void *initial, int size, DtBufferPtr bufferPtr)
 
virtual void changeSize (int size)
 Changes the size of the message. More...
 
virtual void changeBufferSize (int size)
 Changes the size of the message buffer, but not the message itself. More...
 
virtual void insertBytes (int offset, int numBytes)
 Inserts numBytes zeroed-out bytes at the indicated offset into the net rep. More...
 
virtual void insertBytes (void *address, int numBytes)
 Inserts numBytes zeroed-out bytes at the indicated address. More...
 
virtual void deleteBytes (int offset, int numBytes)
 Deletes numBytes bytes at the indicated offset in the net rep. More...
 
virtual void deleteBytes (void *address, int numBytes)
 Deletes numBytes bytes starting at the indicated address. More...
 
virtual void clearAll ()
 Zeros out all bytes in the network representation. More...
 
virtual void * newInternalBuffer (int size)
 Sets myInternalBuff to point to a malloc'ed buffer of size bytes. More...
 

Static Public Member Functions

static DtPducreate (const DtNetPacket *initial, DtBufferPtr buffer=DtUSE_INTERNAL_BUFFER, DtPduFactory *pduFactory=0)
 Create a DtIntercomSignalPdu. More...
 
static void addCallback (DtExerciseConn *conn, DtSignalInteractionCb cb, void *usr)
 Add (register) function to be called when pdu is received. More...
 
static void removeCallback (DtExerciseConn *conn, DtSignalInteractionCb cb, void *usr)
 Remove function to be called when a signal PDU is received. More...
 

Protected Member Functions

DtPduKind internalGetPduKind () const
 Returns the PDU kind associated with the derived PDU class. More...
 
- Protected Member Functions inherited from DtPduWithAttributeRecordSets
virtual void deepAttributeRecordSetMapCopy (const DtAttributeRecordSetMap &orig)
 Performs a deep copy. More...
 
virtual void printRecordSetToStream (const DtEntityIdentifier &id, std::ostream &stream) const
 
- Protected Member Functions inherited from DtPdu
 DtPdu ()
 Constructor. More...
 
virtual void setStatus (int okStatus)
 Sets the PDU's status to okStatus. More...
 
virtual void initPdu (int size, DtBufferPtr buffer)
 Must be called after default ctor before PDU is completely constructed. More...
 
virtual void initPdu (const void *initial, DtBufferPtr buffer, DtPduFactory *pduFactory)
 Called by from-net-rep ctor. Initializes DtBaseMsg. More...
 
virtual DtProtocolFamily kindToFamily (DtPduKind kind) const
 Maps PDU kind to ProtocolFamily. More...
 
virtual void sizeChanged (int size)
 Called by changeSize. Sets the size in the header to size. More...
 
virtual void clearData ()
 zeros out all bytes after the PDU header. More...
 
virtual void initHeader (DtPduKind kind, int size)
 Initializes PDU header. Called by initPdu. More...
 
virtual bool isTEIApplicable () const
 Returns whether a PDU Status is applicable to this PDU (based on PDU Type) These methods are only relevant in DIS 7 and greater. More...
 
virtual bool isLVCApplicable () const
 
virtual bool isCEIApplicable () const
 
virtual bool isFTIApplicable () const
 
virtual bool isDTIApplicable () const
 
virtual bool isRAIApplicable () const
 
virtual bool isIAIApplicable () const
 
virtual bool isISMApplicable () const
 
virtual bool isAIIApplicable () const
 

Protected Attributes

DtEntityIdentifier theId
 
- Protected Attributes inherited from DtPduWithAttributeRecordSets
DtAttributeRecordSetMap myAttributeRecordSetMap
 The Map which holds the Record Sets (Set of Record Sets) where the Entity Identifier is the key. More...
 
bool isRecordSetOwned
 
bool isPduExtending
 
DtStandardVariableRecordFactorymySVRFactory
 
DtPduDecodermyAttributeDecoder
 
DtPduEncodermyAttributeEncoder
 
DtSimulationAddress myAttributePduOriginatingSimulationAddress
 
DtAttributePduStrategy myAttributePduStrategy
 
- Protected Attributes inherited from DtPdu
DtPduEncodermyEncoder
 
DtPduDecodermyDecoder
 
int myOKStatus
 
DtTime myReceivedTime
 
- Protected Attributes inherited from DtBaseMsg
void * myNetMsg
 
void * myInternalBuff
 
int myIntBuffSize
 
int myMsgSize
 
int myNetworkMsgSize
 

Additional Inherited Members

- Static Protected Attributes inherited from DtPduWithAttributeRecordSets
static const DtAttributeRecordSet theEmptyAttributeRecordSet
 

Detailed Description

Instances of DtSignalPdu are used to send simulated signal data.

It should be noted that some methods exist in HLA's DtSignalInteraction that do not exist here, as the data is simply packed in the data portion of the PDU.

Member Enumeration Documentation

anonymous enum
Enumerator
PduStaticSize 

Constructor & Destructor Documentation

DtSignalPdu::DtSignalPdu ( DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER)

Default constructor.

DtSignalPdu::DtSignalPdu ( const DtNetSignalPdu initial,
DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER,
DtPduFactory pduFactory = 0 
)

Constructor that creates a DtSignalPdu based on a network layout PDU.

Member Function Documentation

static void DtSignalPdu::addCallback ( DtExerciseConn conn,
DtSignalInteractionCb  cb,
void *  usr 
)
static

Add (register) function to be called when pdu is received.

static DtPdu* DtSignalPdu::create ( const DtNetPacket initial,
DtBufferPtr  buffer = DtUSE_INTERNAL_BUFFER,
DtPduFactory pduFactory = 0 
)
static

Create a DtIntercomSignalPdu.

Caller is responsible for deletion.

void* DtSignalPdu::data ( ) const

Set/get multiple data bytes.

Provide a pointer and data is copied to and from that memory. Check numDataBytes() to make sure that you provide enough room in the buffer. The data portion of the PDU may contain different things for different types of radio signals. HLA methods exist for some of the following items that should be included in the data portion of the PDU for DIS:

  1. Protocol ID shall be contained in the first 32 bits of the data for application specific radio signals.
  2. Database Index shall be contained in bytes 0-3 of the data for database index radio signals.
  3. Start Offset shall be contained in bytes 4-7 of the data for database index radio signals.
  4. Duration shall be contained in bytes 8-11 of the data for databse index radio signals.
unsigned char DtSignalPdu::dataByte ( int  byteNum) const

Set/get signal a data byte.

DtEncodingClass DtSignalPdu::encodingClass ( ) const

Set/get signal encoding class.

unsigned int DtSignalPdu::encodingType ( ) const

Set/get signal encoding type.

This may also contain the number of TDL messages.

const DtEntityIdentifier& DtSignalPdu::entityId ( ) const

Set/get signal entity identifier.

void DtSignalPdu::getData ( unsigned char *  buff) const

Set/get multiple data bytes.

Provide a pointer and data is copied to and from that memory. Check numDataBytes() to make sure that you provide enough room in the buffer. The data portion of the PDU may contain different things for different types of radio signals. HLA methods exist for some of the following items that should be included in the data portion of the PDU for DIS:

  1. Protocol ID shall be contained in the first 32 bits of the data for application specific radio signals.
  2. Database Index shall be contained in bytes 0-3 of the data for database index radio signals.
  3. Start Offset shall be contained in bytes 4-7 of the data for database index radio signals.
  4. Duration shall be contained in bytes 8-11 of the data for databse index radio signals.
DtPduKind DtSignalPdu::internalGetPduKind ( ) const
inlineprotectedvirtual

Returns the PDU kind associated with the derived PDU class.

Implements DtPdu.

References DtSignalPduKind.

int DtSignalPdu::numDataBits ( ) const

Set/get signal number of bits in message.

int DtSignalPdu::numDataBytes ( ) const

Set/get signal number of bytes in message.

int DtSignalPdu::numSamples ( ) const

Set/get signal number of samples in message.

virtual void DtSignalPdu::printData ( ) const
virtual

Prints the signal's data to DtInfo.

Reimplemented from DtPdu.

virtual void DtSignalPdu::printDataToStream ( std::ostream &  stream) const
virtual

Prints the signal's data to the specified stream.

Reimplemented from DtPdu.

unsigned int DtSignalPdu::radioId ( ) const

Set/get signal radio identifier.

It should be noted that the Radio ID differs from HLA, in that here a radio is identified through both the entity ID and radio ID, which is an integer. In HLA, the radio ID is simply a string that describes the object name of the radio object.

static void DtSignalPdu::removeCallback ( DtExerciseConn conn,
DtSignalInteractionCb  cb,
void *  usr 
)
static

Remove function to be called when a signal PDU is received.

long DtSignalPdu::sampleRate ( ) const

Set/get signal sample rate.

void DtSignalPdu::setData ( unsigned char *  data,
int  numBytes 
)

Set/get multiple data bytes.

Provide a pointer and data is copied to and from that memory. Check numDataBytes() to make sure that you provide enough room in the buffer. The data portion of the PDU may contain different things for different types of radio signals. HLA methods exist for some of the following items that should be included in the data portion of the PDU for DIS:

  1. Protocol ID shall be contained in the first 32 bits of the data for application specific radio signals.
  2. Database Index shall be contained in bytes 0-3 of the data for database index radio signals.
  3. Start Offset shall be contained in bytes 4-7 of the data for database index radio signals.
  4. Duration shall be contained in bytes 8-11 of the data for databse index radio signals.
void DtSignalPdu::setDataByte ( int  byteNum,
unsigned char  data 
)

Set/get signal a data byte.

void DtSignalPdu::setEncodingClass ( DtEncodingClass  encodingClass)

Set/get signal encoding class.

void DtSignalPdu::setEncodingType ( unsigned int  codeType)

Set/get signal encoding type.

This may also contain the number of TDL messages.

void DtSignalPdu::setEntityId ( const DtEntityIdentifier id)

Set/get signal entity identifier.

void DtSignalPdu::setNumDataBits ( int  lengthInBits)

Set/get signal number of bits in message.

void DtSignalPdu::setNumDataBytes ( int  lengthInBytes)

Set/get signal number of bytes in message.

void DtSignalPdu::setNumSamples ( int  numSamples)

Set/get signal number of bytes in message.

void DtSignalPdu::setRadioId ( unsigned int  id)

Set/get signal radio identifier.

It should be noted that the Radio ID differs from HLA, in that here a radio is identified through both the entity ID and radio ID, which is an integer. In HLA, the radio ID is simply a string that describes the object name of the radio object.

void DtSignalPdu::setSampleRate ( long  rate)

Set/get signal sample rate.

void DtSignalPdu::setTdlType ( int  type)

Set/get signal TDL type.

int DtSignalPdu::tdlType ( ) const

Set/get signal TDL type.

Member Data Documentation

DtEntityIdentifier DtSignalPdu::theId
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)