忍者ブログ
ロボット、千葉ロッテマリーンズについていいかげんなことを書きます。
[334]  [333]  [332]  [331]  [330]  [329]  [328]  [327]  [325]  [324]  [323
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

RTMコンテストの準備が何もできてない・・・・

と言うより,アイデアがない.

ちょっと前にやったRTMとxPC-Targetを組み合わせるのは,あんまり需要なさそうだしなぁ.
それに,ターゲット側のPCでRTM動かしてるわけじゃないし.

全然アイデアがないものだから,ニンテンドー3DSでRTMが動かないかとかよく分からんこと考えてみたりしてるところです.





それはさておき,今回はコンフィギュレーションパラメータのコールバックをやります.

サンプルはここからダウンロード出来ます.
C++版,Python版を同梱してます.
僕はJavaではHello Worldレベルのことしかできないので知りません.



まず,コンフィギュレーションのコールバックに何があるかというと,


OnUpdateCallback
OnUpdateParamCallback
OnSetConfigurationSetCallback
OnAddConfigurationAddCallback
OnRemoveConfigurationSetCallback
OnActivateSetCallback


があります.

サンプルプログラムを省略して,コールバックを実装するのに最低限のコードだけ抜き出すと,


class MyOnUpdate
    : public RTC::OnUpdateCallback
{
public:
    MyOnUpdate()
    {

    }
    virtual void operator()(const char* config_set)
    {

    }

};

・・・・

this->m_configsets.setOnUpdate(new MyOnUpdate(this));


のようにしてコールバックを設定します.
OnUpdate以外も同様です.

データポートのコールバックとほぼ同じです.

ちなみに,m_configsetsはコンフィギュレーション情報管理オブジェクト(ConfigAdminクラス)で,ConfigAdmin.hにコールバックの定義があります.



では,今回のサンプルで動作を確認します.

コールバックは全て実装していて,コールバックが呼ばれると実行周期がコンフィギュレーションパラメータIntervalに設定されます.

・・・本当はonXXX()関数以外でコンフィギュレーションパラメータを使うのは良くないらしいのですが,別に今回のサンプルに実用性は求めてないのでスルーします.

また,アクティブ,非アクティブに遷移したときにコンフィギュレーションパラメータを勝手に変更します.

まず,RTCを起動すると,
  • OnUpdateCallback    default
  • OnUpdateCallback    default
2回アップデートされてるのは単純にコンフィギュレーションパラメータが2つだからです.
defaultはコンフィギュレーションセットで,RTSEのコンフィギュレーションのスペースの左側に出てるやつです.

rtse1.PNG





続いて,RTCをアクティブにしてみます.
  • OnSetConfiguration  default
  • OnSetActivateSet  default
  • Interval: 1000
  • OnUpdateParamCallback  dafault  Test
  • Interval: 1000
  • OnUpdateCallback    default
  • OnUpdateCallback    default
  • Interval: 1
  • Test:  0
  • Interval: 1
  • Test:  0
  • ・・・・
まず,m_configsets.setConfigurationSetValues(properties)でプロパティをコンフィギュレーションセットに追加した際にOnSetConfigurationが呼ばれます.
この時のプロパティはsetProperty("Interval", "1")で,Intervalは1000から1に設定されるはずです.
そして,m_configsets.activateConfigurationSet("default")でコンフィギュレーションセットがアクティブ化された時にOnSetActivateSetが呼ばれます.
見ても分かるとおり,この瞬間はまだコンフィギュレーションパラメータは変更されてません.
さらに,m_configsets.update("default","Test")とすることで,もう一つのコンフィギュレーションパラメータTestのみをアップデートします.
案の定,Intervalの方は1000のままです.
しかし,ここでm_configsets.update("default")としてコンフィギュレーションセットごと更新することで,Intervalが1に設定されました.
ちなみに,このコンフィギュレーションセットごと更新は別にm_configsets.update("default")が無くても実行されます.コンフィギュレーションセットがアクティブ化された状態でRTCのアクティビティが呼び出されると更新される・・・とは思うのですが定かではありません.

次にアクティブ化したままRTSEでIntervalを変更してみます.
  • ・・・・
  • Interval: 1
  • Test:  0
  • Interval: 1
  • OnSetConfiguration  default
  • OnSetActivateSet  default
  • Test:  0
  • Interval: 1
  • OnUpdateCallback    default
  • OnUpdateCallback    default
  • Test:  0
  • Interval: 2
  • ・・・・・
まず,コンフィギュレーションセットへの更新パラメータの追加,アクティブ化が行われます.
そして,次のonExecuteの後に更新が行われる・・・・かどうかは定かではありません.自分で調べてください.


続いて,非アクティブにしてみます.

  • ・・・
  • Test:  0
  • Interval: 2
  • OnSetConfiguration  default
  • OnSetActivateSet  default
  • Interval: 2
  • OnUpdateParamCallback  dafault  Interval
  • Interval: 800
  • OnUpdateCallback    default
  • OnUpdateCallback    default
  • Interval: 800
アクティブにしたときと違うのは,Intervalを800にしたところと,m_configsets.update("default","Interval")として,Intervalのみ更新しているところです.
今回は,m_configsets.update("default","Interval")で値が更新されてることが確認出来ます.


続いて,RTSEでコンフィギュレーションセットを追加します.
上の方で出てきた図の赤枠で追加を押した後,右の適用を押すと,
  • OnAddConfigurationAdd  (追加したセットの名前)
  • OnSetActivateSet  default
となるはずです.
さらに,追加下セットを削除すると,
  • OnRemoveConfigurationSet  (追加したセットの名前)
  • OnSetActivateSet  default
となってOnAddConfigurationAdd,OnRemoveConfigurationSetをコールバックすることができます.

最後にコンフィギュレーションパラメータを追加して適用を押すと,
  • OnSetConfiguration  default
  • OnSetActivateSet  default
となります.



基本的に,パラメータの変更はRTCのアクティビティが呼び出されるまではコンフィギュレーションパラメータが外で変更されても反映されませんが,コールバックを使う事でいろいろできるんではないでしょうか?




今日はこの辺にしといてあげます.
次回はcoilでもう一回遊んでみます.







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

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]