コード例 #1
0
ファイル: MiningEngine.cs プロジェクト: zwbf/MultiMiner
        private void DoLogProcessClose(MinerProcess minerProcess)
        {
            if (LogProcessClose == null)
            {
                return;
            }

            DateTime startDate = minerProcess.StartDate;
            DateTime endDate   = DateTime.Now;
            string   coinName  = minerProcess.MinerConfiguration.CoinName;

            double priceAtStart = 0;
            string coinSymbol   = String.Empty;

            //coin may not be in Coin API
            if (minerProcess.CoinInformation != null)
            {
                coinSymbol   = minerProcess.CoinInformation.Symbol;
                priceAtStart = minerProcess.CoinInformation.Price;
            }

            double priceAtEnd = priceAtStart;

            //can't use Single here - coin info may be gone now and we crash
            CoinInformation coinInfo = null;

            if (coinInformation != null) //null if no internet connection
            {
                coinInfo = coinInformation.SingleOrDefault(c => c.Symbol.Equals(coinSymbol, StringComparison.OrdinalIgnoreCase));
            }
            if (coinInfo != null)
            {
                priceAtEnd = coinInfo.Price;
            }

            //get a copy using ToList() so we can change the list in the event handler without
            //affecting relaunching processes
            List <DeviceDescriptor> deviceDescriptors = minerProcess.MinerConfiguration.DeviceDescriptors.ToList();

            LogProcessCloseArgs args = new LogProcessCloseArgs
            {
                StartDate          = startDate,
                EndDate            = endDate,
                CoinName           = coinName,
                CoinSymbol         = coinSymbol,
                StartPrice         = priceAtStart,
                EndPrice           = priceAtEnd,
                DeviceDescriptors  = deviceDescriptors,
                MinerConfiguration = minerProcess.MinerConfiguration,
                AcceptedShares     = minerProcess.AcceptedShares
            };

            LogProcessClose(this, args);
        }
コード例 #2
0
ファイル: MiningEngine.cs プロジェクト: Capkeeper/MultiMiner
        private void logProcessClose(DateTime startDate, DateTime endDate, string coinName, string coinSymbol,
                                     double priceAtStart, double priceAtEnd, List <int> deviceIndexes)
        {
            if (this.LogProcessClose != null)
            {
                LogProcessCloseArgs args = new LogProcessCloseArgs();
                args.StartDate     = startDate;
                args.EndDate       = endDate;
                args.CoinName      = coinName;
                args.CoinSymbol    = coinSymbol;
                args.StartPrice    = priceAtStart;
                args.EndPrice      = priceAtEnd;
                args.DeviceIndexes = deviceIndexes;

                this.LogProcessClose(this, args);
            }
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: raduga777/MultiMiner
 private void CheckAndAddStratumDeviceIndex(LogProcessCloseArgs ea)
 {
     //check and include the index of the virtual stratum proxy "device"
     if (ea.MinerConfiguration.StratumProxy)
     {
         Device proxyDevice = devices.SingleOrDefault(d => d.Kind == DeviceKind.PXY);
         if (proxyDevice != null)
             ea.DeviceDescriptors.Add(proxyDevice);
     }
 }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: raduga777/MultiMiner
 private void LogProcessCloseToFile(LogProcessCloseArgs ea)
 {
     const string logFileName = "MiningLog.json";
     //log an anonymous type so MinerConfiguration is ommitted
     LogObjectToFile(
         new
         {
             StartDate = ea.StartDate,
             EndDate = ea.EndDate,
             CoinName = ea.CoinName,
             CoinSymbol = ea.CoinSymbol,
             StartPrice = ea.StartPrice,
             EndPrice = ea.EndPrice,
             AcceptedShares = ea.AcceptedShares,
             DeviceDescriptors = ea.DeviceDescriptors
         }, logFileName);
 }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: raduga777/MultiMiner
        private void LogProcessClose(object sender, LogProcessCloseArgs ea)
        {
            CheckAndAddStratumDeviceIndex(ea);

            logProcessCloseArgsBindingSource.Position = logProcessCloseArgsBindingSource.Add(ea);

            while (logProcessCloseArgsBindingSource.Count > MaxHistoryOnScreen)
                logProcessCloseArgsBindingSource.RemoveAt(0);

            LogProcessCloseToFile(ea);
        }
コード例 #6
0
        private void LogProcessClose(object sender, LogProcessCloseArgs ea)
        {
            //remove then add so BindingList position is on latest entry
            while (LogCloseEntries.Count > MaxLogEntriesOnScreen)
                LogCloseEntries.RemoveAt(0);
            LogCloseEntries.Add(ea);

            LogProcessCloseToFile(ea);
        }
コード例 #7
0
ファイル: MiningEngine.cs プロジェクト: Airdigit/MultiMiner
        private void logProcessClose(MinerProcess minerProcess)
        {
            if (this.LogProcessClose == null)
                return;

            DateTime startDate = minerProcess.StartDate;
            DateTime endDate = DateTime.Now;
            string coinName = minerProcess.MinerConfiguration.CoinName;

            double priceAtStart = 0;
            string coinSymbol = String.Empty;
            //coin may not be in Coin API
            if (minerProcess.CoinInformation != null)
            {
                coinSymbol = minerProcess.CoinInformation.Symbol;
                priceAtStart = minerProcess.CoinInformation.Price;
            }

            double priceAtEnd = priceAtStart;

            //can't use Single here - coin info may be gone now and we crash
            CoinInformation coinInfo = null;
            if (coinInformation != null) //null if no internet connection
                coinInfo = coinInformation.SingleOrDefault(c => c.Symbol.Equals(coinSymbol, StringComparison.OrdinalIgnoreCase));
            if (coinInfo != null)
                priceAtEnd = coinInfo.Price;

            //get a copy using ToList() so we can change the list in the event handler without
            //affecting relaunching processes
            List<DeviceDescriptor> deviceDescriptors = minerProcess.MinerConfiguration.DeviceDescriptors.ToList();
                        
            LogProcessCloseArgs args = new LogProcessCloseArgs();
            args.StartDate = startDate;
            args.EndDate = endDate;
            args.CoinName = coinName;
            args.CoinSymbol = coinSymbol;
            args.StartPrice = priceAtStart;
            args.EndPrice = priceAtEnd;
            args.DeviceDescriptors = deviceDescriptors;
            args.MinerConfiguration = minerProcess.MinerConfiguration;
            args.AcceptedShares = minerProcess.AcceptedShares;
            this.LogProcessClose(this, args);
        }
コード例 #8
0
ファイル: MiningEngine.cs プロジェクト: nwfella/MultiMiner
        private void logProcessClose(DateTime startDate, DateTime endDate, string coinName, string coinSymbol,
            double priceAtStart, double priceAtEnd, List<int> deviceIndexes, MinerConfiguration minerConfiguration)
        {
            if (this.LogProcessClose != null)
            {
                LogProcessCloseArgs args = new LogProcessCloseArgs();
                args.StartDate = startDate;
                args.EndDate = endDate;
                args.CoinName = coinName;
                args.CoinSymbol = coinSymbol;
                args.StartPrice = priceAtStart;
                args.EndPrice = priceAtEnd;
                args.DeviceIndexes = deviceIndexes;
                args.MinerConfiguration = minerConfiguration;

                this.LogProcessClose(this, args);
            }
        }
コード例 #9
0
ファイル: MainForm.cs プロジェクト: hrvojevujcec/MultiMiner
 private void CheckAndAddStratumDeviceIndex(LogProcessCloseArgs ea)
 {
     //check and include the index of the virtual stratum proxy "device"
     if (ea.MinerConfiguration.StratumProxy)
     {
         Device lastDevice = devices.LastOrDefault();
         if ((lastDevice != null) && (lastDevice.Kind == DeviceKind.PXY))
             ea.DeviceIndexes.Add(lastDevice.DeviceIndex);
     }
 }
コード例 #10
0
ファイル: MainForm.cs プロジェクト: hrvojevujcec/MultiMiner
 private void LogProcessCloseToFile(LogProcessCloseArgs ea)
 {
     const string logFileName = "MiningLog.json";
     LogObjectToFile(ea, logFileName);
 }
コード例 #11
0
ファイル: MainForm.cs プロジェクト: Capkeeper/MultiMiner
        private void LogProcessClose(object sender, LogProcessCloseArgs ea)
        {
            const string logFileName = "MiningLog.json";
            string logFilePath = Path.Combine(AppDataPath(), logFileName);

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string jsonData = serializer.Serialize(ea);

            File.AppendAllText(logFilePath, jsonData + Environment.NewLine);

            logProcessCloseArgsBindingSource.Position = logProcessCloseArgsBindingSource.Add(ea);

            while (logProcessCloseArgsBindingSource.Count > 1000)
                logProcessCloseArgsBindingSource.RemoveAt(0);
        }
コード例 #12
0
ファイル: MainForm.cs プロジェクト: nwfella/MultiMiner
        private void CalculateAcceptedSharesForProcess(LogProcessCloseArgs ea)
        {
            int acceptedShares = 0;
            foreach (int deviceIndex in ea.DeviceIndexes)
            {
                //key won't be there if process is stopped before it starts accepting shares
                if (lastAcceptedShares.ContainsKey(deviceIndex))
                    acceptedShares += lastAcceptedShares[deviceIndex];
            }

            ea.AcceptedShares = acceptedShares;
        }
コード例 #13
0
ファイル: MainForm.cs プロジェクト: nwfella/MultiMiner
        private void LogProcessClose(object sender, LogProcessCloseArgs ea)
        {
            CheckAndAddStratumDeviceIndex(ea);

            CalculateAcceptedSharesForProcess(ea);

            logProcessCloseArgsBindingSource.Position = logProcessCloseArgsBindingSource.Add(ea);

            while (logProcessCloseArgsBindingSource.Count > 1000)
                logProcessCloseArgsBindingSource.RemoveAt(0);

            LogProcessCloseToFile(ea);
        }