操作
機能 #3688
完了[FSM4RTC] データポートのPortProfile/ConnectorProfileのプロパティ拡張作業
開始日:
2017/01/19
期日:
進捗率:
100%
予定工数:
(合計: 0.00時間)
説明
データポート間を接続する際には、それぞれのポートが持つPortProfileの各種情報を取得しポートがサポートしている機能の情報を取得したうえで、ConnectorProfileのフィールドに必要な情報をセットし、1か所のポートに対して引数を渡しnotify()関数を呼ぶことでポート間の接続が確立される。FSM4RTCでは、PortProfile::properties, ConnectorProfile::properties にセットする値がOpenRTM-aistで決められているものから変更されており、本実装では、この仕様に対応させる作業を実施する。
FSM4RTCでは以下の14種類の標準プロパティが定義されており、PortProfileでは、dataport.fsm_event_name を除くプロパティがセットされている。また、ConnectorProfileでは14種類すべての値に対して、振る舞いを変更するなどの対応が必要となる。
- dataport.dataflow_type: {push, pull}
- dataport.io_mode: {block, nonblock}
- dataport.data_type: Data type in IFR
- dataport.interface_type: Interface type in IFR
- dataport.marshaling_type: marshaling type
- dataport.timestamp_policy: {on_write, on_send, on_received, on_read, none}
- dataport.write_buffer_length: int
- dataport.write_buffer_full_policy: {overwrite, do_nothing, block}
- dataport.write_buffer_timeout: [s]
- dataport.read_buffer_length: int
- dataport.read_buffer_empty_policy: {read_back, do_nothing, block}
- dataport.read_buffer_timeout: [s]
- dataport.read_buffer_queue_policy: {all, fifo, new}
- dataport.fsm_event_name: イベント名
なお、実装するにあたり、過去のバージョンとの互換性のため、新旧両方のプロパティに対応させること。
これらのプロパティーのうち、dataport.timestamp_policy についてはOpenRTM-aistに該当する機能はないため、新規にInPort/OutPortに実装すること。
n-ando さんがほぼ8年前に更新
変更作業は以下の通り。
- dataport.io_mode: {block, nonblock}
- dataport.marshaling_type: marshaling type
- dataport.timestamp_policy: {on_write, on_send, on_received, on_read, none}
- dataport.fsm_event_name: イベント名
以下は実装確認作業が必要。
- dataport.write_buffer_length: int
- dataport.write_buffer_full_policy: {overwrite, do_nothing, block}
- dataport.write_buffer_timeout: [s]
- dataport.read_buffer_length: int
- dataport.read_buffer_empty_policy: {read_back, do_nothing, block}
- dataport.read_buffer_timeout: [s]
- dataport.read_buffer_queue_policy: {all, fifo, new}
操作