Show timeout countdown on alliance station display and don't automatically trigger timeout overlay on audience display.

This commit is contained in:
Patrick Fairbank
2020-03-26 20:27:38 -07:00
parent 31505b265f
commit 9d3100e65a
4 changed files with 34 additions and 17 deletions

View File

@@ -356,8 +356,8 @@ func (arena *Arena) StartTimeout(durationSec int) error {
arena.MatchState = TimeoutActive
arena.MatchStartTime = time.Now()
arena.LastMatchTimeSec = -1
arena.AudienceDisplayMode = "timeout"
arena.AudienceDisplayModeNotifier.Notify()
arena.AllianceStationDisplayMode = "timeout"
arena.AllianceStationDisplayModeNotifier.Notify()
return nil
}
@@ -468,6 +468,8 @@ func (arena *Arena) Update() {
time.Sleep(time.Second * matchEndScoreDwellSec)
arena.AudienceDisplayMode = "blank"
arena.AudienceDisplayModeNotifier.Notify()
arena.AllianceStationDisplayMode = "logo"
arena.AllianceStationDisplayModeNotifier.Notify()
}()
}
case PostTimeout:

View File

@@ -33,6 +33,9 @@ body[data-mode=match] .mode#match {
body[data-mode=fieldReset] .mode#fieldReset {
display: table;
}
body[data-mode=timeout] .mode#match {
display: block;
}
/* Logo Mode */
#logo #logoImg {
@@ -66,20 +69,21 @@ body[data-mode=fieldReset] .mode#fieldReset {
height: 100%;
}
#match[data-state=WARMUP_PERIOD], #match[data-state=AUTO_PERIOD], #match[data-state=PAUSE_PERIOD],
#match[data-state=TELEOP_PERIOD], #match[data-state=POST_MATCH] {
#match[data-state=TELEOP_PERIOD], #match[data-state=POST_MATCH], #match[data-state=TIMEOUT_ACTIVE],
#match[data-state=POST_TIMEOUT] {
background-color: #fff;
color: #000;
}
#preMatch, #inMatch {
display: none;
}
#match[data-state=PRE_MATCH] #preMatch, #match[data-state=TIMEOUT_ACTIVE] #preMatch,
#match[data-state=POST_TIMEOUT] #preMatch {
#match[data-state=PRE_MATCH] #preMatch {
display: block;
}
#match[data-state=WARMUP_PERIOD] #inMatch, #match[data-state=AUTO_PERIOD] #inMatch,
#match[data-state=PAUSE_PERIOD] #inMatch, #match[data-state=TELEOP_PERIOD] #inMatch,
#match[data-state=POST_MATCH] #inMatch {
#match[data-state=POST_MATCH] #inMatch, #match[data-state=TIMEOUT_ACTIVE] #inMatch,
#match[data-state=POST_TIMEOUT] #inMatch {
display: block;
}

View File

@@ -14,17 +14,22 @@ var handleAllianceStationDisplayMode = function(targetScreen) {
if (station === "") {
// Don't do anything if this screen hasn't been assigned a position yet.
} else {
$("body").attr("data-mode", targetScreen);
switch (station[1]) {
case "1":
$("body").attr("data-position", "right");
break;
case "2":
$("body").attr("data-position", "middle");
break;
case "3":
$("body").attr("data-position", "left");
break;
var body = $("body");
body.attr("data-mode", targetScreen);
if (targetScreen === "timeout") {
body.attr("data-position", "middle");
} else {
switch (station[1]) {
case "1":
body.attr("data-position", "right");
break;
case "2":
body.attr("data-position", "middle");
break;
case "3":
body.attr("data-position", "left");
break;
}
}
}
};

View File

@@ -193,6 +193,12 @@
onclick="setAllianceStationDisplay();">Logo
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="allianceStationDisplay" value="timeout"
onclick="setAllianceStationDisplay();">Timeout
</label>
</div>
</div>
</div>
<div class="col-lg-3">