Small validation for the updaters array in BeamNG

This commit is contained in:
2026-07-07 18:16:52 +01:00
parent 0887fbfd75
commit ca57cbd9f0
2 changed files with 13 additions and 0 deletions
+12
View File
@@ -13,6 +13,8 @@ import (
bngsdk "github.com/ESilva15/gobngsdk" bngsdk "github.com/ESilva15/gobngsdk"
) )
// BeamNG is the concrete implementation of the TelemetryProvider interface
// for BeamNG.drive
// NOTE: document this please. What is a TelemetryData???? // NOTE: document this please. What is a TelemetryData????
type BeamNG struct { type BeamNG struct {
SDK *bngsdk.BeamNGSDK SDK *bngsdk.BeamNGSDK
@@ -60,6 +62,7 @@ func NewBeamNGProvider(ip string, port int) (*BeamNG, error) {
telemetry.PitSpeedLimiter: provider.pitSpeedLimiter, telemetry.PitSpeedLimiter: provider.pitSpeedLimiter,
telemetry.LeftIndicator: provider.leftIndicator, telemetry.LeftIndicator: provider.leftIndicator,
telemetry.RightIndicator: provider.rightIndicator, telemetry.RightIndicator: provider.rightIndicator,
telemetry.Hazards: provider.unused,
telemetry.ABSWarningLight: provider.absLight, telemetry.ABSWarningLight: provider.absLight,
telemetry.ParkingBrakeLight: provider.handbrakeLight, telemetry.ParkingBrakeLight: provider.handbrakeLight,
telemetry.TCLight: provider.tcLight, telemetry.TCLight: provider.tcLight,
@@ -99,6 +102,15 @@ func NewBeamNGProvider(ip string, port int) (*BeamNG, error) {
telemetry.FCExpectedLaps: provider.unused, telemetry.FCExpectedLaps: provider.unused,
} }
for k := range int(telemetry.MaxFields) {
// One by one so you won't forget it next time
if provider.updaters[k] == nil {
msg := fmt.Sprintf("BeamNG updaters aren't all assigned. Currently unassgined: %s",
telemetry.FieldNames[k])
panic(msg)
}
}
return provider, nil return provider, nil
} }
+1
View File
@@ -35,5 +35,6 @@ func NewIRacingProvider(logger *slog.Logger, source string,
func NewBeamNGProvider(ip string, port int) telemetry.TelemetryProvider { func NewBeamNGProvider(ip string, port int) telemetry.TelemetryProvider {
provider, _ := beamng.NewBeamNGProvider(ip, port) provider, _ := beamng.NewBeamNGProvider(ip, port)
return provider return provider
} }