시스템 에디터(포트와 포트의 연결 편)

데이터 포트와 데이터 포트, 서비스 포트와 서비스 포트 사이의 연결에대해 설명합니다.

데이터 포트와 데이터 포트의 연결

 데이터 포트의 연결으로 「 InPort 」와「 OutPort 」를 연결합니다. 이러한 포트 사이를 드래그&드롭으로 연결하면 이하의 다이얼로그가 표시됩니다.

fig29ConnectDialog1_kr.png
데이터 포트의 Connector Profile 다이얼로그

fig29ConnectDialog2_kr.png
데이터 포트의 Connector Profile 다이얼로그(상세)


다이얼로그의 항목과 조건은 이하와 같습니다.

데이터 포트 연결의 다이얼로그 항목과 필요 조건

№ 다이얼로그 항목명 ConnectorProfile 필요 조건
① Name name 특별히 없음
② Data Type properties “dataport.data_type” 이 커넥터로 접속하고 있는 데이터 포트 사이에 송수신 하는 데이터형을 지정합니다.
각각의 포트에서 서로 송수신 가능한 데이터형으로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 값도 허용합니다.
③ Instance Type properties “dataport.interface_type” RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 인터페이스 종별을 지정합니다.
각각의 포트로 서에서 지원하고 있는 인터페이스 종별로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 인터페이스도 허용합니다.
④ Dataflow Type properties “dataport.dataflow_type” RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 데이터 플로우형을 지정합니다.
각각의 포트로 서에서 지원하고 있는 데이터 플로우형으로부터 선택합니다. 다만, Any를 포함한 경우는 상대 포트의 어떠한 데이터 플로우도 허용합니다.
⑤ Subscription Type properties “dataport.subscription_type” [Dataflow Type의 값이 Push 일 때에 필요한 조건]
RT시스템 설계자가 상정하거나 RTC가 동작하는 RT미들웨어 상에서 지원되는 서브 스크립션 종별을 지정합니다.
각각의 포트에서 서로 지원하는 서브 스크립션 종별로부터 선택합니다. 다만, Any를 포함한 경우는 상대의 어떠한 서브 스크립션 종별도 허용합니다.
⑥ Push Rate(Hz) properties “dataport.push_interval” [Dataflow Type의 값이”Push”이고 또한 Subscription Type이 ”Periodic”일 때에 필요한 조건]
서브 스크립션 종별이 「Periodic」인 경우에 데이터의 송신 주기를 지정합니다. 송신 주기는 정수치(소수가능)로 지정합니다.
⑦ Push Policy properties “dataport.publisher.push_policy” 데이터 송신 정책. [Dataflow Type의 값이 ”Push”이고 또한 Subscription Type이 ”Periodic”일 때에 필요한 조건]all、fifo、skip、new중에서 선택합니다.
all:버퍼 내의 데이터를 일괄 송신
fifo:버퍼 내의 데이터를 FIFO으로 한개씩 송신
skip:버퍼 내의 데이터를 스킵해서 송신
new:버퍼 내의 데이터의 최신값을 송신(오래된 값은 버려집니다.)
⑧ Skip Count properties "dataport.publisher.skip_count" 송신 데이터 스킵수. [Push Policy의 값이”skip”일 때에 필요한 조건]버퍼 내의 데이터가 이 지정값으로 스킵되어 송신됩니다.
⑨ Buffer length properties "buffer.length" 버퍼의 길이
⑩ Buffer full policy properties "buffer.write.full_policy" 버퍼에 데이터를 쓸 때, 버퍼가 풀일 경우 동작. overwrite, do_nothing, block중에서 선택합니다.
overwrite:데이터를 덮어쓰기 합니다.
do_nothing:아무것도 하지 않습니다.
block:블록 합니다.
block을 지정한 경우, 다음(⑪)에서 타임 아웃 값을 지정하고 지정시간 후 쓰기 불가능이 되어 타임 아웃 합니다. 디폴트는 overwrite(덮어쓰기)입니다.
⑪ Buffer write timeout properties " buffer.write.timeout" 버퍼에 데이터를 쓸 때, 타임 아웃 이벤트를 발생시킬 때까지의 시간.(단위:초)
디폴트는 1.0 [sec]입니다. 0.0을 지정한경우는 타임 아웃하지 않습니다.
⑫ Buffer empty policy properties "buffer.read.empty_policy” 버퍼에서 데이터를 읽을 때, 버퍼가 비어있는 경우에 동작. readblock、do_nothing、block중에서 선택합니다.
readblock:마지막의 요소를 다시 읽습니다.
do_nothing:아무것도 하지 않습니다.
block:블록 합니다.
block을 지정한 경우, 다음(⑬)의 타임 아웃값을 지정하고 지정시간후에 읽기 불가능이 되면 타임 아웃 합니다. 디폴트는 readback입니다.
⑬ Buffer read timeout properties " buffer.read.timeout" 버퍼에서 데이터를 읽을 때, 타임 아웃 이벤트를 발생시킬 때까지의 시간.(단위:초)
디폴트는 1.0 [sec]입니다. 0.0을 설정한 경우는 타임 아웃하지 않습니다.

서비스 포트와 서비스 포트의 연결

 서비스 포트간의 연결에서는, 「ServicePort」와「ServicePort」를 접속합니다. 이러한 포트 사이를 드래그&드롭으로 연결하면 이하의 다이얼로그가 표시됩니다.

fig30ServiceConnectDailog1_ko.png
서비스 포트의 커넥터 프로파일 다이얼로그


fig30ServiceConnectDailog2_ko.png
서비스 포트의 커넥터 프로파일 다이얼로그(상세)

다이얼로그의 항목과 조건은 이하와 같습니다.

서비스 포트 연결 다이얼로그 항목과 필수조건

№ 다이얼로그 항목명 ConnectorProfile 필요 조건
① Name Name 특별히 없음
② properties "rtc_iname"
properties "port_name"
properties "interfaces.if_iname"
인터페이스 연결 대상의 서비스 포트에 복수의 서비스 인터페이스가 정의되어 있는 경우에 유효. 어떤 인터페이스를 연결할 것인지를 지정할 수 있습니다.


서비스 포트의 경우, 필수가 되는 연결조건은 없습니다. 그러나 ServicePort사이에서의 PortInterfaceProfile가 완전하게 매칭(※1)하지 않는 경우, 연결 다이얼로그에서 경고를 표시합니다.

fig59ServicePortWarning_ko.png

서비스 포토의 접속 다이얼로그의 경고 표시


 ※1  여기서 말하는 완전한 매칭이란, PortInterfaceProfile의 「type」이 같고 「polarity」가 서로 PROVIDED와 REQUIred로 되어 있는 것. 또 남는 것 없고(PortInterfaceProfile은 각각의 포트에 복수 존재한다) 모든 PortInterfaceProfile가 매칭 하는 것을 가리키고 있습니다.

ダウンロード

最新バージョン : 2.1.0-RELESE

統計

Webサイト統計
ユーザ数:3399
プロジェクト統計
RTコンポーネント309
RTミドルウエア35
ツール25
文書・仕様書2

OpenRTM@Github

OpenRTM-aist GitHubサイト

ROS

Robot Operating System

Choreonoid

モーションエディタ/シミュレータ

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

産総研が提供するRTC集

東京オープンソースロボティクス協会