Project

General

Profile

機能 #3780

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

Added by win-ei over 7 years ago. Updated over 7 years ago.

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を追加すること。

Associated revisions

Revision 950 (diff)
Added by win-ei over 7 years ago

[FSM4RTC] for multi-buffer mode. refs #3780

Revision 951 (diff)
Added by win-ei about 7 years ago

[FSM4RTC] for multi-buffer mode. refs #3780

Revision 952 (diff)
Added by win-ei about 7 years ago

[FSM4RTC] added APIs for multi-buffer mode. refs #3780

Revision 954 (diff)
Added by win-ei about 7 years ago

[FSM4RTC] Added the check of the type of the listener's argument. refs #3780

History

#1 Updated by win-ei over 7 years ago

作業メモ

動作確認するときの 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 
    

Also available in: Atom PDF