#include #include #include #include #include #include #include #include using namespace std; // VARIABLES GLOBALES namespace{ RTIfedTime temps(0.0); RTIfedTime lookahead(1.0); RTIfedTime endTime(10); bool timeRegulation = false; bool timeConstrained = false; int drone_ID; int X_ID; int H_ID; } class Federe_Interactif : public RTI::RTIambassador, public NullFederateAmbassador { double X; bool que; public: RTI::ObjectHandle myHandle; Federe_Interactif() {X=42;tag=false;que=false;} virtual ~Federe_Interactif() throw (RTI::FederateInternalError) {} bool tag; void askOwner() { RTI::ObjectHandle h = getObjectInstanceHandle("quad_obj"); std::cout<isAttributeOwnedByFederate(h,X_ID); // std::cout<<"IS H owned "<askOwner(); callRFE(); exit(1); } // FEDERARION MANAGEMENT // createFederationExecution void callCFE (const char* const path){ int test = 1; try { myFedere_Interactif->createFederationExecution("Federation_Interactive",path); } catch (RTI::Exception& e) { test = 0; std::cout << "catch " << e._name << " reason " << e._reason <destroyFederationExecution("Federation_Interactive"); } catch (RTI::Exception& e) { test = 0; std::cout << "catch " << e._name << " reason " << e._reason <joinFederationExecution(name, "Federation_Interactive", myFedere_Interactif); } catch (RTI::Exception& e) { test = 0; std::cout << "catch " << e._name << " reason " << e._reason <resignFederationExecution(RTI::DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES); } catch (RTI::Exception& e) { test = 0; std::cout << "catch " << e._name << " reason " << e._reason <getObjectClassHandle("quad"); X_ID = myFedere_Interactif->getAttributeHandle("X", drone_ID); H_ID = myFedere_Interactif->getAttributeHandle("H", drone_ID); } //Pub { auto_ptr attributes (RTI::AttributeHandleSetFactory::create(1)); attributes->add(X_ID); myFedere_Interactif->publishObjectClass(drone_ID, *attributes); myFedere_Interactif->myHandle = myFedere_Interactif->registerObjectInstance(drone_ID,"quad_obj"); } //sub { auto_ptr attributes (RTI::AttributeHandleSetFactory::create(1)); attributes->add(H_ID); myFedere_Interactif->subscribeObjectClassAttributes(drone_ID, *attributes, RTI::RTI_TRUE); } }