diff --git a/internal/processor/cardata.go b/internal/processor/cardata.go index ac0808b..bfc2c9b 100644 --- a/internal/processor/cardata.go +++ b/internal/processor/cardata.go @@ -172,13 +172,14 @@ func (co *carOut) UpdatePost(cd *CarData) {} // contains data extracted from irsdk that needs to be processed by the carState type carWorkData struct { - carIdx int32 - trackPos float64 - pos int32 - pic int32 - lap int32 - lc int32 - pit bool + carIdx int32 + trackPos float64 + pos int32 + pic int32 + lap int32 + lc int32 + pit bool + tireCompound int32 } // CarData is a struct that contains the logic to process data for a single car data. @@ -201,6 +202,7 @@ type CarData struct { speed float64 interval float64 gap float64 + tireCompound int currentState carState laptiming *CarLaptiming carDriverProc *CarDriverProc @@ -279,6 +281,7 @@ func (cd *CarData) prepareMsgData() { cd.laptiming.sectors[i].duration.marker, } } + cd.msgData["tireCompound"] = cd.tireCompound cd.msgData["userName"] = cd.carDriverProc.GetCurrentDriver(cd.carIdx).UserName cd.msgData["teamName"] = cd.carDriverProc.GetCurrentDriver(cd.carIdx).TeamName @@ -333,7 +336,12 @@ func (cd *CarData) extractIrsdkData(api *irsdk.Irsdk) *carWorkData { cw.lap = justValue(api.GetValue("CarIdxLap")).([]int32)[cd.carIdx] cw.lc = justValue(api.GetValue("CarIdxLapCompleted")).([]int32)[cd.carIdx] cw.pit = justValue(api.GetValue("CarIdxOnPitRoad")).([]bool)[cd.carIdx] - + cw.tireCompound = justValue(api.GetValue("CarIdxTireCompound")).([]int32)[cd.carIdx] + // maybe put this into the CarStint? + // value not unique + // when wet race: 0=DRY, 1=WET (EventID 314) + // when dry: 0=hard, 1=medium, 2=soft (F1, EventID 315) + // when dry: 0=primary, 1=alternate (IR 18, EventId 316) return &cw } @@ -343,6 +351,7 @@ func (cd *CarData) copyWorkData(cw *carWorkData) { cd.pic = int(cw.pic) cd.lap = int(cw.lap) cd.lc = int(cw.lc) + cd.tireCompound = int(cw.tireCompound) cd.dist = 0 cd.interval = 0 } diff --git a/internal/processor/cars.go b/internal/processor/cars.go index 1735e06..c3477ba 100644 --- a/internal/processor/cars.go +++ b/internal/processor/cars.go @@ -88,6 +88,7 @@ var baseAttributes = []string{ "stintLap", "last", "best", + "tireCompound", } //nolint:makezero // false positive? diff --git a/internal/processor/session.go b/internal/processor/session.go index 75408e2..c8560c9 100644 --- a/internal/processor/session.go +++ b/internal/processor/session.go @@ -20,6 +20,9 @@ func SessionManifest() []string { "trackTemp", "windDir", "windVel", + "trackWetness", + "weatherDeclaredWet", + "precipitation", } } @@ -53,6 +56,9 @@ func (s *SessionProc) CreateOutput() GenericMessage { msg["trackTemp"] = justValue(s.api.GetValue("TrackTemp")) msg["windDir"] = justValue(s.api.GetValue("WindDir")) msg["windVel"] = justValue(s.api.GetValue("WindVel")) + msg["precipitation"] = justValue(s.api.GetValue("Precipitation")) + msg["trackWetness"] = justValue(s.api.GetValue("TrackWetness")) + msg["weatherDeclaredWet"] = justValue(s.api.GetValue("WeatherDeclardWet")) state, _ := s.api.GetIntValue("SessionState") flags, _ := s.api.GetIntValue("SessionFlags") msg["flagState"] = computeFlagState(state, int64(flags))