@@ -2,27 +2,62 @@ syntax = "proto2";
2
2
3
3
option go_package = "github.com/RoboCup-SSL/ssl-game-controller/internal/app/engine" ;
4
4
5
+ import "ssl_game_event.proto" ;
6
+
5
7
message GcState {
6
8
map <string , GcStateTeam > team_state = 1 ;
7
9
map <string , GcStateAutoRef > auto_ref_state = 2 ;
10
+ map <string , GcStateTracker > tracker_state = 3 ;
8
11
}
9
12
10
13
message GcStateTeam {
14
+ // true: The team is connected
11
15
optional bool connected = 1 ;
16
+
17
+ // true: The team connected via TLS with a verified certificate
12
18
optional bool connection_verified = 2 ;
13
19
}
14
20
15
21
message GcStateAutoRef {
22
+ // true: The autoRef connected via TLS with a verified certificate
16
23
optional bool connection_verified = 1 ;
17
24
25
+ // if current state is prepare_kickoff, prepare_penalty, stop or ball_placement:
26
+ // true: all conditions are met to continue from the current state
27
+ // false: at least one condition not met yet
28
+ // not present: not supported by the autoRef
29
+ // else:
30
+ // undefined
18
31
optional bool ready_to_continue = 2 ;
32
+
33
+ // if current state is stop:
34
+ // true: ball placement not required, can directly continue
35
+ // false: need to initiate ball placement
36
+ // if current state is ball placement:
37
+ // true: ball placement done, all conditions met
38
+ // false: ball not yet placed successfully
19
39
optional bool ball_placed = 3 ;
40
+
41
+ // UNIX timestamp [μs] when the ball last moved
42
+ // Used by the GC to determine if there is still progress
20
43
optional uint64 last_progress = 4 ;
21
44
45
+ // map team -> team specific state
22
46
map <string , GcStateAutoRefTeam > team_state = 5 ;
23
47
}
24
48
25
49
message GcStateAutoRefTeam {
50
+ // Number of robots currently on the field
26
51
optional uint32 number_of_robots = 1 ;
52
+
53
+ // When the ball is in play, this flag indicates, if this team may change the keeper in confirmation with the rules
27
54
optional bool may_change_keeper = 2 ;
28
55
}
56
+
57
+ message GcStateTracker {
58
+ // Current ball position [m]
59
+ optional Location ball_pos = 1 ;
60
+
61
+ // Current ball velocity [m/s]
62
+ optional Location ball_vel = 2 ;
63
+ }
0 commit comments