/// <summary> /// keyboard shortcuts override /// </summary> /// <param name="msg"></param> /// <param name="keyData"></param> /// <returns></returns> protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F12) { MenuConnect_Click(null, null); return true; } if (keyData == Keys.F2) { MenuFlightData_Click(null, null); return true; } if (keyData == Keys.F3) { MenuFlightPlanner_Click(null, null); return true; } if (keyData == Keys.F4) { MenuTuning_Click(null, null); return true; } if (keyData == Keys.F5) { comPort.getParamList(); MyView.ShowScreen(MyView.current.Name); return true; } if (keyData == (Keys.Control | Keys.F)) // temp { Form frm = new temp(); ThemeManager.ApplyThemeTo(frm); frm.Show(); return true; } /*if (keyData == (Keys.Control | Keys.S)) // screenshot { ScreenShot(); return true; }*/ if (keyData == (Keys.Control | Keys.G)) // nmea out { Form frm = new SerialOutputNMEA(); ThemeManager.ApplyThemeTo(frm); frm.Show(); return true; } if (keyData == (Keys.Control | Keys.L)) // limits { Form temp = new Form(); Control frm = new GCSViews.ConfigurationView.ConfigAP_Limits(); temp.Controls.Add(frm); temp.Size = frm.Size; frm.Dock = DockStyle.Fill; ThemeManager.ApplyThemeTo(temp); temp.Show(); return true; } if (keyData == (Keys.Control | Keys.W)) // test ac config { Wizard.Wizard cfg = new Wizard.Wizard(); cfg.ShowDialog(this); return true; } if (keyData == (Keys.Control | Keys.Z)) // test ac config { MissionPlanner.GenOTP otp = new MissionPlanner.GenOTP(); otp.ShowDialog(this); return true; } if (keyData == (Keys.Control | Keys.T)) // for override connect { try { MainV2.comPort.Open(false); } catch (Exception ex) { CustomMessageBox.Show(ex.ToString()); } return true; } if (keyData == (Keys.Control | Keys.Y)) // for ryan beall { // write try { MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_STORAGE, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); } catch { CustomMessageBox.Show("Invalid command"); return true; } //read ///////MainV2.comPort.doCommand(MAVLink09.MAV_CMD.PREFLIGHT_STORAGE, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); CustomMessageBox.Show("Done MAV_ACTION_STORAGE_WRITE"); return true; } if (keyData == (Keys.Control | Keys.J)) { /* var test = MainV2.comPort.GetLogList(); foreach (var item in test) { var ms = comPort.GetLog(item.id); using (BinaryWriter bw = new BinaryWriter(File.OpenWrite("test" + item.id + ".bin"))) { bw.Write(ms.ToArray()); } var temp1 = Log.BinaryLog.ReadLog("test" + item.id + ".bin"); File.WriteAllLines("test" + item.id + ".log", temp1); }*/ return true; } return base.ProcessCmdKey(ref msg, keyData); }
/// <summary> /// keyboard shortcuts override /// </summary> /// <param name="msg"></param> /// <param name="keyData"></param> /// <returns></returns> protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F12) { MenuConnect_Click(null, null); return true; } if (keyData == Keys.F2) { MenuFlightData_Click(null,null); return true; } if (keyData == Keys.F3) { MenuFlightPlanner_Click(null, null); return true; } if (keyData == Keys.F4) { MenuTuning_Click(null, null); return true; } if (keyData == Keys.F5) { comPort.getParamList(); MyView.ShowScreen(MyView.current.Name); return true; } if (keyData == (Keys.Control | Keys.F)) // temp { Form frm = new temp(); ThemeManager.ApplyThemeTo(frm); frm.Show(); return true; } /*if (keyData == (Keys.Control | Keys.S)) // screenshot { ScreenShot(); return true; }*/ if (keyData == (Keys.Control | Keys.G)) // nmea out { Form frm = new SerialOutputNMEA(); ThemeManager.ApplyThemeTo(frm); frm.Show(); return true; } if (keyData == (Keys.Control | Keys.L)) // limits { Form temp = new Form(); Control frm = new GCSViews.ConfigurationView.ConfigAP_Limits(); temp.Controls.Add(frm); temp.Size = frm.Size; frm.Dock = DockStyle.Fill; ThemeManager.ApplyThemeTo(temp); temp.Show(); return true; } if (keyData == (Keys.Control | Keys.W)) // test ac config { Wizard.Wizard cfg = new Wizard.Wizard(); cfg.ShowDialog(this); return true; } if (keyData == (Keys.Control | Keys.Z)) // test ac config { MissionPlanner.GenOTP otp = new MissionPlanner.GenOTP(); otp.ShowDialog(this); return true; } if (keyData == (Keys.Control | Keys.T)) // for override connect { try { MainV2.comPort.Open(false); } catch (Exception ex) { CustomMessageBox.Show(ex.ToString()); } return true; } if (keyData == (Keys.Control | Keys.Y)) // for ryan beall { // write try { MainV2.comPort.doCommand(MAVLink.MAV_CMD.PREFLIGHT_STORAGE, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); } catch { CustomMessageBox.Show("Invalid command"); return true; } //read ///////MainV2.comPort.doCommand(MAVLink09.MAV_CMD.PREFLIGHT_STORAGE, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); CustomMessageBox.Show("Done MAV_ACTION_STORAGE_WRITE"); return true; } if (keyData == (Keys.Control | Keys.J)) // for jani { string data = "!!"; if (System.Windows.Forms.DialogResult.OK == InputBox.Show("inject", "enter data to be written", ref data)) { MainV2.comPort.Write(data + "\r"); } return true; } return base.ProcessCmdKey(ref msg, keyData); }
protected override void OnLoad(EventArgs e) { // check if its defined, and force to show it if not known about if (Settings.Instance["menu_autohide"] == null) { Settings.Instance["menu_autohide"] = "false"; } try { AutoHideMenu(Settings.Instance.GetBoolean("menu_autohide")); } catch { } MyView.AddScreen(new MainSwitcher.Screen("FlightData", FlightData, true)); MyView.AddScreen(new MainSwitcher.Screen("FlightPlanner", FlightPlanner, true)); MyView.AddScreen(new MainSwitcher.Screen("HWConfig", typeof(GCSViews.InitialSetup), false)); MyView.AddScreen(new MainSwitcher.Screen("SWConfig", typeof(GCSViews.SoftwareConfig), false)); MyView.AddScreen(new MainSwitcher.Screen("Simulation", Simulation, true)); MyView.AddScreen(new MainSwitcher.Screen("Terminal", typeof(GCSViews.Terminal), false)); MyView.AddScreen(new MainSwitcher.Screen("Help", typeof(GCSViews.Help), false)); try { if (Control.ModifierKeys == Keys.Shift) { } else { log.Info("Load Pluggins"); Plugin.PluginLoader.LoadAll(); log.Info("Load Pluggins Done"); } } catch (Exception ex) { log.Error(ex); } if (Program.Logo != null && Program.name == "VVVVZ") { this.PerformLayout(); MenuFlightPlanner_Click(this, e); MainMenu_ItemClicked(this, new ToolStripItemClickedEventArgs(MenuFlightPlanner)); } else { this.PerformLayout(); MenuFlightData_Click(this, e); MainMenu_ItemClicked(this, new ToolStripItemClickedEventArgs(MenuFlightData)); } // for long running tasks using own threads. // for short use threadpool this.SuspendLayout(); // setup http server try { httpthread = new Thread(new httpserver().listernforclients) { Name = "motion jpg stream-network kml", IsBackground = true }; httpthread.Start(); } catch (Exception ex) { log.Error("Error starting TCP listener thread: ", ex); CustomMessageBox.Show(ex.ToString()); } // setup joystick packet sender joystickthread = new Thread(new ThreadStart(joysticksend)) { IsBackground = true, Priority = ThreadPriority.AboveNormal, Name = "Main joystick sender" }; joystickthread.Start(); // setup main serial reader serialreaderthread = new Thread(SerialReader) { IsBackground = true, Name = "Main Serial reader", Priority = ThreadPriority.AboveNormal }; serialreaderthread.Start(); // setup main plugin thread pluginthread = new Thread(PluginThread) { IsBackground = true, Name = "plugin runner thread", Priority = ThreadPriority.BelowNormal }; pluginthread.Start(); ThreadPool.QueueUserWorkItem(BGLoadAirports); ThreadPool.QueueUserWorkItem(BGCreateMaps); //ThreadPool.QueueUserWorkItem(BGGetAlmanac); ThreadPool.QueueUserWorkItem(BGgetTFR); ThreadPool.QueueUserWorkItem(BGNoFly); ThreadPool.QueueUserWorkItem(BGGetKIndex); // update firmware version list - only once per day ThreadPool.QueueUserWorkItem(BGFirmwareCheck); try { new Utilities.AltitudeAngel.AltitudeAngel(); // setup as a prompt once dialog if (!Settings.Instance.GetBoolean("AACheck")) { if (CustomMessageBox.Show( "Do you wish to enable Altitude Angel airspace management data?\nFor more information visit [link;http://www.altitudeangel.com;www.altitudeangel.com]", "Altitude Angel - Enable", MessageBoxButtons.YesNo) == DialogResult.Yes) { Utilities.AltitudeAngel.AltitudeAngel.service.SignInAsync(); } Settings.Instance["AACheck"] = true.ToString(); } } catch (TypeInitializationException) // windows xp lacking patch level { CustomMessageBox.Show("Please update your .net version. kb2468871"); } catch (Exception ex) { Tracking.AddException(ex); } this.ResumeLayout(); Program.Splash.Close(); MissionPlanner.Utilities.Tracking.AddTiming("AppLoad", "Load Time", (DateTime.Now - Program.starttime).TotalMilliseconds, ""); try { // single update check per day - in a seperate thread if (Settings.Instance["update_check"] != DateTime.Now.ToShortDateString()) { System.Threading.ThreadPool.QueueUserWorkItem(checkupdate); Settings.Instance["update_check"] = DateTime.Now.ToShortDateString(); } else if (Settings.Instance.GetBoolean("beta_updates") == true) { MissionPlanner.Utilities.Update.dobeta = true; System.Threading.ThreadPool.QueueUserWorkItem(checkupdate); } } catch (Exception ex) { log.Error("Update check failed", ex); } // play a tlog that was passed to the program/ load a bin log passed if (Program.args.Length > 0) { if (File.Exists(Program.args[0]) && Program.args[0].ToLower().EndsWith(".tlog")) { FlightData.LoadLogFile(Program.args[0]); FlightData.BUT_playlog_Click(null, null); } else if (File.Exists(Program.args[0]) && Program.args[0].ToLower().EndsWith(".bin")) { LogBrowse logbrowse = new LogBrowse(); ThemeManager.ApplyThemeTo(logbrowse); logbrowse.logfilename = Program.args[0]; logbrowse.Show(this); logbrowse.TopMost = true; } } // show wizard on first use if (Settings.Instance["newuser"] == null) { if (CustomMessageBox.Show("This is your first run, Do you wish to use the setup wizard?\nRecomended for new users.", "Wizard", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { Wizard.Wizard wiz = new Wizard.Wizard(); wiz.ShowDialog(this); } CustomMessageBox.Show("To use the wizard please goto the initial setup screen, and click the wizard icon.", "Wizard"); Settings.Instance["newuser"] = DateTime.Now.ToShortDateString(); } }
private void MainV2_Load(object sender, EventArgs e) { // check if its defined, and force to show it if not known about if (config["menu_autohide"] == null) { config["menu_autohide"] = "false"; } try { AutoHideMenu(bool.Parse(config["menu_autohide"].ToString())); } catch { } MyView.AddScreen(new MainSwitcher.Screen("FlightData", FlightData, true)); MyView.AddScreen(new MainSwitcher.Screen("FlightPlanner", FlightPlanner, true)); MyView.AddScreen(new MainSwitcher.Screen("HWConfig", new GCSViews.InitialSetup(), false)); MyView.AddScreen(new MainSwitcher.Screen("SWConfig", new GCSViews.SoftwareConfig(), false)); MyView.AddScreen(new MainSwitcher.Screen("Simulation", Simulation, true)); MyView.AddScreen(new MainSwitcher.Screen("Terminal", new GCSViews.Terminal(), false)); MyView.AddScreen(new MainSwitcher.Screen("Help", new GCSViews.Help(), false)); // init button depressed - ensures correct action //int fixme; this.SuspendLayout(); MenuFlightData_Click(sender, e); MainMenu_ItemClicked(sender, new ToolStripItemClickedEventArgs(MenuFlightData)); this.ResumeLayout(); // for long running tasks using own threads. // for short use threadpool // setup http server try { httpthread = new Thread(new httpserver().listernforclients) { Name = "motion jpg stream-network kml", IsBackground = true }; httpthread.Start(); } catch (Exception ex) { log.Error("Error starting TCP listener thread: ", ex); CustomMessageBox.Show(ex.ToString()); } /// setup joystick packet sender joystickthread = new Thread(new ThreadStart(joysticksend)) { IsBackground = true, Priority = ThreadPriority.AboveNormal, Name = "Main joystick sender" }; joystickthread.Start(); // setup main serial reader serialreaderthread = new Thread(SerialReader) { IsBackground = true, Name = "Main Serial reader", Priority = ThreadPriority.AboveNormal }; serialreaderthread.Start(); // setup main plugin thread pluginthread = new Thread(PluginThread) { IsBackground = true, Name = "plugin runner thread", Priority = ThreadPriority.BelowNormal }; pluginthread.Start(); try { // if (!System.Diagnostics.Debugger.IsAttached) { // single update check per day - in a seperate thread if (getConfig("update_check") != DateTime.Now.ToShortDateString()) { System.Threading.ThreadPool.QueueUserWorkItem(checkupdate); config["update_check"] = DateTime.Now.ToShortDateString(); } else if (getConfig("beta_updates") == "True") { MissionPlanner.Utilities.Update.dobeta = true; System.Threading.ThreadPool.QueueUserWorkItem(checkupdate); } } } catch (Exception ex) { log.Error("Update check failed", ex); } try { Plugin.PluginLoader.LoadAll(); } catch (Exception ex) { log.Error(ex); } Program.Splash.Close(); MissionPlanner.Utilities.Tracking.AddTiming("AppLoad", "Load Time", (DateTime.Now - Program.starttime).TotalMilliseconds, ""); // play a tlog that was passed to the program if (Program.args.Length > 0) { if (File.Exists(Program.args[0]) && Program.args[0].ToLower().Contains(".tlog")) { FlightData.LoadLogFile(Program.args[0]); FlightData.BUT_playlog_Click(null,null); } } try { System.Threading.ThreadPool.QueueUserWorkItem((WaitCallback)delegate { try { MissionPlanner.Log.LogSort.SortLogs(Directory.GetFiles(MainV2.LogDir, "*.tlog")); } catch { } } ); } catch { } if (getConfig("newuser") == "") { if (CustomMessageBox.Show("This is your first run, Do you wish to use the setup wizard?\nRecomended for new users.", "Wizard", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { Wizard.Wizard wiz = new Wizard.Wizard(); wiz.ShowDialog(this); CustomMessageBox.Show("To use the wizard again please goto the help screen, and click the wizard icon.", "Wizard"); } else { CustomMessageBox.Show("To use the wizard please goto the help screen, and click the wizard icon.", "Wizard"); } config["newuser"] = DateTime.Now.ToShortDateString(); } }