Skip to content

Commit 9945a63

Browse files
committed
bugfix: Do not accept emergency stop, if game is already stopped
1 parent 34030ba commit 9945a63

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

internal/app/statemachine/change_teamstate.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"github.com/RoboCup-SSL/ssl-game-controller/internal/app/state"
55
"github.com/golang/protobuf/ptypes"
66
"github.com/pkg/errors"
7+
"log"
78
"strconv"
89
"strings"
910
"time"
@@ -50,10 +51,14 @@ func (s *StateMachine) processChangeUpdateTeamState(newState *state.State, chang
5051
}
5152
}
5253
if change.RequestsEmergencyStop != nil {
53-
if *change.RequestsEmergencyStop {
54-
teamState.RequestsEmergencyStopSince, _ = ptypes.TimestampProto(s.timeProvider())
54+
if *newState.GameState.Type == state.GameState_RUNNING {
55+
if *change.RequestsEmergencyStop {
56+
teamState.RequestsEmergencyStopSince, _ = ptypes.TimestampProto(s.timeProvider())
57+
} else {
58+
teamState.RequestsEmergencyStopSince = nil
59+
}
5560
} else {
56-
teamState.RequestsEmergencyStopSince = nil
61+
log.Printf("Reject to start emergency mode while game is not running")
5762
}
5863
}
5964
if change.RequestsTimeout != nil {

0 commit comments

Comments
 (0)