- 论坛徽章:
- 0
|
分以下三个方面进行讨论:
机器人与平台之间的通讯的确立。平台运行后,机器人运行时,通过CORBA引用平台管理器建立一个机器人代理,并将该代理存入机器人代理的列表中,然后机器人向平台提交注册的信息并运行机器人代理--
platform->createInternetRobotProxy(OIBROBOT_Robot_i::robot_proxy.out());
///fillComponent(&info_content)
///register_manager->registerRobot(info_content,10)
///robot_proxy->setRobot(RealRobotRef.in())
///robot_proxy->setMMStreamFactory(stream_factory.in())
///robot_proxy->start();
在平台上,机器人代理也是通过CORBA创建控制工厂等的实例。当创建基本信息流的工厂的时候:
basic_stream = robot_->BasicInformationStreamFactory();
basic_acceptor = new BasicInfo_StreamAcceptor_i(&information_structure,&basic_mutex);
basic_stream->start(basic_acceptor_var.in());
开始信息流的传输过程:在机器人端
acceptor_ = STREAM_ACCEPTOR::StreamAcceptor::_duplicate(acceptor);
stream_control = new StreamControl(port_,robot_);
stream_control->start();
调用StreamControl类建立套接口,然后调用acceptor_->connect(ipaddr,port_);进行信息流通道的建立。
在平台的basic_receive_work函数中进行信息的接收。把接收到的信息存储到BasicInfo_StreamAcceptor_i类的INFO对象里面。
在机器人代理中,通过函数basicinfo_transmission把得到的信息再传输给客户端。
用户与平台之间的通信的建立,主要是初时化过程。平台与用户之间的信息流及控制过程的建立。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16942/showart_184111.html |
|