Eaagles::Network::DisIO Class Reference

Inherits Eaagles::Simulation::NetworkIO.

Inheritance diagram for Eaagles::Network::DisIO:

Inheritance graph
[legend]
Collaboration diagram for Eaagles::Network::DisIO:

Collaboration graph
[legend]
List of all members.

Public Types

enum  { MAX_PDU_SIZE = 1536 }
enum  EntityTypeKindEnum {
  KIND_OTHER, KIND_PLATFORM, KIND_MUNITION, KIND_LIFEFORM,
  KIND_ENVIRONMENTAL, KIND_CULTURAL_FEATURE, KIND_SUPPLY, KIND_RADIO,
  KIND_EXPENDABLE, KIND_SENSOR_EMITTER, NUM_ENTITY_KINDS
}
enum  PlatformDomainEnum {
  PLATFORM_DOMAIN_OTHER, PLATFORM_DOMAIN_LAND, PLATFORM_DOMAIN_AIR, PLATFORM_DOMAIN_SURFACE,
  PLATFORM_DOMAIN_SUBSURFACE, PLATFORM_DOMAIN_SPACE
}
enum  MunitionDomainEnum {
  MUNITION_DOMAIN_OTHER, MUNITION_DOMAIN_ANTI_AIR, MUNITION_DOMAIN_ANTI_ARMOR, MUNITION_DOMAIN_ANTI_GUIDED_MUNITION,
  MUNITION_DOMAIN_ANTIRADAR, MUNITION_DOMAIN_ANTISATELLITE, MUNITION_DOMAIN_ANTISHIP, MUNITION_DOMAIN_ANTISUBMARINE,
  MUNITION_DOMAIN_ANTIPERSONNEL, MUNITION_DOMAIN_BATTLEFIELD_SUPPORT, MUNITION_DOMAIN_STRATEGIC, MUNITION_DOMAIN_TACTICAL
}
enum  { MAX_ENTITY_DOMAINS = MUNITION_DOMAIN_TACTICAL }
enum  EntityTypeCountryEnum {
  COUNTRY_OTHER = 0, COUNTRY_FRANCE = 71, COUNTRY_CIS = 222, COUNTRY_UK = 224,
  COUNTRY_USA = 225
}
enum  ForceEnum { OTHER_FORCE, FRIENDLY_FORCE, OPPOSING_FORCE, NEUTRAL_FORCE }
enum  {
  VERSION_OTHER, VERSION_100, VERSION_1278, VERSION_203,
  VERSION_204, VERSION_1278_1, VERSION_1278_1A, VERSION_MAX
}
enum  {
  PDU_OTHER, PDU_ENTITY_STATE, PDU_FIRE, PDU_DETONATION,
  PDU_COLLISION, PDU_SERVICE_REQUEST, PDU_RESUPPLY_OFFER, PDU_RESUPPLY_RECEIVED,
  PDU_RESUPPLY_CANCEL, PDU_REPAIR_COMPLETE, PDU_REPAIR_RESPONSE, PDU_CREATE_ENTITY,
  PDU_REMOVE_ENTITY, PDU_START_RESUME, PDU_STOP_FREEZE, PDU_ACKNOWLEDGE,
  PDU_ACTION_REQUEST, PDU_ACTION_RESPONSE, PDU_DATA_QUERY, PDU_SET_DATA,
  PDU_DATA, PDU_EVENT_REPORT, PDU_COMMENT, PDU_ELECTROMAGNETIC_EMISSION,
  PDU_DESIGNATOR, PDU_TRANSMITTER, PDU_SIGNAL, PDU_RECEIVER,
  PDU_IFF_ATC_NAVAIDS, PDU_UNDERWATER_ACOUSTIC, PDU_SUPPLEMENTAL_EMISSION, PDU_INTERCOM_SIGNAL,
  PDU_INTERCOM_CONTROL, PDU_AGGREGATE_STATE, PDU_ISGROUPOF, PDU_TRANSFER_CONTROL,
  PDU_ISPARTOF, PDU_MINEFIELD_STATE, PDU_MINEFIELD_QUERY, PDU_MINEFIELD_DATA,
  PDU_MINEFIELD_RESPONSE_NAK, PDU_ENVIRONMENTAL_PROCESS, PDU_GRIDDED_DATA, PDU_POINT_OBJECT_STATE,
  PDU_LINEAR_OBJECT_STATE, PDU_AREAL_OBJECT_STATE, PDU_TSPI, PDU_APPEARANCE,
  PDU_ARTICULATED_PARTS, PDU_LE_FIRE, PDU_LE_DETONATION, PDU_CREATE_ENTITY_R,
  PDU_REMOVE_ENTITY_R, PDU_START_RESUME_R, PDU_STOP_FREEZE_R, PDU_ACKNOWLEDGE_R,
  PDU_ACTION_REQUEST_R, PDU_ACTION_RESPONSE_R, PDU_DATA_QUERY_R, PDU_SET_DATA_R,
  PDU_DATA_R, PDU_EVENT_REPORT_R, PDU_COMMENT_R, PDU_RECORD_R,
  PDU_SET_RECORD_R, PDU_RECORD_QUERY_R, PDU_COLLISION_ELASTIC, PDU_ENTITY_STATE_UPDATE,
  PDU_ANNOUNCE_OBJECT = 129, PDU_DELETE_OBJECT = 130, PDU_DESCRIBE_APPLICATION = 131, PDU_DESCRIBE_EVENT = 132,
  PDU_DESCRIBE_OBJECT = 133, PDU_REQUEST_EVENT = 134, PDU_REQUEST_OBJECT = 135
}
enum  {
  PDU_FAMILY_OTHER, PDU_FAMILY_ENTITY_INFO, PDU_FAMILY_WARFARE, PDU_FAMILY_LOGISTICS,
  PDU_FAMILY_RADIO_COMM, PDU_FAMILY_SIMULATION_MAN, PDU_FAMILY_DIS_EMISSION_REG, PDU_FAMILY_ENTITY_MAN,
  PDU_FAMILY_MINEFIELD, PDU_FAMILY_SYNTHETIC_ENV, PDU_FAMILY_SIMULATION_MAN_REL, PDU_FAMILY_LIVE_ENTITY,
  PDU_FAMILY_NON_REAL_TIME, PDU_FAMILY_EXPERIMENTAL = 129
}

Public Member Functions

 DisIO ()
unsigned short getSiteID () const
unsigned short getApplicationID () const
unsigned char getExerciseID () const
bool sendData (const char *const packet, const int size)
int recvData (char *const packet, const int maxSize, const bool ignoreOwnSourcePort=true)
unsigned int makeTimeStamp (const LCreal ctime)
bool isVersion (const unsigned char v) const
unsigned char getVersion () const
virtual bool setVersion (const unsigned char v)
const DisEmissionPduHandlerfindEmissionPduHandler (const Simulation::RfSensor *const msg)
const DisEmissionPduHandlerfindEmissionPduHandler (const EmissionSystem *const msg)
virtual NibDisIOfindDisNib (const unsigned short playerId, const unsigned short siteId, const unsigned short appId, const IoType ioType)
virtual LCreal getMaxEntityRange (const Simulation::Nib *const nib) const
virtual LCreal getMaxEntityRangeSquared (const Simulation::Nib *const nib) const
virtual LCreal getMaxTimeDR (const Simulation::Nib *const nib) const
virtual LCreal getMaxPositionErr (const Simulation::Nib *const nib) const
virtual LCreal getMaxOrientationErr (const Simulation::Nib *const nib) const
virtual LCreal getMaxAge (const Simulation::Nib *const nib) const
virtual Simulation::NibcreateNewOutputNib (Simulation::Player *const player)

Static Public Member Functions

static bool makeFederateName (char *const fedName, const unsigned int len, const unsigned short site, const unsigned short app)
static bool parseFederateName (unsigned short *const site, unsigned short *const app, const char *const fedName)
static bool makeFederationName (char *const fedName, const unsigned int len, const unsigned short exercise)
static bool parseFederationName (unsigned short *const exercise, const char *const fedName)

Protected Member Functions

virtual void processEntityStatePDU (const EntityStatePDU *const pdu)
virtual void processFirePDU (const FirePDU *const pdu)
virtual void processDetonationPDU (const DetonationPDU *const pdu)
virtual void processElectromagneticEmissionPDU (const ElectromagneticEmissionPDU *const pdu)
virtual bool processSignalPDU (SignalPDU *const pdu)
virtual bool processTransmitterPDU (TransmitterPDU *const pdu)
virtual bool processDataQueryPDU (DataQueryPDU *const pdu)
virtual bool processDataPDU (DataPDU *const pdu)
virtual bool processCommentPDU (CommentPDU *const pdu)
virtual void clearEmissionPduHandlers ()
virtual void addEmissionPduHandler (const DisEmissionPduHandler *const item)
virtual void defineFederateName ()
virtual void defineFederationName ()
virtual bool setSiteID (const unsigned short v)
virtual bool setApplicationID (const unsigned short v)
virtual bool setExerciseID (const unsigned char v)
virtual bool setSlotNetInput (Basic::LcNetHandler *const msg)
virtual bool setSlotNetOutput (Basic::LcNetHandler *const msg)
virtual bool setSlotVersion (const Basic::LcNumber *const num)
virtual bool setSlotLink16NeedsRadio (const Basic::LcNumber *const num)
virtual bool setSlotMaxTimeDR (const Basic::LcPairStream *const msg)
virtual bool setSlotMaxTimeDR (const Basic::LcTime *const msg)
virtual bool setSlotMaxPositionErr (const Basic::LcPairStream *const msg)
virtual bool setSlotMaxPositionErr (const Basic::LcDistance *const msg)
virtual bool setSlotMaxOrientationErr (const Basic::LcPairStream *const msg)
virtual bool setSlotMaxOrientationErr (const Basic::LcAngle *const msg)
virtual bool setSlotMaxAge (const Basic::LcPairStream *const msg)
virtual bool setSlotMaxAge (const Basic::LcTime *const msg)
virtual bool setSlotMaxEntityRange (const Basic::LcPairStream *const msg)
virtual bool setSlotMaxEntityRange (const Basic::LcDistance *const msg)
virtual bool setSlotEmissionPduHandlers (Basic::LcPairStream *const msg)
virtual bool setSlotSiteID (const Basic::LcNumber *const num)
virtual bool setSlotApplicationID (const Basic::LcNumber *const num)
virtual bool setSlotExerciseID (const Basic::LcNumber *const num)
virtual bool slot2KD (const char *const slotname, unsigned char *const k, unsigned char *const d)
virtual bool setMaxTimeDR (const LCreal v, const unsigned char kind, const unsigned char domain)
virtual bool setMaxTimeDR (const Basic::LcTime *const p, const unsigned char kind, const unsigned char domain)
virtual bool setMaxPositionErr (const LCreal v, const unsigned char kind, const unsigned char domain)
virtual bool setMaxPositionErr (const Basic::LcDistance *const p, const unsigned char kind, const unsigned char domain)
virtual bool setMaxOrientationErr (const LCreal v, const unsigned char kind, const unsigned char domain)
virtual bool setMaxOrientationErr (const Basic::LcAngle *const p, const unsigned char kind, const unsigned char domain)
virtual bool setMaxAge (const LCreal v, const unsigned char kind, const unsigned char domain)
virtual bool setMaxAge (const Basic::LcTime *const p, const unsigned char kind, const unsigned char domain)
virtual bool setMaxEntityRange (const LCreal v, const unsigned char kind, const unsigned char domain)
virtual bool setMaxEntityRange (const Basic::LcDistance *const p, const unsigned char kind, const unsigned char domain)
virtual bool setSlotFederateName (const Basic::LcString *const msg)
virtual bool setSlotFederationName (const Basic::LcString *const msg)
virtual bool initNetwork ()
virtual void netInputHander ()
virtual void processInputList ()
virtual Simulation::NibnibFactory (const Simulation::NetworkIO::IoType ioType)

Private Attributes

SPtr< Basic::LcNetHandlernetInput
SPtr< Basic::LcNetHandlernetOutput
unsigned char version
bool link16NeedsRadio
unsigned short siteID
unsigned short appID
unsigned char exerciseID
LCreal maxEntityRange [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
LCreal maxEntityRange2 [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
LCreal maxTimeDR [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
LCreal maxPositionErr [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
LCreal maxOrientationErr [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
LCreal maxAge [NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS]
const DisEmissionPduHandleremissionHandlers [MAX_EMISSION_HANDLERS]
unsigned int nEmissionHandlers

Static Private Attributes

static const int MAX_EMISSION_HANDLERS = 500

Detailed Description

 Distributed-Interactive-Simulation (DIS) protocol manager.

    Slots:
         netInput:             ! Network input handler
         netOutput:            ! Network output handler

         version:              ! DIS version number [ 0 .. 6 ] (IST-CF-03-01, May 5, 2003) 
                               !   0 => Other
                               !   1 => DIS PDU version 1.0 (May 92)
                               !   2 => IEEE 1278-1993
                               !   3 => DIS PDU version 2.0 - third draft (May 93)
                               !   4 => DIS PDU version 2.0 - fourth draft (revised) March 16, 1994
                               !   5 => IEEE 1278.1-1995
                               !   6 => IEEE 1278.1A-1998

         Link16NeedsRadio:     ! Defines Link16 network fidelity. does the local simmulation
                               !   care if link16 traffic bypasses the emission level?

         maxTimeDR:            ! Max DR time                            (Basic::LcTime or Basic::LcPairStream)
         maxPositionError:     ! Max DR position error                  (Basic::LcDistance or Basic::LcPairStream)
         maxOrientationError:  ! Max DR anglular error                  (Basic::LcAngle or Basic::LcPairStream)
         maxAge:               ! Max age (without update) of networked players (Basic::LcTime or Basic::LcPairStream)
         maxEntityRange:       ! Max enity range of networked players  (Basic::LcDistance or Basic::LcPairStream)

         EmissionPduHandlers:  ! List of Electromagnetic-Emission PDU handlers (DisEmissionPduHandler)

         siteID:               ! Site Identification    
         applicationID:        ! Application Identification
         exerciseID:           ! Exercise Identification

    Note:
       1) DisIO creates its own federate name based on the site and application numbers 
          using makeFederateName().  (e.g., site = 10 and  app = 143 gives the federate name "S10A143")

       2) DisIO creates its own federation name based on the exercise number
          using makeFederationName().  (e.g., exercise = 13 gives the federation name "E13")

       3) finDisdNib() searches the same input and output lists that are maintained by
          NetworkIO, which are in order of player ID and the federate name.  Since our DIS
          federate names are generated by site and app IDs, the lists are seen by DIS as
          being order by player ID, site ID and app ID.

       4) For the slots maxTimeDR, maxPositionError, maxOrientationError, maxAge and
          maxEntityRange, if the slot type is Basic::LcTime, Basic::LcAngle or Basic::LcDistance then that
          parameter is set for entity types of all kinds and domains.  If a pair stream
          is given then individual entity kind/domain parameters can be set.  To set the
          parameters for individual entity kind/domain types, the slot name must have
          the format:  Kn or KnDm where n and m are the Kind and Domain numbers.
          Examples --
             maxTimeDR: { K5: ( Seconds 10.0 )  K1D11: ( Seconds 5.0 ) }
                K5 will set the parameter for all domains of kinds #5
                K1D11 will set the parameter for kind #1, domain #11

       5) Setting the 'maxEntityRange' slot to zero(0) for an entity kind/demain
          will filter out all entities of that kind/domain type. 


Member Enumeration Documentation

anonymous enum

Max PDU buffer size.

Enumerator:
MAX_PDU_SIZE 

enum Eaagles::Network::DisIO::EntityTypeKindEnum

Standard (IST-CF-03-01, May 5, 2003) entity type "kind" codes [ 0 .. 9 ].

Enumerator:
KIND_OTHER 
KIND_PLATFORM 
KIND_MUNITION 
KIND_LIFEFORM 
KIND_ENVIRONMENTAL 
KIND_CULTURAL_FEATURE 
KIND_SUPPLY 
KIND_RADIO 
KIND_EXPENDABLE 
KIND_SENSOR_EMITTER 
NUM_ENTITY_KINDS 

enum Eaagles::Network::DisIO::PlatformDomainEnum

Standard (IST-CF-03-01, May 5, 2003) "platform domain" codes [ 0 .. 5 ].

Enumerator:
PLATFORM_DOMAIN_OTHER 
PLATFORM_DOMAIN_LAND 
PLATFORM_DOMAIN_AIR 
PLATFORM_DOMAIN_SURFACE 
PLATFORM_DOMAIN_SUBSURFACE 
PLATFORM_DOMAIN_SPACE 

enum Eaagles::Network::DisIO::MunitionDomainEnum

Standard (IST-CF-03-01, May 5, 2003) "munition domain" codes [ 0 .. 11 ].

Enumerator:
MUNITION_DOMAIN_OTHER 
MUNITION_DOMAIN_ANTI_AIR 
MUNITION_DOMAIN_ANTI_ARMOR 
MUNITION_DOMAIN_ANTI_GUIDED_MUNITION 
MUNITION_DOMAIN_ANTIRADAR 
MUNITION_DOMAIN_ANTISATELLITE 
MUNITION_DOMAIN_ANTISHIP 
MUNITION_DOMAIN_ANTISUBMARINE 
MUNITION_DOMAIN_ANTIPERSONNEL 
MUNITION_DOMAIN_BATTLEFIELD_SUPPORT 
MUNITION_DOMAIN_STRATEGIC 
MUNITION_DOMAIN_TACTICAL 

anonymous enum

Larges number of domains in any kind (IST-CF-03-01, May 5, 2003).

Enumerator:
MAX_ENTITY_DOMAINS 

enum Eaagles::Network::DisIO::EntityTypeCountryEnum

Standard (IST-CF-03-01, May 5, 2003) "country" codes.

Enumerator:
COUNTRY_OTHER 
COUNTRY_FRANCE 
COUNTRY_CIS 
COUNTRY_UK 
COUNTRY_USA 

enum Eaagles::Network::DisIO::ForceEnum

Standard (IST-CF-03-01, May 5, 2003) "force" codes [ 0 .. 3 ].

Enumerator:
OTHER_FORCE 
FRIENDLY_FORCE 
OPPOSING_FORCE 
NEUTRAL_FORCE 

anonymous enum

Standard (IST-CF-03-01, May 5, 2003) "DIS Protocol Version" codes [ 0 .. 6 ].

Enumerator:
VERSION_OTHER  Other.
VERSION_100  DIS PDU version 1.0 (May 92).
VERSION_1278  IEEE 1278-1993.
VERSION_203  DIS PDU version 2.0 - third draft (May 93).
VERSION_204  DIS PDU version 2.0 - fourth draft (revised) March 16, 1994.
VERSION_1278_1  IEEE 1278.1-1995.
VERSION_1278_1A  IEEE 1278.1A-1998.
VERSION_MAX  Max version numbers.

anonymous enum

Standard (IST-CF-03-01, May 5, 2003) "3.2 PDU Type.

Enumerator:
PDU_OTHER 
PDU_ENTITY_STATE 
PDU_FIRE 
PDU_DETONATION 
PDU_COLLISION 
PDU_SERVICE_REQUEST 
PDU_RESUPPLY_OFFER 
PDU_RESUPPLY_RECEIVED 
PDU_RESUPPLY_CANCEL 
PDU_REPAIR_COMPLETE 
PDU_REPAIR_RESPONSE 
PDU_CREATE_ENTITY 
PDU_REMOVE_ENTITY 
PDU_START_RESUME 
PDU_STOP_FREEZE 
PDU_ACKNOWLEDGE 
PDU_ACTION_REQUEST 
PDU_ACTION_RESPONSE 
PDU_DATA_QUERY 
PDU_SET_DATA 
PDU_DATA 
PDU_EVENT_REPORT 
PDU_COMMENT 
PDU_ELECTROMAGNETIC_EMISSION 
PDU_DESIGNATOR 
PDU_TRANSMITTER 
PDU_SIGNAL 
PDU_RECEIVER 
PDU_IFF_ATC_NAVAIDS 
PDU_UNDERWATER_ACOUSTIC 
PDU_SUPPLEMENTAL_EMISSION 
PDU_INTERCOM_SIGNAL 
PDU_INTERCOM_CONTROL 
PDU_AGGREGATE_STATE 
PDU_ISGROUPOF 
PDU_TRANSFER_CONTROL 
PDU_ISPARTOF 
PDU_MINEFIELD_STATE 
PDU_MINEFIELD_QUERY 
PDU_MINEFIELD_DATA 
PDU_MINEFIELD_RESPONSE_NAK 
PDU_ENVIRONMENTAL_PROCESS 
PDU_GRIDDED_DATA 
PDU_POINT_OBJECT_STATE 
PDU_LINEAR_OBJECT_STATE 
PDU_AREAL_OBJECT_STATE 
PDU_TSPI 
PDU_APPEARANCE 
PDU_ARTICULATED_PARTS 
PDU_LE_FIRE 
PDU_LE_DETONATION 
PDU_CREATE_ENTITY_R 
PDU_REMOVE_ENTITY_R 
PDU_START_RESUME_R 
PDU_STOP_FREEZE_R 
PDU_ACKNOWLEDGE_R 
PDU_ACTION_REQUEST_R 
PDU_ACTION_RESPONSE_R 
PDU_DATA_QUERY_R 
PDU_SET_DATA_R 
PDU_DATA_R 
PDU_EVENT_REPORT_R 
PDU_COMMENT_R 
PDU_RECORD_R 
PDU_SET_RECORD_R 
PDU_RECORD_QUERY_R 
PDU_COLLISION_ELASTIC 
PDU_ENTITY_STATE_UPDATE 
PDU_ANNOUNCE_OBJECT 
PDU_DELETE_OBJECT 
PDU_DESCRIBE_APPLICATION 
PDU_DESCRIBE_EVENT 
PDU_DESCRIBE_OBJECT 
PDU_REQUEST_EVENT 
PDU_REQUEST_OBJECT 

anonymous enum

Standard (IST-CF-03-01, May 5, 2003) PDU Family.

Enumerator:
PDU_FAMILY_OTHER  other
PDU_FAMILY_ENTITY_INFO  Entity Information/Interaction.
PDU_FAMILY_WARFARE  Warfare.
PDU_FAMILY_LOGISTICS  Logistics.
PDU_FAMILY_RADIO_COMM  Radio Communication.
PDU_FAMILY_SIMULATION_MAN  Simulation Management.
PDU_FAMILY_DIS_EMISSION_REG  Distributed Emission Regeneration.
PDU_FAMILY_ENTITY_MAN  Entity Management.
PDU_FAMILY_MINEFIELD  Minefield.
PDU_FAMILY_SYNTHETIC_ENV  Synthetic Environment.
PDU_FAMILY_SIMULATION_MAN_REL  Simulation Management with Reliability.
PDU_FAMILY_LIVE_ENTITY  Live Entity.
PDU_FAMILY_NON_REAL_TIME  Non-Real Time.
PDU_FAMILY_EXPERIMENTAL  Experimental - Computer Generated Forces.


Constructor & Destructor Documentation

Eaagles::Network::DisIO::DisIO (  ) 


Member Function Documentation

unsigned short Eaagles::Network::DisIO::getSiteID (  )  const [inline]

Network Identifications.

unsigned short Eaagles::Network::DisIO::getApplicationID (  )  const [inline]

unsigned char Eaagles::Network::DisIO::getExerciseID (  )  const [inline]

bool Eaagles::Network::DisIO::sendData ( const char *const  packet,
const int  size 
)

Sends a packet (PDU) to the network.

int Eaagles::Network::DisIO::recvData ( char *const   packet,
const int  maxSize,
const bool  ignoreOwnSourcePort = true 
)

Receives a packet (PDU) from the network.

unsigned int Eaagles::Network::DisIO::makeTimeStamp ( const LCreal  ctime  ) 

Generates a PDU time stamp.

bool Eaagles::Network::DisIO::isVersion ( const unsigned char  v  )  const [inline]

True if versions match.

unsigned char Eaagles::Network::DisIO::getVersion (  )  const [inline]

Returns the current version number.

virtual bool Eaagles::Network::DisIO::setVersion ( const unsigned char  v  )  [virtual]

Sets the operating version number.

const DisEmissionPduHandler* Eaagles::Network::DisIO::findEmissionPduHandler ( const Simulation::RfSensor *const   msg  ) 

Emisison PDU handler.

const DisEmissionPduHandler* Eaagles::Network::DisIO::findEmissionPduHandler ( const EmissionSystem *const  msg  ) 

static bool Eaagles::Network::DisIO::makeFederateName ( char *const   fedName,
const unsigned int  len,
const unsigned short  site,
const unsigned short  app 
) [static]

Generate a federate name from the site and application numbers: "SnnAmm" -- where nn and mm are the site and app numbers.

static bool Eaagles::Network::DisIO::parseFederateName ( unsigned short *const   site,
unsigned short *const   app,
const char *const  fedName 
) [static]

Parse federate name for the site and application numbers (We're expecting "SnnAmm" where nn and mm are the site and app numbers.)

static bool Eaagles::Network::DisIO::makeFederationName ( char *const   fedName,
const unsigned int  len,
const unsigned short  exercise 
) [static]

Generate a federation name from the exercise numbers: "Ennn" -- where nnn is the exercise number, which must be greater than zero

static bool Eaagles::Network::DisIO::parseFederationName ( unsigned short *const   exercise,
const char *const  fedName 
) [static]

Parse federation name for the exercise number (We're expecting "Ennn" where nnn is the exercise.)

virtual NibDisIO* Eaagles::Network::DisIO::findDisNib ( const unsigned short  playerId,
const unsigned short  siteId,
const unsigned short  appId,
const IoType  ioType 
) [virtual]

Finds the NibDisIO for 'ioType' by player, site and app IDs.

virtual LCreal Eaagles::Network::DisIO::getMaxEntityRange ( const Simulation::Nib *const  nib  )  const [virtual]

NetworkIO Interface.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual LCreal Eaagles::Network::DisIO::getMaxEntityRangeSquared ( const Simulation::Nib *const  nib  )  const [virtual]

Entity filter: Returns max entity ranged squared (meters^2).

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual LCreal Eaagles::Network::DisIO::getMaxTimeDR ( const Simulation::Nib *const  nib  )  const [virtual]

Dead-Reckoning: Returns max DR time before next 'heart beat' (seconds).

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual LCreal Eaagles::Network::DisIO::getMaxPositionErr ( const Simulation::Nib *const  nib  )  const [virtual]

Dead-Reckoning: Returns max DR position error (meters).

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual LCreal Eaagles::Network::DisIO::getMaxOrientationErr ( const Simulation::Nib *const  nib  )  const [virtual]

Dead-Reckoning: Returns max DR orientation error (radians).

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual LCreal Eaagles::Network::DisIO::getMaxAge ( const Simulation::Nib *const  nib  )  const [virtual]

Dead-Reckoning: Returns max age before a networked player is removed (seconds).

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual Simulation::Nib* Eaagles::Network::DisIO::createNewOutputNib ( Simulation::Player *const   player  )  [virtual]

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual void Eaagles::Network::DisIO::processEntityStatePDU ( const EntityStatePDU *const  pdu  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::processFirePDU ( const FirePDU *const  pdu  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::processDetonationPDU ( const DetonationPDU *const   pdu  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::processElectromagneticEmissionPDU ( const ElectromagneticEmissionPDU *const   pdu  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::processSignalPDU ( SignalPDU *const  pdu  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::processTransmitterPDU ( TransmitterPDU *const   pdu  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::processDataQueryPDU ( DataQueryPDU *const  pdu  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::processDataPDU ( DataPDU *const  pdu  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::processCommentPDU ( CommentPDU *const  pdu  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::clearEmissionPduHandlers (  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::addEmissionPduHandler ( const DisEmissionPduHandler *const   item  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::defineFederateName (  )  [protected, virtual]

virtual void Eaagles::Network::DisIO::defineFederationName (  )  [protected, virtual]

virtual bool Eaagles::Network::DisIO::setSiteID ( const unsigned short  v  )  [protected, virtual]

Sets the network's site ID.

virtual bool Eaagles::Network::DisIO::setApplicationID ( const unsigned short  v  )  [protected, virtual]

Sets the network's application ID.

virtual bool Eaagles::Network::DisIO::setExerciseID ( const unsigned char  v  )  [protected, virtual]

Sets the network's exercise ID.

virtual bool Eaagles::Network::DisIO::setSlotNetInput ( Basic::LcNetHandler *const   msg  )  [protected, virtual]

Network input handler.

virtual bool Eaagles::Network::DisIO::setSlotNetOutput ( Basic::LcNetHandler *const   msg  )  [protected, virtual]

Network output handler.

virtual bool Eaagles::Network::DisIO::setSlotVersion ( const Basic::LcNumber *const  num  )  [protected, virtual]

DIS version.

virtual bool Eaagles::Network::DisIO::setSlotLink16NeedsRadio ( const Basic::LcNumber *const  num  )  [protected, virtual]

Link-16 meeds a radio flag.

virtual bool Eaagles::Network::DisIO::setSlotMaxTimeDR ( const Basic::LcPairStream *const  msg  )  [protected, virtual]

Sets the max DR time(s) for selected entity types.

virtual bool Eaagles::Network::DisIO::setSlotMaxTimeDR ( const Basic::LcTime *const   msg  )  [protected, virtual]

Sets the max DR time(s) for all entity types.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotMaxPositionErr ( const Basic::LcPairStream *const  msg  )  [protected, virtual]

Sets the max positional error(s) for selected entity types.

virtual bool Eaagles::Network::DisIO::setSlotMaxPositionErr ( const Basic::LcDistance *const   msg  )  [protected, virtual]

Sets the max positional error(s) for all entity types.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotMaxOrientationErr ( const Basic::LcPairStream *const  msg  )  [protected, virtual]

Sets the max orientation error(s) for selected entity types.

virtual bool Eaagles::Network::DisIO::setSlotMaxOrientationErr ( const Basic::LcAngle *const  msg  )  [protected, virtual]

Sets the max orientation error(s) for all entity types.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotMaxAge ( const Basic::LcPairStream *const  msg  )  [protected, virtual]

Sets the max age(s) for selected entity types.

virtual bool Eaagles::Network::DisIO::setSlotMaxAge ( const Basic::LcTime *const   msg  )  [protected, virtual]

Sets the max age(s) for all entity types.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotMaxEntityRange ( const Basic::LcPairStream *const  msg  )  [protected, virtual]

Sets the max entity range(s) for selected entity types.

virtual bool Eaagles::Network::DisIO::setSlotMaxEntityRange ( const Basic::LcDistance *const   msg  )  [protected, virtual]

Sets the max entity range(s) for all entity types.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotEmissionPduHandlers ( Basic::LcPairStream *const   msg  )  [protected, virtual]

Sets the list of Electromagnetic Emission PDU handlers.

virtual bool Eaagles::Network::DisIO::setSlotSiteID ( const Basic::LcNumber *const  num  )  [protected, virtual]

Sets Site ID.

virtual bool Eaagles::Network::DisIO::setSlotApplicationID ( const Basic::LcNumber *const  num  )  [protected, virtual]

Sets Application ID.

virtual bool Eaagles::Network::DisIO::setSlotExerciseID ( const Basic::LcNumber *const  num  )  [protected, virtual]

Sets Exercise ID.

virtual bool Eaagles::Network::DisIO::slot2KD ( const char *const  slotname,
unsigned char *const  k,
unsigned char *const  d 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxTimeDR ( const LCreal  v,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxTimeDR ( const Basic::LcTime *const   p,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxPositionErr ( const LCreal  v,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxPositionErr ( const Basic::LcDistance *const   p,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxOrientationErr ( const LCreal  v,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxOrientationErr ( const Basic::LcAngle *const  p,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxAge ( const LCreal  v,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxAge ( const Basic::LcTime *const   p,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxEntityRange ( const LCreal  v,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setMaxEntityRange ( const Basic::LcDistance *const   p,
const unsigned char  kind,
const unsigned char  domain 
) [protected, virtual]

virtual bool Eaagles::Network::DisIO::setSlotFederateName ( const Basic::LcString *const  msg  )  [protected, virtual]

Sets our federate name.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::setSlotFederationName ( const Basic::LcString *const  msg  )  [protected, virtual]

Sets our federation name.

Reimplemented from Eaagles::Simulation::NetworkIO.

virtual bool Eaagles::Network::DisIO::initNetwork (  )  [protected, virtual]

Initialize the network.

Implements Eaagles::Simulation::NetworkIO.

virtual void Eaagles::Network::DisIO::netInputHander (  )  [protected, virtual]

Network input handler.

Implements Eaagles::Simulation::NetworkIO.

virtual void Eaagles::Network::DisIO::processInputList (  )  [protected, virtual]

Update players/systems from the Input-list.

Implements Eaagles::Simulation::NetworkIO.

virtual Simulation::Nib* Eaagles::Network::DisIO::nibFactory ( const Simulation::NetworkIO::IoType  ioType  )  [protected, virtual]

Create a new NibDisIO.

Implements Eaagles::Simulation::NetworkIO.


Member Data Documentation

SPtr<Basic::LcNetHandler> Eaagles::Network::DisIO::netInput [private]

Input network handler.

SPtr<Basic::LcNetHandler> Eaagles::Network::DisIO::netOutput [private]

Output network handler.

unsigned char Eaagles::Network::DisIO::version [private]

Version number [ 0 .. 6 ].

bool Eaagles::Network::DisIO::link16NeedsRadio [private]

default false, we do not need emission level link16. True otherwise.

unsigned short Eaagles::Network::DisIO::siteID [private]

Site ID.

unsigned short Eaagles::Network::DisIO::appID [private]

Application ID.

unsigned char Eaagles::Network::DisIO::exerciseID [private]

Exercise ID.

LCreal Eaagles::Network::DisIO::maxEntityRange[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Max range from ownship (meters).

Reimplemented from Eaagles::Simulation::NetworkIO.

LCreal Eaagles::Network::DisIO::maxEntityRange2[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Max range squared from ownship (meters^2).

Reimplemented from Eaagles::Simulation::NetworkIO.

LCreal Eaagles::Network::DisIO::maxTimeDR[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Maximum DR time (seconds).

Reimplemented from Eaagles::Simulation::NetworkIO.

LCreal Eaagles::Network::DisIO::maxPositionErr[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Maximum position error (meters).

Reimplemented from Eaagles::Simulation::NetworkIO.

LCreal Eaagles::Network::DisIO::maxOrientationErr[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Maximum orientation error (radians).

Reimplemented from Eaagles::Simulation::NetworkIO.

LCreal Eaagles::Network::DisIO::maxAge[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private]

Maximum age of networked players (seconds).

Reimplemented from Eaagles::Simulation::NetworkIO.

const int Eaagles::Network::DisIO::MAX_EMISSION_HANDLERS = 500 [static, private]

Max table size.

const DisEmissionPduHandler* Eaagles::Network::DisIO::emissionHandlers[MAX_EMISSION_HANDLERS] [private]

Table of pointers to emission PDU handlers; DisEmissionPduHandler objects.

unsigned int Eaagles::Network::DisIO::nEmissionHandlers [private]

Number of iemission PDU handlers in the table, 'emissionHandlers'.


Generated on Tue Dec 19 16:27:34 2006 for Eaagles by  doxygen 1.5.0