From fe86993c6dc40d5fd3faa90754a25ac35616dbf3 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Mon, 24 Aug 2026 16:54:36 +0100 Subject: [PATCH] update the irsdk version --- go.mod | 2 +- go.sum | 4 ++-- main.go | 3 +++ oldEsdi/esdi.go | 2 +- providers/iracing/iracing.go | 32 ++++++++++-------------------- providers/providers.go | 7 ++++--- services/telemetry.go | 8 ++++++-- tui/internal/controllers/layout.go | 3 ++- 8 files changed, 30 insertions(+), 31 deletions(-) diff --git a/go.mod b/go.mod index ffff7fa..3d4d8fd 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.25.5 require ( github.com/ESilva15/ESgoRepl v0.1.0 github.com/ESilva15/gobngsdk v1.1.3 - github.com/ESilva15/goirsdk v0.2.11 + github.com/ESilva15/goirsdk v0.3.0 github.com/arl/statsviz v0.8.0 github.com/gdamore/tcell/v2 v2.8.1 github.com/rivo/tview v0.42.0 diff --git a/go.sum b/go.sum index f74517d..1ed480f 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/ESilva15/ESgoRepl v0.1.0 h1:hOVcRBfdP8Yw1kLr2tFoM3SetV7vxFswKjzfAtq8U github.com/ESilva15/ESgoRepl v0.1.0/go.mod h1:O2JQMyEgHy0zf9UvzvLNvp2w95T2uazc3torrzRmG9Y= github.com/ESilva15/gobngsdk v1.1.3 h1:CFaz2KjHKnBLrQuEN1QHOd1761cWM/rmTwLpSLrgbe4= github.com/ESilva15/gobngsdk v1.1.3/go.mod h1:cKLaZRgM0tGGXDvosaSjHnxeyC5Y6rg7zCLqEUJnOzw= -github.com/ESilva15/goirsdk v0.2.11 h1:C/HuO9xGmRJ01vMR0KRjrhcMEfq1Mea1rQK0CICaOU4= -github.com/ESilva15/goirsdk v0.2.11/go.mod h1:5borQbw+L4fe9b58JFHRHZwrzz0sMVAteuYbRnFOc0Q= +github.com/ESilva15/goirsdk v0.3.0 h1:6D95Avq7chikGHwEUKh7Y/HaLHOWQ75Qxaz8oMDSfrw= +github.com/ESilva15/goirsdk v0.3.0/go.mod h1:5borQbw+L4fe9b58JFHRHZwrzz0sMVAteuYbRnFOc0Q= github.com/arl/statsviz v0.8.0 h1:O6GjjVxEDxcByAucOSl29HaGYLXsuwA3ujJw8H9E7/U= github.com/arl/statsviz v0.8.0/go.mod h1:XlrbiT7xYT03xaW9JMMfD8KFUhBOESJwfyNJu83PbB0= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= diff --git a/main.go b/main.go index e69846f..7507664 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,9 @@ import ( "github.com/arl/statsviz" ) +// NOTE: in go we have the init() function. Its a function that runs before +// everything else in a package. Make use of that + func initApplication() { fmt.Fprint(os.Stdout, "\x1b]0;ESDI\x07") diff --git a/oldEsdi/esdi.go b/oldEsdi/esdi.go index cae1d5e..336f664 100644 --- a/oldEsdi/esdi.go +++ b/oldEsdi/esdi.go @@ -54,7 +54,7 @@ func RunLiveTelemetry(port string, output string, session string) { // log.Fatalf("Failed to create iRacing interface: %v", err) // } - irsdk, err := goirsdk.Init(nil, output, session) + irsdk, err := goirsdk.Init(goirsdk.Options{}) if err != nil { log.Fatalf("Failed to create irsdk instance: %v\n", err) } diff --git a/providers/iracing/iracing.go b/providers/iracing/iracing.go index 97299ca..395fbdc 100644 --- a/providers/iracing/iracing.go +++ b/providers/iracing/iracing.go @@ -7,7 +7,6 @@ import ( "context" "fmt" "log/slog" - "os" "strconv" "sync" "time" @@ -28,8 +27,9 @@ type IRacing struct { SDK *goirsdk.IBT // Data Handling - mut sync.Mutex - data *telemetry.TelemetryData + mut sync.Mutex + data *telemetry.TelemetryData + updaters [telemetry.MaxFields]func(*telemetry.TelemetryField) // Timing information ticker *time.Ticker // ticker will keep polling intervals constant @@ -41,38 +41,28 @@ type IRacing struct { func NewIRacingProvider( logger *slog.Logger, - source string, - telemOut string, - yamlOut string, + opts goirsdk.Options, ) (*IRacing, error) { var err error - // Open the input file if provided - otherwise live telemetry was requested - // Maybe this can be changed so we don't have to run it with these ifs but by configuring our - // provider - var file goirsdk.Reader = nil - if source != "" { - file, err = os.Open(source) - if err != nil { - return &IRacing{}, err - // log.Fatalf("Failed to open IBT file: %v", err) - } - } - - sdk, err := goirsdk.Init(file, telemOut, yamlOut) + sdk, err := goirsdk.Init(opts) if err != nil { logger.Error("failed to open the IRSDK instance") return &IRacing{}, err } - return &IRacing{ + provider := &IRacing{ logger: logger, SDK: sdk, data: telemetry.NewTelemetryData(), streamCh: make(chan telemetry.TelemetryData, 1), // NOTE: This is because I stupidly recorded a test IBT file in 240 ticker: time.NewTicker(time.Second / 240), - }, nil + } + + // provider.updaters = [telemetry.MaxFields]func(*telemetry.TelemetryField){} + + return provider, nil } func (i *IRacing) isDataAvailable() bool { diff --git a/providers/providers.go b/providers/providers.go index d79d0dc..e95e079 100644 --- a/providers/providers.go +++ b/providers/providers.go @@ -7,6 +7,8 @@ import ( "esdi/providers/beamng" "esdi/providers/iracing" "esdi/telemetry" + + "github.com/ESilva15/goirsdk" ) // Make this be some kind of struct where we can access a function that returns @@ -25,10 +27,9 @@ var Providers = map[string]Provider{ }, } -func NewIRacingProvider(logger *slog.Logger, source string, - telemOut string, yamlOut string, +func NewIRacingProvider(logger *slog.Logger, opts goirsdk.Options, ) telemetry.TelemetryProvider { - provider, _ := iracing.NewIRacingProvider(logger, source, "", "") + provider, _ := iracing.NewIRacingProvider(logger, opts) return provider } diff --git a/services/telemetry.go b/services/telemetry.go index 668a8ac..b2b5b5f 100644 --- a/services/telemetry.go +++ b/services/telemetry.go @@ -7,6 +7,8 @@ import ( "esdi/providers" telem "esdi/telemetry" + + "github.com/ESilva15/goirsdk" ) // TelemetryService will be our base struct to handle telemetry data @@ -31,8 +33,10 @@ func NewTelemetryService(logger *slog.Logger, cdash *CDashService) *TelemetrySer // Need to instantiate a default provider here // source := "/home/esilva/Desktop/projetos/simracing_peripherals/testTelemetry/gt3_mustang_bathurst.ibt" - // firstProvider := providers.NewIRacingProvider(slog.Default(), source, "", "") - firstProvider := providers.NewBeamNGProvider("127.0.0.1", 4443) + firstProvider := providers.NewIRacingProvider(slog.Default(), goirsdk.Options{ + SourceType: goirsdk.SharedMemoryFile, + }) + // firstProvider := providers.NewBeamNGProvider("127.0.0.1", 4443) newService.SwitchProvider(firstProvider) diff --git a/tui/internal/controllers/layout.go b/tui/internal/controllers/layout.go index 12df4ea..a2b3a3d 100644 --- a/tui/internal/controllers/layout.go +++ b/tui/internal/controllers/layout.go @@ -31,7 +31,8 @@ func NewLayoutController(base *Controller, service *services.CDashService) *Layo Messages: make(chan string, 10), DevService: service, MoveToolState: &windowManipState{Mode: moveMode}, - SelectedLayout: "beamng.yaml", + // SelectedLayout: "beamng.yaml", + SelectedLayout: "layout.yaml", } lc.registerHooks()