Developer


mavgui_screenshot_11_july_2012.png

I've been working on-and-off on a cross-platform GUI for mavproxy, which I've been calling "mavgui".    it's written in QT, and so will run natively anywhere where Qt will ( Mac, Android, Windows, etc ) ... and I've just started to add support in it for a "browser" window ( http://diydrones.com/profiles/blogs/browser-based-map-module-for-mavproxy) , that app would fill perfectly!   

I think I'm going to integrate these three into a GCS solution.   :-)  

My Work-in-Progress  QT based GUI is here:   https://github.com/davidbuzz/MAVProxy/tree/master/mavgui

 

The great thing about the mavgui I'm working on is that it's GUI is put together with a tool called "Qt Designer", and is 100% python, so it's trivial to change/tweak the layout for different use-cases like phone etc.    The Designer outputs XML, and the rest of the application is 100% python.     Here's a quick look at the XML loaded into the "Designer"....

 

mavgui_development_screenshot.png?width=600

 

It's not really "one giant GCS" in any sense of the word.. for a start it uses mavproxy and mavproxy modules for most of the underlying comms stuff, and everything else is just easy-to-read python.   :-)    maybe we should start a new thread for mavgui.  ?

 

There are a couple of parts to my experiment:  

(1)   completely separate the GUI from mavproxy, so if the GUI crashes, the mavproxy does not.

(2)  integrate with a standard mavproxy, with no changes required other than adding a "module".

 

"netconsole" - an underlying part of mavgui

 

Sending commands from the GUI "TO* mavproxy ( and hence your UAV) occurs over a tcp/ip connection to the MAV> console, by using a new mavproxy module called "netconsole".     As a bonus, you can now also use netcat, telnet,  or any other language to instruct MAVProxy.    :-)  

https://github.com/davidbuzz/MAVProxy/blob/master/modules/netconsole.py

 

want to put your UAV into AUTO mode from the command line?   try this:   echo "AUTO" | nc localhost 45678

want to communicate with a Mavproxy on another machine on the LAN?  try this:    telnet otherhostip 45678 ( and you'll see a MAV> prompt, just like it was local!

 

using pymavlink...... another undelying part.....

There's only so much you can do with a tool like "netconsole", as I cant ( yet ) use it to communicate information about the current state of  the UAV.... so I've additionally additionally got mavproxy sending a stream of UDP packets ( --out=127.0.0.1:xxxx ) to mavgui, and using pymavlink I am displaying the latest HUD style information in the GUI.  ( like altitude, speed, gps details, etc etc ) ... most of the work here has gone into making the underlying communications system operate well, so the mavgui GUI's not yet "perfect" by any stretch of the imagination.... but it's a start.....

 

Just thought you'd all like to know....... :-)

 

Buzz.

 

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones