コード例 #1
0
        private void PopulateSampleData(LineGraphModel model, int lapCount, int maxFrameCount, LineGraphSeries series, float scale)
        {
            float lastValue = series.Minimum + ((series.Maximum - series.Minimum) / 2);

            for (int lapIdx = 0; lapIdx < lapCount; lapIdx++)
            {
                model.SetValue(lapIdx, 0, series.FieldIndex, lastValue);

                for (int frameIdx = 1; frameIdx < maxFrameCount; frameIdx++)
                {
                    float valueDelta = (float)((_randomValueGenerator.NextDouble() - .5F) * scale);
                    float newValue   = lastValue + valueDelta;

                    if (newValue > series.Maximum)
                    {
                        newValue = series.Maximum;
                    }

                    if (newValue < series.Minimum)
                    {
                        newValue = series.Minimum;
                    }

                    model.SetValue(lapIdx, frameIdx, series.FieldIndex, newValue);

                    lastValue = newValue;
                }
            }
        }
コード例 #2
0
        private LineGraphModel BuildTestModel()
        {
            int lapCount      = 10;
            int maxFrameCount = 1000;

            var series = new List <LineGraphSeries>();

            var rpmSeries = new RpmLineGraphSeries()
            {
                YAxis = new RpmYAxis()
            };

            series.Add(rpmSeries);

            var steeringSeries = new SteeringLineGraphSeries()
            {
                YAxis = new SteeringYAxis()
            };

            series.Add(steeringSeries);

            var throttleSeries = new ThrottleLineGraphSeries()
            {
                YAxis = new ThrottleYAxis()
            };

            series.Add(throttleSeries);

            var brakeSeries = new BrakeLineGraphSeries()
            {
                YAxis = new BrakeYAxis()
            };

            series.Add(brakeSeries);

            var model = new LineGraphModel(lapCount, maxFrameCount, series.Count);

            model.AddSeries(rpmSeries);
            model.AddSeries(steeringSeries);
            model.AddSeries(throttleSeries);
            model.AddSeries(brakeSeries);

            PopulateSampleData(model, lapCount, maxFrameCount, rpmSeries, 100);
            PopulateSampleData(model, lapCount, maxFrameCount, steeringSeries, 3);
            PopulateSampleData(model, lapCount, maxFrameCount, throttleSeries, .1F);
            PopulateSampleData(model, lapCount, maxFrameCount, brakeSeries, .1F);

            return(model);
        }
コード例 #3
0
 protected virtual void SetModel(string fileName)
 {
     if (InvokeRequired)
     {
         BeginInvoke(new MethodInvoker(() => { SetModel(fileName); }));
     }
     else
     {
         try
         {
             _graph.Model = LineGraphModel.Load(fileName);
         }
         catch (Exception ex)
         {
             ExceptionHandler(ex);
         }
     }
 }
コード例 #4
0
ファイル: TestForm.cs プロジェクト: RobRobertsCE/Telemetry
 private void btnLoad_Click(object sender, EventArgs e)
 {
     this.telemetryLineGraph1.Model = LineGraphModel.Load(Path.Combine(@"C:\Users\rroberts\Telemetry\iRacingTelemetry\Series", $"DefaultLineGraphModel.json"));
 }