system editor (connecting ports)

✏️ Edit this page on GitHub

#contents

This section explains connections between data ports and between service ports.

Data Port Connections

For data port connections, connect an “InPort” and an “OutPort”. When you connect them by drag and drop, the following dialog is displayed. Note that the “Buffer” setting items are hidden when the dialog is initially displayed.

Data Port Connector Profile Dialog


The dialog items and conditions are as follows.

Dialog Items and Requirements for Data Port Connections
No. Dialog Item Name ConnectorProfile Requirements
① Name name None in particular
② Data Type <<properties>>
dataport.data_type
Specifies the data type to be sent and received between the data ports connected by this connector.
Select from the data types that each port can send and receive to and from the other port. However, if Any is included, any value from the other port is accepted.
③ Instance Type <<properties>>
dataport.interface_type
Specifies the interface type assumed by the RT system designer or supported by the RT middleware on which the RTC operates.
Select from the interface types supported by both ports. However, if Any is included, any interface from the other port is accepted.
④ Dataflow Type <<properties>>
dataport.dataflow_type
Specifies the dataflow type assumed by the RT system designer or supported by the RT middleware on which the RTC operates.
Select from the dataflow types supported by both ports. However, if Any is included, any dataflow from the other port is accepted.
⑤ Subscription Type <<properties>>
dataport.subscription_type
[Requirement when the value of Dataflow Type is Push]
Specifies the subscription type assumed by the RT system designer or supported by the RT middleware on which the RTC operates.
Select from the subscription types supported by both ports. However, if Any is included, any subscription type from the other port is accepted.
⑥ Push Rate(Hz) <<properties>>
dataport.push_interval
[Requirement when the value of Dataflow Type is "Push" and Subscription Type is "Periodic"]
Specifies the data transmission cycle when the subscription type is "Periodic". Specify the transmission cycle as a positive numeric value (decimals allowed).
⑦ Push Policy <<properties>>
dataport.publisher.push_policy
Data transmission policy. [Requirement when the value of Dataflow Type is "Push" and Subscription Type is "Periodic"] Select from all, fifo, skip, and new.
all: Sends all data in the buffer at once
fifo: Sends data in the buffer one item at a time in FIFO order
skip: Sends data while skipping data in the buffer
new: Sends the latest value in the buffer (old values are discarded).
⑧ Skip Count <<properties>>
dataport.publisher.skip_count
Number of transmission data items to skip. [Requirement when the value of Push Policy is "skip"] Data in the buffer is thinned out and sent according to this setting value.
⑨ Details ― When the checkbox is checked, detailed setting items for the input/output port buffers are displayed.
They are hidden when the dialog is initially displayed.
⑩
⑮
Buffer length
(OutPort/InPort)
<<properties>>
buffer.length
Buffer length
⑪
⑯
Buffer full policy
(OutPort/InPort)
<<properties>>
buffer.write.full_policy
Behavior when the buffer is full during data writing to the buffer. Select from overwrite, do_nothing, and block.
overwrite: Overwrites the data.
do_nothing: Does nothing.
block: Blocks.
If block is specified, and the following timeout value is specified, a timeout occurs if writing is not possible after the specified time. The default is overwrite.
⑫
⑰
Buffer write timeout
(OutPort/InPort)
<<properties>>
buffer.write.timeout
The time until a timeout event is generated when writing data to the buffer (unit: seconds)
The default is 1.0 [sec]. If 0.0 is set, no timeout occurs.
⑬
⑱
Buffer empty policy
(OutPort/InPort)
<<properties>>
buffer.read.empty_policy
Behavior when the buffer is empty during data reading from the buffer. Select from readblock, do_nothing, and block.
readblock: Re-reads the last element.
do_nothing: Does nothing.
block: Blocks.
If block is specified, and the following timeout value is specified, a timeout occurs if reading is not possible after the specified time. The default is readback.
⑭
⑲
Buffer read timeout
(OutPort/InPort)
<<properties>>
buffer.read.timeout
The time until a timeout event is generated when reading data from the buffer (unit: seconds)
The default is 1.0 [sec]. If 0.0 is set, no timeout occurs.
⑳
21
Name/Value <<properties>>
Name
Sets arbitrary properties
Items can be added with the [Add] button and deleted with the [Delete] button.
The entered items are set in the Properties of the ConnectorProfile in NVList format.
Properties with the same Key cannot be set.

For items ② through ⑤, RT System Editor creates the selectable values by matching strings from the value lists of each port. If only ANY is specified for both ports, it is not possible to determine the values that can be entered. For this reason, when ANY is included in both ports, RT System Editor allows arbitrary strings to be entered. Items for which arbitrary strings can be entered display “Arbitrary input allowed”.

Display When Arbitrary Input Is Allowed


Service Port Connections

For service port connections, connect a “ServicePort” and a “ServicePort”. When you connect them by drag and drop, the following dialog is displayed.

Service Port Connector Profile Dialog


The dialog items and conditions are as follows.

Dialog Items and Requirements for Service Port Connections
No. Dialog Item Name ConnectorProfile Requirements
① Name Name None in particular
② Details ― When the checkbox is checked, detailed setting items for Consumer/Provider are displayed.
They are hidden when the dialog is initially displayed.
③ Consumer ― Select from the list of Consumers of the interfaces set for the service ports to be connected. The selection list in the ComboBox is displayed in the format <component name>:<interface name>:<instance name>.
The added Consumer/Provider pair is stored in the ConnectorProfile with the Consumer ID as the property key and the Provider ID as the property value.
The Consumer/Provider IDs are represented in the following format. <rtc_name>.port.<port_name>.<if_polality>.<if_tname>.<if_iname>
  • rtc_name is the component name
  • port_name is the port name
  • if_polality is "required" for Consumer and "provided" for Provider
  • if_tname is the type name of the interface
  • if_iname is the instance name of the interface
④ Provider <<properties>>
Set with the Consumer ID as the key
As with Consumer, select from the list of Providers of the interfaces set for the service ports to be connected.
⑤ Add ― Adds a new Consumer/Provider entry.
⑥ Delete ― Deletes the selected Consumer/Provider entry.
⑦
⑧
Name/Value <<properties>>
Name
Sets arbitrary properties
Items can be added with the [Add] button and deleted with the [Delete] button.
The entered items are set in the Properties of the ConnectorProfile in NVList format.
Properties with the same Key cannot be set.

For service ports, there are no required connection conditions. However, if the PortInterfaceProfiles between the ServicePorts do not match completely (*1), a warning is displayed in the connection dialog.

Warning Display in the Service Port Connection Dialog


*1

A complete match here means that the “type” of the PortInterfaceProfiles is the same and that the “polarity” values are PROVIDED and REQUIred for each other. It also means that all PortInterfaceProfiles match without any excess (each port can have multiple PortInterfaceProfiles).