ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
バレンタインデーって,単純にチョコ食べたいときに買いづらいから,僕にはデメリットしかないOTZ.
自分が貰えないのはもはや気にならないのでどうでも良いですが.
それはさておき,今回は自分でRTCの状態を変更するRTCを作成します.
今回作成したサンプルのC++版はここ,Python版はここからダウンロード出来ます.
サンプルを起ち上げると,自動的にアクティブになります.
そして,1を入力すると非アクティブ,2を入力すると実行周期の変更ができるようになり,3を入力するとエラー状態になります.
エラー状態で1を入力するとリセットします.
最初にアクティブにしているのは,TestActiveComp.cppのMyModuleInit関数の,
RTC::RTObject_var rtobj;
rtobj = RTC::RTObject::_narrow(manager->getPOA()->servant_to_reference(comp));
RTC::ExecutionContextList_var ecs;
ecs = rtobj->get_owned_contexts();
ecs[(CORBA::ULong)0]->activate_component(rtobj);
の部分です.
TestActive.cppのonExcute関数で非アクテイブにするのも似たような感じで,
RTC::RTObject_var rtobj;
rtobj = this->getObjRef();
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->deactivate_component(rtobj);
と記述できます.
リセットするのも同じです.
RTC::RTObject_var rtobj;
rtobj = this->getObjRef();
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->reset_component(rtobj);
実行周期の変更は,
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->set_rate(rate);
と,実行コンテキストのリストを取得してから,いつぞやかの記事と同じくset_rate関数を使います.
これ書いてて気づいたんですが,上のrateをコンフィギュレーションパラメータに設定すればRTSEから実行周期が変更できますね.
今日の記事は手抜きな感が漂ってますがこのぐらいにしときます.
明日は自分で勝手にExtTrigExecutionContextの外部トリガ入力するRTCを作成します.
・・・もはや外部じゃないような感じもしますが.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
自分が貰えないのはもはや気にならないのでどうでも良いですが.
それはさておき,今回は自分でRTCの状態を変更するRTCを作成します.
今回作成したサンプルのC++版はここ,Python版はここからダウンロード出来ます.
サンプルを起ち上げると,自動的にアクティブになります.
そして,1を入力すると非アクティブ,2を入力すると実行周期の変更ができるようになり,3を入力するとエラー状態になります.
エラー状態で1を入力するとリセットします.
最初にアクティブにしているのは,TestActiveComp.cppのMyModuleInit関数の,
RTC::RTObject_var rtobj;
rtobj = RTC::RTObject::_narrow(manager->getPOA()->servant_to_reference(comp));
RTC::ExecutionContextList_var ecs;
ecs = rtobj->get_owned_contexts();
ecs[(CORBA::ULong)0]->activate_component(rtobj);
の部分です.
TestActive.cppのonExcute関数で非アクテイブにするのも似たような感じで,
RTC::RTObject_var rtobj;
rtobj = this->getObjRef();
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->deactivate_component(rtobj);
と記述できます.
リセットするのも同じです.
RTC::RTObject_var rtobj;
rtobj = this->getObjRef();
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->reset_component(rtobj);
実行周期の変更は,
RTC::ExecutionContextList_var ecs;
ecs = this->get_owned_contexts();
ecs[(CORBA::ULong)0]->set_rate(rate);
と,実行コンテキストのリストを取得してから,いつぞやかの記事と同じくset_rate関数を使います.
これ書いてて気づいたんですが,上のrateをコンフィギュレーションパラメータに設定すればRTSEから実行周期が変更できますね.
今日の記事は手抜きな感が漂ってますがこのぐらいにしときます.
明日は自分で勝手にExtTrigExecutionContextの外部トリガ入力するRTCを作成します.
・・・もはや外部じゃないような感じもしますが.
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・
PR
この記事にコメントする