artwhaley

ExtJeb - Flight Data and Autopilot ON ANOTHER MONITOR!

Recommended Posts

I...  like many of you, probably, have been dreaming of having all the features mechjeb provides...  but without sacrificing all of my screen real estate to it.  Eventually I want to build a dedicated cockpit... and that's going to require instruments and buttons, of course.  So I've started hacking at a way to get all of that data out of the KSP window, and I'm getting rather close.  To start with.. this is just a little project that is standing on the shoulders of GIANTS.  Two giants in particular make this work and are required for it to function:  

Mechjeb does all the mechjebing....  and  kRPC does all of the communication between KSP and my client and provides the python library it's built on.  I'm just hanging tinsel and bows on the trees that Djungelorm and Sarbian grew from seeds.

The interface looks like this at the moment: 

 

I've just about finished the kRPC extension to grab the data I need and push in the commands to the active vessel's mechjeb and it's working great,and a quick test of the orbital parameters only worked great and I've tried pulling data ridiculously fast to see if I could impact game performance and so far haven't managed to!  So, in the next day or two I'll have the buttons and text boxes all connected and working.  The graphical elements (the orbital visualizer, and I really would like to do a better graphical piece for the landing and docking visual guidance instead of the kludgy collection of scrollbars and sliders I've got at the moment) will take somewhat longer as I'm learning as I go and I haven't BEGUN to learn graphics in python...  but I'm imagining it shouldn't be TOO awful...  Seeing as how we're really talking about drawing a couple of ellipses and lines, and moving a few sprites around the screen?  Famous last words right?  If anyone wants to help with the graphical parts, I'd welcome it, but I'll get to it myself eventually!  

 

Future plans...  other than making it all work - I'd like to add another page that has a big grid and a filter selector to give you part level control of your vessel.  Hypothetically you could bring up every science experiment on board and give you an interface to run, reset and review them, or pull up all fuel tanks and let you manage resource transfers, or bring up your engines and let you disable, enable, and thrust limit them, or decouplers and docking ports, or parachutes...  the ability to configure parts from what becomes your external IVA screen seems interesting to me.

Anyway.  I haven't realized EVERY button in Mechjeb...  just the most frequently used ones.  I'd LOVE it if people would pour over the screenshots and say "I didn't see a way to do this... and I wanna."  So I don't miss something obvious and useful!  For example, as I sat here typing this, I realized the 'node executor' section of every page needs 'next node time' and 'next node deltaV' fields.  I'd much rather get the fine toothed comb comments NOW than when it's all put together and working and someone says "Yeah, but why didn't you..."  and drops one of those 'should have been obvious but now requires redoing a week's work' bits of wisdom on me!

 

Art

Share this post


Link to post
Share on other sites

Question: Does it scale to a 1024 x 768 monitor? That's what I'm working with in terms of a second screen. :3

Share this post


Link to post
Share on other sites
23 minutes ago, CobaltWolf said:

Question: Does it scale to a 1024 x 768 monitor? That's what I'm working with in terms of a second screen. :3

The short answer is : it sure OUGHT to...  once I figure out how?  At the moment I'm building it to 1280x720, but it's all done in PyQt so it SHOULD end up being pretty platform and resolution agnostic when it's finished.  I hope.  I'm bumping 'learn how to make the interface scale' up higher on my todo list for the project.  

Share this post


Link to post
Share on other sites

I can't WAIT for this! I've been using Telemachus to control vessels and give read outs while making my first film (hard to fly to orbit without it right :3), but this looks a whole lot more efficient. Is there anywhere to squeeze a navball into it?

Share this post


Link to post
Share on other sites
9 hours ago, MrMeeb said:

I can't WAIT for this! I've been using Telemachus to control vessels and give read outs while making my first film (hard to fly to orbit without it right :3), but this looks a whole lot more efficient. Is there anywhere to squeeze a navball into it?

I would LOVE  a navball on the orbital and surface referenced pages...  That's going to depend on two things....  1, my ability to code something that looks good and 2, the refresh rate the project gets when I've got it passing all of the data I want down the RPC connection.  I'm planning to start by requesting all data at 10 hz...  if that works and looks fast enough for the navball, great.  If not I may go to a staggered system where I use  the kRPC streams function to get heading, pitch, roll, vertical velocity and surface altitude every frame, but only grab orbit and navigation data 10 times per second and run the delta v simulation 2 or 3 times per second?  

 

So...  yes, it's something I'd like to do, I've got a couple of ideas on how to do it, but I'm not promising yet!

Share this post


Link to post
Share on other sites

You could always use an alternate, high refresh rate stream for vessel heading and orbit updates, and kRPC for the rest. My mod does that via UDP, feel free to steal the code as long as you release under a compatible license (GPLv3).

Share this post


Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.