Small validation for the updaters array in BeamNG
This commit is contained in:
@@ -13,6 +13,8 @@ import (
|
||||
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????
|
||||
type BeamNG struct {
|
||||
SDK *bngsdk.BeamNGSDK
|
||||
@@ -60,6 +62,7 @@ func NewBeamNGProvider(ip string, port int) (*BeamNG, error) {
|
||||
telemetry.PitSpeedLimiter: provider.pitSpeedLimiter,
|
||||
telemetry.LeftIndicator: provider.leftIndicator,
|
||||
telemetry.RightIndicator: provider.rightIndicator,
|
||||
telemetry.Hazards: provider.unused,
|
||||
telemetry.ABSWarningLight: provider.absLight,
|
||||
telemetry.ParkingBrakeLight: provider.handbrakeLight,
|
||||
telemetry.TCLight: provider.tcLight,
|
||||
@@ -99,6 +102,15 @@ func NewBeamNGProvider(ip string, port int) (*BeamNG, error) {
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
@@ -35,5 +35,6 @@ func NewIRacingProvider(logger *slog.Logger, source string,
|
||||
|
||||
func NewBeamNGProvider(ip string, port int) telemetry.TelemetryProvider {
|
||||
provider, _ := beamng.NewBeamNGProvider(ip, port)
|
||||
|
||||
return provider
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user