void NetIO::clearAllInteractionParameterHandles() { for (unsigned int i = 1; i <= MAX_PARAMETERS; i++) { setInteractionParameterHandle(i,0); } }
//------------------------------------------------------------------------------ // publishAndSubscribe() //------------------------------------------------------------------------------ bool NetIO::publishAndSubscribeMunitionDetonation() { RTI::RTIambassador* p = getRTIambassador(); bool ok = true; // ---------- // Get handles to the class, attributes and parameters // ---------- try { // --- // Munition detonation Interaction class handle and parameter handles // --- { RTI::InteractionClassHandle handle = p->getInteractionClassHandle(MunitionDetonation::getInteractionFedName()); setInteractionClassHandle(MUNITION_DETONATION_INTERACTION, handle ); setInteractionParameterHandle( DETONATION_LOCATION_MD_PI, p->getParameterHandle( MunitionDetonation::getDetonationLocationParameterFedName(), handle) ); setInteractionParameterHandle( DETONATION_RESULT_CODE_MD_PI, p->getParameterHandle( MunitionDetonation::getDetonationResultCodeParameterFedName(), handle) ); setInteractionParameterHandle( EVENT_IDENTIFIER_MD_PI, p->getParameterHandle( MunitionDetonation::getEventIdentifierParameterFedName(), handle) ); setInteractionParameterHandle( FIRING_OBJECT_IDENTIFIER_MD_PI, p->getParameterHandle( MunitionDetonation::getFiringObjectIdentifierParameterFedName(), handle) ); setInteractionParameterHandle( FINAL_VELOCITY_VECTOR_MD_PI, p->getParameterHandle( MunitionDetonation::getFinalVelocityVectorParameterFedName(), handle) ); setInteractionParameterHandle( FUSE_TYPE_MD_PI, p->getParameterHandle( MunitionDetonation::getFuseTypeParameterFedName(), handle) ); setInteractionParameterHandle( MUNITION_OBJECT_IDENTIFIER_MD_PI, p->getParameterHandle( MunitionDetonation::getMunitionObjectIdentifierParameterFedName(), handle) ); setInteractionParameterHandle( MUNITION_TYPE_MD_PI, p->getParameterHandle( MunitionDetonation::getMunitionTypeParameterFedName(), handle) ); setInteractionParameterHandle( QUANTITY_FIRED_MD_PI, p->getParameterHandle( MunitionDetonation::getQuantityFiredParameterFedName(), handle) ); setInteractionParameterHandle( RATE_OF_FIRE_MD_PI, p->getParameterHandle( MunitionDetonation::getRateOfFireParameterFedName(), handle) ); setInteractionParameterHandle( RELATIVE_DETONATION_LOCATION_MD_PI, p->getParameterHandle( MunitionDetonation::getRelativeDetonationLocationParameterFedName(), handle) ); setInteractionParameterHandle( TARGET_OBJECT_IDENTIFIER_MD_PI, p->getParameterHandle( MunitionDetonation::getTargetObjectIdentifierParameterFedName(), handle) ); setInteractionParameterHandle( WARHEAD_TYPE_MD_PI, p->getParameterHandle( MunitionDetonation::getWarheadTypeParameterFedName(), handle) ); } } catch( RTI::Exception& e) { std::cerr << &e << std::endl; ok = false; } // ---------- // Publish & Subscribe to class attributes // ---------- if (ok) { try { // --- // Publish these interactions // --- if (isOutputEnabled()) { p->publishInteractionClass(getInteractionClassHandle(MUNITION_DETONATION_INTERACTION)); setInteractionClassPublished(MUNITION_DETONATION_INTERACTION, true); } // --- // Subscribe to these interactions // --- if (isInputEnabled()) { p->subscribeInteractionClass(getInteractionClassHandle(MUNITION_DETONATION_INTERACTION)); setInteractionClassSubscribed(MUNITION_DETONATION_INTERACTION, true); } } catch (RTI::Exception& e) { std::cerr << &e << std::endl; ok = false; } } return ok; }