Skip to content

Commit 6dfd6b8

Browse files
committed
Update CI documentation
1 parent 6854748 commit 6dfd6b8

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

README.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,24 @@ See instructions for the client part in the reference clients mentioned above.
107107
## Integration into your own framework
108108
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.
109109

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).
112113

113114
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:
114115

115116
1. `system` (default): Use system time
116117
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)
118128

119129
### Examples
120130
* Integration of the binary: https://github.com/TIGERs-Mannheim/AutoReferee/blob/master/modules/moduli-referee/src/main/java/edu/tigers/sumatra/referee/SslGameControllerProcess.java

cmd/ssl-ci-test-client/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ This folder contains a sample client that connects to the CI interface of the ga
55
## Protocol
66
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.
77

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).
109

1110
The default port is `10009`.
1211

0 commit comments

Comments
 (0)