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.
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!