Пример #1
0
        public void MinerReportEvent(minerReport report)
        {
            // Make sure someone is listening to event
            if (OnMinerReportEvent == null)
            {
                return;
            }

            minerReportEventArgs args = new minerReportEventArgs(report);

            OnMinerReportEvent(this, args);
        }
Пример #2
0
        private void Mn_OnMinerReportEvent(object sender, minerReportEventArgs e)
        {
            Invoke(new Action(() =>
            {
                //Fill the Labels
                lblInitialise.Visible = false;
                lblAccepted.Text      = "Accepted: " + e.report.allshare.ToString();
                lblBHash.Text         = "B. Hashrate: " + e.report.allhash.ToString();
                lblBlock.Text         = "Block: " + e.report.block;
                lblDifficulty.Text    = "Difficulty: " + e.report.difficulty;
                lblError.Text         = "Error: " + e.report.allerror.ToString();
                lblStale.Text         = "Stale: " + e.report.allstale.ToString();
                lblRestart.Text       = "Restarts: " + e.report.restarts.ToString();
                lblCMD.Text           = e.report.cmd;

                //GPU Chart
                DateTime tme = DateTime.Now;
                foreach (int GPUID in e.report.GPUs.Keys)
                {
                    string name = "(" + GPUID.ToString() + ") " + e.report.GPUs[GPUID][1];
                    Series gpu  = chaHash.Series.FindByName(name);
                    if (gpu == null)
                    {
                        gpu             = new Series(name);
                        gpu.BorderWidth = 3;
                        gpu.ChartType   = SeriesChartType.Spline;
                        gpu.XValueType  = ChartValueType.Time;
                        chaHash.Series.Add(gpu);
                    }
                    gpu.Points.Add(new DataPoint(tme.ToOADate(), e.report.GPUs[GPUID][0]));
                }

                //Share Cahrt
                if (e.report.mshare > 0)
                {
                    chaStat.Series[0].Points.Add(new DataPoint(tme.ToOADate(), e.report.mshare));
                }
                if (e.report.merror > 0)
                {
                    chaStat.Series[2].Points.Add(new DataPoint(tme.ToOADate(), e.report.merror));
                }
                if (e.report.mstale > 0)
                {
                    chaStat.Series[1].Points.Add(new DataPoint(tme.ToOADate(), e.report.mstale));
                }
                //5 min Average
                int count         = chaStat.Series[0].Points.Count;
                int start         = chaStat.Series[0].Points.Count - 5;
                start             = start < 0 ? 0 : start;
                double avg        = 0;
                int found         = 5;
                DateTime avgstart = tme.AddMinutes(-5);
                for (int i = start; i < count; i++)
                {
                    if (chaStat.Series[0].Points[i].XValue >= avgstart.ToOADate())
                    {
                        avg += chaStat.Series[0].Points[i].YValues[0];
                    }
                }
                avg = avg / found;
                chaStat.Series[3].Points.Add(new DataPoint(tme.ToOADate(), avg));

                foreach (Series ser in chaHash.Series)
                {
                    while (ser.Points.Count > 60)
                    {
                        ser.Points.RemoveAt(0);
                    }
                }

                //Scroll the chart view
                DateTime scroll = tme.AddHours(-1);
                chaStat.ChartAreas[0].AxisX.Minimum = scroll.ToOADate();
                chaStat.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddMinutes(1).ToOADate();

                chaHash.ChartAreas[0].AxisX.Minimum = scroll.ToOADate();
                chaHash.ChartAreas[0].AxisX.Maximum = DateTime.Now.AddMinutes(1).ToOADate();
            }));
        }
Пример #3
0
 private void InOnMinerReportEvent(object sender, minerReportEventArgs e)
 {
     MinerReportEvent(e.report);
 }