示例#1
0
                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);
                }
示例#3
0
                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;
            }
示例#5
0
        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);
 }
示例#7
0
        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);
            }
        }
示例#8
0
        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);
            }
        }
示例#10
0
                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);
                }
示例#11
0
        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();
        }