Actions
機能 #3780
open(ス)データ入力ポートInPortのマルチタイプ入力・マルチバッファ化
Status:
新規
Priority:
通常
Assignee:
-
Target version:
-
Start date:
01/04/2017
Due date:
% Done:
0%
Estimated time:
Description
既存のOpenRTM-aistの実装では、InPortは特定の型のOutPortとしか接続できず、また、同一型のOutPortが多数接続されている場合でも、InPort内のデータバッファは一つであり、かつ内部APIでデータがどのOutPortから来ているかを区別する方法はなかった。この作業では、InPortは接続(Connector)ごとにバッファを保持し、各OutPortからの到達データはOutPortごとに異なるバッファに格納されるようにすること。また、InPortのAPIに複数のOutPortのどのポートからデータが来たのか、特定のOutPortからのデータを選択的に取り出せる内部APIを追加すること。
Updated by win-ei about 8 years ago
作業メモ¶
動作確認するときの 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
Actions