Updated the function that checks for the sim running and how we stream data

This commit is contained in:
2026-09-12 15:35:01 +01:00
parent d8589394f6
commit b8e632d3eb
2 changed files with 35 additions and 34 deletions
+20 -22
View File
@@ -1,35 +1,33 @@
package iracing
import (
"log"
"log/slog"
"time"
"github.com/ESilva15/goirsdk"
eventutils "github.com/ESilva15/goirsdk/eventutils"
)
func IsRunning() bool {
sdk, err := goirsdk.Init(goirsdk.Options{
SourceType: goirsdk.SharedMemoryFile,
})
defer sdk.Close()
irUtils, err := eventutils.Init()
if err != nil {
return false
log.Fatalf("Failed to initialize mmaputils: %v", err)
}
defer irUtils.Close()
// 2. Connect to the OS event (Win32 Event on Windows, POSIX Semaphore on Linux)
if err := irUtils.OpenEvent(goirsdk.IRSDK_DATAVALIDEVENTNAME); err != nil {
log.Fatalf("Failed to open event: %v", err)
}
// if sdk.SessionStateInvalid() {
// slog.Debug("state is invalid")
// sessionState, ok := sdk.Vars.Vars["SessionState"]
// if !ok {
// slog.Debug("SessionState not ok")
// return false
// }
//
// state, ok := sessionState.Value.(int)
// if !ok {
// slog.Debug(fmt.Sprintf("can't typecast: %+v", sessionState))
// return false
// }
//
// slog.Debug(fmt.Sprintf("%d", state))
// return false
// }
// We now check for some consecutive data events
for range 3 {
if !irUtils.CheckValidDataEvent(1 * time.Second) {
slog.Debug("timed out waiting for DataValidEvent")
return false
}
}
return true
}