2010년 3월 11일 목요일

orocos window install


Level : INTERMEDIATE


[기대결과]
ubuntu 환경에서 ./eclient or ktaskbrowser 가 windows환경의 server app의 오브젝트를 호출한다.

[선행작업]
Windows:
svn co http://svn.mech.kuleuven.be/repos/orocos/branches/rtt/rtt-1.10

vc9 실행, release
vc90 추가 포함 디렉토리
"C:\orocos\orocos-rtt-1.10.0\src";"C:\orocos\orocos-rtt-1.10.0\build\src";"C:\orocos\orocos-rtt-1.10.0\build\src\os";"C:\orocos\orocos-rtt-1.10.0\build\src\os\win32";C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO;C:\orocos\ACE_wrappers\TAO\orbsvcs;"C:\orocos\orocos-rtt-1.10.0\build\src\corba";C:\orocos\boost_1_36_0
추가 종속성
..\Release\orocos-rtt-win32.lib
C:\orocos\ACE_wrappers\lib\ACE.lib
C:\orocos\ACE_wrappers\lib\TAO.lib
C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib
C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib
C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib
C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib
C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib

ApplicationServer.hpp에서

struct ApplicationServer
class RTT_CORBA_API ApplicationServer로 변경

Services.cpp에서
// ACE_THROW_SPEC (CORBA::UNKNOWN ()); 주석처리

server application 환경 설정
추가 포함 드렉토리
../../;../../rtt/corba;../../build/src;../../build/src/corba;../../build/src/os;../../build/src/os/win32;C:\orocos\boost_1_37_0;C:\orocos\ACE_wrappers;C:\orocos\ACE_wrappers\TAO

추가 디렉토리 라이브러리
"C:\orocos\orocos-rtt-1.10.0\build\src\$(ConfigurationName)";"C:\orocos\orocos-rtt-1.10.0\build\src\corba\$(ConfigurationName)";C:\orocos\boost_1_37_0\lib;C:\orocos\ACE_wrappers\lib
추가 종속성
C:\orocos\orocos-rtt-1.10.0\build\src\corba\Release\orocos-rtt-corba-win32.lib orocos-rtt-win32.lib C:\orocos\ACE_wrappers\lib\ACE.lib C:\orocos\ACE_wrappers\lib\TAO.lib C:\orocos\ACE_wrappers\lib\TAO_PortableServer.lib C:\orocos\ACE_wrappers\lib\TAO_CosNaming.lib C:\orocos\ACE_wrappers\lib\TAO_Messaging.lib C:\orocos\ACE_wrappers\lib\TAO_AnyTypeCode.lib C:\orocos\ACE_wrappers\lib\TAO_Valuetype.lib

[실행]
ubuntu:
vi ~/.bashrc
export NameServiceIOR=corbaloc:::9000/NameService

or

./eclient -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService


window:
Naming_Service.exe -ORBEndpoint iiop://192.168.0.54:9000
corba_test_server.exe -ORBInitRef NameService=corbaloc:iiop:192.168.0.54:9000/NameService

[추가사항]
windows 방화벽 설정시
./eclient 네임서버의 Component는 찾지만 (네임서버통신성공)
object 명령 실행 안됨(방화벽때문만은 아닌것 같은)

ktaskbrowser는 방화벽 해제시와 같은 실행을 보임

corba_test_server.exe에서
131.672 [ ERROR ][StatementProcessor] CORBA exception raised when creating ExpressionProxy!
131.672 [ ERROR ][StatementProcessor] system exception, ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
OMG minor code (2), described as '*unknown description*', completed = NO
이런 메시지가 표시됨

[후기]
Naming_Service의 설정을 정확이 알지 못해서 하루를 보냄
Naming_Service 폴더의 README



댓글 없음: