2
0
Fork 0
proto/RaceState.proto

69 lines
No EOL
1.8 KiB
Protocol Buffer

syntax = "proto3";
package ScStw;
message TrainingClassicRaceExtraState {
// If this stays `true` for at least the configured autostart
// standstillDurationBeforeStart, an autostart will be executed.
// Once this becomes true, clients should display indicate it and
// optionally show a countdown.
bool autostartPending = 1;
// If this is `true`, the time is calculated and the valid.
// This happens when the athlete does a false start but still finishes.
// In this case, the client should mark the time as invalid.
bool timeIsCalculated = 2;
}
message LaneExtraState {
oneof state {
TrainingClassicRaceExtraState trainingClassicRaceExtraState = 1;
// TODO CompetitionRelayExtraState competitionRelayMode = 2;
// TODO Competition4SpeedExtraState competition4SpeedMode = 3;
}
}
message LaneFullState {
enum State {
IDLE = 0;
IDLE_FOOT_DOWN = 1;
READY_FOOT_DOWN = 2;
RUNNING_FOOT_DOWN = 3;
RUNNING = 4;
FALSE_START = 5;
FALSE_START_TIE = 6;
WILDCARD = 7;
FINISHED = 8;
FINISHED_WINNER = 9;
FINISHED_TIE = 10;
FALL = 11;
DISABLED = 12;
}
State state = 1;
// The reaction time in milliseconds relative to the beginning of the start
// sequence. To get the common representation of the reaction time (relative
// to the beginning of the third beep), 3000ms must be subtracted.
// If this is 0, the reaction time is not set (yet).
uint32 reactionTime = 2;
// The climbing time in milliseconds relative to the beginning of the third
// beep.
// If this is 0, the climbing time is not set (yet).
uint32 climbingTime = 3;
LaneExtraState extraState = 4;
}
message RaceFullState {
enum State {
IDLE = 0;
IDLE_CLEAR_TO_START = 1;
STARTING = 2;
RUNNING = 3;
FINISHED = 4;
FINISHED_MUTED = 5;
}
State state = 1;
repeated LaneFullState laneStates = 2;
}