/// <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; }
/// <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); }
//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()); } }
// 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()); } }
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); }