public void postData(object o) { // wait SharedData.mutex.WaitOne(); DateTime mutexLocked = DateTime.Now; webTimingObject data = new webTimingObject(); data.trackname = SharedData.Track.name; data.sessiontype = SharedData.Sessions.CurrentSession.Type.ToString(); data.sessionstate = SharedData.Sessions.CurrentSession.State.ToString(); if (SharedData.Sessions.CurrentSession.State == Sessions.SessionInfo.sessionState.checkered || SharedData.Sessions.CurrentSession.State == Sessions.SessionInfo.sessionState.cooldown) { data.sessionflag = Sessions.SessionInfo.sessionFlag.checkered.ToString(); } else { data.sessionflag = SharedData.Sessions.CurrentSession.Flag.ToString(); } data.currentlap = SharedData.Sessions.CurrentSession.LapsComplete; data.totallaps = SharedData.Sessions.CurrentSession.LapsTotal; data.timeremaining = (float)SharedData.Sessions.CurrentSession.TimeRemaining; data.cautions = SharedData.Sessions.CurrentSession.Cautions; data.cautionlaps = SharedData.Sessions.CurrentSession.CautionLaps; data.fastestlap = iRTVO.Overlay.floatTime2String(SharedData.Sessions.CurrentSession.FastestLap, 3, true); data.fastestdriver = SharedData.Sessions.CurrentSession.FastestLapDriver.Name; data.fastestlapnum = SharedData.Sessions.CurrentSession.FastestLapNum; data.drivers = new webtimingDriver[SharedData.Sessions.CurrentSession.Standings.Count]; IEnumerable<Sessions.SessionInfo.StandingsItem> query = SharedData.Sessions.CurrentSession.Standings.OrderBy(s => s.Position); int i = 0; foreach (Sessions.SessionInfo.StandingsItem si in query) { data.drivers[i] = new webtimingDriver(si, SharedData.Sessions.CurrentSession); i++; } SharedData.mutex.ReleaseMutex(); send(JsonConvert.SerializeObject(data)); }
public void postData(object o) { // wait SharedData.mutex.WaitOne(); DateTime mutexLocked = DateTime.Now; webTimingObject data = new webTimingObject(); data.timestamp = (long)( DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond ); data.trackname = SharedData.Track.Name; data.sessiontype = SharedData.Sessions.CurrentSession.Type.ToString(); data.sessionstate = SharedData.Sessions.CurrentSession.State.ToString(); if (SharedData.Sessions.CurrentSession.State == SessionStates.checkered || SharedData.Sessions.CurrentSession.State == SessionStates.cooldown) { data.sessionflag = SessionFlags.checkered.ToString(); } else { data.sessionflag = SharedData.Sessions.CurrentSession.Flag.ToString(); } data.currentlap = SharedData.Sessions.CurrentSession.LapsComplete; data.totallaps = SharedData.Sessions.CurrentSession.LapsTotal; data.timeremaining = (float)SharedData.Sessions.CurrentSession.TimeRemaining; data.cautions = SharedData.Sessions.CurrentSession.Cautions; data.cautionlaps = SharedData.Sessions.CurrentSession.CautionLaps; data.fastestlap =Utils.floatTime2String(SharedData.Sessions.CurrentSession.FastestLap, 3, true); data.fastestdriver = SharedData.Sessions.CurrentSession.FastestLapDriver.Name; data.fastestlapnum = SharedData.Sessions.CurrentSession.FastestLapNum; data.drivers = new webtimingDriver[SharedData.Sessions.CurrentSession.Standings.Count]; data.tracker = new TelemData(); data.tracker.trackId = SharedData.Track.Id; data.tracker.drivers = new Dictionary<string, float>(); IEnumerable<StandingsItem> query = SharedData.Sessions.CurrentSession.Standings.OrderBy(s => s.PositionLive); int i = 0; foreach (StandingsItem si in query) { data.drivers[i] = new webtimingDriver(si, SharedData.Sessions.CurrentSession); if (si.TrackSurface != SurfaceTypes.NotInWorld) { data.tracker.drivers[si.Driver.NumberPlate] = (float)si.TrackPct; /*new TrackerDriver(si.Driver.CarIdx, si.Driver.Name, si.Driver.NumberPlate, (float)si.TrackPct, (si.TrackSurface == SurfaceTypes.AproachingPits) || (si.TrackSurface == SurfaceTypes.InPitStall)); * */ } i++; } SharedData.mutex.ReleaseMutex(); send(JsonConvert.SerializeObject(data)); }