public override void Parse() { try { CCMinerCommandOutputs minerResult = (CCMinerCommandOutputs) new JavaScriptSerializer().Deserialize(LastLog, typeof(CCMinerCommandOutputs)); if (minerResult != null) { if (minerResult.Parse(new CcMinerResultParser(LastLog, ReReadGpuNames))) { MinerResult = minerResult.MinerDataResult; } } } catch (Exception e) { } ReReadGpuNames = false; }
public override void Read() { try { CCMinerCommandOutputs output = new CCMinerCommandOutputs(); string result = ""; TcpReaderUtil util = new TcpReaderUtil(StatsLink, StatsPort); result = util.GetData("summary"); output.Summary = result; result = util.GetData("threads"); output.Threads = result; string str = new JavaScriptSerializer().Serialize(output); NextLog = str; } catch (Exception e) { ReadWithBrowser(); throw; } }
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); }