ADTF  3.18.3
UDP/TCP Receiver/Sender From/To Non-ADTF Application Plugin

UDP Receiver From Non-ADTF Application

Plugin Information
Plugin Filenameforeign_application_udp.adtfplugin
Plugin Descriptionforeign_application_udp.plugindescription
Plugin NameNon ADTF UDP Receiver And Sender Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.3
Plugin File Version1.0
adtf3.18.3
adtf::ucom3.1.0
Component Information
NameUDP Receiver From Non ADTF Application
CIDdemo_foreign_application_udp_receiver.streaming_source.adtf.cid
DescriptionUse this Streaming Source to receive sample data from a Non-ADTF Application using the UDP protocol
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
ddl_struct_namecStringIf set, the stream type will contain the media description of the given struct, retrieved from the Media Description Service.
deserialize_via_media_descriptionfalsetBoolIf activated, incoming data will be deserialized as defined by the media description of the struct selected via ddl_struct_name before writing it into output samples.
interfacecStringif set, bind the socket to this local interface
mark_samples_as_deserializedtruetBoolIn case that 'deserialize_via_media_description' is disabled, this will force the output stream type to have the deserialized flag set.
multicast_groupcStringif set, join the given multicast group
port0tUInt16The UDP port to bind to and listen on.
receive_buffer_size9000tUInt64Maximum payload size in bytes this filter can accept. Choose according to configured MTU. Values up to 64kB are plausible from UDP side.Value Range:
minimum = 1
maximum = 65535
socket_receive_buffer_size0tUInt64Sockets receive buffer size in bytes (min: 4098, Default: 0 - uses system default)
Output Pins
NameStream TypeDescription
output non_adtf_udp_receiver_and_sender_plugin_demo_foreign_application_udp_receiver_streaming_source_adtf_cid_output Provides the sample data received from a Non-ADTF instance over UDP
Runner
NameActivation TypeData TriggeredData InputThread TriggeredThread CyclicTimer TriggeredTimer IntervalDescription
socket_thread601100Connect a Thread Runner that will provide the context for receiving all data from the socket. If this is not connected, the source will create a thread on its own.
Input Binding Objects
NameIIDProxy OIDDescription
socketudp_socket.demo.adtfInterface server to provide a shared socket for communication
Dynamic Pins
Dynamic Input Pinsfalse
Dynamic Output Pinsfalse
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Required Interfaces
IID
reference_clock.riddler.streaming.adtf.iid
kernel.penguin.services.adtf.iid
Output Pin Stream Types
Pin Nameoutput
Meta Type Name
Stream Type Properties

UDP Sender To Non-ADTF Application

Plugin Information
Plugin Filenameforeign_application_udp.adtfplugin
Plugin Descriptionforeign_application_udp.plugindescription
Plugin NameNon ADTF UDP Receiver And Sender Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.3
Plugin File Version1.0
adtf3.18.3
adtf::ucom3.1.0
Component Information
NameUDP Sender To Non ADTF Application
CIDdemo_foreign_application_udp_sender.streaming_sink.adtf.cid
DescriptionUse this Streaming Sink to transmit sample data to a Non-ADTF Application using the UDP protocol
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
port0tUInt16This is only taken into account when remote_host is set as well and when this sink is not connected to a source via the socket interface binding.
remote_hostcStringIf set, send data to this host. This is required if the sink is not connected to a source. If this property is empty, packets will be sent to the last endpoint that data was received from. If set to 'localhost' the IPv4 localhost address '127.0.0.1' is used. IPv4 Example: '127.0.0.1' IPv6 Example: '::1'
serialize_via_media_descriptionfalsetBoolIf activated, incoming samples will be serialized as defined by the media description of the stream type before sending it via the socket.
Input Pins
NameStream TypeDescription
input adtf/anonymous Incoming data to transmit
Runner
NameActivation TypeData TriggeredData InputThread TriggeredThread CyclicTimer TriggeredTimer IntervalDescription
process_input91input0000Default runner port for the input pin 'input'
Output Binding Objects
NameIIDProxy OIDDescription
socketudp_socket.demo.adtfInterface client to use a shared socket for communication. The connected socket provides the local host and port to bound as source.
Dynamic Pins
Dynamic Input Pinsfalse
Dynamic Output Pinsfalse
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Input Pin Stream Types
Pin Nameinput
Meta Type Nameadtf/anonymous
Stream Type Properties

TCP Receiver From Non-ADTF Application

Plugin Information
Plugin Filenameforeign_application_tcp.adtfplugin
Plugin Descriptionforeign_application_tcp.plugindescription
Plugin NameNon ADTF TCP Receiver And Sender Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.3
Plugin File Version1.0
adtf3.18.3
adtf::ucom3.1.0
Component Information
NameTCP Receiver From Non ADTF Application
CIDdemo_foreign_application_tcp_receiver.streaming_source.adtf.cid
DescriptionUse this Streaming Source to receive sample data from a Non-ADTF Application using the TCP protocol
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
ddl_struct_namecStringIf set, the stream type will contain the media description of the given struct, retrieved from the Media Description Service.
deserialize_via_media_descriptionfalsetBoolIf activated, incoming data will be deserialized as defined by the media description of the struct selected via ddl_struct_name before writing it into output samples.
enable_automatic_reconnectionfalsetBoolIf enabled, connection loss is not treated as an error, but the source tries to reconnect.
fixed_packet_size0tUInt64If non-zero, the source will wait to read this amount of bytes before putting them into a Sample.
mark_samples_as_deserializedtruetBoolIn case that 'deserialize_via_media_description' is disabled, this will force the output stream type to have the deserialized flag set.
remote_hostcStringThe hostname or ip address that the source should connect to.
remote_port0tUInt16The port on the remote host that the source should connect to.
Output Pins
NameStream TypeDescription
output non_adtf_tcp_receiver_and_sender_plugin_demo_foreign_application_tcp_receiver_streaming_source_adtf_cid_output Provides the sample data received from a Non-ADTF instance over TCP
Runner
NameActivation TypeData TriggeredData InputThread TriggeredThread CyclicTimer TriggeredTimer IntervalDescription
receive_data601100Connect a Thread Runner that will provide the context for receiving all data. If this is not connected, the source will create a thread on its own.
Input Binding Objects
NameIIDProxy OIDDescription
sockettcp_socket.demo.adtfInterface server to provide a shared socket for communication
Dynamic Pins
Dynamic Input Pinsfalse
Dynamic Output Pinsfalse
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Required Interfaces
IID
reference_clock.riddler.streaming.adtf.iid
kernel.penguin.services.adtf.iid
Output Pin Stream Types
Pin Nameoutput
Meta Type Name
Stream Type Properties

TCP Sender To Non-ADTF Application

Plugin Information
Plugin Filenameforeign_application_tcp.adtfplugin
Plugin Descriptionforeign_application_tcp.plugindescription
Plugin NameNon ADTF TCP Receiver And Sender Plugin
LicenseADTF
Support Mailsupport@digitalwerk.net
Homepage URLhttps://support.digitalwerk.net/
Plugin Versions
Plugin Version3.18.3
Plugin File Version1.0
adtf3.18.3
adtf::ucom3.1.0
Component Information
NameTCP Sender To Non ADTF Application
CIDdemo_foreign_application_tcp_sender.streaming_sink.adtf.cid
DescriptionUse this Streaming Sink to transmit sample data to a Non-ADTF Application using the TCP protocol
TypeFilter
Properties
NameValueTypeDescriptionSubproperties
enable_automatic_reconnectionfalsetBoolIf enabled, connection loss is not treated as an error, but the source tries to reconnect. This is only taken into account when the sink is not connected to a source via the socket interface binding.
no_tcp_delaytruetBoolIf activated, the TCP_NODELAY option will be set for the socket.
remote_hostcStringThis is only taken into account when the sink is not connected to a source via the socket interface binding. If set to 'localhost' the IPv4 localhost address '127.0.0.1' is used. IPv4 Example: '127.0.0.1' IPv6 Example: '::1'
remote_port0tUInt16This is only taken into account when the sink is not connected to a source via the socket interface binding.
serialize_via_media_descriptionfalsetBoolIf activated, incoming samples will be serialized as defined by the media description of the stream type before sending it via the socket.
Input Pins
NameStream TypeDescription
input adtf/anonymous Incoming data to transmit
Runner
NameActivation TypeData TriggeredData InputThread TriggeredThread CyclicTimer TriggeredTimer IntervalDescription
process_input91input0000Default runner port for the input pin 'input'
Output Binding Objects
NameIIDProxy OIDDescription
sockettcp_socket.demo.adtfInterface client to use a shared socket for communication
Dynamic Pins
Dynamic Input Pinsfalse
Dynamic Output Pinsfalse
Dynamic Input Binding Pinsfalse
Dynamic Output Binding Pinsfalse
Input Pin Stream Types
Pin Nameinput
Meta Type Nameadtf/anonymous
Stream Type Properties

Source Code
Test
Common Remarks
  • Sources and Sinks will share a single socket if they are connected to each other via the "socket" interface binding.
  • The "ddl_struct_name" Property allows you to specify the name of a struct media description that is provided via the Media Description Service. This type will be used to create a Stream Type for the output Pin.
  • If you activate the "deserialize_via_media_description" and/or "serialize_via_media_description" properties, incoming/outgoing data will be deserialized/serialized as defined by the media description of the selected struct or the Stream Type.
  • The small demo application will return any received UDP packets or TCP data back to the sender.
Properties
  • The Source creates a UDP / TCP socket and forwards all received UDP / TCP packets as ADTF samples.
  • Use the "remote_host" and "remote_port" properties to bind to a specific local interface and port.
  • The Sink forwards data from samples received via its input pin as UDP / TCP packets.
  • Use the "remote_host" and "remote_port" Properties to specify the destination. If you leave this empty and the Sink shares a socket with a Source, then packets will be sent to the address/port that the last packet was received from. This works only of the Sink is connected to a Source via interface binding.
Usage of demo_non_adtf_application executable
  • With -p you can specify a communication port, e.g. demo_non_adtf_application -p 12345
  • With -tcp you can create a TCP server, e.g. demo_non_adtf_application -tcp
  • With -ipv6 you can enable IPv6 support, e.g. demo_non_adtf_application -ipv6
  • Without any arguments, the demo_non_adtf_application starts an UDP Server using IPv4 on port 54321
Note
Make sure to start the executable and creating the server before launching example session