Example #1
0
		/// <summary>
		/// Adds a physical subdirectory to the directory with a specific name.
		/// </summary>
		/// <param name="alias">The name of the subdirectory to add as it will be seen in the directory.</param>
		/// <param name="path">The full path of the directory to add.</param>
		/// <returns>The newly created <see cref="DriveDirectory"/>.</returns>
		public DriveDirectory AddDirectory(string alias, string path)
		{
			DriveDirectory directory = new DriveDirectory(alias, path, this);
			CheckExistence(directory.Name);

			directories.Add(directory.Name, directory);

			return directory;
		}
Example #2
0
        /// <summary>
        /// Adds a physical subdirectory to the directory with a specific name.
        /// </summary>
        /// <param name="alias">The name of the subdirectory to add as it will be seen in the directory.</param>
        /// <param name="path">The full path of the directory to add.</param>
        /// <returns>The newly created <see cref="DriveDirectory"/>.</returns>
        public DriveDirectory AddDirectory(string alias, string path)
        {
            DriveDirectory directory = new DriveDirectory(alias, path, this);

            CheckExistence(directory.Name);

            directories.Add(directory.Name, directory);

            return(directory);
        }
Example #3
0
 //J bhIJW = new JsonTextWriter(new System.IO.TextWriter());
 public blinkHttpInterface()
 {
     try
     {
         VirtualDirectory root = new VirtualDirectory();
         DriveDirectory homeDir = new DriveDirectory(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
         foreach (DriveDirectory d in homeDir.GetDirectories())
         {
             root.AddDirectory(d.Path);
         }
         VirtualDirectory blink1 = new VirtualDirectory("blink1",root);
         Blink1JSONFile id = new Blink1JSONFile("id", blink1, bs);
         id.GetStringResponse = blink1Id;
         blink1.AddFile(id);   //add a virtual file for each json method
         
         root.AddDirectory(blink1);
         bhI.Root = root;
         bhI.Start();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Example #4
0
        // constructor
        public Blink1Server()
        {
            Log("Blink1Server!");
            //Blink1Server.setBlink1Server(this);
            blink1.open();
            fadeToRGB(0.4, Color.Black);

            loadSettings();

            Log("Running on port " + httpPortDefault);
            Log("blink1Id:" + blink1Id);
            long updateMillis = (long)(inputUpdateInterval * 1000);
            inputsTimer = new Timer( updateInputs, null, updateMillis, updateMillis);

            saveSettings();

            try {
                VirtualDirectory root = new VirtualDirectory();
                // note: this works because there is an xcopy as a post build-build event
                string baseDir = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                baseDir += "\\html\\blink_1";
                DriveDirectory htmlDir = new DriveDirectory(baseDir);
                Log("htmlDir: " + htmlDir.Path);
                root.AddDirectory(htmlDir.Path);

                VirtualDirectory blink1dir = new VirtualDirectory("blink1", root);
                VirtualDirectory inputdir  = new VirtualDirectory("input", blink1dir);
                VirtualDirectory patterndir = new VirtualDirectory("pattern", blink1dir);

                // FIXME: the below is completely gross, how to do good HTTP routing with MiniHttpd?
                Blink1JSONFile id = new Blink1JSONFile("id", blink1dir, this);
                id.GetStringResponse = Ublink1Id;
                blink1dir.AddFile(id);   //add a virtual file for each json method

                Blink1JSONFile enumerate = new Blink1JSONFile("enumerate", blink1dir, this);
                enumerate.GetStringResponse = Ublink1Enumerate;
                blink1dir.AddFile(enumerate);   //add a virtual file for each json method

                Blink1JSONFile regen = new Blink1JSONFile("regenerateblink1id", blink1dir, this);
                regen.GetStringResponse = Ublink1RegenerateBlink1Id;
                blink1dir.AddFile(regen);

                Blink1JSONFile fadeRGB = new Blink1JSONFile("fadeToRGB", blink1dir, this);
                fadeRGB.GetStringResponse = Ublink1FadeToRGB;
                blink1dir.AddFile(fadeRGB);

                Blink1JSONFile on = new Blink1JSONFile("on", blink1dir, this);
                on.GetStringResponse = Ublink1On;
                blink1dir.AddFile(on);

                Blink1JSONFile off = new Blink1JSONFile("off", blink1dir, this);
                off.GetStringResponse = Ublink1Off;
                blink1dir.AddFile(off);

                Blink1JSONFile lastColor = new Blink1JSONFile("lastColor", blink1dir, this);
                lastColor.GetStringResponse = Ublink1LastColor;
                blink1dir.AddFile(lastColor);

                Blink1JSONFile logging = new Blink1JSONFile("logging", blink1dir, this);
                logging.GetStringResponse = Ublink1Logging;
                blink1dir.AddFile(logging);

                Blink1JSONFile pattern = new Blink1JSONFile("patterns", blink1dir, this);
                pattern.GetStringResponse = Ublink1Pattern;
                blink1dir.AddFile(pattern);

                Blink1JSONFile pattadd = new Blink1JSONFile("add", patterndir, this);
                pattadd.GetStringResponse = Ublink1PatternAdd;
                patterndir.AddFile(pattadd);

                Blink1JSONFile pattdel = new Blink1JSONFile("del", patterndir, this);
                pattdel.GetStringResponse = Ublink1PatternDel;
                patterndir.AddFile(pattdel);

                Blink1JSONFile pattdelall = new Blink1JSONFile("delall", patterndir, this);
                pattdelall.GetStringResponse = Ublink1PatternDelAll;
                patterndir.AddFile(pattdelall);

                Blink1JSONFile pattplay = new Blink1JSONFile("play", patterndir, this);
                pattplay.GetStringResponse = Ublink1PatternPlay;
                patterndir.AddFile(pattplay);

                Blink1JSONFile pattstop = new Blink1JSONFile("stop", patterndir, this);
                pattstop.GetStringResponse = Ublink1PatternStop;
                patterndir.AddFile(pattstop);

                Blink1JSONFile pattstopall = new Blink1JSONFile("stopall", patterndir, this);
                pattstopall.GetStringResponse = Ublink1PatternStopAll;
                patterndir.AddFile(pattstopall);


                Blink1JSONFile input = new Blink1JSONFile("inputs", blink1dir, this);
                input.GetStringResponse = Ublink1Input;
                blink1dir.AddFile(input);

                Blink1JSONFile inputdel = new Blink1JSONFile("del", inputdir, this);
                inputdel.GetStringResponse = Ublink1InputDel;
                inputdir.AddFile(inputdel);

                Blink1JSONFile inputdelall = new Blink1JSONFile("delall", inputdir, this);
                inputdelall.GetStringResponse = Ublink1InputDelAll;
                inputdir.AddFile(inputdelall);

                Blink1JSONFile inputurl = new Blink1JSONFile("url", inputdir, this);
                inputurl.GetStringResponse = Ublink1InputUrl;
                inputdir.AddFile(inputurl);

                Blink1JSONFile inputfile = new Blink1JSONFile("file", inputdir, this);
                inputfile.GetStringResponse = Ublink1InputFile;
                inputdir.AddFile(inputfile);

                Blink1JSONFile inputscript = new Blink1JSONFile("script", inputdir, this);
                inputscript.GetStringResponse = Ublink1InputScript;
                inputdir.AddFile(inputscript);

                Blink1JSONFile inputifttt = new Blink1JSONFile("ifttt", inputdir, this);
                inputifttt.GetStringResponse = Ublink1InputIfttt;
                inputdir.AddFile(inputifttt);

                // TESTING
                // embedding slashes in path name does not work
                //Blink1JSONFile foobar = new Blink1JSONFile("foo/bar", blink1dir, this);
                //foobar.GetStringResponse = Ufoobar;
                //blink1dir.AddFile(foobar);   //add a virtual file for each json method
                //VirtualDirectory blarg = new VirtualDirectory();
                //Blink1Directory bd = new Blink1Directory("floop", root);
                //root.AddDirectory(bd);
                // TESTING END

                blink1dir.AddDirectory(inputdir);
                blink1dir.AddDirectory(patterndir);
                root.AddDirectory(blink1dir);
                httpServer.Root = root;

                ConsoleWriter writer = new ConsoleWriter();
                httpServer.Log = writer;
                httpServer.LogRequests = true;
                writer.OnWrite += new ConsoleWriter.WriteEventHandler(writer_OnWrite);

                httpServer.Start();
            }
            catch (Exception e) {
                Log(e.ToString());
            }
        }
Example #5
0
        private StartMiningReturnType StartMining(bool showWarnings)
        {
            if (textBoxBTCAddress.Text.Equals(""))
            {
                if (showWarnings)
                {
                    DialogResult result = MessageBox.Show(International.GetText("Form_Main_DemoModeMsg"),
                                                          International.GetText("Form_Main_DemoModeTitle"),
                                                          MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

                    if (result == System.Windows.Forms.DialogResult.Yes)
                    {
                        DemoMode = true;
                        labelDemoMode.Visible = true;
                        labelDemoMode.Text    = International.GetText("Form_Main_DemoModeLabel");
                    }
                    else
                    {
                        return(StartMiningReturnType.IgnoreMsg);
                    }
                }
                else
                {
                    return(StartMiningReturnType.IgnoreMsg);;
                }
            }
            else if (!VerifyMiningAddress(true))
            {
                return(StartMiningReturnType.IgnoreMsg);
            }

            if (Globals.NiceHashData == null)
            {
                if (showWarnings)
                {
                    MessageBox.Show(International.GetText("Form_Main_msgbox_NullNiceHashDataMsg"),
                                    International.GetText("Error_with_Exclamation"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                return(StartMiningReturnType.IgnoreMsg);
            }


            // Check if there are unbenchmakred algorithms
            bool isBenchInit       = true;
            bool hasAnyAlgoEnabled = false;

            foreach (var cdev in ComputeDeviceManager.Avaliable.AllAvaliableDevices)
            {
                if (cdev.Enabled)
                {
                    foreach (var algo in cdev.GetAlgorithmSettings())
                    {
                        if (algo.Enabled == true)
                        {
                            hasAnyAlgoEnabled = true;
                            if (algo.BenchmarkSpeed == 0)
                            {
                                isBenchInit = false;
                                break;
                            }
                        }
                    }
                }
            }
            // Check if the user has run benchmark first
            if (!isBenchInit)
            {
                DialogResult result = MessageBox.Show(International.GetText("EnabledUnbenchmarkedAlgorithmsWarning"),
                                                      International.GetText("Warning_with_Exclamation"),
                                                      MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                if (result == System.Windows.Forms.DialogResult.Yes)
                {
                    BenchmarkForm = new Form_Benchmark(
                        BenchmarkPerformanceType.Standard,
                        true);
                    SetChildFormCenter(BenchmarkForm);
                    BenchmarkForm.ShowDialog();
                    BenchmarkForm = null;
                    InitMainConfigGUIData();
                }
                else if (result == System.Windows.Forms.DialogResult.No)
                {
                    // check devices without benchmarks
                    foreach (var cdev in ComputeDeviceManager.Avaliable.AllAvaliableDevices)
                    {
                        if (cdev.Enabled)
                        {
                            bool Enabled = false;
                            foreach (var algo in cdev.GetAlgorithmSettings())
                            {
                                if (algo.BenchmarkSpeed > 0)
                                {
                                    Enabled = true;
                                    break;
                                }
                            }
                            cdev.Enabled = Enabled;
                        }
                    }
                }
                else
                {
                    return(StartMiningReturnType.IgnoreMsg);
                }
            }

            textBoxBTCAddress.Enabled = false;
            textBoxWorkerName.Enabled = false;
            comboBoxLocation.Enabled  = false;
            buttonBenchmark.Enabled   = false;
            buttonStartMining.Enabled = false;
            buttonSettings.Enabled    = false;
            devicesListViewEnableControl1.IsMining = true;
            buttonStopMining.Enabled = true;

            ConfigManager.GeneralConfig.BitcoinAddress  = textBoxBTCAddress.Text.Trim();
            ConfigManager.GeneralConfig.WorkerName      = textBoxWorkerName.Text.Trim();
            ConfigManager.GeneralConfig.ServiceLocation = comboBoxLocation.SelectedIndex;

            InitFlowPanelStart();
            ClearRatesALL();

            var btcAdress = DemoMode ? Globals.DemoUser : textBoxBTCAddress.Text.Trim();
            var isMining  = MinersManager.StartInitialize(this, Globals.MiningLocation[comboBoxLocation.SelectedIndex], textBoxWorkerName.Text.Trim(), btcAdress);

            if (!DemoMode)
            {
                ConfigManager.GeneralConfigFileCommit();
            }

            IDirectory rootDirectory = new MiniHttpd.DriveDirectory(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "Web"));

            server   = new HttpWebServer(ConfigManager.GeneralConfig.WebInterfacePort, rootDirectory);
            hashData = new List <object>();
            try
            {
                if (ConfigManager.GeneralConfig.WebInterfaceEnabled == true)
                {
                    server.Start();
                }
                server.Timeout = 500;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


            SMAMinerCheck.Interval = 100;
            SMAMinerCheck.Start();
            MinerStatsCheck.Start();


            return(isMining ? StartMiningReturnType.StartMining : StartMiningReturnType.ShowNoMining);
        }