プロジェクト

全般

プロフィール

調査 #4200

未完了

openrtp(RTSE)でRTCの状態がACTIVEと表示されない

katami さんが7年以上前に追加. 7年以上前に更新.

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

100%

予定工数:

説明

#3704 の動作確認において、rthsell (rtls localhost/ -l) で確認したところ、 コンポーネントがActiveであることを確認できたが、openrtp(RTSE)で確認したところ、Sensor0.rtcだけがActiveで、Motor0.rtc、Controller0.rtcはInActiveの状態だった。
openrtpのバージョンは eclipse442-openrtp112v20160526-ja-linux-gtk-x86_64。

動作確認は、examples/Composite のSensorCompを利用して、初期化関数を以下のように変更

  • ControllerとMotorはrtc.confで.soをロードしておく。
  • 以下のように、SensorのECを取り出し、Controller, Motor にアタッチ
  • Motor, Controller, Sensor の順で activate した。
    public void myModuleInit(Manager mgr) {
      Properties prop = new Properties(Sensor.component_conf);
      mgr.registerFactory(prop, new Sensor(), new Sensor());

      System.out.println("1");
      // Create a component
      RTObject_impl scomp = mgr.createComponent("Sensor");
      if( scomp==null ) {
          System.err.println("Component create failed.");
          System.exit(0);
      }
      System.out.println("2");
      RTC.RTObject srtc = scomp.getObjRef();

      System.out.println("3");
      // Create a component
      RTObject_impl ccomp = mgr.createComponent("Controller");
      if( ccomp==null ) {
          System.err.println("Component create failed.");
          System.exit(0);
      }
      System.out.println("4");
      RTC.RTObject crtc = ccomp.getObjRef();

      System.out.println("5");
      // Create a component
      RTObject_impl mcomp = mgr.createComponent("Motor");
      if( mcomp==null ) {
          System.err.println("Component create failed.");
          System.exit(0);
      }
      System.out.println("6");
      RTC.RTObject mrtc = mcomp.getObjRef();

      System.out.println("7");
      ExecutionContextListHolder eclist = new ExecutionContextListHolder();
      eclist.value =  srtc.get_owned_contexts();

      System.out.println("8");
      eclist.value[0].add_component(crtc);
      System.out.println("9");
      eclist.value[0].add_component(mrtc);
      System.out.println("10");

      eclist.value[0].activate_component(mrtc);
      System.out.println("11");
      eclist.value[0].activate_component(crtc);
      System.out.println("12");
      eclist.value[0].activate_component(srtc);
      System.out.println("13");
    }

ファイル

ExecutionContext.png (42 KB) ExecutionContext.png katami, 2017/09/13 10:59

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