忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[316]  [315]  [314]  [313]  [312]  [311]  [310]  [309]  [308]  [307]  [306
×

[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を作成します.

・・・もはや外部じゃないような感じもしますが.












にほんブログ村 科学ブログ ロボットへ
にほんブログ村のロボットのカテゴリから
全然人が来ない・・・

人気ブログランキングへ
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
フリーエリア
最新CM
[08/31 ysuga]
[08/31 Nobu]
[08/31 ysuga]
[12/11 Nobu]
[12/11 Kanamura]
最新TB
プロフィール
HN:
Nobu
年齢:
36
性別:
男性
誕生日:
1988/09/22
職業:
あれ
趣味:
妄想、自堕落
バーコード
ブログ内検索
P R
カウンター
忍者ブログ [PR]