public void ComputeGPUData() { try { m_MinerResult = new MinerDataResult(); m_MinerResult.GPUs = new List <GpuData>(); int totalHashrate = 0, totalShares = 0, rejected = 0; foreach (Result item in m_EwbfData.result) { GpuData gpu = new GpuData(item.name); gpu.IdentifyMake(); gpu.Hashrate = item.speed_sps.ToString(); gpu.Temperature = item.temperature + "C"; m_MinerResult.GPUs.Add(gpu); totalHashrate += item.speed_sps; totalShares += item.accepted_shares; rejected += item.rejected_shares; } m_MinerResult.TotalHashrate = totalHashrate; m_MinerResult.TotalShares = totalShares; m_MinerResult.Rejected = rejected; m_EwbfData.MinerDataResult = m_MinerResult; } catch (Exception) { Succeeded = false; throw; } }
public bool Parse(object obj) { Succeeded = false; m_MinerResult = obj as MinerDataResult; try { if (obj == null) { return(false); } if (!m_identified || m_reReadGpunames) { m_identified = false; m_Gpus.Clear(); IdentifyGPUs(); } if (m_MinerResult.result != null && m_MinerResult.result.Count >= 7) { ComputeRunningTime(); ComputeHashnShares(); ComputeGPUData(); return(true); } } catch (Exception e) { Succeeded = false; } return(false); }
public bool Parse(object obj) { Succeeded = false; m_CgminerData = obj as CGMinerCommandOutputs; try { if (m_CgminerData == null) { return(false); } m_MinerResult = new MinerDataResult(); m_MinerResult.GPUs = new List <GpuData>(); try { string content = m_CgminerData.Summary.Replace(" ", ""); Logger.Instance.LogInfo("CGMiner summary: " + content); content = content.Substring(0, content.Length - 1); SummaryRoot minerResult = (SummaryRoot) new JavaScriptSerializer().Deserialize(content, typeof(SummaryRoot)); m_MinerResult.TotalHashrate = (int)minerResult.SUMMARY[0].MHS5s; m_MinerResult.TotalHashrate *= 1000; m_MinerResult.TotalShares = (int)minerResult.SUMMARY[0].Accepted; m_MinerResult.Rejected = (int)minerResult.SUMMARY[0].Rejected; Logger.Instance.LogInfo("CCMiner TotalHashrate: " + m_MinerResult.TotalHashrate.ToString()); } catch (Exception e) { } //now read gpus from dev try { string content = m_CgminerData.Devs.Replace(" ", ""); content = content.Substring(0, content.Length - 1); RootObject minerResult = (RootObject) new JavaScriptSerializer().Deserialize(content, typeof(RootObject)); foreach (DEV item in minerResult.DEVS) { GpuData gpu = new GpuData("AMD GPU " + item.GPU.ToString()); //Todo: finfing the name has proven difficult gpu.Make = CardMake.Amd; gpu.Hashrate = (item.MHS5s * 1000).ToString(); //convert to Khs gpu.Temperature = item.Temperature.ToString() + "C"; m_MinerResult.GPUs.Add(gpu); Logger.Instance.LogInfo("GPU " + gpu.Hashrate.ToString()); } } catch (Exception e) { } m_CgminerData.MinerDataResult = m_MinerResult; return(true); } catch (Exception e) { Succeeded = false; } return(false); }
public override void Parse() { MinerDataResult minerResult = GetResultsSection(LastLog); if (minerResult.Parse(new CNAmdClaymoreResultParser(LastLog, ReReadGpuNames))) { MinerResult = minerResult; } ReReadGpuNames = false; }
public void CalculateTotalHashrate() { try { string hashrate = "", shares = "Shares: "; if (Miner.MinerState == MinerProgramState.Running) { int totalHashrate = 0; int totalShares = 0; int totalSharesRejected = 0; List <IMinerProgram> programs = Miner.ActualMinerPrograms; foreach (IMinerProgram item in programs) { MinerDataResult result = item.OutputReader.MinerResult; Logger.Instance.LogInfo("Miner.Totalhashrate: " + result.TotalHashrate.ToString()); totalHashrate += result.TotalHashrate; totalShares += result.TotalShares; totalSharesRejected += result.Rejected; } if (totalHashrate > 10 * 1024) { float conversion = totalHashrate / 1000; // 1024; if (conversion > 10000) //quick fix for increased hashrate issue { conversion /= 1000; } hashrate = conversion.ToString() + " MH/s"; Miner.HashRate = (totalHashrate * 1000).ToString("F1"); //Todo: this will write to file always. change this Factory.Instance.Model.AddMiner(Miner); } else { hashrate = totalHashrate.ToString() + " KH/s"; } shares += " A: " + totalShares.ToString() + " R: " + totalSharesRejected.ToString(); lblShares.Text = shares; lblTotalHashrate.Text = hashrate; Logger.Instance.LogInfo("Hashrate printed: " + lblTotalHashrate.Text); } else { lblShares.Text = ""; lblTotalHashrate.Text = "0 MH/s"; } } catch (Exception e) { } }
MinerDataResult GetResultsSection(string innerText) { try { string pattern = @"\{([^()]|())*\}"; Match resultmatch = Regex.Match(innerText, pattern); if (resultmatch.Success) { MinerDataResult minerResult = (MinerDataResult) new JavaScriptSerializer().Deserialize(resultmatch.Value, typeof(MinerDataResult)); return(minerResult); } } catch (Exception e) { } return(null); }
public void UpdateUI() { try { if (Miner.MinerState == MinerProgramState.Running) { List <IMinerProgram> miners = Miner.ActualMinerPrograms; while (pnlGpus.Controls.Count > 0) { Control oKill = pnlGpus.Controls[0]; pnlGpus.Controls.RemoveAt(0); if (oKill != null) { oKill.Dispose(); } } lblGpuInfoStatic.Visible = false; foreach (IMinerProgram item in miners) { MinerDataResult result = item.OutputReader.MinerResult; if (result == null) { continue; } foreach (GpuData gpuData in result.GPUs) { GpuView gpu = new GpuView(gpuData, this); gpu.TopLevel = false; pnlGpus.Controls.Add(gpu); gpu.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; gpu.UpdateState(true); gpu.Show(); } } } else { UpdateUIStatic(); } } catch (Exception e) { Logger.Instance.LogError(e.Message); } }
public void CalculateTotalHashrate() { try { string hashrate = "", shares = "Shares: "; if (Miner.MinerState == MinerProgramState.Running) { int totalHashrate = 0; int totalShares = 0; int totalSharesRejected = 0; List <IMinerProgram> programs = Miner.MinerPrograms; foreach (IMinerProgram item in programs) { MinerDataResult result = item.OutputReader.MinerResult; totalHashrate += result.TotalHashrate; totalShares += result.TotalShares; totalSharesRejected += result.Rejected; } if (totalHashrate > 10 * 1024) { float conversion = totalHashrate / 1000;// 1024; hashrate = conversion.ToString() + " MH/s"; Miner.HashRate = (totalHashrate * 1000).ToString("F1"); Factory.Instance.Model.AddMiner(Miner); } else { hashrate = totalHashrate.ToString() + " KH/s"; } shares += " A: " + totalShares.ToString() + " R: " + totalSharesRejected.ToString(); lblShares.Text = shares; lblTotalHashrate.Text = hashrate; } else { lblShares.Text = ""; lblTotalHashrate.Text = "0 MH/s"; } } catch (Exception e) { } }
public void UpdateUI() { try { if (Miner.MinerState == MinerProgramState.Running) { List <IMinerProgram> miners = Miner.ActualMinerPrograms; pnlGpus.Controls.Clear(); lblGpuInfoStatic.Visible = false; foreach (IMinerProgram item in miners) { MinerDataResult result = item.OutputReader.MinerResult; if (result == null) { continue; } foreach (GpuData gpuData in result.GPUs) { GpuView gpu = new GpuView(gpuData, this); pnlGpus.Controls.Add(gpu); gpu.UpdateState(true); //gpu.Show(); } } } else { UpdateUIStatic(); } } catch (Exception e) { Logger.Instance.LogError(e.Message); } }
public bool Parse(object obj) { Succeeded = false; m_CCMinerData = obj as CCMinerCommandOutputs; try { if (m_CCMinerData == null) { return(false); } m_MinerResult = new MinerDataResult(); m_MinerResult.GPUs = new List <GpuData>(); try { string content = m_CCMinerData.Summary; Logger.Instance.LogInfo("CCMiner summary: " + content); string[] a = content.Split(new string[] { ";" }, StringSplitOptions.None); foreach (string item in a) { if (item.Contains("KHS")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); string kh = values[1]; double kh_d = double.Parse(kh); //kh_d /= 1024; m_MinerResult.TotalHashrate = (int)kh_d; Logger.Instance.LogInfo("CCMiner Hashrate: " + m_MinerResult.TotalHashrate.ToString()); } else if (item.Contains("ACC")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); string acc = values[1]; int acc_i = int.Parse(acc); m_MinerResult.TotalShares = acc_i; } else if (item.Contains("REJ")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); string rej = values[1]; int rej_i = int.Parse(rej); m_MinerResult.Rejected = rej_i; } } } catch (Exception e) { } //now read gpus from dev try { string content = m_CCMinerData.Threads; Logger.Instance.LogInfo("CCMiner Threads: " + content); string[] b = content.Split(new string[] { "|" }, StringSplitOptions.None); foreach (var ice in b) { bool add = false; GpuData gpu = new GpuData("");//Todo: finfing the name has proven difficult gpu.Make = CardMake.Nvidia; //m_MinerResult.GPUs.Add(gpu); string[] a = ice.Split(new string[] { ";" }, StringSplitOptions.None); foreach (string item in a) { if (item.Contains("CARD")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); gpu.GPUName = values[1]; } if (item.Contains("FAN")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); gpu.FanSpeed = values[1]; } if (item.Contains("TEMP")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); gpu.Temperature = values[1]; } if (item.Contains("KHS")) { string[] values = item.Split(new string[] { "=" }, StringSplitOptions.None); string kh = values[1]; double kh_d = double.Parse(kh); //kh_d /= 1024; gpu.Hashrate = kh_d.ToString(); add = true; Logger.Instance.LogInfo("CCMiner Hashrate: " + gpu.Hashrate.ToString()); } } if (add) { m_MinerResult.GPUs.Add(gpu); } } } catch (Exception e) { } m_CCMinerData.MinerDataResult = m_MinerResult; return(true); } catch (Exception e) { Succeeded = false; } return(false); }
static void Main() { try { string filename = @"c:\pics\a.txt"; Stream stream = new FileStream(filename, FileMode.Open); StreamReader sr = new StreamReader(stream); string s = sr.ReadToEnd(); sr.Close(); filename = @"c:\pics\b.txt"; Stream stream2 = new FileStream(filename, FileMode.Open); StreamReader sr2 = new StreamReader(stream2); string s2 = sr2.ReadToEnd(); sr2.Close(); filename = @"c:\pics\c.txt"; Stream stream3 = new FileStream(filename, FileMode.Open); StreamReader sr3 = new StreamReader(stream3); string s3 = sr3.ReadToEnd(); sr3.Close(); MinerDataResult minerResult = (MinerDataResult) new JavaScriptSerializer().Deserialize(s, typeof(MinerDataResult)); if (minerResult.Parse(new OneMiner.Coins.Equihash.ClaymoreMinerZcash.ClayMoreZcashReader.ZcashClaymoreResultParser(s2, true))) { } OneMiner.Coins.Equihash.EWBFMiner.EWBFData r = (OneMiner.Coins.Equihash.EWBFMiner.EWBFData) new JavaScriptSerializer() .Deserialize(s3, typeof(OneMiner.Coins.Equihash.EWBFMiner.EWBFData)); OneMiner.Coins.Equihash.EWBFMiner.EWBFData ewbfData = r; if (ewbfData.Parse(new OneMiner.Coins.Equihash.EWBFMiner.EWBFReader.EWBFReaderResultParser("", true))) { } //Bring only a single instance bool onlyInstance = false; mutex = new Mutex(true, "UniqueApplicationName", out onlyInstance); if (!onlyInstance) { IntPtr handle = WinApi.FindWindow(null, "OneMiner - 1 Click Miner for Ethereum, ZCash"); if (handle != IntPtr.Zero) { WinApi.PostMessage(handle, 3000, IntPtr.Zero, IntPtr.Zero); } return; } } catch (Exception e) { } IView view = Factory.Instance.ViewObject; view.InitializeView(); Factory.Instance.CoreObject.LoadDBData(); view.StartView(); }