public Wizard() { instance = this; InitializeComponent(); Utilities.ThemeManager.ApplyThemeTo(this); config.Clear(); wiz_main = new MainSwitcher(this.panel1); AccelCalib = new _5AccelCalib(); finish = new Finish(); wiz_main.AddScreen(new MainSwitcher.Screen("Intro", new _1Intro(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Connect", new _3ConnectAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("AccelCalib", AccelCalib, true)); // сделано чтобы иметь доступ к методам wiz_main.AddScreen(new MainSwitcher.Screen("CompassCalib", new _6CompassCalib(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("OptionalAP", new _8OptionalItemsAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("StabilCheckJoystic", new DS_Check(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("StabilCheckAutomatic", new DS_Check_Automatic(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Finish", finish, true)); wiz_main.ShowScreen("Intro"); history.Add(wiz_main.current.Name); progressStep1.Maximum = wiz_main.screens.Count; progressStep1.Step = 0; }
public Wizard() { instance = this; InitializeComponent(); Utilities.ThemeManager.ApplyThemeTo(this); config.Clear(); wiz_main = new MainSwitcher(this.panel1); wiz_main.AddScreen(new MainSwitcher.Screen("Intro", new _1Intro(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("FrameFW", new _2FrameFW(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Connect", new _3ConnectAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("FrameType", new _4FrameType(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("AccelCalib", new _5AccelCalib(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("CompassCalib", new _6CompassCalib(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("BatteryMonitor", new _7BatteryMonitor(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("OptionalAC", new _8OptionalItemsAC(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("OptionalAP", new _8OptionalItemsAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Radio Calib", new _9RadioCalibration(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Flight Modes",new _10FlightModes(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Verify", new _11Verify(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Failsafe", new _12FailSafe(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("GeoFence", new _13GeoFence(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("DontForget", new _98DontForget(), true)); if (MainV2.comPort.BaseStream.IsOpen) { if (MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.FIXED_WING) { wiz_main.ShowScreen("AccelCalib"); } else if (MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.HELICOPTER || MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.HEXAROTOR || MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.OCTOROTOR || MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.QUADROTOR || MainV2.comPort.MAV.aptype == MAVLink.MAV_TYPE.TRICOPTER) { wiz_main.ShowScreen("FrameType"); } else { wiz_main.ShowScreen("Intro"); } } else { wiz_main.ShowScreen("Intro"); } history.Add(wiz_main.current.Name); progressStep1.Maximum = wiz_main.screens.Count + 1; progressStep1.Step = 1; }
public Wizard() { instance = this; InitializeComponent(); Utilities.ThemeManager.ApplyThemeTo(this); config.Clear(); wiz_main = new MainSwitcher(this.panel1); wiz_main.AddScreen(new MainSwitcher.Screen("Intro", new _1Intro(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("FrameFW", new _2FrameFW(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Connect", new _3ConnectAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("FrameType", new _4FrameType(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("AccelCalib", new _5AccelCalib(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("CompassCalib", new _6CompassCalib(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("BatteryMonitor", new _7BatteryMonitor(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("OptionalAC", new _8OptionalItemsAC(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("OptionalAP", new _8OptionalItemsAP(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Radio Calib", new _9RadioCalibration(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Flight Modes",new _10FlightModes(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Verify", new _11Verify(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("Failsafe", new _12FailSafe(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("GeoFence", new _13GeoFence(), true)); wiz_main.AddScreen(new MainSwitcher.Screen("DontForget", new _98DontForget(), true)); wiz_main.ShowScreen("Intro"); history.Add(wiz_main.current.Name); progressStep1.Maximum = wiz_main.screens.Count + 1; progressStep1.Step = 1; }
/// <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); }
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(); } }
/// <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); }
public static void Main(string[] args) { Program.args = args; Console.WriteLine("If your error is about Microsoft.DirectX.DirectInput, please install the latest directx redist from here http://www.microsoft.com/en-us/download/details.aspx?id=35 \n\n"); Console.WriteLine("Debug under mono MONO_LOG_LEVEL=debug mono MissionPlanner.exe"); Thread = Thread.CurrentThread; System.Windows.Forms.Application.EnableVisualStyles(); XmlConfigurator.Configure(); log.Info("******************* Logging Configured *******************"); System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false); ServicePointManager.DefaultConnectionLimit = 10; System.Windows.Forms.Application.ThreadException += Application_ThreadException; AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); // fix ssl on mono ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; }); if (args.Length > 0 && args[0] == "/update") { Utilities.Update.DoUpdate(); } // setup theme provider CustomMessageBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; MissionPlanner.Controls.InputBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; // setup settings provider MissionPlanner.Comms.CommsBase.Settings += CommsBase_Settings; // set the cache provider to my custom version GMap.NET.GMaps.Instance.PrimaryCache = new Maps.MyImageCache(); // add my custom map providers GMap.NET.MapProviders.GMapProviders.List.Add(Maps.WMSProvider.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Custom.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Earthbuilder.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Statkart_Topo2.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapBox.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapboxNoFly.Instance); // add proxy settings GMap.NET.MapProviders.GMapProvider.WebProxy = WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = CredentialCache.DefaultCredentials; WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy(); WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials; string name = "Mission Planner"; if (File.Exists(Application.StartupPath + Path.DirectorySeparatorChar + "logo.txt")) name = File.ReadAllText(Application.StartupPath + Path.DirectorySeparatorChar + "logo.txt", Encoding.UTF8); if (File.Exists(Application.StartupPath + Path.DirectorySeparatorChar + "logo.png")) Logo = new Bitmap(Application.StartupPath + Path.DirectorySeparatorChar + "logo.png"); if (name == "VVVVZ") { vvvvz = true; // set pw MainV2.config["password"] = "******"; MainV2.config["password_protect"] = "True"; // prevent wizard MainV2.config["newuser"] = "******"; // invalidate update url System.Configuration.ConfigurationManager.AppSettings["UpdateLocationVersion"] = ""; } CleanupFiles(); //fontgen.dowork(); //adsb.server = "64.93.124.152"; //adsb.serverport = 31001; //adsb.serverport = 30003; //Utilities.Airports.ReadUNLOCODE(@"C:\Users\hog\Desktop\2013-2 UNLOCODE CodeListPart1.csv"); //Utilities.Airports.ReadUNLOCODE(@"C:\Users\hog\Desktop\2013-2 UNLOCODE CodeListPart2.csv"); //Utilities.Airports.ReadUNLOCODE(@"C:\Users\hog\Desktop\2013-2 UNLOCODE CodeListPart3.csv"); //Utilities.Airports.ReadPartow(@"C:\Users\hog\Desktop\GlobalAirportDatabase.txt"); /* Arduino.ArduinoSTKv2 comport = new Arduino.ArduinoSTKv2(); comport.PortName = "com8"; comport.BaudRate = 115200; comport.Open(); Arduino.Chip.Populate(); if (comport.connectAP()) { Arduino.Chip chip = comport.getChipType(); Console.WriteLine(chip); } Console.ReadLine(); return; */ /* Comms.SerialPort sp = new Comms.SerialPort(); sp.PortName = "com8"; sp.BaudRate = 115200; CurrentState cs = new CurrentState(); MAVLink mav = new MAVLink(); mav.BaseStream = sp; mav.Open(); HIL.XPlane xp = new HIL.XPlane(); xp.SetupSockets(49005, 49000, "127.0.0.1"); HIL.Hil.sitl_fdm data = new HIL.Hil.sitl_fdm(); while (true) { while (mav.BaseStream.BytesToRead > 0) mav.readPacket(); // update all stats cs.UpdateCurrentSettings(null); xp.GetFromSim(ref data); xp.GetFromAP(); // no function xp.SendToAP(data); xp.SendToSim(); MAVLink.mavlink_rc_channels_override_t rc = new MAVLink.mavlink_rc_channels_override_t(); rc.chan3_raw = 1500; mav.sendPacket(rc); } */ // return; // OSDVideo vid = new OSDVideo(); // vid.ShowDialog(); // return; // if (Debugger.IsAttached) // ThemeManager.doxamlgen(); if (File.Exists("simple.txt")) { Application.Run(new GCSViews.Simple()); return; } Splash = new MissionPlanner.Splash(); string strVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Splash.Text = name+" " + Application.ProductVersion + " build " + strVersion; Splash.Show(); Application.DoEvents(); try { //System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.RealTime; Thread.CurrentThread.Name = "Base Thread"; MainV2 misplanner = new MainV2(); MissionPlanner.Wizard.Wizard a = new MissionPlanner.Wizard.Wizard(); Application.Run(misplanner); } catch (Exception ex) { log.Fatal("Fatal app exception", ex); Console.WriteLine(ex.ToString()); Console.WriteLine("\nPress any key to exit!"); Console.ReadLine(); } }
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(); } }