Пример #1
0
 public CoinConfig(CoinConfig config)
 {
     configName = config.configName;
     want       = config.want;
     GPU        = config.GPU;
     CPU        = config.CPU;
 }
Пример #2
0
 public void setCoinConfig(CoinConfig config)
 {
     this.config     = config.Clone();
     wantReward.Text = this.config.want.ToString();
     if (this.config.GPU == null || this.config.GPU == "")
     {
         GPUbat.Text = "GPU.bat empty";
         setGPU.Text = "Set GPU.bat";
     }
     else
     {
         GPUbat.Text = Regex.Match(this.config.GPU, @"[^\\]*\\[^\\]*\.bat").Value;
         setGPU.Text = "Clear GPU.bat";
     }
     if (this.config.CPU == null || this.config.CPU == "")
     {
         CPUbat.Text = "CPU.bat empty";
         setCPU.Text = "Set CPU.bat";
     }
     else
     {
         CPUbat.Text = Regex.Match(this.config.CPU, @"[^\\]*\\[^\\]*\.bat").Value;
         setCPU.Text = "Clear CPU.bat";
     }
 }
Пример #3
0
        private string getActiveCoin()
        {
            Dictionary <string, double> CoinRating     = new Dictionary <string, double>();
            Dictionary <string, double> WorkCoinRating = new Dictionary <string, double>();

            foreach (Coin coin in Coins.Values)
            {
                CoinPanel  panel = (CoinPanel)mainPanel.Controls[coin.symbol];
                CoinConfig cfg   = Config[coin.symbol];
                CoinRating.Add(coin.symbol, panel.getRaiting());
            }
            foreach (string coinSymbol in CoinRating.Keys)
            {
                CoinConfig cfg = Config[coinSymbol];
                if (cfg.GPU != null && cfg.GPU.Length > 0 || cfg.CPU != null && cfg.CPU.Length > 0)
                {
                    double rating = CoinRating[coinSymbol];
                    if (coinSymbol == ActiveCoin)
                    {
                        rating *= 1.1;
                    }
                    WorkCoinRating.Add(coinSymbol, rating);
                }
            }
            CoinRating     = CoinRating.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
            WorkCoinRating = WorkCoinRating.OrderBy(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
            string newActiveCoin = null;

            if (WorkCoinRating.Count > 0)
            {
                newActiveCoin = WorkCoinRating.Last().Key;
            }
            fillCoinStatusPanel(CoinRating.Keys.ToArray <string>(), newActiveCoin);
            return(newActiveCoin);
        }
Пример #4
0
        public CoinPanel(string coinSymbol)
        {
            InitializeComponent();
            this.Name   = coinSymbol;
            this.config = new CoinConfig(coinSymbol);
            this.stats  = new CoinStats();

            openFileDialog1.Filter = "bat files|*.bat";
            coinIcon.Image         = GetImage(coinSymbol);
            coinSymbol1.Text       = this.Name;
            coinSymbol2.Text       = this.Name;
        }
Пример #5
0
        private void setActiveCoin()
        {
            string newActiveCoin = getActiveCoin();

            if (newActiveCoin == null && ActiveCoin != null)
            {
                killMiners();

                CoinPanel panel = (CoinPanel)mainPanel.Controls[ActiveCoin];
                panel.setActive(false);
                writeLog("End mining " + ActiveCoin);

                ActiveCoin = newActiveCoin;
            }
            else if (newActiveCoin != null && !newActiveCoin.Equals(ActiveCoin) && LastChangeCoin < DateTime.Now.AddMinutes(-30))
            {
                killMiners();

                CoinPanel panel = (CoinPanel)mainPanel.Controls[newActiveCoin];
                panel.setActive(true);

                if (ActiveCoin != null)
                {
                    panel = (CoinPanel)mainPanel.Controls[ActiveCoin];
                    panel.setActive(false);
                    writeLog("End mining " + ActiveCoin);
                }
                writeLog("Start mining " + newActiveCoin);

                CoinConfig cfg = Config[newActiveCoin];
                if (cfg.GPU != null && cfg.GPU.Length > 0)
                {
                    startProcess(cfg.GPU);
                }
                if (cfg.CPU != null && cfg.CPU.Length > 0)
                {
                    startProcess(cfg.CPU);
                }
                LastChangeCoin = DateTime.Now;

                ActiveCoin = newActiveCoin;
            }
        }
Пример #6
0
        private void MiningManager_Load(object sender, EventArgs e)
        {
            try
            {
                XMLConfig = XDocument.Load(configFile);
            }
            catch
            {
                XMLConfig = new XDocument();
                XMLConfig.Add(new XElement("MiningManagerConfig"));
            }
            XElement root = XMLConfig.Root;

            foreach (Coin coin in Coins.Values)
            {
                CoinConfig config = new CoinConfig(root.Element(coin.symbol + "Config"), coin.symbol);
                Config.Add(coin.symbol, config);
                CoinPanel panel = (CoinPanel)mainPanel.Controls[coin.symbol];
                panel.setCoinConfig(config);
            }
        }