private void GridUI_Load(object sender, EventArgs e) { xmlcamera(false, Settings.GetRunningDirectory() + "camerasBuiltin.xml"); xmlcamera(false, Settings.GetUserDataDirectory() + "cameras.xml"); xmlaircraft(); loadsettings(); domainUpDown1_ValueChanged(null, null); }
static void CleanupFiles() { try { //cleanup bad file string file = Settings.GetRunningDirectory() + @"LogAnalyzer\tests\TestUnderpowered.py"; if (File.Exists(file)) { File.Delete(file); } } catch { } try { var file = "NumpyDotNet.dll"; if (File.Exists(file)) { File.Delete(file); } } catch { } try { foreach (string newupdater in Directory.GetFiles(Settings.GetRunningDirectory(), "Updater.exe*.new")) { File.Copy(newupdater, newupdater.Remove(newupdater.Length - 4), true); File.Delete(newupdater); } } catch (Exception ex) { log.Error("Exception during update", ex); } try { foreach (string newupdater in Directory.GetFiles(Settings.GetRunningDirectory(), "tlogThumbnailHandler.dll.new")) { File.Copy(newupdater, newupdater.Remove(newupdater.Length - 4), true); File.Delete(newupdater); } } catch (Exception ex) { log.Error("Exception during update", ex); } }
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(); return; } name = "Mission Planner"; try { if (File.Exists(Settings.GetRunningDirectory() + "logo.txt")) { name = File.ReadAllLines(Settings.GetRunningDirectory() + "logo.txt", Encoding.UTF8)[0]; } } catch { } if (File.Exists(Settings.GetRunningDirectory() + "logo.png")) { Logo = new Bitmap(Settings.GetRunningDirectory() + "logo.png"); } if (File.Exists(Settings.GetRunningDirectory() + "icon.png")) { // 128*128 IconFile = new Bitmap(Settings.GetRunningDirectory() + "icon.png"); } else { IconFile = MissionPlanner.Properties.Resources.mpdesktop.ToBitmap(); } if (File.Exists(Settings.GetRunningDirectory() + "splashbg.png")) // 600*375 { SplashBG = new Bitmap(Settings.GetRunningDirectory() + "splashbg.png"); } Splash = new MissionPlanner.Splash(); if (SplashBG != null) { Splash.BackgroundImage = SplashBG; Splash.pictureBox1.Visible = false; } if (IconFile != null) { Splash.Icon = Icon.FromHandle(((Bitmap)IconFile).GetHicon()); } string strVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Splash.Text = name + " " + Application.ProductVersion + " build " + strVersion; Splash.Show(); Application.DoEvents(); Application.DoEvents(); // setup theme provider CustomMessageBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; MissionPlanner.Controls.InputBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.BackstageView.BackstageViewPage.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; if (name == "VVVVZ") { // set pw Settings.Instance["password"] = "******"; Settings.Instance["password_protect"] = "True"; // prevent wizard Settings.Instance["newuser"] = "******"; // invalidate update url System.Configuration.ConfigurationManager.AppSettings["UpdateLocationVersion"] = ""; } CleanupFiles(); log.InfoFormat("64bit os {0}, 64bit process {1}", System.Environment.Is64BitOperatingSystem, System.Environment.Is64BitProcess); try { //System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.RealTime; Thread.CurrentThread.Name = "Base Thread"; Application.Run(new MainV2()); } catch (Exception ex) { log.Fatal("Fatal app exception", ex); Console.WriteLine(ex.ToString()); Console.WriteLine("\nPress any key to exit!"); Console.ReadLine(); } try { // kill sim background process if its still running if (Controls.SITL.simulator != null) { Controls.SITL.simulator.Kill(); } } catch { } }
public static void Start(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"); Console.WriteLine("To fix any filename case issues under mono use export MONO_IOMAP=drive:case"); Console.WriteLine("Data Dir " + Settings.GetDataDirectory()); Console.WriteLine("Log Dir " + Settings.GetDefaultLogDir()); Console.WriteLine("Running Dir " + Settings.GetRunningDirectory()); Console.WriteLine("User Data Dir " + Settings.GetUserDataDirectory()); var t = Type.GetType("Mono.Runtime"); MONO = (t != null); Directory.SetCurrentDirectory(Settings.GetRunningDirectory()); var listener = new TextWriterTraceListener(Settings.GetDataDirectory() + Path.DirectorySeparatorChar + "trace.log", "defaulttrace"); if (args.Any(a => a.Contains("trace"))) { Trace.Listeners.Add(listener); } Thread = Thread.CurrentThread; System.Windows.Forms.Application.EnableVisualStyles(); XmlConfigurator.Configure(LogManager.GetRepository(Assembly.GetCallingAssembly())); log.Info("******************* Logging Configured *******************"); ServicePointManager.DefaultConnectionLimit = 10; System.Windows.Forms.Application.ThreadException += Application_ThreadException; if (args.Length > 0 && args[0] == "/update") { Utilities.Update.DoUpdate(); return; } name = "Mission Planner"; try { if (File.Exists(Settings.GetRunningDirectory() + "logo.txt")) { name = File.ReadAllLines(Settings.GetRunningDirectory() + "logo.txt", Encoding.UTF8)[0]; } } catch { } if (File.Exists(Settings.GetRunningDirectory() + "logo.png")) { Logo = new Bitmap(Settings.GetRunningDirectory() + "logo.png"); } if (File.Exists(Settings.GetRunningDirectory() + "logo2.png")) { Logo2 = new Bitmap(Settings.GetRunningDirectory() + "logo2.png"); } if (File.Exists(Settings.GetRunningDirectory() + "icon.png")) { // 128*128 IconFile = new Bitmap(Settings.GetRunningDirectory() + "icon.png"); } else { IconFile = MissionPlanner.Properties.Resources.mpdesktop.ToBitmap(); } if (File.Exists(Settings.GetRunningDirectory() + "splashbg.png")) // 600*375 { SplashBG = new Bitmap(Settings.GetRunningDirectory() + "splashbg.png"); } try { var file = NativeLibrary.GetLibraryPathname("libSkiaSharp"); var ptr = NativeLibrary.LoadLibrary(file); if (ptr != IntPtr.Zero) { log.Info("SkiaLoaded"); } } catch (Exception ex) { log.Error(ex); } Splash = new MissionPlanner.Splash(); if (SplashBG != null) { Splash.BackgroundImage = SplashBG; Splash.pictureBox1.Visible = false; } if (IconFile != null) { Splash.Icon = Icon.FromHandle(((Bitmap)IconFile).GetHicon()); } string strVersion = File.Exists("version.txt") ? File.ReadAllText("version.txt") : System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Splash.Text = name + " " + Application.ProductVersion + " build " + strVersion; Splash.Show(); if (Debugger.IsAttached) { Splash.TopMost = false; } Application.DoEvents(); Application.DoEvents(); CustomMessageBox.ShowEvent += (text, caption, buttons, icon, yestext, notext) => { return((CustomMessageBox.DialogResult)(int) MsgBox.CustomMessageBox.Show(text, caption, (MessageBoxButtons)(int)buttons, (MessageBoxIcon)(int)icon, yestext, notext)); }; // setup theme provider MsgBox.CustomMessageBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; MissionPlanner.Controls.InputBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.BackstageView.BackstageViewPage.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.Tracking += MissionPlanner.Utilities.Tracking.AddPage; Controls.BackstageView.BackstageView.Tracking += MissionPlanner.Utilities.Tracking.AddPage; // setup settings provider MissionPlanner.Comms.CommsBase.Settings += CommsBase_Settings; MissionPlanner.Comms.CommsBase.InputBoxShow += CommsBaseOnInputBoxShow; MissionPlanner.Comms.CommsBase.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; MissionPlanner.Comms.SerialPort.GetDeviceName += SerialPort_GetDeviceName; MissionPlanner.Utilities.Extensions.MessageLoop = new Action(() => Application.DoEvents()); // 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.Eniro_Topo.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapBox.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapboxNoFly.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapboxUser.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_Lake.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_1974.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_1979.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_1984.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_1988.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_Relief.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_Slopezone.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.Japan_Sea.Instance); GoogleMapProvider.APIKey = "AIzaSyA5nFp39fEHruCezXnG3r8rGyZtuAkmCug"; if (Settings.Instance["GoogleApiKey"] != null) { GoogleMapProvider.APIKey = Settings.Instance["GoogleApiKey"]; } Tracking.productName = Application.ProductName; Tracking.productVersion = Application.ProductVersion; Tracking.currentCultureName = Application.CurrentCulture.Name; Tracking.primaryScreenBitsPerPixel = Screen.PrimaryScreen.BitsPerPixel; Tracking.boundsWidth = Screen.PrimaryScreen.Bounds.Width; Tracking.boundsHeight = Screen.PrimaryScreen.Bounds.Height; Settings.Instance.UserAgent = Application.ProductName + " " + Application.ProductVersion + " (" + Environment.OSVersion.VersionString + ")"; // optionally add gdal support if (Directory.Exists(Application.StartupPath + Path.DirectorySeparatorChar + "gdal")) { GMap.NET.MapProviders.GMapProviders.List.Add(GDAL.GDALProvider.Instance); } // add proxy settings GMap.NET.MapProviders.GMapProvider.WebProxy = WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = CredentialCache.DefaultCredentials; // generic status report screen MAVLinkInterface.CreateIProgressReporterDialogue += title => new ProgressReporterDialogue() { StartPosition = FormStartPosition.CenterScreen, Text = title }; WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy(); WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials; if (name == "VVVVZ") { // set pw Settings.Instance["password"] = "******"; Settings.Instance["password_protect"] = "True"; // prevent wizard Settings.Instance["newuser"] = "******"; // invalidate update url System.Configuration.ConfigurationManager.AppSettings["UpdateLocationVersion"] = ""; } CleanupFiles(); log.InfoFormat("64bit os {0}, 64bit process {1}, OS Arch {2}", System.Environment.Is64BitOperatingSystem, System.Environment.Is64BitProcess, RuntimeInformation.OSArchitecture); log.InfoFormat("Runtime Version {0}", System.Reflection.Assembly.GetExecutingAssembly().ImageRuntimeVersion); try { log.Info(Process.GetCurrentProcess().Modules.ToJSON()); } catch { } Type type = Type.GetType("Mono.Runtime"); if (type != null) { MethodInfo displayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); if (displayName != null) { log.Info(displayName.Invoke(null, null)); //6.6.0.161 (tarball Tue Dec 10 10:36:32 UTC 2019) var match = Regex.Match(displayName.Invoke(null, null).ToString(), @"([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)"); if (match.Success) { if (int.Parse(match.Groups[1].Value) < 6) { CustomMessageBox.Show( "Please upgrade your mono version to 6+ https://www.mono-project.com/download/stable/"); } } } } try { Thread.CurrentThread.Name = "Base Thread"; Application.Run(new MainV2()); } catch (Exception ex) { log.Fatal("Fatal app exception", ex); Console.WriteLine(ex.ToString()); Console.WriteLine("\nPress any key to exit!"); Console.ReadLine(); } try { // kill sim background process if its still running GCSViews.SITL.simulator.ForEach(a => { try { a.Kill(); } catch { } }); } catch { } }
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"); var t = Type.GetType("Mono.Runtime"); MONO = (t != null); 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; // 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(); return; } name = "Mission Planner"; try { if (File.Exists(Settings.GetRunningDirectory() + "logo.txt")) { name = File.ReadAllLines(Settings.GetRunningDirectory() + "logo.txt", Encoding.UTF8)[0]; } } catch { } if (File.Exists(Settings.GetRunningDirectory() + "logo.png")) { Logo = new Bitmap(Settings.GetRunningDirectory() + "logo.png"); } if (File.Exists(Settings.GetRunningDirectory() + "logo2.png")) { Logo2 = new Bitmap(Settings.GetRunningDirectory() + "logo2.png"); } if (File.Exists(Settings.GetRunningDirectory() + "icon.png")) { // 128*128 IconFile = new Bitmap(Settings.GetRunningDirectory() + "icon.png"); } else { IconFile = MissionPlanner.Properties.Resources.mpdesktop.ToBitmap(); } if (File.Exists(Settings.GetRunningDirectory() + "splashbg.png")) // 600*375 { SplashBG = new Bitmap(Settings.GetRunningDirectory() + "splashbg.png"); } Splash = new MissionPlanner.Splash(); if (SplashBG != null) { Splash.BackgroundImage = SplashBG; Splash.pictureBox1.Visible = false; } if (IconFile != null) { Splash.Icon = Icon.FromHandle(((Bitmap)IconFile).GetHicon()); } string strVersion = File.Exists("version.txt") ? File.ReadAllText("version.txt") : System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); Splash.Text = name + " " + Application.ProductVersion + " build " + strVersion; Splash.Show(); Application.DoEvents(); Application.DoEvents(); CustomMessageBox.ShowEvent += (text, caption, buttons, icon) => { return((CustomMessageBox.DialogResult)(int) MsgBox.CustomMessageBox.Show(text, caption, (MessageBoxButtons)(int)buttons, (MessageBoxIcon)(int)icon)); }; // setup theme provider MsgBox.CustomMessageBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; MissionPlanner.Controls.InputBox.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.BackstageView.BackstageViewPage.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; Controls.MainSwitcher.Tracking += MissionPlanner.Utilities.Tracking.AddPage; Controls.BackstageView.BackstageView.Tracking += MissionPlanner.Utilities.Tracking.AddPage; // setup settings provider MissionPlanner.Comms.CommsBase.Settings += CommsBase_Settings; MissionPlanner.Comms.CommsBase.InputBoxShow += CommsBaseOnInputBoxShow; MissionPlanner.Comms.CommsBase.ApplyTheme += MissionPlanner.Utilities.ThemeManager.ApplyThemeTo; // 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.Eniro_Topo.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapBox.Instance); GMap.NET.MapProviders.GMapProviders.List.Add(Maps.MapboxNoFly.Instance); // optionally add gdal support if (Directory.Exists(Application.StartupPath + Path.DirectorySeparatorChar + "gdal")) { GMap.NET.MapProviders.GMapProviders.List.Add(GDAL.GDALProvider.Instance); } // add proxy settings GMap.NET.MapProviders.GMapProvider.WebProxy = WebRequest.GetSystemWebProxy(); GMap.NET.MapProviders.GMapProvider.WebProxy.Credentials = CredentialCache.DefaultCredentials; // generic status report screen MAVLinkInterface.CreateIProgressReporterDialogue += title => new ProgressReporterDialogue() { StartPosition = FormStartPosition.CenterScreen, Text = title }; WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy(); WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials; if (name == "VVVVZ") { // set pw Settings.Instance["password"] = "******"; Settings.Instance["password_protect"] = "True"; // prevent wizard Settings.Instance["newuser"] = "******"; // invalidate update url System.Configuration.ConfigurationManager.AppSettings["UpdateLocationVersion"] = ""; } CleanupFiles(); log.InfoFormat("64bit os {0}, 64bit process {1}", System.Environment.Is64BitOperatingSystem, System.Environment.Is64BitProcess); Device.DeviceStructure test1 = new Device.DeviceStructure(73225); Device.DeviceStructure test2 = new Device.DeviceStructure(262434); Device.DeviceStructure test3 = new Device.DeviceStructure(131874); //ph2 - cube with here Device.DeviceStructure test5 = new Device.DeviceStructure(466441); Device.DeviceStructure test6 = new Device.DeviceStructure(131874); Device.DeviceStructure test7 = new Device.DeviceStructure(263178); // Device.DeviceStructure test8 = new Device.DeviceStructure(1442082); Device.DeviceStructure test9 = new Device.DeviceStructure(1114914); Device.DeviceStructure test10 = new Device.DeviceStructure(1442826); // Device.DeviceStructure test11 = new Device.DeviceStructure(2359586); Device.DeviceStructure test12 = new Device.DeviceStructure(2229282); Device.DeviceStructure test13 = new Device.DeviceStructure(2360330); MAVLink.MavlinkParse tmp = new MAVLink.MavlinkParse(); MAVLink.mavlink_heartbeat_t hb = new MAVLink.mavlink_heartbeat_t() { autopilot = 1, base_mode = 2, custom_mode = 3, mavlink_version = 2, system_status = 6, type = 7 }; var t1 = tmp.GenerateMAVLinkPacket10(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb); var t2 = tmp.GenerateMAVLinkPacket20(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb); tmp.GenerateMAVLinkPacket10(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb); tmp.GenerateMAVLinkPacket20(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb); tmp.GenerateMAVLinkPacket20(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb, true); tmp.GenerateMAVLinkPacket20(MAVLink.MAVLINK_MSG_ID.HEARTBEAT, hb, true); var msg = new MAVLink.MAVLinkMessage(t2); try { //System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.RealTime; Thread.CurrentThread.Name = "Base Thread"; Application.Run(new MainV2()); } catch (Exception ex) { log.Fatal("Fatal app exception", ex); Console.WriteLine(ex.ToString()); Console.WriteLine("\nPress any key to exit!"); Console.ReadLine(); } try { // kill sim background process if its still running if (Controls.SITL.simulator != null) { Controls.SITL.simulator.Kill(); } } catch { } }
public Script(bool redirectOutput = false, DataDisplay datadisplayer = null) { Dictionary <string, object> options = new Dictionary <string, object>(); options["Debug"] = true; if (engine != null) { engine.Runtime.Shutdown(); } engine = Python.CreateEngine(options); var paths = engine.GetSearchPaths(); paths.Add(Settings.GetRunningDirectory() + "Lib.zip"); paths.Add(Settings.GetRunningDirectory() + "lib"); paths.Add(Settings.GetRunningDirectory()); engine.SetSearchPaths(paths); scope = engine.CreateScope(); var all = System.Reflection.Assembly.GetExecutingAssembly(); var asss = AppDomain.CurrentDomain.GetAssemblies(); foreach (var ass in asss) { engine.Runtime.LoadAssembly(ass); } scope.SetVariable("Ports", MainV2.Comports); scope.SetVariable("MAV", MainV2.comPort); scope.SetVariable("cs", MainV2.comPort.MAV.cs); scope.SetVariable("Script", this); scope.SetVariable("mavutil", this); scope.SetVariable("Joystick", MainV2.joystick); //added classes for DAS dataDisplay = datadisplayer; scope.SetVariable("DAS", dataDisplay); engine.CreateScriptSourceFromString("print 'hello world from python'").Execute(scope); engine.CreateScriptSourceFromString("print cs.roll").Execute(scope); if (redirectOutput) { //Redirect output through this writer //this writer will not actually write to the memorystreams OutputWriter = new Utilities.StringRedirectWriter(); engine.Runtime.IO.SetErrorOutput(new MemoryStream(), OutputWriter); engine.Runtime.IO.SetOutput(new MemoryStream(), OutputWriter); } else { OutputWriter = null; } /* * object thisBoxed = MainV2.comPort.MAV.cs; * Type test = thisBoxed.GetType(); * * foreach (var field in test.GetProperties()) * { * // field.Name has the field's name. * object fieldValue; * try * { * fieldValue = field.GetValue(thisBoxed, null); // Get value * } * catch { continue; } * * // Get the TypeCode enumeration. Multiple types get mapped to a common typecode. * TypeCode typeCode = Type.GetTypeCode(fieldValue.GetType()); * * items.Add(field.Name); * } */ }