Example #1
0
        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();
        }
Example #2
0
        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();
        }
Example #3
0
 public virtual void SetRunningState(MinerProgramState state)
 {
     lock (m_accesssynch)
     {
         try
         {
             MinerState = state;
             Miner.SetRunningState(this, state);
         }
         catch (Exception e)
         {
         }
     }
 }
Example #4
0
 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();
 }
Example #5
0
 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();
 }