void addHudUserItem(ref HUD.Custom cust, CheckBox sender) { setupPropertyInfo(ref cust.Item, (sender).Name, MainV2.comPort.MAV.cs); hud1.CustomItems.Add((sender).Name, cust); hud1.Invalidate(); }
public FlightData() { InitializeComponent(); instance = this; mymap = gMapControl1; myhud = hud1; MainHcopy = MainH; // setup default tuning graph if (MainV2.config["Tuning_Graph_Selected"] != null) { string line = MainV2.config["Tuning_Graph_Selected"].ToString(); string[] lines = line.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (string option in lines) { chk_box_CheckedChanged((object)(new CheckBox() { Name = option, Checked = true }), new EventArgs()); } } else { chk_box_CheckedChanged((object)(new CheckBox() { Name = "roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "pitch", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_pitch", Checked = true }), new EventArgs()); } List<string> list = new List<string>(); //foreach (object obj in Enum.GetValues(typeof(MAVLink09.MAV_ACTION))) #if MAVLINK10 { list.Add("LOITER_UNLIM"); list.Add("RETURN_TO_LAUNCH"); list.Add("PREFLIGHT_CALIBRATION"); } #else { list.Add("RETURN"); list.Add("HALT"); list.Add("CONTINUE"); list.Add("SET_MANUAL"); list.Add("SET_AUTO"); list.Add("STORAGE_READ"); list.Add("STORAGE_WRITE"); list.Add("CALIBRATE_RC"); list.Add("NAVIGATE"); list.Add("LOITER"); list.Add("TAKEOFF"); list.Add("CALIBRATE_GYRO"); } #endif CMB_action.DataSource = list; CMB_modes.DataSource = Common.getModesList(); CMB_modes.ValueMember = "Key"; CMB_modes.DisplayMember = "Value"; CMB_setwp.SelectedIndex = 0; zg1.Visible = true; CreateChart(zg1); // config map gMapControl1.MapType = MapType.GoogleSatellite; gMapControl1.MinZoom = 1; gMapControl1.CacheLocation = Path.GetDirectoryName(Application.ExecutablePath) + "/gmapcache/"; gMapControl1.OnMapZoomChanged += new MapZoomChanged(gMapControl1_OnMapZoomChanged); gMapControl1.Zoom = 3; gMapControl1.RoutesEnabled = true; gMapControl1.PolygonsEnabled = true; kmlpolygons = new GMapOverlay(gMapControl1, "kmlpolygons"); gMapControl1.Overlays.Add(kmlpolygons); geofence = new GMapOverlay(gMapControl1, "geofence"); gMapControl1.Overlays.Add(geofence); polygons = new GMapOverlay(gMapControl1, "polygons"); gMapControl1.Overlays.Add(polygons); routes = new GMapOverlay(gMapControl1, "routes"); gMapControl1.Overlays.Add(routes); try { if (MainV2.getConfig("GspeedMAX") != "") { Gspeed.MaxValue = float.Parse(MainV2.getConfig("GspeedMAX")); } } catch { } }
void drawstring(HUD e, string text, Font font, float fontsize, SolidBrush brush, float x, float y) { if (!opengl) { drawstring(graphicsObjectGDIP, text, font, fontsize, brush, x, y); return; } if (text == null || text == "") return; /* OpenTK.Graphics.Begin(); GL.PushMatrix(); GL.Translate(x, y, 0); printer.Print(text, font, c); GL.PopMatrix(); printer.End(); */ char[] chars = text.ToCharArray(); float maxy = 1; foreach (char cha in chars) { int charno = (int)cha; int charid = charno ^ (int)(fontsize * 1000) ^ brush.Color.ToArgb(); if (!charDict.ContainsKey(charid)) { charDict[charid] = new character() { bitmap = new Bitmap(128, 128, System.Drawing.Imaging.PixelFormat.Format32bppArgb) , size = (int)fontsize }; charDict[charid].bitmap.MakeTransparent(Color.Transparent); //charbitmaptexid float maxx = this.Width / 150; // for space // create bitmap using (Graphics gfx = Graphics.FromImage(charDict[charid].bitmap)) { pth.Reset(); if (text != null) pth.AddString(cha + "", font.FontFamily, 0, fontsize + 5, new Point((int)0, (int)0), StringFormat.GenericTypographic); gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; gfx.DrawPath(P, pth); //Draw the face gfx.FillPath(brush, pth); if (pth.PointCount > 0) { foreach (PointF pnt in pth.PathPoints) { if (pnt.X > maxx) maxx = pnt.X; if (pnt.Y > maxy) maxy = pnt.Y; } } } charDict[charid].width = (int)(maxx + 2); //charbitmaps[charid] = charbitmaps[charid].Clone(new RectangleF(0, 0, maxx + 2, maxy + 2), charbitmaps[charid].PixelFormat); //charbitmaps[charno * (int)fontsize].Save(charno + " " + (int)fontsize + ".png"); // create texture int textureId; GL.TexEnv(TextureEnvTarget.TextureEnv, TextureEnvParameter.TextureEnvMode, (float)TextureEnvModeCombine.Replace);//Important, or wrong color on some computers Bitmap bitmap = charDict[charid].bitmap; GL.GenTextures(1, out textureId); GL.BindTexture(TextureTarget.Texture2D, textureId); BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, data.Width, data.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); // GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)All.Nearest); //GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.Nearest); GL.Finish(); bitmap.UnlockBits(data); charDict[charid].gltextureid = textureId; } //GL.Enable(EnableCap.Blend); GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); GL.Enable(EnableCap.Texture2D); GL.BindTexture(TextureTarget.Texture2D, charDict[charid].gltextureid); float scale = 1.0f; GL.Begin(BeginMode.Quads); GL.TexCoord2(0, 0); GL.Vertex2(x, y); GL.TexCoord2(1, 0); GL.Vertex2(x + charDict[charid].bitmap.Width * scale, y); GL.TexCoord2(1, 1); GL.Vertex2(x + charDict[charid].bitmap.Width * scale, y + charDict[charid].bitmap.Height * scale); GL.TexCoord2(0, 1); GL.Vertex2(x + 0, y + charDict[charid].bitmap.Height * scale); GL.End(); //GL.Disable(EnableCap.Blend); GL.Disable(EnableCap.Texture2D); x += charDict[charid].width * scale; } }
public HUD() { if (this.DesignMode) { opengl = false; //return; } this.Name = "Hud"; eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 50L); // or whatever other quality value you want objBitmap.MakeTransparent(); //InitializeComponent(); graphicsObject = this; graphicsObjectGDIP = Graphics.FromImage(objBitmap); }
public HUD() { if (this.DesignMode) { opengl = false; //return; } this.Name = "Hud"; //InitializeComponent(); graphicsObject = this; graphicsObjectGDIP = Graphics.FromImage(objBitmap); }
public FlightData() { InitializeComponent(); instance = this; _serializer = new DockStateSerializer(dockContainer1); _serializer.SavePath = Application.StartupPath + Path.DirectorySeparatorChar + "FDscreen.xml"; dockContainer1.PreviewRenderer = new PreviewRenderer(); mymap = gMapControl1; myhud = hud1; MainHcopy = MainH; // setup default tuning graph if (MainV2.config["Tuning_Graph_Selected"] != null) { string line = MainV2.config["Tuning_Graph_Selected"].ToString(); string[] lines = line.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (string option in lines) { chk_box_CheckedChanged((object)(new CheckBox() { Name = option, Checked = true }), new EventArgs()); } } else { chk_box_CheckedChanged((object)(new CheckBox() { Name = "roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "pitch", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_pitch", Checked = true }), new EventArgs()); } for (int f = 1; f < 10; f++) { // load settings if (MainV2.config["quickView" + f] != null) { Control[] ctls = this.Controls.Find("quickView" + f, true); if (ctls.Length > 0) { // set description ((QuickView)ctls[0]).desc = MainV2.config["quickView" + f].ToString(); // set databinding for value ((QuickView)ctls[0]).DataBindings.Clear(); ((QuickView)ctls[0]).DataBindings.Add(new System.Windows.Forms.Binding("number", this.bindingSource1, MainV2.config["quickView" + f].ToString(), true)); } } } foreach (string item in MainV2.config.Keys) { if (item.StartsWith("hud1_useritem_")) { string selection = item.Replace("hud1_useritem_", ""); CheckBox chk = new CheckBox(); chk.Name = selection; chk.Checked = true; HUD.Custom cust = new HUD.Custom(); cust.Header = MainV2.config[item].ToString(); addHudUserItem(ref cust, chk); } } List<string> list = new List<string>(); { list.Add("LOITER_UNLIM"); list.Add("RETURN_TO_LAUNCH"); list.Add("PREFLIGHT_CALIBRATION"); list.Add("MISSION_START"); list.Add("PREFLIGHT_REBOOT_SHUTDOWN"); //DO_SET_SERVO //DO_REPEAT_SERVO } CMB_action.DataSource = list; CMB_modes.DataSource = Common.getModesList(); CMB_modes.ValueMember = "Key"; CMB_modes.DisplayMember = "Value"; CMB_setwp.SelectedIndex = 0; zg1.Visible = true; CreateChart(zg1); // config map gMapControl1.MapType = MapType.GoogleSatellite; gMapControl1.MinZoom = 1; gMapControl1.CacheLocation = Path.GetDirectoryName(Application.ExecutablePath) + "/gmapcache/"; gMapControl1.OnMapZoomChanged += new MapZoomChanged(gMapControl1_OnMapZoomChanged); gMapControl1.Zoom = 3; gMapControl1.RoutesEnabled = true; gMapControl1.PolygonsEnabled = true; kmlpolygons = new GMapOverlay(gMapControl1, "kmlpolygons"); gMapControl1.Overlays.Add(kmlpolygons); geofence = new GMapOverlay(gMapControl1, "geofence"); gMapControl1.Overlays.Add(geofence); polygons = new GMapOverlay(gMapControl1, "polygons"); gMapControl1.Overlays.Add(polygons); routes = new GMapOverlay(gMapControl1, "routes"); gMapControl1.Overlays.Add(routes); try { if (MainV2.getConfig("GspeedMAX") != "") { Gspeed.MaxValue = float.Parse(MainV2.getConfig("GspeedMAX")); } } catch { } if (MainV2.MONO) { MainH.Dock = DockStyle.Fill; MainH.Visible = true; } else { log.Info("1-"+ DateTime.Now); SetupDocking(); log.Info("2-" + DateTime.Now); if (File.Exists(_serializer.SavePath) == true ) { FileInfo fi = new FileInfo(_serializer.SavePath); if (fi.Length > 500) { try { _serializer.Load(true, GetFormFromGuid); log.Info("3-" + DateTime.Now); } catch (Exception ex) { log.Info(ex); try { SetupDocking(); } catch (Exception ex2) { log.Info(ex2); } } } } log.Info("D-" + DateTime.Now); } }
public FlightData() { log.Info("Ctor Start"); InitializeComponent(); log.Info("Components Done"); instance = this; // _serializer = new DockStateSerializer(dockContainer1); // _serializer.SavePath = Application.StartupPath + Path.DirectorySeparatorChar + "FDscreen.xml"; // dockContainer1.PreviewRenderer = new PreviewRenderer(); // mymap = gMapControl1; myhud = hud1; MainHcopy = MainH; // mymap.Manager.UseMemoryCache = false; log.Info("Tunning Graph Settings"); // setup default tuning graph if (MainV2.config["Tuning_Graph_Selected"] != null) { string line = MainV2.config["Tuning_Graph_Selected"].ToString(); string[] lines = line.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (string option in lines) { chk_box_CheckedChanged((object)(new CheckBox() { Name = option, Checked = true }), new EventArgs()); } } else { chk_box_CheckedChanged((object)(new CheckBox() { Name = "roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "pitch", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_roll", Checked = true }), new EventArgs()); chk_box_CheckedChanged((object)(new CheckBox() { Name = "nav_pitch", Checked = true }), new EventArgs()); } log.Info("HUD Settings"); foreach (string item in MainV2.config.Keys) { if (item.StartsWith("hud1_useritem_")) { string selection = item.Replace("hud1_useritem_", ""); CheckBox chk = new CheckBox(); chk.Name = selection; chk.Checked = true; HUD.Custom cust = new HUD.Custom(); cust.Header = MainV2.config[item].ToString(); cust.src = MainV2.comPort.MAV.cs; addHudUserItem(ref cust, chk); } } List<string> list = new List<string>(); { list.Add("LOITER_UNLIM"); list.Add("RETURN_TO_LAUNCH"); list.Add("PREFLIGHT_CALIBRATION"); list.Add("MISSION_START"); list.Add("PREFLIGHT_REBOOT_SHUTDOWN"); //DO_SET_SERVO //DO_REPEAT_SERVO } CMB_action.DataSource = list; CMB_modes.DataSource = Common.getModesList(MainV2.comPort.MAV.cs); CMB_modes.ValueMember = "Key"; CMB_modes.DisplayMember = "Value"; CMB_setwp.SelectedIndex = 0; log.Info("Graph Setup"); CreateChart(zg1); // config map log.Info("Map Setup"); gMapControl1.MapType = MapType.GoogleSatellite; gMapControl1.MinZoom = 1; gMapControl1.CacheLocation = Path.GetDirectoryName(Application.ExecutablePath) + "/gmapcache/"; gMapControl1.OnMapZoomChanged += new MapZoomChanged(gMapControl1_OnMapZoomChanged); gMapControl1.Zoom = 3; gMapControl1.RoutesEnabled = true; gMapControl1.PolygonsEnabled = true; kmlpolygons = new GMapOverlay(gMapControl1, "kmlpolygons"); gMapControl1.Overlays.Add(kmlpolygons); geofence = new GMapOverlay(gMapControl1, "geofence"); gMapControl1.Overlays.Add(geofence); polygons = new GMapOverlay(gMapControl1, "polygons"); gMapControl1.Overlays.Add(polygons); routes = new GMapOverlay(gMapControl1, "routes"); gMapControl1.Overlays.Add(routes); try { if (MainV2.getConfig("GspeedMAX") != "") { Gspeed.MaxValue = float.Parse(MainV2.getConfig("GspeedMAX")); } } catch { } MainV2.comPort.ParamListChanged += FlightData_ParentChanged; }