Example #1
0
        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));
        }
Example #2
0
        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));
            
        }