コード例 #1
0
        private void UpdateAvailabilityCharts(List <GpuLogger.Benchmark.Availability> availabilityTimeStamps, IList <ChartFriendlySensorValue> friendlySensorValues)
        {
            chartSensor.Series["AvailabilityTemperatureSeries"].Points.Clear();
            chartSensor.Series["AvailabilityPingSeries"].Points.Clear();
            DateTime firstTimeStamp   = friendlySensorValues[0].TimeStamp;
            double   chartTempMaximum = friendlySensorValues.Max(value => value.Temperature) * 1.2;
            double   chartTempMinimum = friendlySensorValues.Min(value => value.Temperature) * 0.8;
            double   chartPingMaximum = friendlySensorValues.SelectMany(
                value => new[] { value.MiningUrlPing, value.NetworkRigPing, value.ShareAnswerPing }).Max() * 1.2;
            const double chartPingMinimum = 0;

            for (int index = 0; index < availabilityTimeStamps.Count - 1; index++)
            {
                GpuLogger.Benchmark.Availability availabilityTimeStamp = availabilityTimeStamps[index];
                DateTime dateTime = GuiHelper.UnixTimeStampToDateTime(availabilityTimeStamp.TimeStamp);
                if (!availabilityTimeStamp.Available && dateTime > firstTimeStamp)
                {
                    GpuLogger.Benchmark.Availability nextAvailabilityTimeStamp = availabilityTimeStamps[index + 1];

                    DateTime nextDateTime = GuiHelper.UnixTimeStampToDateTime(nextAvailabilityTimeStamp.TimeStamp);

                    chartSensor.Series["AvailabilityTemperatureSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                                     chartTempMinimum);
                    chartSensor.Series["AvailabilityTemperatureSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                                     chartTempMaximum + 1);
                    chartSensor.Series["AvailabilityTemperatureSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                                     chartTempMaximum + 1);
                    chartSensor.Series["AvailabilityTemperatureSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                                     chartTempMinimum);

                    chartSensor.Series["AvailabilityPingSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                              chartPingMinimum);
                    chartSensor.Series["AvailabilityPingSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                              chartPingMaximum + 1);
                    chartSensor.Series["AvailabilityPingSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                              chartPingMaximum + 1);
                    chartSensor.Series["AvailabilityPingSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                              chartPingMinimum);
                }
            }

            chartSensor.ChartAreas["ChartAreaTemperatureFan"].AxisY.Maximum = chartTempMaximum;
            chartSensor.ChartAreas["ChartAreaTemperatureFan"].AxisY.Minimum = chartTempMinimum;
            chartSensor.ChartAreas["ChartAreaPingFrequency"].AxisY.Maximum  = chartPingMaximum;
            chartSensor.ChartAreas["ChartAreaPingFrequency"].AxisY.Minimum  = chartPingMinimum;
        }
コード例 #2
0
ファイル: HashChart.cs プロジェクト: senlinms/ccmonitor
        private void UpdateAvailabilityCharts(List <GpuLogger.Benchmark.Availability> availabilityTimeStamps, IList <ChartFriendlyHashEntry> friendlyHashEntry)
        {
            chartHash.Series["AvailabilityFoundSeries"].Points.Clear();
            chartHash.Series["AvailabilityDifficultySeries"].Points.Clear();
            DateTime     firstTimeStamp         = friendlyHashEntry[0].TimeStamp;
            const double chartFoundMaximum      = 5;
            const double chartFoundMinimum      = 0;
            double       chartDifficultyMaximum = friendlyHashEntry.Max(value => value.Difficulty) * 1.2;
            const double chartDifficultyMinimum = 0;;

            for (int index = 0; index < availabilityTimeStamps.Count - 1; index++)
            {
                GpuLogger.Benchmark.Availability availabilityTimeStamp = availabilityTimeStamps[index];
                DateTime dateTime = GuiHelper.UnixTimeStampToDateTime(availabilityTimeStamp.TimeStamp);
                if (!availabilityTimeStamp.Available && dateTime > firstTimeStamp)
                {
                    GpuLogger.Benchmark.Availability nextAvailabilityTimeStamp = availabilityTimeStamps[index + 1];

                    DateTime nextDateTime = GuiHelper.UnixTimeStampToDateTime(nextAvailabilityTimeStamp.TimeStamp);

                    chartHash.Series["AvailabilityFoundSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                             chartFoundMinimum);
                    chartHash.Series["AvailabilityFoundSeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                             chartFoundMaximum + 1);
                    chartHash.Series["AvailabilityFoundSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                             chartFoundMaximum + 1);
                    chartHash.Series["AvailabilityFoundSeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                             chartFoundMinimum);

                    chartHash.Series["AvailabilityDifficultySeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                                  chartDifficultyMinimum);
                    chartHash.Series["AvailabilityDifficultySeries"].Points.AddXY(dateTime + new TimeSpan(0, 0, 1),
                                                                                  chartDifficultyMaximum + 1);
                    chartHash.Series["AvailabilityDifficultySeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                                  chartDifficultyMaximum + 1);
                    chartHash.Series["AvailabilityDifficultySeries"].Points.AddXY(nextDateTime - new TimeSpan(0, 0, 1),
                                                                                  chartDifficultyMinimum);
                }
            }

            chartHash.ChartAreas["ChartAreaFoundHashrate"].AxisY2.Maximum       = chartFoundMaximum;
            chartHash.ChartAreas["ChartAreaFoundHashrate"].AxisY2.Minimum       = chartFoundMinimum;
            chartHash.ChartAreas["ChartAreaDifficultyHashcount"].AxisY2.Maximum = chartDifficultyMaximum;
            chartHash.ChartAreas["ChartAreaDifficultyHashcount"].AxisY2.Minimum = chartDifficultyMinimum;
        }