I've been playing around with MissionPlanner to get it working for Linux. I've had some luck (not 100% yet) - but I'd like to share my work. It's not ready for merging yet, but would like to hear some feedback on it. I haven't dug any deaper into the hidden functionality and layout issues, but it's usable for me now.
https://github.com/ustramooner/MissionPlanner/tree/MONO-linux
The kind of stuff I've worked on is:
- getting xbuild to work (mostly just file naming - case sensitivity)
- got a basic debian packaging system going (which will help with support - i see a lot of issues are due to people using older mono versions or not installing certain packages)
- sqllite - i'm a bit confused how the Mono.Data.SqliteClient package works, as I understand this is old
- I've had to delete out the joystick stuff - but the plan would be to abstract it with some yet-to-be-discovered library
- moving out the config and files that are written to to a configuration directory. linux install paths are read-only (and i think this is good practise to not write to your install dir). Using MainV2.UserPath.
bigger issues i've come across:
- NumpyDotNet - what's the plan here - it doesn't seem to be supported anymore, and is only available on windows. I tried porting it, but got stuck on something with the numerictypes.py
- random lock-ups - this makes it a bit dangerous to fly with so I always have APM Planner ready to go. For example I come across an issue where the screen locks up - i haven't figured it out exactly but seems to be related to a multi-threaded timing issue with X windows - when putting sleeps in certain places it seems to be better/fixed - several places still have this isssue.
currently left to do:
- sort out joystick code. EDIT: a basic abstraction (but not working as i don't have a joystick) is done
- ideally do a mac package (i develop on linux - but normally take a mac to the field when flying). most of the fixes here help with the mac versions). EDIT: basic DMG is done
- be nice to filter the serial devices a bit better (currently it shows all the /dev/tty* devices - where as APM Planner manages to filter down to only more relevant devices).
Looking forward to hearing some feedback!
Replies
Might be a good idea to contact Michael Osborne about all this :) Since he is pretty much the lead dev and maintainer he would be the person to get your questions answered and possibly offer assistance with this.
Thanks, I've created an issue for it: https://github.com/diydrones/MissionPlanner/issues/1148
:)