Updated the function that checks for the sim running and how we stream data
This commit is contained in:
+20
-22
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user