プロジェクト

全般

プロフィール

機能 #3780

未完了

(ス)データ入力ポートInPortのマルチタイプ入力・マルチバッファ化

win-ei さんがほぼ8年前に追加. ほぼ8年前に更新.

ステータス:
新規
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
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 読み出し成功
  • 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 
    

他の形式にエクスポート: Atom PDF