Skip to content

Commit a772965

Browse files
committed
Update documentation
1 parent dba9124 commit a772965

File tree

3 files changed

+90
-88
lines changed

3 files changed

+90
-88
lines changed

README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# ssl-game-controller
88

9-
The [ssl-refbox](https://github.com/RoboCup-SSL/ssl-refbox) replacement that will be introduced at RoboCup 2019.
9+
The [ssl-refbox](https://github.com/RoboCup-SSL/ssl-refbox) replacement that was introduced at RoboCup 2019.
1010

1111
![Screenshot of Interface](./doc/screenshot_interface.png)
1212

@@ -17,9 +17,9 @@ The controller will generate a default config file to [config/ssl-game-controlle
1717

1818
### Runtime Requirements
1919
* No software dependencies (except for development, see below)
20-
* 64bit Linux, Windows, OSX (32bit would be possible too, but come on, we are in 2018...)
20+
* 64bit Linux, Windows, OSX (build your 32bit binaries yourself...)
2121
* Display Resolution of 1920x1080 is recommended
22-
* A reasonable Web-Browser (mostly tested on Chrome, please do not try IE...)
22+
* A reasonable Web-Browser (mostly tested on Chrome)
2323
* (optional) To view the field, you need the [ssl-vision-client](https://github.com/RoboCup-SSL/ssl-vision-client)
2424

2525
### Reference Clients
@@ -33,7 +33,7 @@ The ssl-game-controller replaces the ssl-refbox. With the introduction of automa
3333

3434
The referee message, that is send to the teams, has no breaking changes. Teams do not need to change their systems. Additional data will be send with the referee messages though. To read those changes, teams can update their `.proto` files from this repository to take advantage of it.
3535

36-
Teams will also have the possibility to connect to a new interface, where they can change their goalkeeper number during Stoppage. Additionally, there will be an advantage rule, where teams can decide to let the game continue on certain fouls.
36+
Teams will also have the possibility to connect to a new interface, where they can change their goalkeeper number.
3737

3838
List of new features:
3939
* Modern, scalable Web-UI
@@ -42,7 +42,7 @@ List of new features:
4242
* State history with undo button
4343
* Includes state that was previously located in all autoRefs
4444
* New Game Event concept for better interaction with multiple autoRefs
45-
* Game Log that documents commands and events
45+
* Game protocol that documents all changes in the state
4646
* New interfaces for autoRefs and teams
4747
* A graphical client can be integrated
4848

@@ -65,7 +65,7 @@ List of new features:
6565
Purpose: Notify team AI about end of game and log it in log files.
6666

6767
#### How to give a goal?
68-
If an autoRef has send a 'possible goal', this event can be accepted on the right.
68+
If an autoRef has sent a 'possible goal', this event can be accepted on the right.
6969

7070
To add a goal manually:
7171
* New Event (on the top)
@@ -78,7 +78,7 @@ Most of the state can be changed with the edit buttons. Either in the settings m
7878
This should only be used in case of misbehavior! Goals, yellow cards, etc. should be given through the respective events ('New event' button) or in the manual view.
7979

8080
#### How to revert a change?
81-
The game control allows to revert certain actions like game events or stage changes. For these actions, a revert button will show up in the protocol table.
81+
The game control allows reverting certain actions like game events or stage changes. For these actions, a revert button will show up in the protocol table.
8282
The button reverts this line and all following.
8383

8484
#### How to disable certain game events?
@@ -97,15 +97,15 @@ The button shows the command that it will trigger.
9797
Active connections to teams are shown as an icon in the team overview.
9898

9999
#### The controller crashes on start. What can I do?
100-
Try deleting the gc-state.json file in the working directory. It may got corrupted.
100+
Try deleting the `state-store.json.stream` file in the working directory. It may got corrupted.
101101

102102
## Integration into your own framework
103103
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.
104104

105105
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.
106106
The API is defined in [internal/app/controller/events.go](internal/app/controller/events.go).
107107

108-
If you don't want to run the controller in real time, you can change the time acquisition mode:
108+
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:
109109

110110
1. `system` (default): Use system time
111111
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.

doc/components.puml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
@startuml
2+
skinparam componentStyle uml2
3+
4+
node "UI" {
5+
[UI Client] as UiClient
6+
}
7+
8+
node "AutoRef" {
9+
[AutoRef Client] as AutoRefClient
10+
}
11+
12+
node "Teams" {
13+
[Team Client] as TeamClient
14+
}
15+
16+
node "Game Controller" {
17+
18+
package "Producer API" {
19+
[Message Publisher] as MessagePub
20+
interface "Publish" as PublishMessage
21+
PublishMessage -- MessagePub
22+
interface "UdpMulticastSocket" as PublishSocket
23+
MessagePub -- PublishSocket
24+
25+
[State Store] as StateStore
26+
interface "Add" as AddToStateStore
27+
AddToStateStore -- StateStore
28+
29+
}
30+
31+
package "Main" {
32+
[State Machine] as StateMachine
33+
interface "Change"
34+
Change - StateMachine
35+
36+
[Message Generator] as MessageGen
37+
interface "Generate" as GenerateMessage
38+
MessageGen - GenerateMessage
39+
MessageGen --> PublishMessage
40+
41+
[Engine] as Engine
42+
interface "Enqueue"
43+
Enqueue -- Engine
44+
Engine -> Change
45+
Engine --> AddToStateStore
46+
GenerateMessage <- Engine
47+
}
48+
49+
package "Consumer API" {
50+
[API Server] as ApiServer
51+
interface "WebSocket" as ApiSocket
52+
ApiSocket -- ApiServer
53+
ApiServer --> Enqueue
54+
55+
[CI Server] as CiServer
56+
interface "TcpSocket" as CiSocket
57+
CiSocket -- CiServer
58+
59+
[AutoRef Remote Connection] as AutoRefRConn
60+
interface "TcpSocket" as AutoRefSocket
61+
AutoRefSocket -- AutoRefRConn
62+
63+
[Team Remote Connection] as TeamRConn
64+
interface "TcpSocket" as TeamSocket
65+
TeamSocket -- TeamRConn
66+
67+
[Tracker receiver] as TrackerReceiver
68+
interface "UdpMulticastSocket" as TrackerSocket
69+
TrackerSocket -- TrackerReceiver
70+
71+
[Vision receiver] as VisionReceiver
72+
interface "UdpMulticastSocket" as VisionSocket
73+
VisionSocket -- VisionReceiver
74+
}
75+
}
76+
77+
UiClient --> ApiSocket
78+
AutoRefClient --> AutoRefSocket
79+
TeamClient --> TeamSocket
80+
81+
@enduml

doc/event-flow.puml

Lines changed: 0 additions & 79 deletions
This file was deleted.

0 commit comments

Comments
 (0)