Mission Planner 二次开发之界面改装笔记

作者

作者还拥有个人公众号,会写一些感悟文章,知圈,二维码如下,欢迎扫描关注,关注后会弹出作者的微信,欢迎添加交流:
知圈二维码

源码下载

官方源码地址点击此处
点击如下按钮下载。
在这里插入图片描述

启动界面改装

这里写图片描述

此模块位于missionplanner项目下splash.cs模块。
1.打开模块后发现有个空白无用的picturebox1,直接删掉。删掉后运行报错,找到报错代码,把picturebox1有关的都删掉。
2.标题栏无用且与画面不协调,直接隐藏。
选中窗体,更改FormBorderStyleNone
3.背景图片更换,背景图片为resource文件夹下的splashdark.jpgsplash.jpg 文件。对应连个颜色主题。更换图片,保存文件名,重新编译运行即可。
4.更改版本号,版本号直接从Application.ProductVersion 读取的,所以要更改mission planner的项目属性。右击MissionPlanner项目,点击属性,在Package选项页里面更改Package version 的值即可。
5.更改作者,直接在设计窗口更改by Michael Oborne的文本即可。
6.更改任务栏图标,图标存储在项目文件夹下,直接更换mpdesktop.ico即可,文件名不要更换。
7.将背景图片的BackgroundImageLayout 改为Stretch,方便填充图片。
8.更改完后感觉标题栏显得多余,删掉。选中Form,更改FormBoarderStyle属性为None,标题栏即隐藏。
9.因归属权问题,将启动界面隐藏。找到MissionPlanner项目下的Program.cs,将“Splash.Show();”一行注释掉,如下
更改前代码段:

            string strVersion = File.Exists("version.txt")
                ? File.ReadAllText("version.txt")
                : System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            Splash.Text = name + " V" + Application.ProductVersion;//+ " build " + strVersion;

            Splash.Show();

            Application.DoEvents();
            Application.DoEvents();

更改为

            string strVersion = File.Exists("version.txt")
                ? File.ReadAllText("version.txt")
                : System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            Splash.Text = name + " V" + Application.ProductVersion;//+ " build " + strVersion;

 //           Splash.Show();

            Application.DoEvents();
            Application.DoEvents();


注意 更换图标或图片后,编译前要先清理下项目,再进行编译。
这里写图片描述

##主界面更改
mission planner 的config/turning(中文的配置页)页在项目missionplannerUtilities文件夹下的ConfigPlanner.CS里面。如下图所示:
这里写图片描述
1.更改默认主题,默认主题为BurntKermit主题,更改默认为亮色HighContrast
找到ThemeManager.cs,找到如下代码:

        private static Themes _currentTheme = Themes.BurntKermit;

更改为:

        private static Themes _currentTheme = Themes.HighContrast;

主题更改后的效果:
这里写图片描述

主界面布局更改

更改菜单栏

菜单栏在missionplanner项目下的MainV2.cs 。在设计窗口中打开如下图所示:
这里写图片描述
1.隐藏最右侧的ARDUPILOT菜单,选中该空间区域后,将Visible属性改为False
2.隐藏DONATE菜单。同上。更改后发现并未隐藏。所设属性被程序代码覆盖,更改MainV2.cs文件下的如下代码:

            MenuSimulation.Visible = DisplayConfiguration.displaySimulation;
            MenuTerminal.Visible = DisplayConfiguration.displayTerminal;
            MenuHelp.Visible = DisplayConfiguration.displayHelp;
            MenuDonate.Visible = DisplayConfiguration.displayDonate;

更改为:

            MenuSimulation.Visible = false;
            MenuTerminal.Visible = false;
            MenuHelp.Visible = false;
            MenuDonate.Visible = false;

3.如上例所示,将Help按钮一并隐藏。
4.如上例所示,将Terminal按钮隐藏。
5.如上例所示,将Simulation按钮隐藏。
6.将菜单栏选项按钮改为仅图标,将文字取消。选中要更改的图标,将其DisplayStyle属性由ImageAndText改为Image。相同方法将所有菜单栏按钮都设置为仅图像。
7.更改菜单栏按钮图标,其图标在resource文件夹下,找到图标,直接替换。将默认控件图标在设计窗口替换,选中图标,在属性里的Image属性窗口,浏览,在项目文件里面找到我们刚才替换掉的图标。如下图:
这里写图片描述
8.更改窗体标题,其直接从MissionPlanner属性窗口里更改,在Package页下。更改Program.cs文件夹下如下代码:

            name = "Mission Planner";

更改为

            name = "Flotilla";

再找到同文件下面的如下代码:

            Splash.Text = name + " " + Application.ProductVersion + " build " + strVersion;

更改为

                        Splash.Text = name + " V" + Application.ProductVersion;//+ " build " + strVersion;

9.鼠标放置在菜单栏图标上之后会出现提示字符如“Flight Data”/“Flight Planner”。将这两个改为Boat Status Navigation Software Config Hardware Config。找到MainV2.cs的设计窗体,选中要更改的控件,在ToolTipText里面更改。其它同理。将中文的对应提示也改掉,其在MissionPlanner下面的MainV2.cs里面的MainV2.zh-Hans.resx里面。找到对应的更改掉。如下图:
在这里插入图片描述
10.更改菜单栏图标位置。选中菜单栏图标,更改其Alignment属性。
11.中间太空洞,添加企业图标,将被隐藏的ArduPilot图标更改为visible,然后去resource文件夹下找到相应图标改为企业图标。
12.点击企业图标弹出企业网页,在MainV2.cs找到如下代码:

        private void MenuArduPilot_Click(object sender, EventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start("http://ardupilot.org/?utm_source=Menu&utm_campaign=MP");
            }
            catch
            {
                CustomMessageBox.Show("Failed to open url http://ardupilot.org");
            }
        }

更改为:

        private void MenuArduPilot_Click(object sender, EventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start("http://www.laureltechnologies.com/");
            }
            catch
            {
                CustomMessageBox.Show("Failed to open url http://www.laureltechnologies.com/");
            }
        }

菜单栏更改后的界面如下:
这里写图片描述

更改HUD

  1. 更改HUD背景,首先添加hud背景图片至resource,将所需PNG格式的背景图片保存至resource文件夹下,更改其名称为“hud.png”。找到MissionPlanner工程下面的Resources.resx双击,选择“Add Existing File…”,找到你要添加的hud.png,确定之后保存就可以了。在MissionPlanner下面GCSViews下面 FlightData.cs里面找到* public FlightData()*函数,在其最后一行添加代码。最后的代码片段如下:
            float gspeedMax = Settings.Instance.GetFloat("GspeedMAX");
            if (gspeedMax != 0)
            {
                Gspeed.MaxValue = gspeedMax;
            }

            MainV2.comPort.ParamListChanged += FlightData_ParentChanged;
            

在后面添加一行代码,添加完后如下:

            float gspeedMax = Settings.Instance.GetFloat("GspeedMAX");
            if (gspeedMax != 0)
            {
                Gspeed.MaxValue = gspeedMax;
            }

            MainV2.comPort.ParamListChanged += FlightData_ParentChanged;
            hud1.bgimage = global::MissionPlanner.Properties.Resources.hud;

关闭硬件更新提示

MainV2.cs里面,找到如下代码

                                if (ver2 > ver1)
                                {
                                    Common.MessageShowAgain(Strings.NewFirmware + "-" + item.name,
                                    Strings.NewFirmwareA + item.name + Strings.Pleaseup);
                                    break;
                                }


更改为

                                if (ver2 > ver1)
                                {
                                    //Common.MessageShowAgain(Strings.NewFirmware + "-" + item.name,
                                    //    Strings.NewFirmwareA + item.name + Strings.Pleaseup);
                                    break;
                                }


导航界面

1.将导航图标换为船只。resource文件夹下找到原图标,直接更换。

软件配置界面

软件配置界面在SoftwareConfig.cs文件下。

下载固件模块

MissionPlanner下面GCSViews文件夹下ConfigurationView文件夹下ConfigFirmware.cs里面。
这里写图片描述

### 回答1: Mission Planner是一款开源的地面站软件,可以用于控制和监控无人机的飞行。它提供了丰富的功能和界面,同时也支持二次开发。用户可以根据自己的需求,对Mission Planner进行二次开发,以满足特定的应用场景和需求。二次开发可以通过编写插件、修改源代码等方式实现。 ### 回答2: Mission Planner是一款非常受欢迎的开源地面站软件,它已经成为了许多无人机爱好者和专业人士的首选工具之一。Mission Planner提供了强大的飞行控制和地面站功能,如航点编程、遥控器控制、数据记录和可视化、遥测接收等等,使其成为了无人机开发中必不可少的工具之一。同时,Mission Planner还支持二次开发,这意味着我们可以在Mission Planner的基础上进行定制化的开发。 Mission Planner二次开发主要基于.NET平台和C#语言。用户可以使用Visual Studio等软件开发工具进行二次开发。通过二次开发,我们可以实现自定义的功能扩展,比如添加特定的设备驱动程序、修改页面布局、实现新的数据处理算法等等。二次开发还提供了自定义飞行模式、识别人工干扰、集成第三方设备等高级功能,帮助我们更好地完成无人机开发。 Mission Planner二次开发的关键是理解其基础架构和模块化设计。Mission Planner将其功能分为多个模块,各模块之间通过接口进行交互,因此我们可以对每个模块进行针对性的开发,提高了二次开发效率。此外,Mission Planner使用开源协议,开放代码,使得用户可以查看和理解软件的内部结构和逻辑,更方便地进行二次开发。 总之,Mission Planner二次开发提供了强大的自定义功能,使开发者能够设计和开发出更适合自己的地面站软件,同时提高开发效率。Mission Planner的开放、模块化、规范化的设计理念,使得其二次开发变得更为简单和高效。 ### 回答3: Mission Planner是一种常用的开源自动驾驶仪地面站软件,用于设置和监控无人机的飞行任务。它提供了设计飞行计划、编写API、访问SPI总线、配置无线电和日志等功能。Mission Planner还支持PX4、APM和ArduCopter等自动驾驶仪,并且可以添加自定义航点和飞行任务。 对于那些想要进行更多自定义开发的用户和开发人员,Mission Planner还提供了丰富的二次开发接口。这样可以允许用户绑定自己的功能,从而更好地管理无人机和飞行任务。 Mission Planner二次开发接口包括面板、插件和API。面板是Mission Planner的图形用户界面,可以在其上创建新的选项卡和自定义控件。插件可以以异步方式接收或发送数据,并对MessageEventHandler中的数据进行处理。API可用于编写C#和Python脚本,并基于Mission Planner中的数据不断更新或调整行动和状态,实现自定义逻辑控制。因此,使用Mission Planner进行自定义开发可以轻松实现增加自定义逻辑控制和交互界面,让用户更好地管理无人机飞行任务。 总之,二次开发是用于Mission Planner的神权之路,可以允许用户以各种方式控制无人机并优化其飞行计划。 无论你是个人用户还是专业人士,只要按照文档和 API进行操作,就可以在Mission Planner上实现自定义功能,提高无人机的管理和控制能力。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值