- qibuild configure -c "toolchain name"
- qibuild make -c "toolchain name"
- move to ~/GameController2018/
- java -jar GameController.jar
- java -jar GameControllerTester.jar
Game controller files are conducted with gameControllData headers. Udp class uses the same data type to transfer information
- File with port numbers:
/GameController2018/include/RoboCupGameControlData.h - GC data transfering:
Using broadcast address /192.168.1.255
Listening on address /192.168.1.68
- Transfering messages from GC to GCTester using udp protocol and Linux Socket
- adding some API to deliver messages with udp (25.02)
- Run Game Controller
- Analyse GameControlData class
- Analyse GameController messages
- Easy way
Read InTeReStInG code.
Find START message handler.
Write module the same way. - Cool way
Use AL:: library and Brocker API to handler the START message.
We can write separate class in which we'll use brockers to call methods from other modules - Current way
We have to write special class, which will contain data and team info
WiFi local network
- Only computers
On first PC GameController is executed. This PS is a message sender. Messages contains information about commands, game style, timeout etc. The second computer reads GCData from UDP port and parses data in readable way. We can provide a reliable connection and data transfering. After that we can start the next step - Comming soon ...
My PC
wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.68
We used two programms written by Vlad in terms of OS course: server.c & client.c On the first PC we made a broadcast point with GC. On the second one there was a running client program. This program reads data from all the users in a network, and we saw a broadcasting messages in Robocup GameController standart data type.
Coding a Communication module we faced a problem with boost warnings layout and CMakeList specific syntax.
We added a special header file which had to provide us an ability to ignore warnings:
#include <boost/config/warning_disable.hpp>
We added prefixes to Cmake flags this way:
SET(QIBUILD_COMPILE_FLAGS "-isystem")
add_definitions(${QIBUILD_COMPILE_FLAGS})
or
target_compile_options(all PRIVATE -isystem)
Both of these features didn't work properly.
Then we rewrote a Communication module with new toolchain and now It works!
We creates a connection dump to see the data transmission between robot & PC with GC.
- write a wrapper class which provides reading, writing and parsing data
- execute the program from nao robot
We have already write a wrapper class which is now a member of Communication class
We tested our module with remote connection on NAO robot
After that we turned to uploading the binary files .so onto NAO robot
There was a problem with a loop in constructor, but we found a solution
The GC and NAO created a communication and we could receive messages from NAO
to PC and set states of NAO by GC interface
TODO:
Now we have to add a virtual function init which is inherited from the based class AlModule