User Tools

Site Tools


eeros_architecture:control_system:available_blocks:socket

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eeros_architecture:control_system:available_blocks:socket [2017/08/09 11:50] grafeeros_architecture:control_system:available_blocks:socket [2021/04/22 12:20] (current) – [Parameters] ursgraf
Line 1: Line 1:
 ====== Socket Data ====== ====== Socket Data ======
-A socket data block allows for sending or receiving signal values to or from a remote station over a socket connection. This can be used to gather signals from a sensor or send signals to an remote control unit. Upon instantiation the block will create a socket server which runs in its own thread. Any socket client can now connect to this server. After a connection is established the two can send or receive any type of signal. \\+A socket data block allows for sending or receiving signal values to or from a remote station over a socket connection. This can be used to gather signals from a sensor or send signals to an remote control unit. Upon instantiation the block will create a socket server (or socket client) which runs in its own thread. Any socket client can now connect to this server. After a connection is established the two can send or receive any type of signal. \\
 A socket data block can have zero or one input. The first template parameter indicates the type of the input signal while the second parameter denotes the type of the output signal, e.g.: A socket data block can have zero or one input. The first template parameter indicates the type of the input signal while the second parameter denotes the type of the output signal, e.g.:
 <code cpp> <code cpp>
Line 12: Line 12:
  
 ===== Parameters ===== ===== Parameters =====
-When constructing a socket data block you can pass the ip-address as well as the period of the internal thread as parameters. The period of the internal thread determines the transceiver frequency.+When constructing a socket data block you can pass the ip-address, the port number, the period of the internal thread, and the read timeout time as parameters. If you pass an empty string as ip-address, a socket server will be created. Setting the ip-address will cause a socket client to be created, which tries to connect to the given ip-address.  
 +The period of the internal thread determines the transceiver frequency.
 <code cpp> <code cpp>
-SocketData<Matrix<10,2,double>, double> socket2("146.136.36.102", 0.5); +SocketData<Matrix<10,2,double>, double> socket1("", 9876, 0.5);
 </code> </code>
-Input and output signals will be transmitted twice per second. A remote client would have to connect to the ip-address 146.136.36.102.+A socket server is established. Input and output signals will be transmitted twice per second. A remote client would have to connect to the ip-address of the machine running this application on port '9876'
 +<code cpp> 
 +SocketData<Matrix<10,2,double>, double> socket2("146.136.36.102", 9876, 0.5);  
 +</code> 
 +This creates a socket client. Input and output signals will be transmitted twice per second. The client connects to a server on the ip-address '146.136.36.102' with port number '9876'
 + 
 +Both server and client transmit and receive with a thread frequency of 0.5s. It makes sense to choose the same frequency for both partners. If one of them has a lower frequency, the communication will happen with this lower frequency.
  
 +The last parameter is the timeout time. If not specified, it will be 1 second. This is the time a socket data block tries to read from a socket connection. If the other side suddenly stops the connection, the socket data block will stop trying to read after this timeout out and will report a message.
 +===== Miscellaneous =====
 +As soon as a client connects to a socket server a connection is up and running until either one of them stops. It is possible to stop the server or the client and restart it subsequently. In both cases a new connection will be established. \\
 +As long as the connection is not yet open the ''SocketData'' block will have output values being zero. As soon as the connection is broken the block will set its output values back to zero.
eeros_architecture/control_system/available_blocks/socket.1502272259.txt.gz · Last modified: 2017/08/09 11:51 (external edit)