1. 程式人生 > >Mission Planner 二次開發之介面改裝筆記

Mission Planner 二次開發之介面改裝筆記

啟動介面改裝

這裡寫圖片描述

此模組位於missionplanner專案下splash.cs模組。
1.開啟模組後發現有個空白無用的picturebox1,直接刪掉。刪掉後執行報錯,找到報錯程式碼,把picturebox1有關的都刪掉。
2.標題欄無用且與畫面不協調,直接隱藏。
選中窗體,更改FormBorderStyle

None
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 = DisplayConfiguration.displaySimulation;
            //MenuTerminal.Visible = DisplayConfiguration.displayTerminal;
            //MenuHelp.Visible = DisplayConfiguration.displayHelp;
            //MenuDonate.Visible = DisplayConfiguration.displayDonate;

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裡面更改。其它同理。
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裡面。
這裡寫圖片描述