Using TCP Ports¶
This provides the simplest way to interface to a system that is not on the same machine. Each of the external interface is mapped to a TCP port and can be read from or written to.
Walkthrough¶
- For the purpose of demonstration in this walkthrough, we will use a simple function included in vsi_examples repository. Using git, clone the vsi_examples repository:
https://github.com/systemviewinc/vsi-examples.git
. - Create a new project and work through the wizard to the end. Select any part/board as it won’t matter since we’re only going to be using the software for the walkthrough.
- Click
menu->flow->Create Platform
. Accept the prefilled default options and Press okay. - Click
menu->flow->Create Context
. Change the dropdown toSoftware
and enter name astcp_walkthrough
. Press okay. - Open Context block properties by double clicking inside
tcp_walkthrough
and scroll down toSoftware Parameters->map exposed interfaces as
. Make sure thatTCP Ports
is selected. - Press okay to close the properties dialog.
- Select
menu->Flow->Compile Platform
. - Then create a system canvas by selecting
flow->create system
. Accept the prefilled defaults. - Open the newly created system canvas and select
menu->Flow->Import Platform
- Double click the
tcp_walkthrough
context to enter hierarchy. - Add a new
VSI Software Wizard
block by right clicking and selectingVSI Software Wizard
. - Open newly added block properties by double-clicking it.
- Click browse beside
Source Directory
and browse to select source code directory<vsi_examples>/example_1
. - The
C/C++ Function
dropdown box should be populated with multiple entries. Open and selectprocess_tcp1
. - Enable
Execution Trigger
forArg 1
in Arguments section. - Change the direction of
Arg 2
in Arguments section tooutput
. Press okay to close properties. - Right click each interface and select
Mark External
. - Select
flow->Generate System
. - Select
flow->Build Software Contexts
and then SelectBuild
. - Wait for the build to successfully complete.
- Browse to the directory
<project_dir>/vsi_auto_gen/sw/system_1
in a terminal. - Run the system by using the following command
./build/tcp_walkthrough/bin/tcp_walkthrough
- Use a tcp client to connect to the input interface marked external. For this walkthrough, we’ll use
netcat
as a TCP client. Enter the following command to runnetcat localhost 1999
. - Open another terminal and enter
netcat localhost 2000
. This will connect to the output where you will see the processed data being emitted. - Enter a blob of data < 256 Bytes and press enter.
- You should see the processed data in the second terminal.