Inheritance diagram for Eaagles::Network::DisIO:


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.
Standard (IST-CF-03-01, May 5, 2003) "munition domain" codes [ 0 .. 11 ].
| anonymous enum |
| anonymous enum |
Standard (IST-CF-03-01, May 5, 2003) "DIS Protocol Version" codes [ 0 .. 6 ].
| anonymous enum |
Standard (IST-CF-03-01, May 5, 2003) "3.2 PDU Type.
| anonymous enum |
Standard (IST-CF-03-01, May 5, 2003) PDU Family.
| 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. |
| Eaagles::Network::DisIO::DisIO | ( | ) |
| 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] |
| 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] |
| 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] |
| 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] |
| virtual bool Eaagles::Network::DisIO::setSlotFederationName | ( | const Basic::LcString *const | msg | ) | [protected, virtual] |
| virtual bool Eaagles::Network::DisIO::initNetwork | ( | ) | [protected, virtual] |
| virtual void Eaagles::Network::DisIO::netInputHander | ( | ) | [protected, virtual] |
| virtual void Eaagles::Network::DisIO::processInputList | ( | ) | [protected, virtual] |
| virtual Simulation::Nib* Eaagles::Network::DisIO::nibFactory | ( | const Simulation::NetworkIO::IoType | ioType | ) | [protected, virtual] |
Input network handler.
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] |
LCreal Eaagles::Network::DisIO::maxEntityRange2[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private] |
LCreal Eaagles::Network::DisIO::maxTimeDR[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private] |
LCreal Eaagles::Network::DisIO::maxPositionErr[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private] |
LCreal Eaagles::Network::DisIO::maxOrientationErr[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private] |
LCreal Eaagles::Network::DisIO::maxAge[NUM_ENTITY_KINDS][MAX_ENTITY_DOMAINS] [private] |
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'.
1.5.0