syntax = "proto3"; package ScStw; message SoundSettings { // Software volume control. Maximum value is 254, default value is 254. uint32 volume = 1; bool muteInternalSpeaker = 2; } message SecuritySettings { // If set to true, the bluetooth interface won't be initialized on startup. // This can only be changed over a web socket connection to avoid lockout. // To be effective, the settings must be stored as default and device must be // rebooted! bool disableBluetooth = 1; // If set to true, the default settings can't be set via bluetooth. // This can only be changed over a web socket connection to avoid lockout. bool disallowToSetDefaultViaBluetooth = 2; } // // StopwatchSettings // // = Competition classic race = message ManualStartProcedure { // If set to true, the stopwatch will play the "Ready" sound before starting // when RaceStartCommand is sent. bool sayReady = 1; } message CompetitionClassicRaceMode { ManualStartProcedure manualStartProcedure = 1; } // = Training classic race = message AutomatedStartProcedure { bool sayReady = 1; // The duration in milliseconds a startpad has to be pressed before the // autostart is executed. Maximum value is 10000, default value is 3000. int32 standstillDurationBeforeStart = 2; // If set to true, the autostart will be executed even if the race is not in // IDLE_CLEAR_TO_START state. bool autoReset = 3; } message StartProcedure { oneof startProcedure { ManualStartProcedure manualStartProcedure = 1; AutomatedStartProcedure automatedStartProcedure = 2; } } message LaneSettings { reserved 1; // Deprecated "letter" // If set to true, the lane won't be usable and won't show up in the UI. // Can be used if there is only a single lane in the gym. // At least one lane must be enabled. Otherwise, the first lane will be // enabled! bool disabled = 2; } message AbortAfterFalseStart {} message ContinueAfterFalseStart { // This time will be assumed as the reaction time when calculating the final // time. Maximum value is 10000, default value is 100. uint32 assumedReactionTime = 1; // If set to true, there will be no false start tone and the normal tone will // continue. Also, the indicator of wildcard lanes will continue as normal. bool continueStartSequenceAfterFalseStart = 2; } message FalseStartBehaviour { oneof behaviour { AbortAfterFalseStart abortAfterFalseStart = 1; ContinueAfterFalseStart continueAfterFalseStart = 2; } } message FalseStartSettings { FalseStartBehaviour behaviour = 1; // The duration in milliseconds the false start sound will be played before it // is automatically muted. Maximum value is 60000, default value is 2000. uint32 soundDuration = 2; } message IndicatorSettings { // Software brightness control. Maximum value is 254, default value is 254. uint32 brightness = 1; // If set to true, the indicator will stop blinkng as soon as the false start // sound stops (when a false start exists and race is in FINISHED_MUTED // state). Otherwise, it will continue blinking until the race is reset. bool turnOffWhenFalseStartSoundIsMuted = 2; // If set to true, the indicator will turn off when the race is in IDLE state. // Otherwise, it will be red. bool turnOffWhenIdle = 3; } message TrainingClassicRaceMode { StartProcedure startProcedure = 1; // The number of lanes cannot be changed by the client. repeated LaneSettings lanes = 2; FalseStartSettings falseStartSettings = 3; IndicatorSettings indicatorSettings = 4; } message StopwatchSettings { oneof mode { CompetitionClassicRaceMode competitionClassicRaceMode = 1; TrainingClassicRaceMode trainingClassicRaceMode = 2; // TODO CompetitionRelayMode competitionRelayMode = 3; // TODO Competition4SpeedMode competition4SpeedMode = 4; } } message Settings { // if the settings are stored as default in the flash memory. bool default = 1; // DEPRECATED, just kept for compatibility, use StopwatchSettings instead! // Will be ignored when StopwatchSettings is set and converted to // StopwatchSettings otherwise. // For backwards compatibility, this is always set when reading the settings. TrainingClassicRaceMode race = 2 [ deprecated = true ]; SoundSettings sound = 3; StopwatchSettings stopwatchSettings = 4; SecuritySettings securitySettings = 5; }