Skip to content

Commit

Permalink
Change team sign configurations to use their IDs instead of full IP a…
Browse files Browse the repository at this point in the history
…ddresses.
  • Loading branch information
patfair committed Sep 7, 2024
1 parent 9b5c7e4 commit f0336dd
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 48 deletions.
16 changes: 8 additions & 8 deletions field/arena.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,14 @@ func (arena *Arena) LoadSettings() error {
arena.EventSettings = settings

// Initialize the components that depend on settings.
arena.TeamSigns.Red1.SetAddress(settings.TeamSignRed1Address)
arena.TeamSigns.Red2.SetAddress(settings.TeamSignRed2Address)
arena.TeamSigns.Red3.SetAddress(settings.TeamSignRed3Address)
arena.TeamSigns.RedTimer.SetAddress(settings.TeamSignRedTimerAddress)
arena.TeamSigns.Blue1.SetAddress(settings.TeamSignBlue1Address)
arena.TeamSigns.Blue2.SetAddress(settings.TeamSignBlue2Address)
arena.TeamSigns.Blue3.SetAddress(settings.TeamSignBlue3Address)
arena.TeamSigns.BlueTimer.SetAddress(settings.TeamSignBlueTimerAddress)
arena.TeamSigns.Red1.SetId(settings.TeamSignRed1Id)
arena.TeamSigns.Red2.SetId(settings.TeamSignRed2Id)
arena.TeamSigns.Red3.SetId(settings.TeamSignRed3Id)
arena.TeamSigns.RedTimer.SetId(settings.TeamSignRedTimerId)
arena.TeamSigns.Blue1.SetId(settings.TeamSignBlue1Id)
arena.TeamSigns.Blue2.SetId(settings.TeamSignBlue2Id)
arena.TeamSigns.Blue3.SetId(settings.TeamSignBlue3Id)
arena.TeamSigns.BlueTimer.SetId(settings.TeamSignBlueTimerId)
accessPointWifiStatuses := [6]*network.TeamWifiStatus{
&arena.AllianceStations["R1"].WifiStatus,
&arena.AllianceStations["R2"].WifiStatus,
Expand Down
8 changes: 5 additions & 3 deletions field/team_sign.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ type TeamSign struct {
}

const (
teamSignAddressPrefix = "10.0.100."
teamSignPort = 10011
teamSignPacketMagicString = "CYPRX"
teamSignPacketHeaderLength = 7
Expand Down Expand Up @@ -128,15 +129,16 @@ func (signs *TeamSigns) SetNextMatchTeams(match *model.Match) {
}

// Sets the IP address of the sign.
func (sign *TeamSign) SetAddress(ipAddress string) {
func (sign *TeamSign) SetId(id int) {
if sign.udpConn != nil {
_ = sign.udpConn.Close()
}
if ipAddress == "" {
sign.address = byte(id)
if id == 0 {
// The sign is not configured.
sign.address = 0
return
}
ipAddress := fmt.Sprintf("%s%d", teamSignAddressPrefix, id)

var err error
sign.udpConn, err = net.Dial("udp4", fmt.Sprintf("%s:%d", ipAddress, teamSignPort))
Expand Down
4 changes: 2 additions & 2 deletions field/team_sign_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func TestTeamSign_Timer(t *testing.T) {
assert.Equal(t, [128]byte{}, sign.packetData)

// Check some basics about the data but don't unit-test the whole packet.
sign.SetAddress("10.0.100.56")
sign.SetId(56)
sign.update(arena, nil, true, "12:34", "Rear Text")
assert.Equal(t, "CYPRX", string(sign.packetData[0:5]))
assert.Equal(t, 56, int(sign.packetData[5]))
Expand Down Expand Up @@ -87,7 +87,7 @@ func TestTeamSign_TeamNumber(t *testing.T) {
assert.Equal(t, [128]byte{}, sign.packetData)

// Check some basics about the data but don't unit-test the whole packet.
sign.SetAddress("10.0.100.53")
sign.SetId(53)
sign.update(arena, allianceStation, true, "12:34", "Rear Text")
assert.Equal(t, "CYPRX", string(sign.packetData[0:5]))
assert.Equal(t, 53, int(sign.packetData[5]))
Expand Down
16 changes: 8 additions & 8 deletions model/event_settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ type EventSettings struct {
SwitchPassword string
PlcAddress string
AdminPassword string
TeamSignRed1Address string
TeamSignRed2Address string
TeamSignRed3Address string
TeamSignRedTimerAddress string
TeamSignBlue1Address string
TeamSignBlue2Address string
TeamSignBlue3Address string
TeamSignBlueTimerAddress string
TeamSignRed1Id int
TeamSignRed2Id int
TeamSignRed3Id int
TeamSignRedTimerId int
TeamSignBlue1Id int
TeamSignBlue2Id int
TeamSignBlue3Id int
TeamSignBlueTimerId int
BlackmagicAddresses string
WarmupDurationSec int
AutoDurationSec int
Expand Down
45 changes: 26 additions & 19 deletions templates/setup_settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -238,56 +238,63 @@
<fieldset class="mb-4">
<legend>Team Signs</legend>
<p>
If you are using a set of the (2024+) official team number / timer signs, enter their IP addresses here.
If you are using a set of the (2024+) official team number / timer signs, enter their two-digit IDs (e.g.
51, 52, etc.) here.
</p>
<div class="row mb-3">
<label class="col-lg-6 control-label">Red 1 Sign Address</label>
<label class="col-lg-6 control-label">Red 1 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignRed1Address" value="{{.TeamSignRed1Address}}">
<input type="text" class="form-control" name="teamSignRed1Id"
value="{{if gt .TeamSignRed1Id 0}}{{.TeamSignRed1Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Red 2 Sign Address</label>
<label class="col-lg-6 control-label">Red 2 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignRed2Address" value="{{.TeamSignRed2Address}}">
<input type="text" class="form-control" name="teamSignRed2Id"
value="{{if gt .TeamSignRed2Id 0}}{{.TeamSignRed2Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Red 3 Sign Address</label>
<label class="col-lg-6 control-label">Red 3 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignRed3Address" value="{{.TeamSignRed3Address}}">
<input type="text" class="form-control" name="teamSignRed3Id"
value="{{if gt .TeamSignRed3Id 0}}{{.TeamSignRed3Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Red Timer Sign Address</label>
<label class="col-lg-6 control-label">Red Timer Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignRedTimerAddress"
value="{{.TeamSignRedTimerAddress}}">
<input type="text" class="form-control" name="teamSignRedTimerId"
value="{{if gt .TeamSignRedTimerId 0}}{{.TeamSignRedTimerId}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Blue 1 Sign Address</label>
<label class="col-lg-6 control-label">Blue 1 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignBlue1Address" value="{{.TeamSignBlue1Address}}">
<input type="text" class="form-control" name="teamSignBlue1Id"
value="{{if gt .TeamSignBlue1Id 0}}{{.TeamSignBlue1Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Blue 2 Sign Address</label>
<label class="col-lg-6 control-label">Blue 2 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignBlue2Address" value="{{.TeamSignBlue2Address}}">
<input type="text" class="form-control" name="teamSignBlue2Id"
value="{{if gt .TeamSignBlue2Id 0}}{{.TeamSignBlue2Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Blue 3 Sign Address</label>
<label class="col-lg-6 control-label">Blue 3 Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignBlue3Address" value="{{.TeamSignBlue3Address}}">
<input type="text" class="form-control" name="teamSignBlue3Id"
value="{{if gt .TeamSignBlue3Id 0}}{{.TeamSignBlue3Id}}{{end}}">
</div>
</div>
<div class="row mb-3">
<label class="col-lg-6 control-label">Blue Timer Sign Address</label>
<label class="col-lg-6 control-label">Blue Timer Sign ID</label>
<div class="col-lg-6">
<input type="text" class="form-control" name="teamSignBlueTimerAddress"
value="{{.TeamSignBlueTimerAddress}}">
<input type="text" class="form-control" name="teamSignBlueTimerId"
value="{{if gt .TeamSignBlueTimerId 0}}{{.TeamSignBlueTimerId}}{{end}}">
</div>
</div>
</fieldset>
Expand Down
16 changes: 8 additions & 8 deletions web/setup_settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,14 +88,14 @@ func (web *Web) settingsPostHandler(w http.ResponseWriter, r *http.Request) {
eventSettings.SwitchPassword = r.PostFormValue("switchPassword")
eventSettings.PlcAddress = r.PostFormValue("plcAddress")
eventSettings.AdminPassword = r.PostFormValue("adminPassword")
eventSettings.TeamSignRed1Address = r.PostFormValue("teamSignRed1Address")
eventSettings.TeamSignRed2Address = r.PostFormValue("teamSignRed2Address")
eventSettings.TeamSignRed3Address = r.PostFormValue("teamSignRed3Address")
eventSettings.TeamSignRedTimerAddress = r.PostFormValue("teamSignRedTimerAddress")
eventSettings.TeamSignBlue1Address = r.PostFormValue("teamSignBlue1Address")
eventSettings.TeamSignBlue2Address = r.PostFormValue("teamSignBlue2Address")
eventSettings.TeamSignBlue3Address = r.PostFormValue("teamSignBlue3Address")
eventSettings.TeamSignBlueTimerAddress = r.PostFormValue("teamSignBlueTimerAddress")
eventSettings.TeamSignRed1Id, _ = strconv.Atoi(r.PostFormValue("teamSignRed1Id"))
eventSettings.TeamSignRed2Id, _ = strconv.Atoi(r.PostFormValue("teamSignRed2Id"))
eventSettings.TeamSignRed3Id, _ = strconv.Atoi(r.PostFormValue("teamSignRed3Id"))
eventSettings.TeamSignRedTimerId, _ = strconv.Atoi(r.PostFormValue("teamSignRedTimerId"))
eventSettings.TeamSignBlue1Id, _ = strconv.Atoi(r.PostFormValue("teamSignBlue1Id"))
eventSettings.TeamSignBlue2Id, _ = strconv.Atoi(r.PostFormValue("teamSignBlue2Id"))
eventSettings.TeamSignBlue3Id, _ = strconv.Atoi(r.PostFormValue("teamSignBlue3Id"))
eventSettings.TeamSignBlueTimerId, _ = strconv.Atoi(r.PostFormValue("teamSignBlueTimerId"))
eventSettings.BlackmagicAddresses = r.PostFormValue("blackmagicAddresses")
eventSettings.WarmupDurationSec, _ = strconv.Atoi(r.PostFormValue("warmupDurationSec"))
eventSettings.AutoDurationSec, _ = strconv.Atoi(r.PostFormValue("autoDurationSec"))
Expand Down

0 comments on commit f0336dd

Please sign in to comment.