Small validation for the updaters array in BeamNG
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user