Skip to main content

2.7. IBase를 통한 HR-RPC 서비스 호출

2.7. IBase를 통한 HR-RPC 서비스 호출

IBaseHR-RPC 서비스를 호출하는 기본 함수를 포함하고 있습니다. 이 절차는 HR-RPC 서비스를 아래와 같이 호출합니다. 정확한 입력, 출력 파라미터 및 서비스 번호의 리스트를 알아야만 합니다.

p_base->InitParam( );                                     // get ready to insert input parameters

p_base->PutData( input param. 1 );

p_base->PutData( input param. 2 );

HRESULT hr = p_base->DoProcSysc( service number );  // call the service (blocked)

if(FAILED(hr) {                                                           // failure

             // error handling..

             return;

}

p_base->GetData( output param. 1 );               // extract output parameters

p_base->GetData( output param. 2 );

 

에러를 다루기 위해서는 반환된 HRESULT 값을 확인해야 합니다. HResMsg.cpp 샘플 소스 코드는 이를 수행하기 위한 helper 함수를 담고 있습니다. hr==BASE_E_SERVICE이면, Hi5/Hi5a 로봇 컨트롤러가 일부 서비스 에러 코드를 반환하였다는 의미입니다. IBase:: GetSvcErrCode() 함수를 활용하여 코드를 확인할 수 있습니다. 일부 서비스 에러의 경우, IBase::errcode2msg()ErrCodeRef.h 안에 있는 서비스 에러 리스트를 이용할 수 있습니다.