MOARdV

[WIP] [1.7.x] MOARdV's Avionics Systems - MAS Interactive IVA! (v1.0.1, 27 July 2019)

Recommended Posts

26 minutes ago, dsonbill said:

I have a couple of questions:
 

3. Is integrating from another mod going to be a PITA? Not that I'm not used to such pains. If there's no official way I'll just hack my way in.

I think I can answer that one. There is a lot of functions exposed for LUA usage in the MASComputerProxy. While you won't be using LUA in your mods, I expect it to be about same difficult (that is - not difficult). 

Share this post


Link to post
Share on other sites
3 hours ago, dsonbill said:

I have a couple of questions:
 

  1. Were MFDs ever finished?
  2. Did you integrate kOS into MAS, or have plans to do so? I see some references to kOS in the configs but no actual linking.
  3. Is integrating from another mod going to be a PITA? Not that I'm not used to such pains. If there's no official way I'll just hack my way in.

1. Not entirely.  There are currently three varieties of MFD in MAS - MFD1, which is supposed to be a Soyuz-styled MFD, which I haven't maintained in forever; MFD2, which is more-or-less complete; and the IFMS series, which is complete for launch / landing / maneuver, but still needs rendezvous / docking and some information pages.  The IFMS will be my development MFD going forward, since its letting me validate some multi-monitor designs (the "kOS" terminal with the keyboard is for planning / configuration, the conventional MFD is for data reporting and task-specific control).  However, I've been working on some non-KSP stuff lately, so I haven't finished the IFMS design.

2. No and not currently.  There is a monitor called the "kOS Terminal", since alexustas designed it for RPM with the expectation of kOS support that never happened.  The monitor is fully functional - all of the buttons send events.  I've never used kOS, and at the time I was looking into it, I had some unpleasant exchanges with one of the kOS team members, so I decided it wasn't worth my time.

3. MAS is designed to interact with other mods.  For some of them (commonly used, with stable interfaces), I've built support into MAS.  MAS can also use the same interfaces that RPM uses - the other mod needs to provide a couple of methods with specific signatures that MAS can call, and then MAS can send them button events and display text on a screen.  If that's what you mean by integrating, then it shouldn't be too painful.  If you mean letting another mod control MAS, it's not designed for that - it accepts collider events from props, and it can trigger events based on conditions of variables and functions it uses.  I could probably extend MAS to call public functions in other mods without a lot of difficulty.  I can go into more detail if you want to give me an idea of what you're looking at doing.

Share this post


Link to post
Share on other sites
Posted (edited)

Thank you for the replies, guys. Keep in mind that I haven't installed MAS yet, or even launched KSP in over a year, so anything that will be self evident when I do, feel free to ignore.

I'm honestly not surprised kOS was never integrated. Drama aside, it was fairly complex to do in the first place. My goal is to resurrect my old kOS <-> RPM mod and port it for MAS. I'd also like to add a lot of functionality that I didn't the first time around. I have it built with the button/page processor from RPM, so if it's just as easy with MAS, that will be easy enough to port over.

Some of the things I'd like to implement are:

  1. Switches, labels, and lights for programmable things in-game. I don't expect to be able to check the state of all switches (more expecting to make my own props with the models you guys made), though that would be kind of cool too.
  2. Displays. I'll make my own models if nothing is suitable, but I'd like to use what you have available if it is. I'd like to have one for the main kOS terminal integrated into an MFD, and 1 - 2 for extra data. Edit: Looks like you have this idea too with the way you were explaining your usage of the MFDs.
  3. A nice prop to "house" a pod's built-in kOS module. Maybe with a little screen and some power/control buttons, a la the old RPM props in Alexustas' pod (server rack looking thing). Looks like you're using this (and well), but I'll come up with something.
  4. It'd be very, very cool to get the graphical capabilities of the MFDs to work with kOS, rather than just text and switches. This was my big dream back when I was first making this. (I almost took over RPM after you started working on MAS for this)

Overall, I'd say that's about it. I can't think of anything else people want with the kOS integration. If anyone has any ideas, feel free to stop by my thread and leave them. I'll be updating kOSPropMonitor one last time, then (hopefully) getting started on moving over to MAS. After it's ported and functional, I'll start to add cool functionality to it.

Also, I'd like the displays to be able to have different text sizes on different screens, or even better, the ability to change the text density on-the-fly. Is this possible?

I booted up MAS and, suffice to say, you have the text situation figured out.

I'm very flexible when it comes to this - if you have any ideas you would suggest that you think would fit MAS better, I'm very open to hearing and implementing them.

Edited by dsonbill

Share this post


Link to post
Share on other sites

Switches, etc, are in the realm of possibility.  I need to update the MAS Action Group feature to make it more robust - once that's done, a lot of functionality could be supported through switches with that code.

There's no reason a second instance of the rack-mounted prop can't be used as a kOS core / mini-display.  They are rack-mounted units, after all. :)  Maybe (at worst) a reskin of it to change the logo?

As for graphics - MAS can do a lot graphically (display texture / images, draw lines, draw closed polygons), but it also supports the old RPM interface of passing another module/DLL a render texture that it can draw on.  Although it may make more sense to couple kOS more tightly, so more types of information can be passed back and forth.

Share this post


Link to post
Share on other sites

I spent a long time without playing ksp and now that I came back I updated all my mods and everything seems to work correctly, but I only now saw that raster prop is no longer being updated and this new project is in progress. Can I simply delete the raster prop without affecting the mods that use it and put the MAS? thank you

Share this post


Link to post
Share on other sites
Posted (edited)
46 minutes ago, Leandro Basi said:

I spent a long time without playing ksp and now that I came back I updated all my mods and everything seems to work correctly, but I only now saw that raster prop is no longer being updated and this new project is in progress. Can I simply delete the raster prop without affecting the mods that use it and put the MAS? thank you

No, it's not that simple. MAS is not a drop-in replacement for RPM. There are chances that a mod works with both, but there is no guarantee (every mod has to be manually adjusted) and also probably not much point (if a mod supports MAS - why would it need RPM support?).

Edited by snakeru

Share this post


Link to post
Share on other sites
11 hours ago, MOARdV said:

Switches, etc, are in the realm of possibility.  I need to update the MAS Action Group feature to make it more robust - once that's done, a lot of functionality could be supported through switches with that code.

There's no reason a second instance of the rack-mounted prop can't be used as a kOS core / mini-display.  They are rack-mounted units, after all. :)  Maybe (at worst) a reskin of it to change the logo?

That's excellent. Switches and labels were actually the first thing I ever thought about integrating with kOS, besides the monitor.

And I'll probably end up doing just that with the rack-mounted... I didn't even think about it.

12 hours ago, MOARdV said:

As for graphics - MAS can do a lot graphically (display texture / images, draw lines, draw closed polygons), but it also supports the old RPM interface of passing another module/DLL a render texture that it can draw on.

I'll definitely get started with the RPM interface then. Drawing graphics on the screen from kOS one day will be really, really cool. (One kOS processor is your gpu? Hue hue hue.)

One question about the RPM interface - do the page classes still get remade every time you switch vessel? I remember that being fun to deal with - I had to set up another class to track states in-between vessel changes, as I had monitor assignments and didn't want them to change every time.

11 hours ago, MOARdV said:

Although it may make more sense to couple kOS more tightly, so more types of information can be passed back and forth.

This is what I'd like to aim for, I just don't know where to start exactly. I did dig through RPM code a bit a few years ago (I even made a striped-down version with only the MFD functionality once), but I haven't played with MAS much at all - I just barely skimmed the source when I first saw it years ago, and I went over your IVAs yesterday. I need to go through and figure out how you've done props and information gathering to get an idea of how information may be able to be used between both systems.

Share this post


Link to post
Share on other sites
13 hours ago, Bottle Rocketeer 500 said:

Would it be possible for you to add a feature that would act like an FMC to this mod?

A Flight Management System is more of a prop or collection of props, not really a feature (as I would define 'feature', at least - part of the DLL).  The IFMS MFDs I'm working on do integrate some flight management features, although they are focused on KSP rocket flight management, not space plane.  alexustas showed off a MAS FMS on his YouTube channel last year, but he's been very busy lately with Real Life.

MAS also has an extensive set of navigation features that can simulate radio navigation systems and compute a variety of informations, such as heading to reach a specific location on the planet, distance to a location (both slant direction and distance along the surface).  Other than alexustas, I don't know if anyone has used them extensively.

10 hours ago, dsonbill said:

This is what I'd like to aim for, I just don't know where to start exactly. I did dig through RPM code a bit a few years ago (I even made a striped-down version with only the MFD functionality once), but I haven't played with MAS much at all - I just barely skimmed the source when I first saw it years ago, and I went over your IVAs yesterday. I need to go through and figure out how you've done props and information gathering to get an idea of how information may be able to be used between both systems.

Probably what would make the most sense from a MAS perspective is a soft dependency, similar to the way MAS interacts with FAR, MJ, RealChute, KER, etc.  That would allow MAS to talk directly to the kOS interface, which provides a great deal more flexibility.  I suppose at some point I could take a look at kOS again and see how well suited it is for that sort of interaction.

Share this post


Link to post
Share on other sites

@MOARdV What I meant was the part where you enter the flight plan. My idea was that first , you would enter the origin and the destination, enter your cruising altitude and possibly some other things, and it would calculate a basic flight plan where you would take off, fly straight until you reach cruising altitude, then turn and fly to the next point, from where you would descend straight to the runway and land. Then, Atmosphere Autopilot, if supported by MAS, could fly that flight plan.

Share this post


Link to post
Share on other sites
11 hours ago, MOARdV said:

Probably what would make the most sense from a MAS perspective is a soft dependency, similar to the way MAS interacts with FAR, MJ, RealChute, KER, etc.  That would allow MAS to talk directly to the kOS interface, which provides a great deal more flexibility.  I suppose at some point I could take a look at kOS again and see how well suited it is for that sort of interaction.

I got an idea of what you mean after looking at some of the mentioned interfaces. I can see a few ways I could hook things up, though I'm not sure I have access to everything I need to do that - still need to look around a bit more. It seems you've set many things as internal - it's almost as if you knew there were sneaky programmers like me out there!

I just finished the old kOS/RPM mod and I'm going to start work on the MAS version very soon.

 

Cheers.

Share this post


Link to post
Share on other sites
On 5/4/2019 at 5:47 PM, Bottle Rocketeer 500 said:

@MOARdV Would it be possible for you to add a feature that would act like an FMC to this mod?

https://en.wikipedia.org/wiki/Flight_management_system

Programming something like that, either through Lua or through the built-in MAS navigation is something I have wanted to do for a long time. I have a very basic general idea of how to hack something together, but the actual doing of it is something I haven't been able to get around to just yet.

Share this post


Link to post
Share on other sites

Firstly and most importantly, thank you for this awesome mod. I've been so pumped in using the MK3-9 IVA on the "Rhea" for my space station. So dope.

A quick question, are the cameras from Hullcam continued meant to be compatible with the big monitor here? I just get a black screen. They are working for the puny monitor in the bottom middle of the cockpit as you can see, but not the real good displays. They have unique names and are individually ID'd. For now I'm just using the docking port on the tip as a makeshift cam on the big ones.

mZj04Na.jpg

Share this post


Link to post
Share on other sites
13 hours ago, theonegalen said:

Programming something like that, either through Lua or through the built-in MAS navigation is something I have wanted to do for a long time. I have a very basic general idea of how to hack something together, but the actual doing of it is something I haven't been able to get around to just yet.

@Bottle Rocketeer 500 - okay, sorry, I misunderstood.  Something like that *should* be possible with MAS today, with a creative application of Lua scripting and the MAS navigation system, as long as you're looking for prompting ("Climb to Flight Level 15, Turn Left to heading 300").  MAS isn't able to fly the route for you, but it should be able to tell you what to do. :)  I think the only excuse I have for not making a sample is that I don't have a lot of navigation waypoints to work with.  I've included a lot of radio navigation sites that @alexustas created, and I've added the Kerbin Deep Space Relays, but that's all the MAS database knows about.

Okay, the other excuse is that I am not good at that "space plane" thing in KSP, so my normal flight path is "go up, tip over, circularize", not "speed up horizontally, pitch up a little bit, don't smash the back of your plane on the runway, go fly somewhere".  So flight path planning isn't as important. :) 

10 hours ago, nwillard said:

are the cameras from Hullcam continued meant to be compatible with the big monitor here?

MAS should have a patch for Hullcam compatibility -- but, as far as I know, there isn't a Mk3-9 IVA using MAS.  From the props I see (Near Future Props plus some RPM props), that looks like it's a RasterPropMonitor IVA, which isn't something that MAS is going to control.  If I remember correctly, HullCam manages compatibility with RPM (it's been a few years since I worked with HullCam / RPM interoperability).

On 5/5/2019 at 7:33 PM, dsonbill said:

It seems you've set many things as internal - it's almost as if you knew there were sneaky programmers like me out there!

Well, considering MAS sneaks in to other mods to be compatible with them, I figured I wasn't the only one. :)  Kidding aside, kOS / MAS interop may be a good candidate for core MAS.  It may be time (when I have the spare time to play around with KSP again) to look at making the kOS / MAS interface a thing.  There are a few things I wanted to do in MAS that probably would work better as kOS.  But I realistically won't be able to work on that any time soon, since Real Life and other hobbies have kept me quite busy lately.

Share this post


Link to post
Share on other sites
On 5/7/2019 at 7:19 AM, theonegalen said:

Programming something like that, either through Lua or through the built-in MAS navigation is something I have wanted to do for a long time. I have a very basic general idea of how to hack something together, but the actual doing of it is something I haven't been able to get around to just yet.

Having worked on MAS LUA quite recently, I can share the development harness - the unit test framework that I wrote specifically for this purpose. It might require some work though if run on Windows.

Share this post


Link to post
Share on other sites
On 5/7/2019 at 12:32 PM, MOARdV said:

Well, considering MAS sneaks in to other mods to be compatible with them, I figured I wasn't the only one. :)  Kidding aside, kOS / MAS interop may be a good candidate for core MAS.  It may be time (when I have the spare time to play around with KSP again) to look at making the kOS / MAS interface a thing.  There are a few things I wanted to do in MAS that probably would work better as kOS.  But I realistically won't be able to work on that any time soon, since Real Life and other hobbies have kept me quite busy lately.

I'm still going to work on it since I have nothing better to do.

I do look forward to the day we have proper kOS integration, though. :)

Share this post


Link to post
Share on other sites
On 5/7/2019 at 4:38 AM, nwillard said:

Firstly and most importantly, thank you for this awesome mod. I've been so pumped in using the MK3-9 IVA on the "Rhea" for my space station. So dope.

A quick question, are the cameras from Hullcam continued meant to be compatible with the big monitor here? I just get a black screen. They are working for the puny monitor in the bottom middle of the cockpit as you can see, but not the real good displays. They have unique names and are individually ID'd. For now I'm just using the docking port on the tip as a makeshift cam on the big ones.

mZj04Na.jpg

Where'd you get this IVA?

Share this post


Link to post
Share on other sites
On 5/11/2019 at 12:33 AM, dlrk said:

Where'd you get this IVA?

See Near Future Spacecraft [1.2.3]

Share this post


Link to post
Share on other sites

@MOARdV

Do you think BDArmory could interface within this new system to have radar show on MFDs? I dream of fighting against the AI in IVA with the game HUD toggled off.

Share this post


Link to post
Share on other sites
3 hours ago, Svm420 said:

Do you think BDArmory could interface within this new system to have radar show on MFDs? I dream of fighting against the AI in IVA with the game HUD toggled off.

tagging @jrodriguez to get his input on this, too

Share this post


Link to post
Share on other sites
13 hours ago, Svm420 said:

@MOARdV

Do you think BDArmory could interface within this new system to have radar show on MFDs? I dream of fighting against the AI in IVA with the game HUD toggled off.

That would primarily a question for BDArmory.  I don't use the mod, so I won't be building support for it into MAS.  MAS supports the RPM interfaces for displaying pages on MFDs, so if BDArmory has RPM compatibility, it'd be able to display through MAS.

Share this post


Link to post
Share on other sites

This is a cool mod, but can you tell me how to integrate this mod with other part mods that have interior like OPT space shuttle system?

Share this post


Link to post
Share on other sites
8 hours ago, BlackWing Pilot said:

This is a cool mod, but can you tell me how to integrate this mod with other part mods that have interior like OPT space shuttle system?

Just take a look at the existing configs for the inspiration.
For a single pod you need two .cfg files. For example, Mk1-3 pod is instrumented with MAS_Mk1-3Internal.cfg+MAS_mk1-3.cfg, Mk1 with MAS_mk1Podv2.cfg+MAS_mk1podv2_Internal.cfg etc. These are in the "FlightSystems" subfolder.

Share this post


Link to post
Share on other sites
15 hours ago, BlackWing Pilot said:

This is a cool mod, but can you tell me how to integrate this mod with other part mods that have interior like OPT space shuttle system?

You'll want to install Unity and the KSP PartTools extensions to Unity, and configure the PartTools.  There are instructions on the forum for how to get those tools set up.  Once you've done that, you can open an existing IVA, and use PartTools to select props from a list and spawn them.

It's not really difficult to do, but it can be tedious - especially when you're first starting, or trying to figure out which of the hundreds of props is the one you need.  One tip for placing the first few props - select an existing prop, go to its Transform window in the Inspector, click the gear icon and choose Copy Component.  Then, once you spawn a prop you want to use, do the same thing, but select Paste Component Values.  That places the new prop where the existing prop is, so you don't have to move and rotate the prop to get it positioned about right.

Share this post


Link to post
Share on other sites

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.