blob: 869c2f073715562e1c5f55944413f42da86f4711 [file] [log] [blame]
namespace scouting.webserver.requests;
table StartMatchAction {
position:int (id:0);
}
enum ObjectType: short {
kCube,
kCone
}
enum ScoreLevel: short {
kLow,
kMiddle,
kHigh,
kSupercharged,
}
table MobilityAction {
mobility:bool (id:0);
}
table AutoBalanceAction {
docked:bool (id:0);
engaged:bool (id:1);
balance_attempt:bool (id:2);
}
table PickupObjectAction {
object_type:ObjectType (id:0);
auto:bool (id:1);
}
table PlaceObjectAction {
object_type:ObjectType (id:0);
score_level:ScoreLevel (id:1);
auto:bool (id:2);
}
table RobotDeathAction {
robot_on:bool (id:0);
}
table EndMatchAction {
docked:bool (id:0);
engaged:bool (id:1);
balance_attempt:bool (id:2);
}
union ActionType {
MobilityAction,
AutoBalanceAction,
StartMatchAction,
PickupObjectAction,
PlaceObjectAction,
RobotDeathAction,
EndMatchAction
}
table Action {
timestamp:int64 (id:0);
action_taken:ActionType (id:2);
}
table SubmitActions {
team_number:string (id: 0);
match_number:int (id: 1);
set_number:int (id: 2);
comp_level:string (id: 3);
actions_list:[Action] (id:4);
// Do not use this field. The information is collected by the webserver,
// not the web page.
collected_by:string (id: 5, deprecated);
// If this is for pre-scouting, then the server should accept this
// submission. I.e. checking that the match information exists in the match
// list should be skipped.
pre_scouting:bool (id: 6);
}