操作
機能 #3780
未完了(ス)データ入力ポートInPortのマルチタイプ入力・マルチバッファ化
ステータス:
新規
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2017/01/04
期日:
進捗率:
0%
予定工数:
説明
既存のOpenRTM-aistの実装では、InPortは特定の型のOutPortとしか接続できず、また、同一型のOutPortが多数接続されている場合でも、InPort内のデータバッファは一つであり、かつ内部APIでデータがどのOutPortから来ているかを区別する方法はなかった。この作業では、InPortは接続(Connector)ごとにバッファを保持し、各OutPortからの到達データはOutPortごとに異なるバッファに格納されるようにすること。また、InPortのAPIに複数のOutPortのどのポートからデータが来たのか、特定のOutPortからのデータを選択的に取り出せる内部APIを追加すること。
win-ei さんがほぼ8年前に更新
作業メモ¶
動作確認するときの rtcon。
- InPortに追加するAPI
- boolean isNew(ArrayList<String> names)
データが存在する接続を取得する。
@param データが存在する"接続名"を格納するためのバッファ
@return true 未読の最新データが存在する - boolean isNew("接続名")
"接続名"で指定された接続にデータが存在するか確認する。
@param "接続名"
@return true 読み出し成功 - boolean read("接続名")
"接続名"で指定された接続からデータを読込む。
@param データを読込む"接続名"を指定する。
@return true 読み出し成功
- boolean isNew(ArrayList<String> names)
- pull接続
rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.dataflow_type=pull rtcon ./localhost/Inputbutton0.rtc:open ./localhost/ConsoleOut0.rtc:in --property dataport.dataflow_type=pull
- push接続
バッファ空状態での読み出しモードをdo_nothingに指定する。rtcon ./localhost/ConsoleIn0.rtc:out ./localhost/ConsoleOut0.rtc:in --property dataport.subscription_type=flush --property dataport.buffer.read.empty_policy=do_nothing rtcon ./localhost/Inputbutton0.rtc:open ./localhost/ConsoleOut0.rtc:in --property dataport.subscription_type=flush --property dataport.buffer.read.empty_policy=do_nothing
操作