プロジェクト

全般

プロフィール

バグ #2941

IDLファイルの中でRTCモジュールを使用した場合、生成されるコードに余計なモジュール名が付加される

n.kawauchi10年以上前に追加. 10年以上前に更新.

ステータス:
新規
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2013/12/24
期日:
進捗率:

0%

予定工数:

説明

  • 具体例・・・以下のIDLを定義した場合、CalibrationServiceSVC_impl.cpp, CalibrationServiceSVC_impl.h ファイルの修正が必要となる
    #ifndef CALIBRATION_SERVICE_IDL
    #define CALIBRATION_SERVICE_IDL
    
    #include "InterfaceDataTypes.idl" 
    
    module ImageCalibService
    {
      interface CalibrationService 
      {
        RTC::CameraInfo getCalibParameter();
      };
    };
    
    #endif    /* CALIBRATION_SERVICE_IDL */
    
  • CalibrationServiceSVC_impl.hの修正箇所
    ImageCalibService::RTC::CameraInfo get_CalibParameter();
       ↓
    RTC::CameraInfo get_CalibParameter();
    
  • CalibrationServiceSVC_impl.cppの修正箇所
    ImageCalibService::RTC::CameraInfo CalibrationServiceSVC_impl::get_CalibParameter()
       ↓
    RTC::CameraInfo CalibrationServiceSVC_impl::get_CalibParameter()
    

履歴

#1 n.kawauchi10年以上前に更新

  • 関連して、IDLファイルでsequence型のメンバー変数を持つ構造体のデータ型の関数を定義した場合、RTCビルダーが自動生成するコードに不備がある
  • 具体例 ・・・ 次のIDLを使用
    #ifndef CALIBRATION_SERVICE_IDL
    #define CALIBRATION_SERVICE_IDL
    
    #include "InterfaceDataTypes.idl" 
    
    module ImageCalibService
    {
      typedef sequence<RTC::CameraImage> ImageList;
      interface CalibrationService 
      {
        RTC::CameraImage captureCalibImage(in short num);
      };
    };
    #endif    /* CALIBRATION_SERVICE_IDL */
    
  • CalibrationService.hh ではポインタ型で宣言されている(CameraImage型にsequence型メンバーが含まれている)
    virtual RTC::CameraImage* captureCalibImage(::CORBA::Short num) = 0;
    
  • CalibrationServiceSVC_impl(cpp,h)の方はポインタ型になっていないので、修正が必要
    RTC::CameraImage CalibrationServiceSVC_impl::captureCalibImage(CORBA::Short num)
        ↓
    RTC::CameraImage* CalibrationServiceSVC_impl::captureCalibImage(CORBA::Short num)
    

他の形式にエクスポート: Atom PDF