AI prompts
base on Mission Planner Ground Control Station for ArduPilot (c# .net) # MissionPlanner
![Dot Net](https://github.com/ardupilot/missionplanner/actions/workflows/main.yml/badge.svg) ![Android](https://github.com/ardupilot/missionplanner/actions/workflows/android.yml/badge.svg) ![OSX/IOS](https://github.com/ardupilot/missionplanner/actions/workflows/mac.yml/badge.svg)
Website : http://ardupilot.org/planner/
Forum : http://discuss.ardupilot.org/c/ground-control-software/mission-planner
Download latest stable version : http://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.msi
Changelog : https://github.com/ArduPilot/MissionPlanner/blob/master/ChangeLog.txt
License : https://github.com/ArduPilot/MissionPlanner/blob/master/COPYING.txt
## How to compile
### On Windows (Recommended)
#### 1. Install software
##### Main requirements
Currently, Mission Planner needs:
Visual Studio 2022
##### IDE
### Visual Studio Community
To compile Mission Planner, we recommend using Visual Studio. You can download Visual Studio Community from the [Visual Studio Download page](https://visualstudio.microsoft.com/downloads/ "Visual Studio Download page").
Visual Studio is a comprehensive suite with built-in Git support, but it can be overwhelming due to its complexity. To streamline the installation process, you can customize your installation by selecting the relevant "Workloads" and "Individual components" based on your software development needs.
To simplify this selection process, we have provided a configuration file that specifies the components required for MissionPlanner development. Here's how you can use it:
1. Go to "More" in the Visual Studio installer.
2. Select "Import configuration."
3. Use the following file: [vs2022.vsconfig](https://raw.githubusercontent.com/ArduPilot/MissionPlanner/master/vs2022.vsconfig "vs2022.vsconfig").
By following these steps, you'll have the necessary components installed and ready for Mission Planner development.
###### VSCode
Currently VSCode with C# plugin is able to parse the code but cannot build.
#### 2. Get the code
If you get Visual Studio Community, you should be able to use Git from the IDE.
Clone `https://github.com/ArduPilot/MissionPlanner.git` to get the full code.
In case you didn't install an IDE, you will need to manually install Git. Please follow instruction in https://ardupilot.org/dev/docs/where-to-get-the-code.html#downloading-the-code-using-git
Open a git bash terminal in the MissionPlanner directory and type, "git submodule update --init" to download all submodules
#### 3. Build
To build the code:
- Open MissionPlanner.sln with Visual Studio
- From the Build menu, select "Build MissionPlanner"
### On other systems
Building Mission Planner on other systems isn't support currently.
## Launching Mission Planner on other system
Mission Planner is available for Android via the Play Store. https://play.google.com/store/apps/details?id=com.michaeloborne.MissionPlanner
Mission Planner can be used with Mono on Linux systems. Be aware that not all functions are available on Linux.
Native MacOS and iOS support is experimental and not recommended for inexperienced users. https://github.com/ArduPilot/MissionPlanner/releases/tag/osxlatest
For MacOS users it is recommended to use Mission Planner for Windows via Boot Camp or Parallels (or equivalent).
### On Linux
#### Requirements
Those instructions were tested on Ubuntu 20.04.
Please install Mono, either :
- `sudo apt install mono-complete mono-runtime libmono-system-windows-forms4.0-cil libmono-system-core4.0-cil libmono-winforms4.0-cil libmono-corlib4.0-cil libmono-system-management4.0-cil libmono-system-xml-linq4.0-cil`
#### Launching
- Get the lastest zipped version of Mission Planner here : https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-latest.zip
- Unzip in the directory you want
- Go into the directory
- run with `mono MissionPlanner.exe`
You can debug Mission Planner on Mono with `MONO_LOG_LEVEL=debug mono MissionPlanner.exe`
### External Services Used
| Source | Use | How to disable | Custodian |
|---|---|---|---|
| https://firmware.oborne.me | used as a global cdn for checking for MP update check - checked once per day at startup | edit missionplanner.exe.config | Michael Oborne |
| https://firmware.ardupilot.org | used for updates to stable, firmware metadata, firmware, user alerts, gstreamer, SRTM, SITL | updates to stable (edit missionplanner.exe.config) - all others Not possible | Ardupilot Team |
| https://github.com/ | used for updates to beta | edit missionplanner.exe.config | Michael Oborne |
| https://raw.githubusercontent.com | old param metadata, sitl config files | Not possible | Ardupilot Team |
| https://api.github.com/ | ardupilot preload param files | Not possible | Ardupilot Team |
| https://raw.oborne.me/ | used as glocal cdn for parameter metadata generator, no longer primary source | only used at user request to regenerate, edit missionplanner.exe.config | Michael Oborne |
| https://maps.google.com | used for elevation api - removed due to abuse | N/A | N/A |
| https://discuss.cubepilot.org/ | use for SB2 reporting - only on affected boards when user enters details | only used at user request | CubePilot |
| https://altitudeangel.com | utm data - user enabled | only used at user request | Altitude Angel |
| https://autotest.ardupilot.org | dataflash log meta data, parameter metadata | Not Possible | Ardupilot Team |
| Many | your choice of map provider google/bing/openstreetmap/etc | User selectable | User/Many |
| https://www.cloudflare.com | geo location provider - for NFZ selection | Not Possible | Michael Oborne |
| https://esua.cad.gov.hk | HK no fly zones - user enabled | User selectable | HK Gov |
| https://ssl.google-analytics.com | Google Analytics Anonymous Stats - Screen Loads, Exceptions/Crashs, Events (Connect), Startup Timing, FW upload (FW Type and Board Type) | disable in Config > Planner > OptOut Anon Stats | Michael Oborne |
| https://api.dronelogbook.com | logging - disabled | N/A | N/A |
| https://ardupilot.org | help urls on many pages | User Initiated | ArduPilot Team |
| https://www.youtube.com | help videos on many pages | User Initiated | ArduPilot Team |
| https://files.rfdesign.com.au | RFD firmwares | User Initiated | RFDesign |
| https://teck.airmarket.io | airmarket - disabled | N/A | N/A |
### Offline Use - No Internet
| Location | Use | Transferable between pcs |
|---|---|---|
| C:\ProgramData\Mission Planner\gmapcache | Map cache | yes |
| C:\ProgramData\Mission Planner\srtm | Elevation data cache | yes |
| C:\ProgramData\Mission Planner\\*.pdef.xml | Parameter cache | yes |
| C:\ProgramData\Mission Planner\LogMessages*.xml | DF Log metadata cache | yes |
on linux this is in /home/<user>/.local/share/Mission Planner/
### Offline Data Supported
#### Elevation
* SRTM Cache
* GeoTiff's in WGS84/EGM96
* DTED
#### Images
* Map Cache
* WMS
* WMTS
* GDAL
### Paths used - Default
| Location | Use |
|---|---|
| C:\ProgramData\Mission Planner | All cross user content |
| C:\Users\USERNAME\Documents\Mission Planner | All per user content |
on linux this is in /home/<user>/.local/share/Mission Planner/
### CA Cert
A CA cert is installed to the root store and used to sign the windows serial port drivers, and is installed as part of the MSI install.
[![FlagCounter](https://s01.flagcounter.com/count2/A4bA/bg_FFFFFF/txt_000000/border_CCCCCC/columns_8/maxflags_40/viewers_0/labels_1/pageviews_0/flags_0/percent_0/)](https://info.flagcounter.com/A4bA)
", Assign "at most 3 tags" to the expected json: {"id":"8382","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"