def shutdown(self): guard_master = OpenRTM_aist.ScopedLock(self._masterMutex) for master in self._masters: try: if CORBA.is_nil(master): continue master.remove_slave_manager(self._objref) except BaseException: pass self._masters = [] guard_slave = OpenRTM_aist.ScopedLock(self._slaveMutex) for slaves in self._slaves: try: if CORBA.is_nil(slaves): continue slaves.remove_master_manager(self._objref) except BaseException: pass self._slaves = [] wait_time = 1.0 if self._mgr.getConfig().findNode("manager.termination_waittime"): s = self._mgr.getConfig().getProperty("manager.termination_waittime") ret, wait_time = OpenRTM_aist.stringTo(wait_time, s) self._mgr.terminate() return RTC.RTC_OK
def destroyRecursive(self, context): cont = True bl = [] bi = 0 bl, bi = context.list(self._blLength) while cont: for i in range(len(bl)): if bl[i].binding_type == CosNaming.ncontext: obj = context.resolve(bl[i].binding_name) next_context = obj._narrow(CosNaming.NamingContext) self.destroyRecursive(next_context) context.unbind(bl[i].binding_name) next_context.destroy() elif bl[i].binding_type == CosNaming.nobject: context.unbind(bl[i].binding_name) else: assert(0) if CORBA.is_nil(bi): cont = False else: bi.next_n(self._blLength, bl) if not (CORBA.is_nil(bi)): bi.destroy() return
def PBMeshSmeshPressed(self): from omniORB import CORBA import salome from salome.kernel import studyedit from salome.smesh.smeshstudytools import SMeshStudyTools from salome.gui import helper as guihelper from salome.smesh import smeshBuilder smesh = smeshBuilder.New(salome.myStudy) mySObject, myEntry = guihelper.getSObjectSelected() if CORBA.is_nil(mySObject) or mySObject==None: #QMessageBox.critical(self, "Mesh", "select an input mesh") self.LE_MeshSmesh.setText("") self.MeshIn="" self.LE_MeshFile.setText("") self.fichierIn="" return self.smeshStudyTool = SMeshStudyTools() try: self.__selectedMesh = self.smeshStudyTool.getMeshObjectFromSObject(mySObject) except: QMessageBox.critical(self, "Mesh", "select an input mesh") return if CORBA.is_nil(self.__selectedMesh): QMessageBox.critical(self, "Mesh", "select an input mesh") return myName = mySObject.GetName() #print "MeshSmeshNameChanged", myName self.MeshIn=myName self.LE_MeshSmesh.setText(myName) self.LE_MeshFile.setText("") self.fichierIn=""
def deactivate(rtc, ec_id=0): if CORBA.is_nil(rtc): return RTC.BAD_PARAMETER ec = get_actual_ec(rtc, ec_id) if CORBA.is_nil(ec): return RTC.BAD_PARAMETER return ec.deactivate_component(rtc)
def destroyRecursive(self, context): cont = True bl = [] bi = 0 bl, bi = context.list(self._blLength) while cont: for i in range(len(bl)): if bl[i].binding_type == CosNaming.ncontext: obj = context.resolve(bl[i].binding_name) next_context = obj._narrow(CosNaming.NamingContext) self.destroyRecursive(next_context) context.unbind(bl[i].binding_name) next_context.destroy() elif bl[i].binding_type == CosNaming.nobject: context.unbind(bl[i].binding_name) else: assert(0) if CORBA.is_nil(bi): cont = False else: bi.next_n(self._blLength, bl) if not (CORBA.is_nil(bi)): bi.destroy() return
def reset(rtc, ec_id=0): if CORBA.is_nil(rtc): return RTC.BAD_PARAMETER ec = get_actual_ec(rtc, ec_id) if CORBA.is_nil(ec): return RTC.BAD_PARAMETER return ec.reset_component(rtc)
def remove_rtc_to_default_ec(localcomp, othercomp): if CORBA.is_nil(othercomp): return RTC.BAD_PARAMETER ec = get_actual_ec(localcomp) if CORBA.is_nil(ec): return RTC.BAD_PARAMETER return ec.remove_component(othercomp)
def onSelectSmeshObject(self): ''' This function is the slot connected on the mesh selection button. It memorizes the selected mesh and put its name in the text field of the dialog box. ''' mySObject, myEntry = guihelper.getSObjectSelected() if CORBA.is_nil(mySObject): self.__ui.txtSmeshObject.setText("You must choose a mesh") self.__ui.txtGroupName.setText("") self.__ui.txtSmeshObject.setEnabled(False) self.__ui.btnAddInput.setEnabled(False) self.__selectedMesh = None return self.smeshStudyTool.updateStudy(studyedit.getActiveStudyId()) self.__selectedMesh = self.smeshStudyTool.getMeshObjectFromSObject(mySObject) if CORBA.is_nil(self.__selectedMesh): self.__ui.txtSmeshObject.setText("The selected object is not a mesh") self.__ui.txtGroupName.setText("") self.__ui.txtSmeshObject.setEnabled(False) self.__ui.btnAddInput.setEnabled(False) self.__selectedMesh = None return myName = mySObject.GetName() self.__ui.txtSmeshObject.setText(myName) self.__ui.txtSmeshObject.setEnabled(True) self.__ui.btnAddInput.setEnabled(True) # We can suggest a default group name from the mesh name self.__ui.txtGroupName.setText(myName)
def exit(self): guard_master = OpenRTM_aist.ScopedLock(self._masterMutex) for master in self._masters: try: if CORBA.is_nil(master): continue master.remove_slave_manager(self._objref) except BaseException: pass self._masters = [] guard_slave = OpenRTM_aist.ScopedLock(self._slaveMutex) for slave in self._slaves: try: if CORBA.is_nil(slave): continue slave.remove_master_manager(self._objref) except BaseException: pass self._slaves = [] del guard_slave del guard_master if not CORBA.is_nil(self._objref): poa = self._mgr.getORB().resolve_initial_references("omniINSPOA") poa.deactivate_object(poa.servant_to_id(self)) # self._objref._release() return
def get_state(rtc, ec_id=0): if CORBA.is_nil(rtc): return False, RTC.CREATED_STATE ec = get_actual_ec(rtc, ec_id) if CORBA.is_nil(ec): return False, RTC.CREATED_STATE state = ec.get_component_state(rtc) return True, state
def create_component(self, module_name): self._rtcout.RTC_TRACE("create_component(%s)", module_name) rtc = self.createComponentByAddress(module_name) if not CORBA.is_nil(rtc): return rtc rtc = self.createComponentByManagerName(module_name) if not CORBA.is_nil(rtc): return rtc #module_name = module_name.split("&")[0] module_name = [module_name] self.getParameterByModulename("manager_address",module_name) manager_name = self.getParameterByModulename("manager_name",module_name) module_name = module_name[0] comp_param = CompParam(module_name) if self._isMaster: guard = OpenRTM_aist.ScopedLock(self._slaveMutex) for slave in self._slaves[:]: try: prof = slave.get_configuration() prop = OpenRTM_aist.Properties() OpenRTM_aist.NVUtil.copyToProperties(prop, prof) slave_lang = prop.getProperty("manager.language") if slave_lang == comp_param.language(): rtc = slave.create_component(module_name) if not CORBA.is_nil(rtc): return rtc except: self._rtcout.RTC_ERROR("Unknown exception cought.") self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception()) self._slaves.remove(slave) del guard if not manager_name: module_name = module_name + "&manager_name=manager_%p" rtc = self.createComponentByManagerName(module_name) return rtc else: # create on this manager rtc = self._mgr.createComponent(module_name) if rtc: return rtc.getObjRef() return RTC.RTObject._nil
def sdoToDFC(self, sdo, dfc): if CORBA.is_nil(sdo): return False dfc[0] = sdo._narrow(OpenRTM.DataFlowComponent) if CORBA.is_nil(dfc[0]): return False return True
def sdoToDFC(self, sdo, dfc): if CORBA.is_nil(sdo): return False dfc[0] = sdo._narrow(OpenRTM.DataFlowComponent) if CORBA.is_nil(dfc[0]): return False return True
def connect(name, prop, port0, port1): if CORBA.is_nil(port0): return RTC.BAD_PARAMETER # if CORBA.is_nil(port1): # return RTC.BAD_PARAMETER if not CORBA.is_nil(port1): if port0._is_equivalent(port1): return RTC.BAD_PARAMETER cprof = create_connector(name, prop, port0, port1) return port0.connect(cprof)[0]
def setOwner(self, comp): self._rtcout.RTC_TRACE("setOwner()") assert(not CORBA.is_nil(comp)) rtobj_ = comp._narrow(RTC.RTObject) if CORBA.is_nil(rtobj_): self._rtcout.RTC_ERROR("Narrowing failed.") return RTC.BAD_PARAMETER guard = OpenRTM_aist.ScopedLock(self._profileMutex) self._profile.owner = rtobj_ del guard return RTC.RTC_OK
def test_getPortRef(self): getP = self._pa.getPortRef("") self.assertEqual(CORBA.is_nil(getP), True) getP = self._pa.getPortRef("port1") self.assertEqual(CORBA.is_nil(getP), False) self.assertEqual(getP.get_port_profile().name, "port1") getP = self._pa.getPortRef("port0") self.assertEqual(CORBA.is_nil(getP), False) self.assertEqual(getP.get_port_profile().name, "port0") return
def CCCtest_getPortRef(self): getP = self._pa.getPortRef("") self.assertEqual(CORBA.is_nil(getP), True) getP = self._pa.getPortRef("port1") self.assertEqual(CORBA.is_nil(getP), False) self.assertEqual(getP.get_port_profile().name, "port1") getP = self._pa.getPortRef("port0") self.assertEqual(CORBA.is_nil(getP), False) self.assertEqual(getP.get_port_profile().name, "port0") return
def disconnect_by_port_name(localport, othername): if CORBA.is_nil(localport): return RTC.BAD_PARAMETER prof = localport.get_port_profile() if prof.name == othername: return RTC.BAD_PARAMETER conprof = localport.get_connector_profiles() for c in conprof: for p in c.ports: if not CORBA.is_nil(p): pp = p.get_port_profile() if pp.name == othername: return disconnect(c) return RTC.BAD_PARAMETER
def connect_by_name(name, prop, rtc0, port_name0, rtc1, port_name1): if CORBA.is_nil(rtc0): return RTC.BAD_PARAMETER if CORBA.is_nil(rtc1): return RTC.BAD_PARAMETER port0 = get_port_by_name(rtc0, port_name0) if CORBA.is_nil(port0): return RTC.BAD_PARAMETER port1 = get_port_by_name(rtc1, port_name1) if CORBA.is_nil(port1): return RTC.BAD_PARAMETER return connect(name, prop, port0, port1)
def get_components(self): self._rtcout.RTC_TRACE("get_components()") # get local component references rtcs = self._mgr.getComponents() crtcs = [] for rtc in rtcs: crtcs.append(rtc.getObjRef()) # get slaves' component references self._rtcout.RTC_DEBUG("%d slave managers exists.", len(self._slaves)) for slave in self._slaves[:]: try: if not CORBA.is_nil(slave): srtcs = slave.get_components() OpenRTM_aist.CORBA_SeqUtil.push_back_list(crtcs, srtcs) except: self._rtcout.RTC_ERROR("Unknown exception cought.") self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception()) self._slaves.remove(slave) #self._rtcout.RTC_INFO("slave (%d) has disappeared.", i) #self._slaves[i] = RTM.Manager._nil #OpenRTM_aist.CORBA_SeqUtil.erase(self._slaves, i) #i -= 1 return crtcs
def addComponent(self, comp): self._rtcout.RTC_TRACE("addComponent()") if CORBA.is_nil(comp): self._rtcout.RTC_ERROR("A nil reference was given.") return RTC.BAD_PARAMETER rtobj_ = comp._narrow(RTC.RTObject) if CORBA.is_nil(rtobj_): self._rtcout.RTC_ERROR("Narrowing was failed.") return RTC.RTC_ERROR guard = OpenRTM_aist.ScopedLock(self._profileMutex) OpenRTM_aist.CORBA_SeqUtil.push_back(self._profile.participants, rtobj_) del guard return RTC.RTC_OK
def getManager(): ''' Returns a reference to the Manager. Params: None Returns: a reference to the Manager (or None if there are network problems). Raises: Nothing. ''' global MGR_REF if MGR_REF == None: #If this function has never been called before... try: MGR_REF = getORB().string_to_object(getManagerCorbaloc()) if MGR_REF != None and (not CORBA.is_nil(MGR_REF)): try: MGR_REF._non_existent() MGR_REF = MGR_REF._narrow(Manager) except: MGR_REF = None else: MGR_REF = None except Exception, e: MGR_REF = None print_exc()
def onInitialize(self): self._rtcout.RTC_TRACE("onInitialize()") active_set = self._properties.getProperty("configuration.active_config", "default") if self._configsets.haveConfig(active_set): self._configsets.update(active_set) else: self._configsets.update("default") mgr = OpenRTM_aist.Manager.instance() sdos = [] for member in self._members[0]: if member == "": continue rtc = mgr.getComponent(member) if rtc is None: print "no RTC found: ", member continue sdo = rtc.getObjRef() if CORBA.is_nil(sdo): continue OpenRTM_aist.CORBA_SeqUtil.push_back(sdos, sdo) try: self._org.set_members(sdos) except: self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception()) return RTC.RTC_OK
def addOrganizationToTarget(self, member): conf = member._config if CORBA.is_nil(conf): return conf.add_organization(self._objref) return
def onInitialize(self): self._rtcout.RTC_TRACE("onInitialize()") active_set = self._properties.getProperty("configuration.active_config", "default") if self._configsets.haveConfig(active_set): self._configsets.update(active_set) else: self._configsets.update("default") mgr = OpenRTM_aist.Manager.instance() sdos = [] for member in self._members[0]: if member == "": continue rtc = mgr.getComponent(member) if rtc is None: print "no RTC found: ", member continue sdo = rtc.getObjRef() if CORBA.is_nil(sdo): continue OpenRTM_aist.CORBA_SeqUtil.push_back(sdos, sdo) try: self._org.set_members(sdos) except: self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception()) return RTC.RTC_OK
def subscribeFromRef(self, properties): self._rtcout.RTC_TRACE("subscribeFromRef()") index = OpenRTM_aist.NVUtil.find_index(properties, "dataport.corba_cdr.inport_ref") if index < 0: self._rtcout.RTC_ERROR("inport_ref not found") return False obj = None try: obj = any.from_any(properties[index].value, keep_structs=True) except: self._rtcout.RTC_ERROR(sys.exc_info()[0]) if not obj: self._rtcout.RTC_ERROR("prop[inport_ref] is not objref") return False if CORBA.is_nil(obj): self._rtcout.RTC_ERROR("prop[inport_ref] is not objref") return False if not self.setObject(obj): self._rtcout.RTC_ERROR("Setting object to consumer failed.") return False return True
def subscribeFromIor(self, properties): self._rtcout.RTC_TRACE("subscribeFromIor()") index = OpenRTM_aist.NVUtil.find_index(properties, "dataport.corba_cdr.inport_ior") if index < 0: self._rtcout.RTC_ERROR("inport_ior not found") return False ior = "" try: ior = any.from_any(properties[index].value, keep_structs=True) except: self._rtcout.RTC_ERROR(sys.exc_info()[0]) if not ior: self._rtcout.RTC_ERROR("inport_ior has no string") return False orb = OpenRTM_aist.Manager.instance().getORB() obj = orb.string_to_object(ior) if CORBA.is_nil(obj): self._rtcout.RTC_ERROR("invalid IOR string has been passed") return False if not self.setObject(obj): self._rtcout.RTC_WARN("Setting object to consumer failed.") return False return True
def subscribeFromIor(self, properties): self._rtcout.RTC_TRACE("subscribeFromIor()") index = OpenRTM_aist.NVUtil.find_index( properties, "dataport.corba_cdr.inport_ior") if index < 0: self._rtcout.RTC_ERROR("inport_ior not found") return False ior = "" try: ior = any.from_any(properties[index].value, keep_structs=True) except BaseException: self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception()) if not ior: self._rtcout.RTC_ERROR("inport_ior has no string") return False orb = OpenRTM_aist.Manager.instance().getORB() obj = orb.string_to_object(ior) if CORBA.is_nil(obj): self._rtcout.RTC_ERROR("invalid IOR string has been passed") return False if not self.setObject(obj): self._rtcout.RTC_WARN("Setting object to consumer failed.") return False return True
def subscribeFromRef(self, properties): self._rtcout.RTC_TRACE("subscribeFromRef()") index = OpenRTM_aist.NVUtil.find_index( properties, "dataport.corba_cdr.inport_ref") if index < 0: self._rtcout.RTC_ERROR("inport_ref not found") return False obj = None try: obj = any.from_any(properties[index].value, keep_structs=True) except BaseException: self._rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception()) if not obj: self._rtcout.RTC_ERROR("prop[inport_ref] is not objref") return False if CORBA.is_nil(obj): self._rtcout.RTC_ERROR("prop[inport_ref] is not objref") return False if not self.setObject(obj): self._rtcout.RTC_ERROR("Setting object to consumer failed.") return False return True
def bindComponent(self, rtc): ret = OpenRTM_aist.ExecutionContextBase.bindComponent(self, rtc) mgr = OpenRTM_aist.Manager.instance() threads_str = rtc.getProperties().getProperty("conf.default.members") str = [threads_str] threads = str[0].split("|") for thread in threads: rtcs = [] members = thread.split(",") for member in members: member = member.strip() if member == "": continue comp = mgr.getComponent(member) if comp is None: self._rtcout.RTC_ERROR("no RTC found: %s", member) continue rtobj = comp.getObjRef() if CORBA.is_nil(rtobj): continue rtcs.append(rtobj) self.addTask(rtcs) return ret
def get_component_profiles(self): rtcs = self._mgr.getComponents() cprofs = [rtc.get_component_profile() for rtc in rtcs] # copy slaves' component profiles guard = OpenRTM_aist.ScopedLock(self._slaveMutex) self._rtcout.RTC_DEBUG("%d slave managers exists.", len(self._slaves)) for slave in self._slaves[:]: try: if not CORBA.is_nil(slave): sprofs = slave.get_component_profiles() OpenRTM_aist.CORBA_SeqUtil.push_back_list(cprofs, sprofs) except: self._rtcout.RTC_ERROR("Unknown exception cought.") self._rtcout.RTC_DEBUG(OpenRTM_aist.Logger.print_exception()) self._slaves.remove(slave) #self._rtcout.RTC_INFO("slave (%d) has disappeared.", i) #self._slaves[i] = RTM.Manager._nil #OpenRTM_aist.CORBA_SeqUtil.erase(self._slaves, i) #i -= 1 del guard return cprofs
def getManager(): """ Returns a reference to the Manager. Params: None Returns: a reference to the Manager (or None if there are network problems). Raises: Nothing. """ global MGR_REF if MGR_REF == None: # If this function has never been called before... try: MGR_REF = getORB().string_to_object(getManagerCorbaloc()) if MGR_REF != None and (not CORBA.is_nil(MGR_REF)): try: MGR_REF._non_existent() MGR_REF = MGR_REF._narrow(Manager) except: MGR_REF = None else: MGR_REF = None except Exception, e: MGR_REF = None print_exc()
def setObjRef(self, ec_ptr): self._rtcout.RTC_TRACE("setObjRef()") assert (not CORBA.is_nil(ec_ptr)) guard = OpenRTM_aist.ScopedLock(self._profileMutex) self._ref = ec_ptr del guard return
def string_to_component(self, name): rtc_list = [] tmp = name.split("://") if len(tmp) > 1: if tmp[0] == "rtcloc": #tag = tmp[0] url = tmp[1] r = url.split("/") if len(r) > 1: host = r[0] rtc_name = url[len(host) + 1:] mgr = self.getManager(host) if not CORBA.is_nil(mgr): rtc_list = mgr.get_components_by_name(rtc_name) slaves = mgr.get_slave_managers() for slave in slaves: try: rtc_list.extend( slave.get_components_by_name(rtc_name)) except BaseException: self._rtcout.RTC_DEBUG( OpenRTM_aist.Logger.print_exception()) mgr.remove_slave_manager(slave) return rtc_list return rtc_list
def addOrganizationToTarget(self, member): conf = member._config if CORBA.is_nil(conf): return conf.add_organization(self._objref) return
def create_memory(self, memory_size, shm_address): if self._shmem is None: self._rtcout.RTC_TRACE("create():memory_size="+str(memory_size)+",shm_address="+str(shm_address)) self._memory_size = memory_size self._shm_address = shm_address if os.name == "nt": self._shmem = mmap.mmap(0, self._memory_size, self._shm_address, mmap.ACCESS_WRITE) else: O_RDWR = 2 O_CREAT = 64 S_IRUSR = 256 S_IWUSR = 128 S_IRGRP = 32 S_IWGRP = 16 S_IROTH = 4 self.fd = self.rt.shm_open(self._shm_address,O_RDWR | O_CREAT,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH) if self.fd < 0: return self.rt.ftruncate(self.fd, self._memory_size) self._shmem = mmap.mmap(self.fd, self._memory_size, mmap.MAP_SHARED) self.rt.close( self.fd ) if not CORBA.is_nil(self._smInterface): self._smInterface.open_memory(self._memory_size, self._shm_address)
def destroyRecursive(self, context): cont = True bl = [] bi = None bl, bi = context.list(self._blLength) while cont: for bli in bl: if bli.binding_type == CosNaming.ncontext: obj = context.resolve(bli.binding_name) next_context = obj._narrow(CosNaming.NamingContext) self.destroyRecursive(next_context) context.unbind(bli.binding_name) next_context.destroy() elif bli.binding_type == CosNaming.nobject: context.unbind(bli.binding_name) if CORBA.is_nil(bi): cont = False else: bi.next_n(self._blLength) # if not (CORBA.is_nil(bi)): # bi.destroy() return
def set_owner(self, sdo): self.__rtcout.RTC_TRACE("set_owner()") if CORBA.is_nil(sdo): raise SDOPackage.InvalidParameter("set_owner(): sdo is nil") self._varOwner = sdo return True
def get_component_profile(rtc): prop = OpenRTM_aist.Properties() if CORBA.is_nil(rtc): return prop prof = rtc.get_component_profile() OpenRTM_aist.NVUtil.copyToProperties(prop, prof.properties) return prop
def onExecute(self, ec_id): try: if CORBA.is_nil(self._CalibrationService._ptr()): # print("TkCalibGUI : [nil] object reference is not assigned.") return RTC.RTC_OK elif self._CalibrationService._ptr()._non_existent(): # print("TkCalibGUI : provider is inactive.") return RTC.RTC_OK except Exception as e: print("TkCalibGUI : ",str(e)) return RTC.RTC_OK if self._checker_imageIn.isNew(): _image = self._checker_imageIn.read() # チェスボード撮影枚数確認 try: num = self._CalibrationService._ptr().getImageNumber() except Exception as e: # print("TkCalibGUI : getImageNumber() : ",str(e)) return RTC.RTC_OK if self.pic_num != num: self.pic_num = num # 撮影枚数変更に伴うGUI再描画 self.gui.redraw_gui(num) self.gui.set_image( _image.pixels, _image.width, _image.height) return RTC.RTC_OK
def init(self, name_server): self._nameServer = "corbaloc::" + name_server + "/NameService" obj = self._orb.string_to_object(self._nameServer) self._rootContext = obj._narrow(CosNaming.NamingContext) if CORBA.is_nil(self._rootContext): raise MemoryError return
def setObject(self, ior): self._ior = ior orb = OpenRTM_aist.Manager.instance().getORB() obj = orb.string_to_object(ior) if CORBA.is_nil(obj): return False return self._consumer.setObject(obj)
def removeOrganizationFromTarget(self, member): # get given RTC's configuration object if CORBA.is_nil(member._config): return # set organization to target RTC's conf ret = member._config.remove_organization(self._pId) return
def __call__(self, obj): try: if CORBA.is_nil(obj): print "No service connected." else: self._result[0] = obj.echo(self._msg) except: pass
def add_component(self, comp): self._rtcout.RTC_TRACE("add_component()") if CORBA.is_nil(comp): return RTC.BAD_PARAMETER try: dfp_ = comp._narrow(OpenRTM.DataFlowComponent) rtc_ = comp._narrow(RTC.RTObject) if CORBA.is_nil(dfp_) or CORBA.is_nil(rtc_): return RTC.BAD_PARAMETER id_ = dfp_.attach_context(self._ref) comp_ = self.Comp(ref=comp, dfp=dfp_, id=id_) self._comps.append(comp_) self._profile.participants.append(rtc_) return RTC.RTC_OK except CORBA.Exception: self._rtcout.RTC_ERROR(sys.exc_info()[0]) return RTC.BAD_PARAMETER return RTC.RTC_OK
def ListRecursive(context, rtclist, name): m_blLength = 100 bl = context.list(m_blLength) cont = True while cont: for i in bl[0]: if i.binding_type == CosNaming.ncontext: next_context = context.resolve(i.binding_name) name_buff = name[:] name.append(i.binding_name[0].id) ListRecursive(next_context,rtclist,name) name = name_buff elif i.binding_type == CosNaming.nobject: if len(rtclist) > m_blLength: break if i.binding_name[0].kind == 'rtc': name_buff = name[:] name_buff.append(i.binding_name[0].id) tkm = OpenRTM_aist.CorbaConsumer() tkm.setObject(context.resolve(i.binding_name)) inobj = tkm.getObject()._narrow(RTC.RTObject) pin = inobj.get_ports() for p in pin: name_buff2 = name_buff[:] profile = p.get_port_profile() props = nvlist_to_dict(profile.properties) tp_n = profile.name.split('.')[1] name_buff2.append(tp_n) rtclist.append([name_buff2,p]) else: pass if CORBA.is_nil(bl[1]): cont = False else: bl = i.next_n(m_blLength)
def set_owner(self, sdo): self._rtcout.RTC_TRACE("set_owner()") if CORBA.is_nil(sdo): raise SDOPackage.InvalidParameter("set_owner()") try: self._varOwner = sdo return True except: self._rtcout.RTC_ERROR(sys.exc_info()[0]) raise SDOPackage.InternalError("set_owner()") return True
def set_owner(self, sdo): self.__rtcout.RTC_TRACE("set_owner()") if CORBA.is_nil(sdo): raise SDOPackage.InvalidParameter("set_owner()") try: self._varOwner = sdo return True except: self.__rtcout.RTC_ERROR(OpenRTM_aist.Logger.print_exception()) raise SDOPackage.InternalError("set_owner()") return True
def setObject(self, obj): if not CorbaConsumerBase.setObject(self, obj): self.releaseObject() return False if self._interfaceType: self._var = obj._narrow(self._interfaceType) else: self._var = self._objref if not CORBA.is_nil(self._var): return True self.releaseObject() return False
def remove_component(self, comp): self._rtcout.RTC_TRACE("remove_component()") len_ = len(self._comps) for i in range(len_): idx = (len_ - 1) - i if self._comps[idx]._ref._is_equivalent(comp): self._comps[idx]._ref.detach_context(self._comps[idx]._sm.ec_id) del self._comps[idx] rtcomp = comp._narrow(RTC.RTObject) if CORBA.is_nil(rtcomp): self._rtcout.RTC_ERROR("Invalid object reference.") return RTC.RTC_ERROR OpenRTM_aist.CORBA_SeqUtil.erase_if(self._profile.participants, self.find_participant(rtcomp)) return RTC.RTC_OK return RTC.BAD_PARAMETER
def _connect_to_naming_service(self, address): # Try to connect to a name server and get the root naming context. with self._mutex: self._full_address = 'corbaloc::{0}/NameService'.format(address) try: self._ns_obj = self._orb.string_to_object(self._full_address) except CORBA.ORB.InvalidName: raise exceptions.InvalidServiceError(address) try: root_context = self._ns_obj._narrow(CosNaming.NamingContext) except CORBA.TRANSIENT as e: if e.args[0] == TRANSIENT_ConnectFailed: raise exceptions.InvalidServiceError(address) else: raise if CORBA.is_nil(root_context): raise exceptions.FailedToNarrowRootNamingError(address) return root_context
def __init__(self, orb, name_server=None): self._orb = orb self._nameServer = "" self._rootContext = CosNaming.NamingContext._nil self._blLength = 100 if name_server: self._nameServer = "corbaloc::" + name_server + "/NameService" try: obj = orb.string_to_object(self._nameServer) self._rootContext = obj._narrow(CosNaming.NamingContext) if CORBA.is_nil(self._rootContext): print "CorbaNaming: Failed to narrow the root naming context." except CORBA.ORB.InvalidName: print "Service required is invalid [does not exist]." return
def addParticipantToEC(self, member): if CORBA.is_nil(self._ec) or self._ec is None: ecs = self._rtobj.get_owned_contexts() if len(ecs) > 0: self._ec = ecs[0] else: return # set ec to target RTC ret = self._ec.add_component(member._rtobj) orglist = member._rtobj.get_organizations() for org in orglist: sdos = org.get_members() for sdo in sdos: dfc = [None] if not self.sdoToDFC(sdo, dfc): continue self._ec.add_component(dfc[0]) return
def removeParticipantFromEC(self, member): if CORBA.is_nil(self._ec) or self._ec is None: ecs = self._rtobj.get_owned_contexts() if len(ecs) > 0: self._ec = ecs[0] else: self._rtcout.RTC_FATAL("no owned EC") return self._ec.remove_component(member._rtobj) orglist = member._rtobj.get_organizations() for org in orglist: sdos = org.get_members() for sdo in sdos: dfc = [None] if not self.sdoToDFC(sdo, dfc): continue self._ec.remove_component(dfc[0]) return
def PBLoadHypPressed(self): """load hypothesis saved in Object Browser""" #QMessageBox.warning(self, "load Object Browser YAMS hypothesis", "TODO") import salome from salome.kernel import studyedit from salome.smesh.smeshstudytools import SMeshStudyTools from salome.gui import helper as guihelper from omniORB import CORBA mySObject, myEntry = guihelper.getSObjectSelected() if CORBA.is_nil(mySObject) or mySObject==None: QMessageBox.critical(self, "Hypothese", "select an Object Browser YAMS hypothesis") return text=mySObject.GetComment() #a verification if "Optimisation=" not in text: QMessageBox.critical(self, "Load Hypothese", "Object Browser selection not a YAMS Hypothesis") return self.loadResumeData(text, separator=" ; ") return
def setObject(self, obj): if CORBA.is_nil(obj): return False self._objref = obj return True
def objIsNamingContext(self, obj): nc = obj._narrow(CosNaming.NamingContext) if CORBA.is_nil(nc): return False else: return True
def ListRecursive(context, rtclist, name, oParent, oTreeDataModel): m_blLength = 100 bl = context.list(m_blLength) cont = True while cont: for i in bl[0]: if i.binding_type == CosNaming.ncontext: next_context = context.resolve(i.binding_name) name_buff = name[:] name.append(i.binding_name[0].id) if oTreeDataModel == None: oChild = None else: oChild = oTreeDataModel.createNode(i.binding_name[0].id,False) oParent.appendChild(oChild) ListRecursive(next_context,rtclist,name, oChild, oTreeDataModel) name = name_buff elif i.binding_type == CosNaming.nobject: if oTreeDataModel == None: oChild = None else: oChild = oTreeDataModel.createNode(i.binding_name[0].id,False) oParent.appendChild(oChild) if len(rtclist) > m_blLength: break if i.binding_name[0].kind == 'rtc': name_buff = name[:] name_buff.append(i.binding_name[0].id) tkm = OpenRTM_aist.CorbaConsumer() tkm.setObject(context.resolve(i.binding_name)) inobj = tkm.getObject()._narrow(RTC.RTObject) try: pin = inobj.get_ports() for p in pin: name_buff2 = name_buff[:] profile = p.get_port_profile() #props = nvlist_to_dict(profile.properties) tp_n = profile.name.split('.')[1] name_buff2.append(tp_n) if oTreeDataModel == None: pass else: oChild_port = oTreeDataModel.createNode(tp_n,False) oChild.appendChild(oChild_port) rtclist.append([name_buff2,p]) except: pass else: pass if CORBA.is_nil(bl[1]): cont = False else: bl = i.next_n(m_blLength)
def isFsmParticipant(obj): fsmp = obj._narrow(RTC.FsmParticipant) return not CORBA.is_nil(fsmp)
def isFsmObject(obj): fsm = obj._narrow(RTC.FsmObject) return not CORBA.is_nil(fsm)