private async Task BenchmarkPluginAlgorithm(/*PluginAlgorithm algo*/) { var algo = (PluginAlgorithm)_currentAlgorithm; var plugin = MinerPluginsManager.GetPluginWithUuid(algo.BaseAlgo.MinerID); var miner = plugin.CreateMiner(); miner.InitMiningPairs(new List <(BaseDevice, CommonAlgorithm.Algorithm)> { (Device.PluginDevice, algo.BaseAlgo) });
public static bool ShouldGroup(MiningPair a, MiningPair b) { if (a.Algorithm.MinerID != b.Algorithm.MinerID) { return(false); } var plugin = MinerPluginsManager.GetPluginWithUuid(a.Algorithm.MinerID); if (plugin == null) { return(false); } var canGroup = plugin.CanGroup(a, b); return(canGroup); }
private static bool CheckPluginCanGroup(MiningPair a, MiningPair b) { var pluginA = (device : a.Device.PluginDevice, algorithm : ((PluginAlgorithm)a.Algorithm).BaseAlgo); var pluginB = (device : b.Device.PluginDevice, algorithm : ((PluginAlgorithm)b.Algorithm).BaseAlgo); if (pluginA.algorithm.MinerID != pluginB.algorithm.MinerID) { return(false); } var plugin = MinerPluginsManager.GetPluginWithUuid(pluginA.algorithm.MinerID); // TODO can plugin be null? var canGroup = plugin.CanGroup(pluginA, pluginB); return(canGroup); }
public static Miner CreateMinerForMining(List <MiningPair> miningPairs, string groupKey) { var pair = miningPairs.FirstOrDefault(); if (pair == null || pair.Algorithm == null) { return(null); } var algorithm = pair.Algorithm; var plugin = MinerPluginsManager.GetPluginWithUuid(algorithm.MinerID); if (plugin != null) { return(new Miner(plugin, miningPairs, groupKey)); } return(null); }
private async Task BenchmarkPluginAlgorithm(PluginAlgorithm algo) { var plugin = MinerPluginsManager.GetPluginWithUuid(algo.BaseAlgo.MinerID); var miner = plugin.CreateMiner(); var miningPair = new MinerPlugin.MiningPair { Device = Device.BaseDevice, Algorithm = algo.BaseAlgo }; // check ethlargement var miningPairs = new List <MinerPlugin.MiningPair> { miningPair }; EthlargementIntegratedPlugin.Instance.Start(miningPairs); miner.InitMiningPairs(miningPairs); // fill service since the benchmark might be online. DemoUser.BTC must be used miner.InitMiningLocationAndUsername(StratumService.SelectedServiceLocation, DemoUser.BTC); _powerHelper.Start(); var result = await miner.StartBenchmark(_stopBenchmark.Token, _performanceType); //EthlargementIntegratedPlugin.Instance.Stop(miningPairs); // TODO check stopping var power = _powerHelper.Stop(); if (result.Success || result.AlgorithmTypeSpeeds?.Count > 0) { var ids = result.AlgorithmTypeSpeeds.Select(ats => ats.AlgorithmType).ToList(); var speeds = result.AlgorithmTypeSpeeds.Select(ats => ats.Speed).ToList(); algo.Speeds = speeds; algo.PowerUsage = power; // set status to empty string it will return speed algo.ClearBenchmarkPending(); BenchmarkManager.SetCurrentStatus(Device, algo, ""); } else { // add new failed list _benchmarkFailedAlgo.Add(algo.AlgorithmName); BenchmarkManager.SetCurrentStatus(Device, algo, result.ErrorMessage); } }
public MinerFromPlugin(string pluginUUID, List <MiningPair> miningPairs, string groupKey) : base(pluginUUID, miningPairs, groupKey) { _plugin = MinerPluginsManager.GetPluginWithUuid(pluginUUID); _miner = _plugin.CreateMiner(); }
public MinerFromPlugin(string pluginUUID) : base(pluginUUID) { var plugin = MinerPluginsManager.GetPluginWithUuid(pluginUUID); _miner = plugin.CreateMiner(); }