This is a port of the iRacing sdk to Go. The iRacing sdk logic is ported and slightly modified to make it a bit more go-y.
The initial idea for porting it to go was to make it compatible with the Linux version of iRacing (which runs under wine / CrossOver). I choose Go because of the (small) cross-platform standalone binaries without dependencies on a third-party frameworks (.Net).
This doesn't mean it's Linux only. Go runs fine on Windows and this library should work fine on Windows (not tested).
go get github.com/LeonB/irsdk-go
GOARCH=386 GOOS=windows go get github.com/LeonB/irsdk-go
package main
import (
"fmt"
"log"
irsdk "github.com/leonb/irsdk-go"
)
func main() {
conn, err := irsdk.NewConnection()
if err != nil {
log.Fatal(err)
}
err = conn.Connect()
if err != nil {
log.Fatal(err)
}
fields := []string{}
for {
telemetryData, err := conn.GetTelemetryDataFiltered(fields)
if err != nil {
log.Println(err)
}
fmt.Printf("%+v\n", telemetryData)
}
}
This repository contains a sample program terminalhud
:
- When running it under wine, Go time functions do not work: go-nuts thread / wine bug
- broadcastmsg doesn't work (no idea why)