You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,14 +107,24 @@ See instructions for the client part in the reference clients mentioned above.
107
107
## Integration into your own framework
108
108
The game-controller can easily be integrated into your own AI framework, if you do not want to implement your own controller for testing purposes.
109
109
110
-
Download the release binary from the Github release and run it from inside your framework. Then, attach to the WebSocket API that is used by the UI as well.
111
-
The API is defined in [internal/app/controller/events.go](internal/app/controller/events.go).
110
+
Download the release binary from the Github release and run it from inside your framework.
111
+
Then, attach to the WebSocket API that is used by the UI as well to control the game.
112
+
The API is defined in [proto/ssl_gc_api.proto](./proto/ssl_gc_api.proto).
112
113
113
114
If you don't want to run the controller in real time, you can change the time acquisition mode in the `ssl-game-controller.yaml` file:
114
115
115
116
1.`system` (default): Use system time
116
117
1.`vision`: Receive messages from ssl-vision and use the timestamps from these messages as the time source. This is mostly useful, when you produce your own ssl-vision frames from simulation.
117
-
1.`ci`: Connect your software directly with TCP. You can send the current timestamp [ns] and will receive the resulting referee message. This also avoids the use of multicast. This is especially useful, if you run integration tests on your build server in parallel. For details, see: [internal/app/rcon/ciServer.go](internal/app/rcon/ciServer.go)
118
+
1.`ci`: Connect your software directly to the GC via TCP. You can send the current timestamp and tracker packets and will receive the resulting referee message.
119
+
120
+
The `ci` mode also disables all multicast messages.
121
+
This is especially useful, if you run integration tests on your build server in parallel and/or in a container.
122
+
The GC does not receive vision or tracker packages and does not produce referee messages.
123
+
Instead, you should set the correct geometry in `ssl-game-controller.yaml` and send the tracker packages via the CI protocol along the timestamp.
124
+
The referee messages are send from the GC to you via the CI protocol as well.
125
+
The communication is asynchronous.
126
+
127
+
For details, see: [ssl-ci-test-client](./cmd/ssl-ci-test-client/README.md)
118
128
119
129
### Examples
120
130
* Integration of the binary: https://github.com/TIGERs-Mannheim/AutoReferee/blob/master/modules/moduli-referee/src/main/java/edu/tigers/sumatra/referee/SslGameControllerProcess.java
Copy file name to clipboardExpand all lines: cmd/ssl-ci-test-client/README.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,7 @@ This folder contains a sample client that connects to the CI interface of the ga
5
5
## Protocol
6
6
The communication is established with a bidirectional TCP connection. Messages are encoded with [Protocol Buffers](https://developers.google.com/protocol-buffers/). Each message is preceded by an uvarint containing the message size in bytes, see https://cwiki.apache.org/confluence/display/GEODE/Delimiting+Protobuf+Messages for details.
7
7
8
-
The protobuf files can be found in [../../proto](../../proto/).
9
-
The main protobuf file is `ssl_gc_ci.proto`.
8
+
The protobuf format can be found in [../../proto/ssl_gc_ci.proto](../../proto/ssl_gc_ci.proto).
0 commit comments