void MyModuleInit(RTC::Manager* manager) { RGB2GrayInit(manager); RTC::RtcBase* comp; // Create a component comp = manager->createComponent("RGB2Gray"); // Example // The following procedure is examples how handle RT-Components. // These should not be in this function. // Get the component's object reference RTC::RTObject_var rtobj; rtobj = RTC::RTObject::_narrow(manager->getPOA()->servant_to_reference(comp)); // Get the port list of the component PortServiceList* portlist; portlist = rtobj->get_ports(); // getting port profiles std::cout << "Number of Ports: "; std::cout << portlist->length() << std::endl << std::endl; for (CORBA::ULong i(0), n(portlist->length()); i < n; ++i) { PortService_ptr port; port = (*portlist)[i]; std::cout << "Port" << i << " (name): "; std::cout << port->get_port_profile()->name << std::endl; RTC::PortInterfaceProfileList iflist; iflist = port->get_port_profile()->interfaces; std::cout << "---interfaces---" << std::endl; for (CORBA::ULong i(0), n(iflist.length()); i < n; ++i) { std::cout << "I/F name: "; std::cout << iflist[i].instance_name << std::endl; std::cout << "I/F type: "; std::cout << iflist[i].type_name << std::endl; const char* pol; pol = iflist[i].polarity == 0 ? "PROVIDED" : "REQUIRED"; std::cout << "Polarity: " << pol << std::endl; } std::cout << "---properties---" << std::endl; NVUtil::dump(port->get_port_profile()->properties); std::cout << "----------------" << std::endl << std::endl; } return; }
RTSPortExt::RTSPortExt(const string& name_, PortService_var port_, RTSCompExt* parent) : rtsComp(parent), isConnected_(false) { isInPort = true; name = name_; port = port_; // if (port) { RTC::PortProfile_var profile = port->get_port_profile(); RTC::PortInterfaceProfileList interfaceList = profile->interfaces; for (CORBA::ULong index = 0; index < interfaceList.length(); ++index) { RTC::PortInterfaceProfile ifProfile = interfaceList[index]; PortInterfaceExtPtr portIf(new PortInterfaceExt()); if (parent) { portIf->rtc_name = parent->name; } const char* port_name; portIf->port_name = string((const char*)profile->name); if (ifProfile.polarity == PortInterfacePolarity::REQUIRED) { portIf->if_polarity = "required"; } else { portIf->if_polarity = "provided"; } const char* if_iname; const char* if_tname; if_iname = (const char*)ifProfile.instance_name; if_tname = (const char*)ifProfile.type_name; DDEBUG_V("name: %s, IF name: %s, instance_name: %s, type_name: %s", name_.c_str(), portIf->port_name.c_str(), if_iname, if_tname); portIf->if_tname = if_tname; portIf->if_iname = if_iname; interList.push_back(portIf); isConnected_ = isConnected(); } } }
void RTSPropertiesViewImpl::showPortConcrete(PortProfile* portprofile, QTreeWidgetItem* item) { coil::Properties pproperties = NVUtil::toProperties(portprofile->properties); string portName = string(portprofile->name); RTCCommonUtil::splitPortName(portName); string portType = pproperties["port.port_type"]; QTreeWidgetItem* port = new QTreeWidgetItem; if (boost::iequals(portType, "CorbaPort")) { port->setText(0, QString("ServicePort")); port->setIcon(0, QIcon(":/RTSystemEditor/icons/IconServicePort.png")); } else { port->setText(0, QString(portType.substr(4).c_str())); port->setIcon(0, QIcon(boost::iequals(portType, "DataOutPort") ? ":/RTSystemEditor/icons/IconOutPort.png" : ":/RTSystemEditor/icons/IconInPort.png")); } item->addChild(port); QTreeWidgetItem* portChild = new QTreeWidgetItem; portChild->setText(0, _("Name")); portChild->setText(1, QString(portName.c_str())); port->addChild(portChild); if (boost::iequals(portType, "CorbaPort")) { RTC::PortInterfaceProfileList iflist = portprofile->interfaces; for (CORBA::ULong i = 0; i < iflist.length(); i++) { QTreeWidgetItem* ifport = new QTreeWidgetItem; ifport->setText(0, QString("PortInterfaceProfile")); ifport->setIcon(0, QIcon(":/RTSystemEditor/icons/IconPIP.png")); port->addChild(ifport); QTreeWidgetItem* ifportc = new QTreeWidgetItem; ifportc->setText(0, QString("Interface Name")); ifportc->setText(1, QString(iflist[i].instance_name)); ifport->addChild(ifportc); ifportc = new QTreeWidgetItem; ifportc->setText(0, QString("Type Name")); ifportc->setText(1, QString(iflist[i].type_name)); ifport->addChild(ifportc); ifportc = new QTreeWidgetItem; ifportc->setText(0, QString("Port Interface Polarity")); ifportc->setText(1, QString((iflist[i].polarity == 0 ? "PROVIDED" : "REQUIRED"))); ifport->addChild(ifportc); } } // Get the port properties. QTreeWidgetItem* portProp = new QTreeWidgetItem; portProp->setText(0, _("Properties")); port->addChild(portProp); vector<string> portNames = pproperties.propertyNames(); for (vector<string>::iterator iter = portNames.begin(); iter != portNames.end(); iter++) { QTreeWidgetItem* portPropChild = new QTreeWidgetItem; portPropChild->setText(0, QString((*iter).c_str())); portPropChild->setText(1, QString((pproperties[*iter]).c_str())); portProp->addChild(portPropChild); } }