KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Entity_State_PDU Class Reference

#include <Entity_State_PDU.h>

Inheritance diagram for Entity_State_PDU:
Collaboration diagram for Entity_State_PDU:

Public Member Functions

void AddVariableParameter (KDIS::DATA_TYPE::VarPrmPtr VP)
 Description: Information associated with an entity or detonation, not otherwise accounted. More...
 
void ApplyDeadReckoning (KFLOAT64 totalTimeSinceDrReset) throw ( KException )
 
void ClearVariableParameters ()
 
virtual void Decode (KDataStream &stream, bool ignoreHeader=false) throw ( KException )
 Description: Convert From Network Data. More...
 
virtual KDataStream Encode () const
 Description: Convert To Network Data. More...
 
virtual void Encode (KDataStream &stream) const
 
 Entity_State_PDU ()
 
 Entity_State_PDU (KDataStream &stream) throw ( KException )
 
 Entity_State_PDU (const Header &H, KDataStream &stream) throw ( KException )
 
 Entity_State_PDU (const KDIS::DATA_TYPE::EntityIdentifier &EI, KDIS::DATA_TYPE::ENUMS::ForceID ID, const KDIS::DATA_TYPE::EntityType &Type, const KDIS::DATA_TYPE::EntityType &AltType, const KDIS::DATA_TYPE::Vector &EntityLinearVelocity, const KDIS::DATA_TYPE::WorldCoordinates &EntityLocation, const KDIS::DATA_TYPE::EulerAngles &EntityOrientation, const KDIS::DATA_TYPE::EntityAppearance &EA, const KDIS::DATA_TYPE::DeadReckoningParameter &DRP, const KDIS::DATA_TYPE::EntityMarking &EM, const KDIS::DATA_TYPE::EntityCapabilities &EC)
 
const KDIS::DATA_TYPE::EntityTypeGetAltEntityType () const
 
KDIS::DATA_TYPE::EntityTypeGetAltEntityType ()
 
virtual KString GetAsString () const
 Description: Returns a string representation of the PDU. Great for debugging! More...
 
KDIS::UTILS::DeadReckoningCalculatorGetDeadReckoningCalculator ()
 
const
KDIS::DATA_TYPE::DeadReckoningParameter
GetDeadReckoningParameter () const
 
KDIS::DATA_TYPE::DeadReckoningParameterGetDeadReckoningParameter ()
 
const
KDIS::DATA_TYPE::EntityAppearance
GetEntityAppearance () const
 
KDIS::DATA_TYPE::EntityAppearanceGetEntityAppearance ()
 
const
KDIS::DATA_TYPE::EntityCapabilities
GetEntityCapabilities () const
 
KDIS::DATA_TYPE::EntityCapabilitiesGetEntityCapabilities ()
 
const
KDIS::DATA_TYPE::EntityIdentifier
GetEntityIdentifier () const
 
KDIS::DATA_TYPE::EntityIdentifierGetEntityIdentifier ()
 
const KDIS::DATA_TYPE::VectorGetEntityLinearVelocity () const
 
KDIS::DATA_TYPE::VectorGetEntityLinearVelocity ()
 
const
KDIS::DATA_TYPE::WorldCoordinates
GetEntityLocation () const
 
KDIS::DATA_TYPE::WorldCoordinatesGetEntityLocation ()
 
const
KDIS::DATA_TYPE::EntityMarking
GetEntityMarking () const
 
KDIS::DATA_TYPE::EntityMarkingGetEntityMarking ()
 
const
KDIS::DATA_TYPE::EulerAngles
GetEntityOrientation () const
 
KDIS::DATA_TYPE::EulerAnglesGetEntityOrientation ()
 
const KDIS::DATA_TYPE::EntityTypeGetEntityType () const
 
KDIS::DATA_TYPE::EntityTypeGetEntityType ()
 
KDIS::DATA_TYPE::ENUMS::ForceID GetForceID () const
 
KUINT8 GetNumberOfVariableParams () const
 Description: Number of variable parameters. More...
 
const std::vector
< KDIS::DATA_TYPE::VarPrmPtr > & 
GetVariableParameters () const
 
void InitDeadReckoning ()
 Description: Initialise the dead reckoning object. Call this first. More...
 
KBOOL operator!= (const Entity_State_PDU &Value) const
 
KBOOL operator== (const Entity_State_PDU &Value) const
 
void ResetDeadReckoning ()
 
void SetAltEntityType (const KDIS::DATA_TYPE::EntityType &Type)
 
void SetDeadReckoningCalculator (KDIS::UTILS::DeadReckoningCalculator *DR)
 
void SetDeadReckoningParameter (const KDIS::DATA_TYPE::DeadReckoningParameter &DRP)
 
void SetEntityAppearance (const KDIS::DATA_TYPE::EntityAppearance &EA)
 
void SetEntityCapabilities (const KDIS::DATA_TYPE::EntityCapabilities &EC)
 Description: Entity Capabilities. Such as has fuel/ammo supply etc. More...
 
void SetEntityIdentifier (const KDIS::DATA_TYPE::EntityIdentifier &EI)
 
void SetEntityLinearVelocity (const KDIS::DATA_TYPE::Vector &ELV)
 Description: Represented as Linear Velocity Vector. m/s. More...
 
void SetEntityLocation (const KDIS::DATA_TYPE::WorldCoordinates &EL)
 
void SetEntityMarking (const KDIS::DATA_TYPE::EntityMarking &EM)
 Description: Entity Marking. This can be the entities name,Army Markings or Chevrons. More...
 
void SetEntityOrientation (const KDIS::DATA_TYPE::EulerAngles &EO)
 
void SetEntityType (const KDIS::DATA_TYPE::EntityType &Type)
 
void SetForceID (KDIS::DATA_TYPE::ENUMS::ForceID ID)
 
void SetVariableParameters (const std::vector< KDIS::DATA_TYPE::VarPrmPtr > &VP)
 
virtual ~Entity_State_PDU ()
 
- Public Member Functions inherited from Header7
KUINT8 GetPDUStatus () const
 
KBOOL GetPDUStatusCEI () const
 
KDIS::DATA_TYPE::ENUMS::DetonationType GetPDUStatusDTI () const
 
KBOOL GetPDUStatusFTI () const
 
KDIS::DATA_TYPE::ENUMS::AttachedIndicator GetPDUStatusIAI () const
 
KDIS::DATA_TYPE::ENUMS::LVCIndicator GetPDUStatusLVC () const
 
KDIS::DATA_TYPE::ENUMS::AttachedIndicator GetPDUStatusRAI () const
 
KBOOL GetPDUStatusSM () const
 
KBOOL GetPDUStatusTEI () const
 
 Header7 ()
 
 Header7 (KDataStream &stream) throw ( KException )
 
 Header7 (KDIS::DATA_TYPE::ENUMS::ProtocolVersion PV, KUINT8 ExerciseID, KDIS::DATA_TYPE::ENUMS::PDUType PT, KDIS::DATA_TYPE::ENUMS::ProtocolFamily PF, const KDIS::DATA_TYPE::TimeStamp &TS, KUINT16 PDULength)
 
KBOOL operator!= (const Header7 &Value) const
 
KBOOL operator== (const Header7 &Value) const
 
void SetPDUStatus (KUINT8 S)
 Description: The entire PDU status field. More...
 
void SetPDUStatusCEI (KBOOL CEI)
 
void SetPDUStatusDTI (KDIS::DATA_TYPE::ENUMS::DetonationType DTI)
 
void SetPDUStatusFTI (KBOOL FTI)
 
void SetPDUStatusIAI (KDIS::DATA_TYPE::ENUMS::AttachedIndicator RAI)
 
void SetPDUStatusLVC (KDIS::DATA_TYPE::ENUMS::LVCIndicator LVC)
 
void SetPDUStatusRAI (KDIS::DATA_TYPE::ENUMS::AttachedIndicator RAI)
 
void SetPDUStatusSM (KBOOL SM)
 
void SetPDUStatusTEI (KBOOL TEI)
 PDU: See Header7 description to see which PDU's use this field. More...
 
virtual ~Header7 ()
 
- Public Member Functions inherited from Header6
KUINT8 GetExerciseID () const
 
KUINT16 GetPDULength () const
 
KDIS::DATA_TYPE::ENUMS::PDUType GetPDUType () const
 
KDIS::DATA_TYPE::ENUMS::ProtocolFamily GetProtocolFamily () const
 
KDIS::DATA_TYPE::ENUMS::ProtocolVersion GetProtocolVersion () const
 
const KDIS::DATA_TYPE::TimeStampGetTimeStamp () const
 
KDIS::DATA_TYPE::TimeStampGetTimeStamp ()
 
 Header6 ()
 
 Header6 (KDataStream &stream) throw ( KException )
 
 Header6 (KDIS::DATA_TYPE::ENUMS::ProtocolVersion PV, KUINT8 ExerciseID, KDIS::DATA_TYPE::ENUMS::PDUType PT, KDIS::DATA_TYPE::ENUMS::ProtocolFamily PF, const KDIS::DATA_TYPE::TimeStamp &TS, KUINT16 PDULength)
 
KBOOL operator!= (const Header6 &Value) const
 
KBOOL operator== (const Header6 &Value) const
 
void SetExerciseID (KUINT8 EID)
 
void SetPDULength (KUINT16 PDUL)
 
void SetPDUType (KDIS::DATA_TYPE::ENUMS::PDUType Type)
 
void SetProtocolFamily (KDIS::DATA_TYPE::ENUMS::ProtocolFamily PF)
 
void SetProtocolVersion (KDIS::DATA_TYPE::ENUMS::ProtocolVersion PV)
 to the mimimum version of DIS required to support the current PDU. More...
 
void SetTimeStamp (const KDIS::DATA_TYPE::TimeStamp &TS)
 
virtual ~Header6 ()
 

Static Public Attributes

static const KUINT16 ENTITY_STATE_PDU_SIZE = 144
 
- Static Public Attributes inherited from Header6
static const KUINT16 HEADER6_PDU_SIZE = 12
 

Protected Attributes

KDIS::DATA_TYPE::EntityType m_AltEntityType
 
KDIS::DATA_TYPE::DeadReckoningParameter m_DeadReckoningParameter
 
KDIS::DATA_TYPE::EntityAppearance m_EntityAppearance
 
KDIS::DATA_TYPE::EntityCapabilities m_EntityCapabilities
 
KDIS::DATA_TYPE::EntityIdentifier m_EntityID
 
KDIS::DATA_TYPE::Vector m_EntityLinearVelocity
 
KDIS::DATA_TYPE::WorldCoordinates m_EntityLocation
 
KDIS::DATA_TYPE::EntityMarking m_EntityMarking
 
KDIS::DATA_TYPE::EulerAngles m_EntityOrientation
 
KDIS::DATA_TYPE::EntityType m_EntityType
 
KDIS::UTILS::DeadReckoningCalculatorm_pDrCalc
 
KUINT8 m_ui8ForceID
 
KUINT8 m_ui8NumOfVariableParams
 
std::vector
< KDIS::DATA_TYPE::VarPrmPtr
m_vVariableParameters
 
- Protected Attributes inherited from Header7
union {
   struct {
      union {
         struct {
            KUINT8   m_ui8PDUStatusBit5: 1
 
            KUINT8   m_ui8PDUStatusFTI: 1
 
         } 
 
         KUINT8   m_ui8PDUStatusDTI_RAI_IAI: 2
 
      } 
 
      KUINT8   m_ui8PDUStatusBit6: 1
 
      KUINT8   m_ui8PDUStatusCEI: 1
 
      KUINT8   m_ui8PDUStatusLVC: 2
 
      KUINT8   m_ui8PDUStatusSM: 1
 
      KUINT8   m_ui8PDUStatusTEI: 1
 
   } 
 
   KUINT8   m_ui8PDUStatus
 
m_PDUStatusUnion
 
- Protected Attributes inherited from Header6
KDIS::DATA_TYPE::TimeStamp m_TimeStamp
 
KUINT16 m_ui16PDULength
 
KUINT8 m_ui8ExerciseID
 
KUINT8 m_ui8Padding1
 
KUINT8 m_ui8Padding2
 
KUINT8 m_ui8PDUType
 
KUINT8 m_ui8ProtocolFamily
 
KUINT8 m_ui8ProtocolVersion
 

Constructor & Destructor Documentation

Entity_State_PDU ( KDataStream stream)
throw (KException
)
Entity_State_PDU ( const Header H,
KDataStream stream 
)
throw (KException
)
virtual ~Entity_State_PDU ( )
virtual

Member Function Documentation

void SetEntityIdentifier ( const KDIS::DATA_TYPE::EntityIdentifier EI)

Description: ID of entity issuing the PDU. This is a unique identifier made up of 3 values. The first 2 represent the simulation address.(site, application) and the final is the entity. This ID should be unqiue to the simulation.

const KDIS::DATA_TYPE::EntityIdentifier& GetEntityIdentifier ( ) const
KDIS::DATA_TYPE::EntityIdentifier& GetEntityIdentifier ( )
void SetForceID ( KDIS::DATA_TYPE::ENUMS::ForceID  ID)

Description: Force ID. Enumerated value representing the force the entity belongs to, such as friendly, opposing or neutral.

KDIS::DATA_TYPE::ENUMS::ForceID GetForceID ( ) const
KUINT8 GetNumberOfVariableParams ( ) const

Description: Number of variable parameters.

void SetEntityType ( const KDIS::DATA_TYPE::EntityType Type)

Description: Entity Type. Consists of 7 values used to represent the type of entity. Please see DIS Enums document found on the SISO website for a full list of enumerations available.

const KDIS::DATA_TYPE::EntityType& GetEntityType ( ) const
KDIS::DATA_TYPE::EntityType& GetEntityType ( )
void SetAltEntityType ( const KDIS::DATA_TYPE::EntityType Type)

Description: This identifies the entity type to be displayed by members of forces other than that of the issuing entity. I.E This could be used to represent an entity in disguise.

const KDIS::DATA_TYPE::EntityType& GetAltEntityType ( ) const
KDIS::DATA_TYPE::EntityType& GetAltEntityType ( )
void SetEntityLinearVelocity ( const KDIS::DATA_TYPE::Vector ELV)

Description: Represented as Linear Velocity Vector. m/s.

const KDIS::DATA_TYPE::Vector& GetEntityLinearVelocity ( ) const
KDIS::DATA_TYPE::Vector& GetEntityLinearVelocity ( )
void SetEntityLocation ( const KDIS::DATA_TYPE::WorldCoordinates EL)

Description: Entity Location in Geocentric world coordinates. Note: See KConversions.h for some useful coordinate conversions.

const KDIS::DATA_TYPE::WorldCoordinates& GetEntityLocation ( ) const
KDIS::DATA_TYPE::WorldCoordinates& GetEntityLocation ( )
void SetEntityOrientation ( const KDIS::DATA_TYPE::EulerAngles EO)

Description: Orientation of entity. Geocentric Euler Angles. Note: See KConversions.h for some useful orientation conversions.

const KDIS::DATA_TYPE::EulerAngles& GetEntityOrientation ( ) const
KDIS::DATA_TYPE::EulerAngles& GetEntityOrientation ( )
void SetEntityAppearance ( const KDIS::DATA_TYPE::EntityAppearance EA)

Description: Entity Appearance. Appearance is communicated via a series of bit flags/values. Such as damage states, smoking, on fire etc. Note The "Specific Entity Appearance" varies depending on entity type, E.G Air, Ground, Lifeform etc.

const KDIS::DATA_TYPE::EntityAppearance& GetEntityAppearance ( ) const
KDIS::DATA_TYPE::EntityAppearance& GetEntityAppearance ( )
void SetDeadReckoningParameter ( const KDIS::DATA_TYPE::DeadReckoningParameter DRP)

Description: Dead Reckoning Parameter. Dead Reckoning is used to provide an estimate of an entities position between PDUs. Using dead reckoning an entity can be given the appearance that it is moving smoothly in an environment. The dead reckoning values are used to predict where the entity will be within the foreseeable future. When a new entity update is received the entities position is corrected via a process called "smoothing".

const KDIS::DATA_TYPE::DeadReckoningParameter& GetDeadReckoningParameter ( ) const
KDIS::DATA_TYPE::DeadReckoningParameter& GetDeadReckoningParameter ( )
void SetDeadReckoningCalculator ( KDIS::UTILS::DeadReckoningCalculator DR)

Description: Set or return the DeadReckoningCalculator object. Returns null pointer if InitDeadReckoning has not been called first.

KDIS::UTILS::DeadReckoningCalculator* GetDeadReckoningCalculator ( )
void InitDeadReckoning ( )

Description: Initialise the dead reckoning object. Call this first.

void ResetDeadReckoning ( )

Description: Resets the dead reckoning object. For a local entity should be called before sending out an entity state PDU so the local entity can dead-reckon itself. For a remote entity should be called when an ES PDU is received. Note: Nothing will happen if you have not initialised the dead reckoning calculator first.

void ApplyDeadReckoning ( KFLOAT64  totalTimeSinceDrReset)
throw (KException
)

Description: Applies a dead reckoning transformation to the entity for a time step. Throws INVALID_OPERATION exception if InitDeadReckoning has not been called first.

void SetEntityMarking ( const KDIS::DATA_TYPE::EntityMarking EM)

Description: Entity Marking. This can be the entities name,Army Markings or Chevrons.

const KDIS::DATA_TYPE::EntityMarking& GetEntityMarking ( ) const
KDIS::DATA_TYPE::EntityMarking& GetEntityMarking ( )
void SetEntityCapabilities ( const KDIS::DATA_TYPE::EntityCapabilities EC)

Description: Entity Capabilities. Such as has fuel/ammo supply etc.

const KDIS::DATA_TYPE::EntityCapabilities& GetEntityCapabilities ( ) const
KDIS::DATA_TYPE::EntityCapabilities& GetEntityCapabilities ( )
void AddVariableParameter ( KDIS::DATA_TYPE::VarPrmPtr  VP)

Description: Information associated with an entity or detonation, not otherwise accounted.

See VariableParameter for supported/implemented types.

void SetVariableParameters ( const std::vector< KDIS::DATA_TYPE::VarPrmPtr > &  VP)
const std::vector<KDIS::DATA_TYPE::VarPrmPtr>& GetVariableParameters ( ) const
void ClearVariableParameters ( )
virtual KString GetAsString ( ) const
virtual

Description: Returns a string representation of the PDU. Great for debugging!

Reimplemented from Header7.

virtual void Decode ( KDataStream stream,
bool  ignoreHeader = false 
)
throw (KException
)
virtual

Description: Convert From Network Data.

Reimplemented from Header7.

virtual KDataStream Encode ( ) const
virtual

Description: Convert To Network Data.

Reimplemented from Header7.

virtual void Encode ( KDataStream stream) const
virtual

Reimplemented from Header7.

KBOOL operator== ( const Entity_State_PDU Value) const
KBOOL operator!= ( const Entity_State_PDU Value) const

Member Data Documentation

KDIS::DATA_TYPE::EntityIdentifier m_EntityID
protected
KUINT8 m_ui8ForceID
protected
KUINT8 m_ui8NumOfVariableParams
protected
KDIS::DATA_TYPE::EntityType m_EntityType
protected
KDIS::DATA_TYPE::EntityType m_AltEntityType
protected
KDIS::DATA_TYPE::Vector m_EntityLinearVelocity
protected
KDIS::DATA_TYPE::WorldCoordinates m_EntityLocation
protected
KDIS::DATA_TYPE::EulerAngles m_EntityOrientation
protected
KDIS::DATA_TYPE::EntityAppearance m_EntityAppearance
protected
KDIS::DATA_TYPE::DeadReckoningParameter m_DeadReckoningParameter
protected
KDIS::DATA_TYPE::EntityMarking m_EntityMarking
protected
KDIS::DATA_TYPE::EntityCapabilities m_EntityCapabilities
protected
std::vector<KDIS::DATA_TYPE::VarPrmPtr> m_vVariableParameters
protected
const KUINT16 ENTITY_STATE_PDU_SIZE = 144
static

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