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 SetNamingServer(s_name, orb): try: namingserver = CorbaNaming(orb, s_name) except: print 'ネーミングサービスへの接続に失敗しました' return None return namingserver
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
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)
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
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)
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