Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Divisions = []Division{DivA, DivB}
Division contain all known command enum constants
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
Network Network `yaml:"network"`
Game Game `yaml:"game"`
Server Server `yaml:"server"`
TimeAcquisitionMode TimeAcquisitionMode `yaml:"timeAcquisitionMode"`
}
Controller structure for the game controller
func DefaultControllerConfig ¶
func DefaultControllerConfig() (c Controller)
DefaultControllerConfig creates a config with default values
func LoadConfig ¶ added in v1.2.0
func LoadConfig(configFileName string) Controller
loadConfig loads the controller config
func LoadControllerConfig ¶
func LoadControllerConfig(fileName string) (config Controller, err error)
LoadControllerConfig loads a config from given file
func (*Controller) WriteTo ¶ added in v0.27.0
func (c *Controller) WriteTo(fileName string) (err error)
type Game ¶
type Game struct {
YellowCardDuration time.Duration `yaml:"yellow-card-duration"`
DefaultDivision Division `yaml:"default-division"`
Normal Special `yaml:"normal"`
Overtime Special `yaml:"overtime"`
TeamChoiceTimeout time.Duration `yaml:"team-choice-timeout"`
DefaultGeometry map[Division]*Geometry `yaml:"default-geometry"`
MultipleCardStep int `yaml:"multiple-card-step"`
MultipleFoulStep int `yaml:"multiple-foul-step"`
MultiplePlacementFailures int `yaml:"multiple-placement-failures"`
MaxBots map[Division]int `yaml:"max-bots"`
AutoRefProposalTimeout time.Duration `yaml:"auto-ref-proposal-timeout"`
FreeKickTime map[Division]time.Duration `yaml:"free-kick-time"`
GeneralTime time.Duration `yaml:"general-time"`
BallPlacementTime time.Duration `yaml:"ball-placement-time"`
}
Game holds configs that are valid for the whole game
type Geometry ¶
type Geometry struct {
FieldLength float64 `yaml:"field-length"`
FieldWidth float64 `yaml:"field-width"`
DefenseAreaDepth float64 `yaml:"defense-area-depth"`
DefenseAreaWidth float64 `yaml:"defense-area-width"`
PlacementOffsetTouchLine float64 `yaml:"placement-offset-touch-line"`
PlacementOffsetGoalLine float64 `yaml:"placement-offset-goal-line"`
PlacementOffsetGoalLineGoalKick float64 `yaml:"placement-offset-goal-line-goal-kick"`
PlacementOffsetDefenseArea float64 `yaml:"placement-offset-defense-area"`
}
Geometry holds sizes of the field and distance for certain rules
type Network ¶
type Network struct {
PublishAddress string `yaml:"publish-address"`
VisionAddress string `yaml:"vision-address"`
}
Network holds configs for network communication
type Server ¶
type Server struct {
AutoRef ServerAutoRef `yaml:"auto-ref"`
Team ServerTeam `yaml:"team"`
Ci ServerCi `yaml:"ci"`
}
Server holds configs for the available server services
type ServerAutoRef ¶
type ServerAutoRef struct {
Address string `yaml:"address"`
AddressTls string `yaml:"address-tls"`
TrustedKeysDir string `yaml:"trusted-keys-dir"`
}
ServerAutoRef holds configs for the autoRef server
type ServerCi ¶ added in v0.26.0
type ServerCi struct {
Address string `yaml:"address"`
}
ServerCi holds configs for the CI server
type ServerTeam ¶
type ServerTeam struct {
Address string `yaml:"address"`
AddressTls string `yaml:"address-tls"`
TrustedKeysDir string `yaml:"trusted-keys-dir"`
}
ServerTeam holds configs for the team server
type Special ¶
type Special struct {
HalfDuration time.Duration `yaml:"half-duration"`
HalfTimeDuration time.Duration `yaml:"half-time-duration"`
TimeoutDuration time.Duration `yaml:"timeout-duration"`
Timeouts int `yaml:"timeouts"`
BreakAfter time.Duration `yaml:"break-after"`
}
Special holds configs that are different between normal and overtime halves
type TimeAcquisitionMode ¶ added in v0.26.0
type TimeAcquisitionMode string
const ( TimeAcquisitionModeSystem TimeAcquisitionMode = "system" TimeAcquisitionModeVision TimeAcquisitionMode = "vision" TimeAcquisitionModeCi TimeAcquisitionMode = "ci" )