@@ -200,15 +200,15 @@ oms::Component* oms::ComponentFMUCS::NewComponent(const oms::ComRef& cref, oms::
200200 else if (v.isOutput ())
201201 {
202202 component->outputs .push_back (v);
203- component->outputsGraph .addNode (Connector (oms_causality_output, v.getType (), v.getCref ()));
203+ component->outputsGraph .addNode (Connector (oms_causality_output, v.getType (), v.getCref (), component-> getFullCref () ));
204204 }
205205 else if (v.isParameter ())
206206 component->parameters .push_back (v);
207207 else if (v.isCalculatedParameter ())
208208 component->calculatedParameters .push_back (v);
209209
210210 if (v.isInitialUnknown ())
211- component->initialUnknownsGraph .addNode (Connector (v.getCausality (), v.getType (), v.getCref ()));
211+ component->initialUnknownsGraph .addNode (Connector (v.getCausality (), v.getType (), v.getCref (), component-> getFullCref () ));
212212
213213 component->exportVariables .push_back (v.isInput () || v.isOutput ());
214214 }
@@ -220,15 +220,15 @@ oms::Component* oms::ComponentFMUCS::NewComponent(const oms::ComRef& cref, oms::
220220 int i = 1 ;
221221 int size = 1 + component->inputs .size ();
222222 for (const auto & v : component->inputs )
223- component->connectors .push_back (new Connector (oms_causality_input, v.getType (), v.getCref (), i++/(double )size));
223+ component->connectors .push_back (new Connector (oms_causality_input, v.getType (), v.getCref (), component-> getFullCref (), i++/(double )size));
224224 i = 1 ;
225225 size = 1 + component->outputs .size ();
226226 for (const auto & v : component->outputs )
227- component->connectors .push_back (new Connector (oms_causality_output, v.getType (), v.getCref (), i++/(double )size));
227+ component->connectors .push_back (new Connector (oms_causality_output, v.getType (), v.getCref (), component-> getFullCref (), i++/(double )size));
228228 for (const auto & v : component->parameters )
229- component->connectors .push_back (new Connector (oms_causality_parameter, v.getType (), v.getCref ()));
229+ component->connectors .push_back (new Connector (oms_causality_parameter, v.getType (), v.getCref (), component-> getFullCref () ));
230230 for (const auto & v : component->calculatedParameters )
231- component->connectors .push_back (new Connector (oms_causality_calculatedParameter, v.getType (), v.getCref ()));
231+ component->connectors .push_back (new Connector (oms_causality_calculatedParameter, v.getType (), v.getCref (), component-> getFullCref () ));
232232 component->connectors .push_back (NULL );
233233 component->element .setConnectors (&component->connectors [0 ]);
234234
@@ -279,7 +279,7 @@ oms::Component* oms::ComponentFMUCS::NewComponent(const pugi::xml_node& node, om
279279 // import connectors
280280 for (pugi::xml_node_iterator itConnectors = (*it).begin (); itConnectors != (*it).end (); ++itConnectors)
281281 {
282- component->connectors .push_back (oms::Connector::NewConnector (*itConnectors, sspVersion));
282+ component->connectors .push_back (oms::Connector::NewConnector (*itConnectors, sspVersion, component-> getFullCref () ));
283283 }
284284 }
285285 else if (name == oms::ssp::Draft20180219::ssd::element_geometry)
@@ -376,7 +376,7 @@ oms_status_enu_t oms::ComponentFMUCS::initializeDependencyGraph_initialUnknowns(
376376 {
377377 logDebug (std::string (getCref ()) + " : " + getPath () + " initial unknown " + std::string (initialUnknownsGraph.getNodes ()[i]) + " depends on all" );
378378 for (int j = 0 ; j < inputs.size (); j++)
379- initialUnknownsGraph.addEdge (inputs[j].makeConnector (), initialUnknownsGraph.getNodes ()[i]);
379+ initialUnknownsGraph.addEdge (inputs[j].makeConnector (this -> getFullCref () ), initialUnknownsGraph.getNodes ()[i]);
380380 }
381381 return oms_status_ok;
382382 }
@@ -431,7 +431,7 @@ oms_status_enu_t oms::ComponentFMUCS::initializeDependencyGraph_initialUnknowns(
431431 {
432432 logDebug (std::string (getCref ()) + " : " + getPath () + " initial unknown " + std::string (initialUnknownsGraph.getNodes ()[i]) + " depends on all" );
433433 for (int j = 0 ; j < inputs.size (); j++)
434- initialUnknownsGraph.addEdge (inputs[j].makeConnector (), initialUnknownsGraph.getNodes ()[i]);
434+ initialUnknownsGraph.addEdge (inputs[j].makeConnector (this -> getFullCref () ), initialUnknownsGraph.getNodes ()[i]);
435435 }
436436 else
437437 {
@@ -445,7 +445,7 @@ oms_status_enu_t oms::ComponentFMUCS::initializeDependencyGraph_initialUnknowns(
445445 return oms_status_error;
446446 }
447447 logDebug (std::string (getCref ()) + " : " + getPath () + " initial unknown " + std::string (initialUnknownsGraph.getNodes ()[i]) + " depends on " + std::string (allVariables[dependency[j] - 1 ]));
448- initialUnknownsGraph.addEdge (allVariables[dependency[j] - 1 ].makeConnector (), initialUnknownsGraph.getNodes ()[i]);
448+ initialUnknownsGraph.addEdge (allVariables[dependency[j] - 1 ].makeConnector (this -> getFullCref () ), initialUnknownsGraph.getNodes ()[i]);
449449 }
450450 }
451451 }
@@ -482,7 +482,7 @@ oms_status_enu_t oms::ComponentFMUCS::initializeDependencyGraph_outputs()
482482 {
483483 logDebug (std::string (getCref ()) + " : " + getPath () + " output " + std::string (outputs[i]) + " depends on all" );
484484 for (int j = 0 ; j < inputs.size (); j++)
485- outputsGraph.addEdge (inputs[j].makeConnector () , outputs[i].makeConnector ());
485+ outputsGraph.addEdge (inputs[j].makeConnector (this -> getFullCref ()) , outputs[i].makeConnector (this -> getFullCref () ));
486486 }
487487 else
488488 {
@@ -494,7 +494,7 @@ oms_status_enu_t oms::ComponentFMUCS::initializeDependencyGraph_outputs()
494494 return logError (std::string (getCref ()) + " : erroneous dependencies detected in modelDescription.xml" );
495495 }
496496 logDebug (std::string (getCref ()) + " : " + getPath () + " output " + std::string (outputs[i]) + " depends on " + std::string (allVariables[dependency[j] - 1 ]));
497- outputsGraph.addEdge (allVariables[dependency[j] - 1 ].makeConnector () , outputs[i].makeConnector ());
497+ outputsGraph.addEdge (allVariables[dependency[j] - 1 ].makeConnector (this -> getFullCref ()) , outputs[i].makeConnector (this -> getFullCref () ));
498498 }
499499 }
500500 }
@@ -1222,3 +1222,12 @@ oms_status_enu_t oms::ComponentFMUCS::setFaultInjection(const oms::ComRef& signa
12221222 }
12231223 return oms_status_ok;
12241224}
1225+
1226+ void oms::ComponentFMUCS::getFilteredSignals (std::vector<Connector>& filteredSignals) const
1227+ {
1228+ for (unsigned int i = 0 ; i < allVariables.size (); ++i)
1229+ {
1230+ if (exportVariables[i])
1231+ filteredSignals.push_back (allVariables[i].makeConnector (this ->getFullCref ()));
1232+ }
1233+ }
0 commit comments