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
Example #2
0
  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)
Example #7
0
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
Example #10
0
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
Example #11
0
  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
Example #14
0
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]
Example #15
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
Example #17
0
  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
Example #18
0
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
Example #19
0
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)
Example #20
0
  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
Example #22
0
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
Example #31
0
  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
Example #32
0
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
Example #34
0
    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
Example #36
0
  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
Example #38
0
    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
Example #39
0
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
Example #41
0
  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
Example #42
0
    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
Example #46
0
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
Example #51
0
 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
Example #52
0
  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
Example #57
0
 def objIsNamingContext(self, obj):
   nc = obj._narrow(CosNaming.NamingContext)
   if CORBA.is_nil(nc):
     return False
   else:
     return True
Example #58
0
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)