SwisTrack/Multi-Camera Client

=Introduction=

Abstract
SwisTrack Multi-Camera Client is a client tool to communicate with several SwisTrack instances. It is written in C++ using wxWidgets. Data received by a TCP connection will be merged and synchronized before displaying it on a window. SwisTrack is the server part of the connection and SwisTrack Multi-Camera Client is the client.

Zoom / focus function
You can zoom in and out using the scroll wheel of the mouse. To focus on a specific region click with the right mouse button on that region. The left mouse button is to get several information if clicked on a robot. By clicking the mouse wheel the view will be reset.

=Class hierarchy=

We have 10 classes, where "ClientFrame" is the mean one.



=Edit Settings=

If you select the menu "Edit/Edit settings" a editing window will pop up and you will be able to change the settings. Beware to the syntax, otherwise the program won't run correctly. Lines that begins with "#" are treated like comments.

The proper syntax of the SwisTrack Multi-Camera Client settings is (with example)):

Robot
Watch that after a type follows always a ":" and else after every entry follows a ";" except for the last one where nothing follows. Have a look on the screenshots for an real example.

Save tracking positions: file syntax
If desired, the movements of the robots can be saved on a "robotX.txt" file (X is the id of the robot). A line per frame will be used. The syntax is the following:

frame number, position in x, position in y, angle

example: 217,0.669787,8.297836, 6.210000

=Camera area definition=

As seen above we use a reference point with 2 vectors, a width and height for defining a camera area.



=NMEA 0183 protocol=

The SwisTrack Multi-Camera Client uses the NMEA 0183 protocol to communicate with the SwisTrack instances and the robots.

SwisTrack
Keep in mind that every command is encapsulated in a message with a message header (command) and a list of arguments according to the specific command. Every command begins with a $ and is in capitals.

Sending commands
The program can be paused (not sending $STEP commands any more) and be resumed by the menu commands under "ST controls/Pause tracking" and "ST controls/Resume tracking".

Receiving commands
Remark: One or several $PARTICLE commands can only be received between a $BEGINFRAME and a $ENDFRAME command!

Receiving commands
=Screenshots=

Here are some screenshots taken from the SwisTrack Multi-Camera Client: