OpenRTM-aist (C++): チケット
https://www.openrtm.org/redmine/
https://www.openrtm.org/redmine/redmine/favicon.ico
2019-01-08T13:03:33Z
Redmine for OpenRTM-aist
Redmine
機能 #4650 (新規): CSPポートを実装する
https://www.openrtm.org/redmine/issues/4650
2019-01-08T13:03:33Z
n-ando
Noriaki.Ando@gmail.com
<p>CSPのチャネルを疑似的に実現するポートを実装する。</p>
機能 #4512 (新規): ComponentObserverからデータポートの入出力を通知するイベントを発行する
https://www.openrtm.org/redmine/issues/4512
2018-04-09T04:47:02Z
n-ando
Noriaki.Ando@gmail.com
<p>ComponentObserverからデータポートの入出力を通知するイベントを発行する</p>
機能 #4402 (新規): coilにNICのアドレスが変更されたことを通知するクラスを作成
https://www.openrtm.org/redmine/issues/4402
2017-12-29T06:43:52Z
n-ando
Noriaki.Ando@gmail.com
<p>coilにNICのアドレスが変更されたことを通知するクラスを作成する。</p>
機能 #3075 (担当): 2つの別マシン上のリアルタイム実行コンテキストを同期させる機構を考える
https://www.openrtm.org/redmine/issues/3075
2014-06-05T01:20:11Z
n-ando
Noriaki.Ando@gmail.com
<p>2つの別マシン上のリアルタイム実行コンテキストを同期させる機構を考える</p>
機能 #2333 (終了): coil::Factoryに生成したオブジェクトを管理する機能を追加する。
https://www.openrtm.org/redmine/issues/2333
2012-01-30T15:28:23Z
n-ando
Noriaki.Ando@gmail.com
<p>coil::Factoryに生成したオブジェクトを管理する機能を追加する。</p>
<pre>
/*!
* @if jp
*
* @brief 生成済みオブジェクトリストの取得
*
* このファクトリで生成されたオブジェクトのリストを取得する。
*
* @return 生成済みオブジェクトリスト
*
* @else
*
* @brief Getting created objects
*
* This operation returns a list of created objects by the factory.
*
* @return created object list
*
* @endif
*/
std::vector<AbstractClass*> createdObjects()
{
std::vector<AbstractClass*> objects;
for (ObjectMapIt it(m_objects.begin()); it != m_objects.end(); ++it)
{
objects.push_back(it->first);
}
return objects;
}
/*!
* @if jp
*
* @brief オブジェクトがこのファクトリの生成物かどうか調べる
*
* @param obj 対象オブジェクト
* @return true: このファクトリの生成物
* false: このファクトリの生成物ではない
*
* @else
*
* @brief Whether a object is a product of this factory
*
* @param obj A target object
* @return true: The object is a product of the factory
* false: The object is not a product of the factory
*
* @return created object list
*
* @endif
*/
bool isProducerOf(AbstractClass* obj)
{
return m_objects.count(obj) != 0;
}
/*!
* @if jp
*
* @brief オブジェクトからクラス識別子(ID)を取得する
*
* 当該オブジェクトのクラス識別子(ID)を取得する。
*
* @param obj [in] クラス識別子(ID)を取得したいオブジェクト
* @param id [out] クラス識別子(ID)
* @return リターンコード NOT_FOUND: 識別子が存在しない
* FACTORY_OK: 正常終了
* @else
*
* @brief Getting class identifier (ID) from a object
*
* This operation returns a class identifier (ID) from a object.
*
* @param obj [in] An object to investigate its class ID.
* @param id [out] Class identifier (ID)
* @return Return code NOT_FOUND: ID not found
* FACTORY_OK: normal return
* @endif
*/
ReturnCode objectToIdentifier(AbstractClass* obj, Identifier& id)
{
if (m_objects.count(obj) == 0) { return NOT_FOUND; }
id = m_objects[obj].id_;
return FACTORY_OK;
}
/*!
* @if jp
*
* @brief オブジェクトのコンストラクタを取得する
*
* このファクトリで生成されたオブジェクトのコンストラクタを取得する。
* obj はこのファクトリで生成されたものでなければならない。予め
* isProducerOf() 関数で当該オブジェクトがこのファクトリの生成物で
* あるかどうかをチェックしなければならない。
*
* @return オブジェクトのデストラクタ
*
* @else
*
* @brief Getting destructor of the object
*
* This operation returns a constructor of the object created by
* the factory. obj must be a product of the factory. User must
* check if the object is a product of the factory by using
* isProducerOf()-function, before using this function.
*
* @return destructor of the object
*
* @endif
*/
Creator objectToCreator(AbstractClass* obj)
{
return m_objects[obj].creator_;
}
/*!
* @if jp
*
* @brief オブジェクトのデストラクタを取得する
*
* このファクトリで生成されたオブジェクトのデストラクタを取得する。
* obj はこのファクトリで生成されたものでなければならない。予め
* isProducerOf() 関数で当該オブジェクトがこのファクトリの生成物で
* あるかどうかをチェックしなければならない。
*
* @return オブジェクトのデストラクタ
*
* @else
*
* @brief Getting destructor of the object
*
* This operation returns a destructor of the object created by
* the factory. obj must be a product of the factory. User must
* check if the object is a product of the factory by using
* isProducerOf()-function, before using this function.
*
* @return destructor of the object
*
* @endif
*/
Destructor objectToDestructor(AbstractClass* obj)
{
return m_objects[obj].destructor_;
}
</pre>
機能 #2306 (却下): coil::gettimeofdayをLocalServiceのTime対応にする
https://www.openrtm.org/redmine/issues/2306
2011-12-19T05:03:39Z
n-ando
Noriaki.Ando@gmail.com
<p>coil::gettimeofdayをLocalServiceのTime対応にする</p>
機能 #2092 (終了): Debianパッケージ作成の仕組みをソースに組み込む
https://www.openrtm.org/redmine/issues/2092
2011-05-05T12:30:11Z
n-ando
Noriaki.Ando@gmail.com
<p>現在外部スクリプトで行っているDebianパッケージのビルドのために必要なファイルの生成およびビルドをOpenRTM-aist C++ のソース内に含めて管理する。</p>
機能 #2052 (終了): ComponentObserverConsumerの実装
https://www.openrtm.org/redmine/issues/2052
2011-02-23T00:14:11Z
n-ando
Noriaki.Ando@gmail.com
<p>RTCの内部状態の変化をフックし通知するためのSDOサービスコンシューマ ComponentObserverConsumer を実装する。</p>
<pre>
* RTCの各種状態の更新を知らせるためのオブザーバーオブジェクトのため
* のインターフェース。SDO Service として、対象となるRTC/SDOに対して
* アタッチされ、RTC/SDO内の状態が変更された場合に、変更された状態の
* 種類とヒントを同時に通知する。ツールなどで、ポーリングによらずRTC
* の状態の変化を知りたい場合などに利用する。
*
* 想定している利用方法は以下のとおりである。
*
* -# SDO::get_configuration() により Configuration オブジェクトを取得
* -# Configuration::add_service_profile() によりTool側の
* ComponentObserver を ServiceProfile により RTC に与える。
* ServiceProfile のメンバーは以下のように設定すること
* - id: UUID など一意なIDを設定する。削除時にも必要になるので、Tool
* 側ではIDを保持しておかなければならない。
* - interface_type: 当該サービスのIFRのIDを文字列として指定。RTC側で
* はこの文字列により当該サービスオブジェクトを受け入れるか決定す
* るため指定は必須となる。
* - properties: RTC側のサービスの受け入れ側に通知するプロパティを設
* 定する。このサービスでは、下記の heartbeat 関連のプロパティを
* 指定する。
* - service: SDOService オブジェクトの参照を指定する。
* -# RTC側で状態の変化があった場合に update_status() オペレーション
* が StatusKind および hint の文字列とともに呼び出される。Tool側
* では、StatusKind と hint に基づき RTC のある部分の状態が変化し
* たことを知り、必要な処理を行う。
* -# 最終的にComponentObserverオブジェクトが不要になった場合には、
* Configuration::remove_service_profile() を id とともに呼び出し
* RTC から削除する。
*
* <pre>
*
* [RTC] [Configuration] [Observer] [Tool]
* | | | |
* | | get_configuration() | |
* |<------------------------------------------------|
* | | | |
* | | add_service_profile(prof) |
* | |<-----------------------------------|
* | | | |
* | | update_status(kind, hint) |
* |----------------------------------->| |
* | | update_status(kind, hint) |
* |----------------------------------->| |
* | | : | |
* | | | |
* | | remove_service_profile(id) |
* | |<-----------------------------------|
* | | | |
* | | x x
*
* </pre>
*
* なお、ServiceProfile::properties に指定するプロパティとしては、
*
* - observed_status: ALL or kind of status
* - heartbeat.enable: YES/NO
* - heartbeat.interval: x [s]
*
* がある。
*
* - observed_staus: ALL または状態の種類をカンマ区切りで指定
* 監視する状態を指定する。指定可能な状態を表す文字列は、
* COMPONENT_PROFILE, RTC_STATUS, EC_STATUS, PORT_PROFILE,
* CONFIGURATION 5種類である。監視したい対象をカンマで区切り複数指
* 定することができる。また、すべての状態を監視する場合、ALL を指定
* することができる。指定文字列は大文字、小文字を問わない。
*
* - heartbeat.interval: 秒単位で数値で指定
* ハートビートを送信する周期を秒単位で指定する。なお、指定した秒数
* でハートビートが必ず送信される保証はない。したがって、RTCが死ん
* だかどうかを確認するには、heartbeat.interval 数回分の時間を待つ
* 必要がある。
*
* - heartbeat.enable: YES または NOで指定
* Tool側では、状態に変化があるまで RTC が生存しているかどうか知る
* ことはできないため、突然RTCが死んだ場合には、これを知ることがで
* きない。そこで、HEART_BEAT イベントを周期的にRTC側から送らせるこ
* とができる。ハートビートを有効にするか否かをこのオプションで指定
* する。
</pre>
機能 #2015 (終了): ComponentAction listener の追加
https://www.openrtm.org/redmine/issues/2015
2011-01-26T22:28:42Z
n-ando
Noriaki.Ando@gmail.com
<ul>
<li>RTコンポーネントの各種アクション(ComponentAction)をフックするためのリスナクラス、ComponentAction listener を追加する。
<ul>
<li>PreAction: 引数に ec_id を取るリスナ</li>
<li>PostAction: 引数に ec_id と ReturnCode_t をとるリスナ</li>
</ul>
</li>
<li>RTObject にリスナホルダを持たせる</li>
<li>RTObject のon_xxx() 関数内の onXxx() の前後にPreActionとPostActionを仕掛ける</li>
<li>RTObject にリスナをセットする関数を追加する</li>
</ul>
機能 #1622 (新規): DataPort のsubscription type その他を、confファイルから指定できるようにする
https://www.openrtm.org/redmine/issues/1622
2010-07-12T02:49:07Z
n-ando
Noriaki.Ando@gmail.com
<p>DataPort のsubscription type その他を、confファイルから指定できるようにする</p>
機能 #1052 (終了): DataPortのPull型のConsumer/Provider/Connectorの実装
https://www.openrtm.org/redmine/issues/1052
2010-01-08T08:01:25Z
n-ando
Noriaki.Ando@gmail.com
<p>DataPortのPull型のConsumer/Provider/Connectorの実装を行う。</p>
機能 #374 (終了): createComponentの引数にIDを渡せるようにする
https://www.openrtm.org/redmine/issues/374
2009-02-06T09:19:30Z
n-ando
Noriaki.Ando@gmail.com
<p>createComponentに渡す生成対象コンポーネント名にRTCProfileで定義されている<br />RTC:vendor:category:implementation_id:version 形式のIDを渡し、これに基づきコンポーネントを生成するようにする。</p>
機能 #367 (終了): coilに時間計測のためのクラスを導入
https://www.openrtm.org/redmine/issues/367
2009-02-02T23:45:16Z
n-ando
Noriaki.Ando@gmail.com
<p>RTCやRTM内で種々の実行時間などを計測するためのクラスTimeMeasureをcoilに導入する。<br />また、そのテストを作成する。</p>
機能 #326 (終了): configureで各種パッケージ作成をサポートする
https://www.openrtm.org/redmine/issues/326
2009-01-10T10:46:20Z
n-ando
Noriaki.Ando@gmail.com
<p>現在、rpmおよびdebパッケージの作成方法が確立されているが、それぞれ独自のスクリプトをconfigure/makeとは別に動かす必要がある。これを一括してできるようにしたい。</p>
<ul>
<li>configure のオプションに --build-package=[rpm,deb,freebsd,etc..]を設ける</li>
<li>オプションが指定された場合、適当なディレクトリ下でパッケージ用にビルドを行う</li>
<li>オプションに指定されたメソッドでパッケージをビルドできるようにする</li>
<li>オプションのメソッドが未指定の場合自動でディストリを判断しメソッドを特定する</li>
<li>メソッドがわからなければ停止</li>
<li>指定されたメソッドが自動判定と一致しなければ停止</li>
<li>できれば、二重にビルドしないことが望ましいが、できなければいったんビルド後パッケージ用にもう一度ビルドしてもよい</li>
</ul>
機能 #324 (新規): Configurationに関するユーザAPIの軽微な改良
https://www.openrtm.org/redmine/issues/324
2009-01-10T10:36:42Z
n-ando
Noriaki.Ando@gmail.com
<p>Configuration機能に関する以下の機能を実現する関数を実装する。</p>
<ul>
<li>Configurationの各パラメータが外部から変更された際にそれを知る方法</li>
<li>Configurationパラメータを変更した際に、外部から見える数値をアップデートする方法
<ul>
<li>現在はonXXXX()関数の前後で自動的に更新を反映しているがそれをRTObjectの関数にする</li>
</ul></li>
</ul>