public void MinerReportEvent(minerReport report) { // Make sure someone is listening to event if (OnMinerReportEvent == null) { return; } minerReportEventArgs args = new minerReportEventArgs(report); OnMinerReportEvent(this, args); }
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(); })); }
private void InOnMinerReportEvent(object sender, minerReportEventArgs e) { MinerReportEvent(e.report); }