示例#1
0
        protected virtual string GetCurrentSessionInfo(ITelemetrySessionData session)
        {
            var currentSession = GetCurrentSession(session);
            var sessionName    = currentSession["SessionName"].ToString();

            return(sessionName);
        }
示例#2
0
        protected virtual string GetVehicleInfo(ITelemetrySessionData session, int driverCarIdx)
        {
            var driver  = GetDriver(session, driverCarIdx);
            var vehicle = driver["CarScreenName"].ToString();

            return(vehicle);
        }
示例#3
0
        protected virtual IDictionary <object, object> GetDriver(ITelemetrySessionData session, int driverCarIdx)
        {
            var driversList = (IList <object>)session.SessionInfo.driverInfo["Drivers"];
            var driver      = (IDictionary <object, object>)driversList[driverCarIdx];

            return(driver);
        }
示例#4
0
        protected virtual string GetDriverInfo(ITelemetrySessionData session, int driverCarIdx)
        {
            var driver   = GetDriver(session, driverCarIdx);
            var userName = driver["UserName"].ToString();

            return(userName);
        }
示例#5
0
        protected virtual string GetLapInfo(ITelemetrySessionData session, int driverCarIdx)
        {
            string lapCount         = "";
            string fastestLapNumber = "";
            string fastestLapTime   = "";

            var sessions       = (IList <object>)session.SessionInfo.sessionInfo["Sessions"];
            var currentSession = (IDictionary <object, object>)sessions.LastOrDefault();

            var sessionResults = (IList <object>)currentSession["ResultsPositions"];

            if (sessionResults == null)
            {
                return("0");
            }
            else
            {
                foreach (IDictionary <object, object> result in sessionResults)
                {
                    if (result["CarIdx"].ToString() == driverCarIdx.ToString())
                    {
                        lapCount         = result["Lap"].ToString();
                        fastestLapNumber = result["FastestLap"].ToString();
                        fastestLapTime   = result["FastestTime"].ToString();
                    }
                }

                return($"{lapCount}   Best Lap: {fastestLapNumber} [{fastestLapTime}]");
            }
        }
示例#6
0
        protected virtual async Task DisplaySessionAsync(ITelemetrySessionData session)
        {
            DisplaySessionName();
            await DisplaySessionInfoAsync(session);

            closeToolStripMenuItem1.Enabled = true;
        }
示例#7
0
        protected virtual string GetTrackInfo(ITelemetrySessionData session)
        {
            var trackName      = GetTrackName(session);
            var trackLength    = session.SessionInfo.weekendInfo["TrackLength"].ToString();
            var trackType      = session.SessionInfo.weekendInfo["TrackType"].ToString();
            var sessions       = (IList <object>)session.SessionInfo.sessionInfo["Sessions"];
            var currentSession = (IDictionary <object, object>)sessions.LastOrDefault();
            var trackState     = GetTrackState(session);

            return($"{trackName}\r\n{trackLength}\r\n{trackType}\r\n{trackState}");
        }
示例#8
0
        private void SaveFieldDefinitionFile(ITelemetrySessionData session)
        {
            JsonSerializerSettings settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.Auto
            };
            var json          = JsonConvert.SerializeObject(session.Fields, settings);
            var fieldListFile = Path.Combine(DisplaysFolder, "FieldDefinitions.json");

            File.WriteAllText(fieldListFile, json);
            MessageBox.Show("Field definition list saved");
        }
示例#9
0
        private async Task <ITelemetrySessionData> LoadTelemetryFileSessionAsync()
        {
            ITelemetrySessionData session = null;

            _sessionFileName = SelectSessionFile();

            if (!String.IsNullOrEmpty(_sessionFileName))
            {
                session = await LoadTelemetryFileSessionAsync(_sessionFileName);
            }

            return(session);
        }
示例#10
0
        protected virtual async Task DisplaySessionInfoAsync(ITelemetrySessionData session)
        {
            string sessionName = "";
            string vehicle     = "";
            string setupName   = "";

            string trackName  = "";
            string weather    = "";
            string trackState = "";
            string timeOfDay  = "";
            string airTemp    = "";
            string trackTemp  = "";

            await Task.Run(() =>
            {
                try
                {
                    var driverCarIdx = GetDriverCarIdx(session);

                    sessionName = GetCurrentSessionInfo(session);
                    setupName   = GetSetupName(session);
                    vehicle     = GetVehicleInfo(session, driverCarIdx);

                    trackName  = GetTrackName(session);
                    trackState = GetTrackState(session);
                    weather    = GetWeather(session);
                    timeOfDay  = GetTimeOfDay(session);
                    airTemp    = GetAirTemp(session);
                    trackTemp  = GetTrackTemp(session);
                }
                catch (KeyNotFoundException ex)
                {
                    ExceptionHandler(ex);
                }
                catch (Exception ex)
                {
                    ExceptionHandler(ex);
                }
            });

            DisplaySetupName(setupName);

            lblVehicleName.Text     = $"Vehicle: {vehicle}";
            lblTrackName.Text       = $"Track: {trackName}";
            lblWeather.Text         = $"Weather: {weather}";
            lblTrackState.Text      = $"Track State: {trackState}";
            lblTimeOfDay.Text       = $"Time of Day: {timeOfDay}";
            lblSessionTypeName.Text = $"Session Type: {sessionName}";
            lblAirTemp.Text         = $"Air Temp: {airTemp}";
            lblTrackTemp.Text       = $"Track Temp: {trackTemp}";
        }
示例#11
0
        protected virtual string GetSetupName(ITelemetrySessionData session)
        {
            var  setupName  = session.SessionInfo.driverInfo["DriverSetupName"].ToString();
            bool isModified = ("1" == session.SessionInfo.driverInfo["DriverSetupIsModified"].ToString());

            if (isModified)
            {
                var setupSection  = session.SetupInfo;
                var modifiedCount = setupSection.updateCount;
                return($"{setupName} [{modifiedCount}]");
            }
            else
            {
                return(setupName);
            }
        }
示例#12
0
        protected virtual async void OnSessionChanged(ITelemetrySessionData session)
        {
            _displayController.Session = _session;

            ClearSession();

            if (session != null)
            {
                await DisplaySessionAsync(session);

                SetSessionOpenFormState();
            }
            else
            {
                SetSessionClosedFormState();
            }
        }
示例#13
0
        protected virtual string GetTimeOfDay(ITelemetrySessionData session)
        {
            var weekendOptions = (IDictionary <object, object>)session.SessionInfo.weekendInfo["WeekendOptions"];

            return(weekendOptions["TimeOfDay"].ToString());
        }
示例#14
0
 protected virtual int GetDriverCarIdx(ITelemetrySessionData session)
 {
     return(Int32.Parse(session.SessionInfo.driverInfo["DriverCarIdx"].ToString()));
 }
示例#15
0
 protected virtual string GetTrackName(ITelemetrySessionData session)
 {
     return(session.SessionInfo.weekendInfo["TrackDisplayName"].ToString());
 }
示例#16
0
        protected virtual string GetTrackState(ITelemetrySessionData session)
        {
            var currentSession = GetCurrentSession(session);

            return(currentSession["SessionTrackRubberState"].ToString());
        }
示例#17
0
 protected virtual string GetWeather(ITelemetrySessionData session)
 {
     return(session.SessionInfo.weekendInfo["TrackSkies"].ToString());
 }
示例#18
0
 protected virtual string GetTrackTemp(ITelemetrySessionData session)
 {
     return(session.SessionInfo.weekendInfo["TrackSurfaceTemp"].ToString());
 }
示例#19
0
        protected virtual IDictionary <object, object> GetCurrentSession(ITelemetrySessionData session)
        {
            var sessions = (IList <object>)session.SessionInfo.sessionInfo["Sessions"];

            return((IDictionary <object, object>)sessions.LastOrDefault());
        }