目录
MP高级功能
主界面基本修改
1、菜单名称背景修改
2、主窗体语言修改
3、主要窗体目录位置
4、菜单栏删除
5、入口函数
6、参数配置函数
定制修改步骤
1、主题环境修改
2、菜单精简(去掉冗余菜单按键)
3、功能按键添加(新建按钮实现解锁,前后左右功能键的实现),在无人车上做演示效果
4、4G/Wifi/图像传输的实现
MP高级功能
高级功能,完成图传,Follow ME功能,地面站take off,在temp.cs窗体里面。要实现VLC的视频直播功能要安装vlc-3.0.2-win64。
主界面基本修改
在missionplanner项目下双击MainV2.cs这个主窗体类,可以看到主窗体设计选项
2、主窗体语言修改
这个设计界面,我们可以修改主窗体的一些菜单名字,修改这个窗体控件我们可以修改窗体语言,窗体图标。点击具体的窗体上面的控件,我们还可以修改对应控件的名称。
界面的几个主要的窗体的项目目录
4、菜单栏删除 5、入口函数6、参数配置函数
代码运行流程及其主要类
- 入口函数Program(完成基本控件的初始化)
- 创建Splash启动窗体并且启动
- 实例化MainV2主窗体(public MainV2()这个构造函数,初始化类和控件,实例化FlightData()和FlightPlanner()类。
- 创建 MainSwitcher窗体切换类
- 窗体显示,通过 MainSwitcher,ShowScreen的事件完成窗体切换 *** 作。
在MissionPlanner-MissionPlanner1.3.49\Utilities\ThemeManager.cs 这个类里面是主题颜色修改的类,我们可以通过这个类的修改,把MP的主题背景修改了,达到更换颜色风格的目的。主要的界面颜色配置函数
BGColor = Color.FromArgb(0x26, 0x27, 0x28); // This changes the colour of the main menu background
ControlBGColor = Color.FromArgb(0x43, 0x44, 0x45); // This changes the colour of the sub menu backgrounds
TextColor = Color.White; // This changes the colour of text
BGColorTextBox = Color.FromArgb(0x43, 0x44, 0x45); // This changes the colour of the background of textboxes
ButtonTextColor = Color.FromArgb(64, 87, 4); // This changes the colour of button text
ButBG = Color.FromArgb(148, 193, 31); // This changes the colour of button backgrounds (Top)
ButBGBot = Color.FromArgb(205, 226, 150); // This changes the colour of button backgrounds (Bot)
ProgressBarColorTop = Color.FromArgb(102, 139, 26); // These three variables change the colours of progress bars
ProgressBarColorBot = Color.FromArgb(124, 164, 40);
ProgressBarOutlineColor = Color.FromArgb(150, 174, 112);
BannerColor1 = Color.FromArgb(0x40, 0x57, 0x04); // These two variables change the colours of banners such as "planner" umder configuration
BannerColor2 = Color.FromArgb(0x94, 0xC1, 0x1F);
ColorNotEnabled = Color.FromArgb(150, 43, 58, 3); // This changes the background color of buttons when not enabled
ColorMouseOver = Color.FromArgb(73, 43, 58, 3); // This changes the background color of buttons when the mouse is hovering over a button
ColorMouseDown = Color.FromArgb(73, 43, 58, 3); // This changes the background color of buttons when the mouse is clicked down on a button
CurrentPPMBackground = Color.Green; // This changes the background colour of the current PPM setting in the flight modes tab
ZedGraphChartFill = Color.FromArgb(0x1F, 0x1F, 0x20); // These three variables change the fill colours of Zed Graphs
ZedGraphPaneFill = Color.FromArgb(0x37, 0x37, 0x38);
ZedGraphLegendFill = Color.FromArgb(0x85, 0x84, 0x83);
RTBForeColor = Color.WhiteSmoke; // This changes the colour of text in rich text boxes
BSVButtonAreaBGColor = Color.Black; // This changes the colour of a backstageview button area
UnselectedTextColour = Color.WhiteSmoke; // This changes the colour of unselected text in a BSV button
HorizontalPBValueColor = Color.FromArgb(148, 193, 31); // This changes the colour of the horizontal progressbar
2、菜单精简(去掉冗余菜单按键)
注意观察编译报错,把对应的报错注释掉即可。
3、功能按键添加(新建按钮实现解锁,前后左右功能键的实现),在无人车上做演示效果这个是涉及地面站控制飞控系统,要注意的是Ardupilot的控制系统中,遥控器控制和地面站数传链路控制,不能同时存在。一旦启动了地面站控制,遥控器链路是被直接切断的。同一时刻,要不然地面站控制,要不然遥控器控制。
- HUD界面修改添加自定义按键(注意VS的BUG)
- MAVLINK协议的指令发送的初步理解
- 控制系统的参数配置,来适应于地面站控制控制系统的要求
在飞行数据子窗体添加功能按钮,分别对应遥控器的横滚和油门(试用于无人车),四轴无人机的功能类似,可以根据意义来修改。
4、4G/Wifi/图像传输的实现图传目前分为几大类,WiFi局域网图传利用 路由器组建的局域网,在局域网内利用TCP/IP通讯,一般用RTSP/RTMP或者UDP等网络协议完成的视频传输。特点是只能在局域网观看视频,传输距离受到局域网的限制。但是可以实时传输高清视频,同时成本和造价非常低廉。
模拟图传淘宝很常见的模拟图传,造价很低,延时也很小,但是分辨率很低一般是 320 或者 640的分辨率,采用雪花屏作为图像接收。
高清数码图传COFDM方案的高清图传,可以加大功率实现720P/1080P的5公里,10公里,20公里,50公里甚至上百公里的高清实时图传。是目前专业行业应用上的无人机大多采用的方案,同时满足高清,远距离的图传,缺点是造价比较贵。5千到上10万不等。
4G图传,4G图传的技术是基于WIFi/IP 摄像头发展而来,只不过利用了一个处于公网IP的网络视频转发服务器来转发视频流,优点是只要有网的地方就可以实现图像传输,缺点是网络转发的延迟不可控,时好时坏,还有在高度250米以上的4G信号不好的地方,基本不能工作。必须要架设一个视频流转发服务器,来实现视频流的转发。
图像的传输必须具备一定的TCP/IP网络服务器的知识,大功率的图传有时候会影响舵机工作,或者无人机本身无线的数据链路复杂的话也会干扰图传的工作,视频 传输的流量费也比较可观。下面是我们课堂上实现的高清图传链路
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)