update the irsdk version

This commit is contained in:
2026-08-24 16:54:36 +01:00
parent 5ae0542149
commit fe86993c6d
8 changed files with 30 additions and 31 deletions
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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=
+3
View File
@@ -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")
+1 -1
View File
@@ -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)
}
+11 -21
View File
@@ -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 {
+4 -3
View File
@@ -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
}
+6 -2
View File
@@ -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)
+2 -1
View File
@@ -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()