public void SetRunningState(IMinerProgram program, MinerProgramState state) { int count = MinerPrograms.Count; if (state != MinerProgramState.Running) { m_MinerRunningHash.Remove(program.Type); } else { m_MinerRunningHash.Add(program.Type); } if (m_MinerRunningHash.Count == 0) { MinerState = MinerProgramState.Stopped; } else if (m_MinerRunningHash.Count < ActualMinerPrograms.Count) { MinerState = MinerProgramState.PartiallyRunning; } else if (m_MinerRunningHash.Count == ActualMinerPrograms.Count) { MinerState = MinerProgramState.Running; } else { MinerState = MinerProgramState.Stopping;//ideally it shudnt com here } //if its not running or partiallyrunning then check if its downloading. if so then set it if (MinerState == MinerProgramState.Stopped && state == MinerProgramState.Downloading) { MinerState = MinerProgramState.Downloading; } Factory.Instance.ViewObject.UpDateMinerState(); }
public void StopMining() { MinerState = MinerProgramState.Stopping; m_MinerRunningHash.Clear(); foreach (IMinerProgram item in MinerPrograms) { //push miners into mining queue wher they wud be picked up by threads and executed item.KillMiner(); } MinerState = MinerProgramState.Stopped; Factory.Instance.ViewObject.UpDateMinerState(); }
public virtual void SetRunningState(MinerProgramState state) { lock (m_accesssynch) { try { MinerState = state; Miner.SetRunningState(this, state); } catch (Exception e) { } } }
public virtual void StartMining() { MinerState = MinerProgramState.Starting; if (ActualMinerPrograms.Count == 0) { Factory.Instance.ViewObject.ShowHardwareMissingError(); StopMining(); return; } foreach (IMinerProgram item in ActualMinerPrograms) { //push miners into mining queue wher they wud be picked up by threads and executed Factory.Instance.CoreObject.MiningQueue.Enqueue(item); } Factory.Instance.ViewObject.UpDateMinerState(); }
public MinerBase(string id, ICoin mainCoin, bool dualMining, ICoin dualCoin, string minerName, IMinerData minerData) { MinerState = MinerProgramState.Stopped; Id = id; MainCoin = mainCoin; DualCoin = dualCoin; DualMining = dualMining; Name = minerName; MinerData = minerData; if (MinerData != null) { MinerGpuType = MinerData.MinerGpuType; } else { IdentifyGpuTypes(); } MinerPrograms = new List <IMinerProgram>(); ActualMinerPrograms = new List <IMinerProgram>(); SetupMiner(); }