Exemplo n.º 1
0
    def __init__(self, orb, server_name=None, naming=None):
        self.orb = orb
        self.name = server_name
        if naming:
            self.naming = naming
        else:
            self.naming = CorbaNaming(self.orb, server_name)

        self.b_len = 10  # iteration cut off no.
        self.rtc_handles = {}
        self.obj_list = {}
Exemplo n.º 2
0
def SetNamingServer(s_name, orb):
    
    try:
        namingserver = CorbaNaming(orb, s_name)
    except:
        print 'ネーミングサービスへの接続に失敗しました'
        return None
    return namingserver
Exemplo n.º 3
0
def SetNamingServer(s_name, orb, MyMsgBox = None):
    
    try:
        namingserver = CorbaNaming(orb, s_name)
    except:
        if MyMsgBox != None:
            MyMsgBox(SetCoding('エラー','utf-8'),SetCoding('ネーミングサービスへの接続に失敗しました','utf-8'))
        return None
    return namingserver
Exemplo n.º 4
0
def main():

    try:
        orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
        namingserver = CorbaNaming(orb, "localhost")
    except:
        if os.name == 'posix':
            subprocess.Popen("rtm-naming&".split(" "), shell=True)
        elif os.name == 'nt':
            subprocess.Popen("start rtm-naming", shell=True)

        time.sleep(3)
Exemplo n.º 5
0
def SetNamingServer(s_name, orb, MyMsgBox = None, w_code = 'utf-8'):
    
    try:
        namingserver = CorbaNaming(orb, s_name)
    except:
        if MyMsgBox != None:
            if w_code == "Unicode":
                MyMsgBox(u'エラー',u'ネーミングサービスへの接続に失敗しました')
            else:
                MyMsgBox(SetCoding('エラー',w_code),SetCoding('ネーミングサービスへの接続に失敗しました','utf-8'))
        return None
    return namingserver
Exemplo n.º 6
0
def main():
    env = RtmEnv(sys.argv, ["localhost:2809"])

    ## Get Manager object reference
    mgr_name = socket.gethostname() + ".host_cxt/manager.mgr"
    naming = CorbaNaming(env.orb, "localhost:2809")
    manager = naming.resolve(mgr_name)._narrow(RTM.Manager)

    listo = env.name_space["localhost:2809"].list_obj()
    env.name_space['localhost:2809'].rtc_handles.keys()

    ns = env.name_space['localhost:2809']

    comp = ns.rtc_handles["PeriodicECSharedComposite0.rtc"]
    config = comp.rtc_ref.get_configuration()
    configset = config.get_configuration_sets()
    config_data = configset[0].configuration_data

    time.sleep(1)

    motor = ns.rtc_handles["Motor0.rtc"]
    sensor = ns.rtc_handles["Sensor0.rtc"]
    controller = ns.rtc_handles["Controller0.rtc"]
    loop_count = 1000
    for i in range(loop_count):
        manager.create_component("PeriodicECSharedComposite?instance_name=aaa")
        env.name_space["localhost:2809"].list_obj()
        aaa = ns.rtc_handles[socket.gethostname() + ".host_cxt/aaa.rtc"]
        org = aaa.rtc_ref.get_owned_organizations()[0]
        org.set_members([motor.rtc_ref, sensor.rtc_ref, controller.rtc_ref])
        time.sleep(1)
        ret = org.remove_member("Motor0")
        ret = org.remove_member("Sensor0")
        ret = org.remove_member("Controller0")
        aaa.rtc_ref.exit()
        time.sleep(1)
Exemplo n.º 7
0
class NameSpace:
    def __init__(self, orb, server_name=None, naming=None):
        self.orb = orb
        self.name = server_name
        if naming:
            self.naming = naming
        else:
            self.naming = CorbaNaming(self.orb, server_name)

        self.b_len = 10  # iteration cut off no.
        self.rtc_handles = {}
        self.obj_list = {}

    def get_object_by_name(self, name, cl=RTC.RTObject):
        ref = self.naming.resolveStr(name)
        if ref is None:
            return None  # return CORBA.nil ?
        if cl:
            return ref._narrow(cl)
        else:
            return ref

    def list_obj(self):
        self.rtc_handes = {}
        self.obj_list = {}
        return self.list_obj1(self.naming._rootContext, "")

    def list_obj1(self, name_context, parent):
        if not name_context:
            name_context = self.naming._rootContext
        rslt = []
        b_list = name_context.list(self.b_len)
        for bd in b_list[0]:
            rslt = rslt + self.proc_bd(bd, name_context, parent)
        if b_list[1]:  # iterator : there exists remaining.
            t_list = b_list[1].next_n(self.b_len)
            while t_list[0]:
                for bd in t_list[1]:
                    rslt = rslt + self.proc_bd(bd, name_context, parent)
                t_list = b_list[1].next_n(self.b_len)
        return rslt

    def proc_bd(self, bd, name_context, parent):
        #        print('-------------------------------------------------------------------')
        #        print('bd= ', bd)
        #        print('name_context= ', name_context)
        #        print('parent= ', parent)
        rslt = []
        pre = ""
        if parent:
            pre = parent + "/"
        nam = pre + URI.nameToString(bd.binding_name)
        if bd.binding_type == CosNaming.nobject:
            tmp = name_context.resolve(bd.binding_name)
            self.obj_list[nam] = tmp
            print('objcet ' + nam + ' was listed.')
            try:
                tmp = tmp._narrow(RTC.RTObject)
            except BaseException:
                print(nam + ' is not RTC.')
                tmp = None
            try:
                if tmp:
                    rslt = [[nam, tmp]]
                    self.rtc_handles[nam] = RtcHandle(nam, self, tmp)
                    print('handle for ' + nam + ' was created.')
                else:
                    pass
            except BaseException:
                print(nam + ' is not alive.')
                pass
        else:
            tmp = name_context.resolve(bd.binding_name)
            tmp = tmp._narrow(CosNaming.NamingContext)
            rslt = self.list_obj1(tmp, nam)
        return rslt