Space Shuttle Ultra 1.25 Revision B development

This is called in SetLaunchConfiguration, SetOrbiterTankConfiguration and SeparateTank (I give the ET handle in the first 2 calls and create separate tanks in SeparateTank:

Code:
void Atlantis::CreateMPSDumpVents( PROPELLANT_HANDLE phLOXdump, PROPELLANT_HANDLE phLH2dump )
{
    PARTICLESTREAMSPEC psLOXdump = {
        0,
        2,
        0.06,
        20,
        0.5,
        0.3,
        25,
        5,
        PARTICLESTREAMSPEC::DIFFUSE,
        PARTICLESTREAMSPEC::LVL_PLIN,
        0, 1,
        PARTICLESTREAMSPEC::ATM_FLAT,
        1, 1,
        0
    };

    PARTICLESTREAMSPEC psLH2dump_BU = {
        0,
        0.08,///<     particle size at creation [m]
        100,///<     average particle creation rate [Hz]
        7,///<     emission velocity [m/s]
        0.2,///<     velocity spread during creation
        0.3,///<     average particle lifetime [s]
        2,///<     particle growth rate [m/s]
        30,///<     slowdown rate in atmosphere
        PARTICLESTREAMSPEC::DIFFUSE,
        PARTICLESTREAMSPEC::LVL_PLIN,
        0, 1,
        PARTICLESTREAMSPEC::ATM_FLAT,
        1, 1,
        0
    };

    PARTICLESTREAMSPEC psLH2dump_FD = {
        0,
        0.2,///<     particle size at creation [m]
        100,///<     average particle creation rate [Hz]
        9,///<     emission velocity [m/s]
        0.2,///<     velocity spread during creation
        0.4,///<     average particle lifetime [s]
        2,///<     particle growth rate [m/s]
        30,///<     slowdown rate in atmosphere
        PARTICLESTREAMSPEC::DIFFUSE,
        PARTICLESTREAMSPEC::LVL_PLIN,
        0, 1,
        PARTICLESTREAMSPEC::ATM_FLAT,
        1, 1,
        0
    };

    // LOX dump -> dv = 9-11 fps
    // LOX dump SSME 1
    if (thMPSDump[0] != NULL) DelThruster( thMPSDump[0] );
    thMPSDump[0] = CreateThruster( GetOrbiterCoGOffset() + _V(0.0, 3.387,-14.8485), _V( 0.0, -0.37489, 0.92707 ), 4000, phLOXdump, 120, 120 );
    AddExhaustStream( thMPSDump[0], &psLOXdump );

    // LOX dump SSME 2
    if (thMPSDump[1] != NULL) DelThruster( thMPSDump[1] );
    thMPSDump[1] = CreateThruster( GetOrbiterCoGOffset() + _V(-1.458, 0.548, -15.8735), _V( 0.065, -0.2447, 0.9674 ), 4000, phLOXdump, 120, 120 );        
    AddExhaustStream( thMPSDump[1], &psLOXdump );

    // LOX dump SSME 3
    if (thMPSDump[2] != NULL) DelThruster( thMPSDump[2] );
    thMPSDump[2] = CreateThruster( GetOrbiterCoGOffset() + _V(1.458, 0.548, -15.8735), _V( -0.065, -0.2447, 0.9674 ), 4000, phLOXdump, 120, 120 );        
    AddExhaustStream( thMPSDump[2], &psLOXdump );

    // LH2 dump B/U
    if (thMPSDump[3] != NULL) DelThruster( thMPSDump[3] );
    thMPSDump[3] = CreateThruster( GetOrbiterCoGOffset() + _V( -2.85, -1.16, -7.30 ), _V( 1, 0, 0 ), 400, phLH2dump, 40, 40 );
    AddExhaustStream( thMPSDump[3], &psLH2dump_BU );

    // LH2 dump F/D
    if (thMPSDump[4] != NULL) DelThruster( thMPSDump[4] );
    thMPSDump[4] = CreateThruster( GetOrbiterCoGOffset() + _V( -3.18, 0.71, -10.51 ), _V( 1, 0, 0 ), 400, phLH2dump, 80, 80 );
    AddExhaustStream( thMPSDump[4], &psLH2dump_FD );
    return;
}
I'm not sure if this is related to the problems you're having, but the PARTICLESTREAMSPEC needs to be declared as static. At the moment, you're passing a pointer to PARTICLESTREAMSPEC instances, but these pointers become invalid after the CreateMPSDumpVents() function returns.
 
I'm not sure if this is related to the problems you're having, but the PARTICLESTREAMSPEC needs to be declared as static. At the moment, you're passing a pointer to PARTICLESTREAMSPEC instances, but these pointers become invalid after the CreateMPSDumpVents() function returns.

That makes sense, thanks, but even with the static it still does the same... and if I remove the AddExhaustStream calls it still does the same....
 
That makes sense, thanks, but even with the static it still does the same... and if I remove the AddExhaustStream calls it still does the same....
Why don't you check in what you got so we can take a look at the code in it's complete form and see if there's any incompatible code?
 
Why don't you check in what you got so we can take a look at the code in it's complete form and see if there's any incompatible code?
If you can, create a patch file with your changes (TortoiseSVN->Create Patch) and post it here. That we, we can look at your changes without checking anything in.

Also, instead of calling DelThruster when the thruster already exists, try updating the thruster values without deleting the thruster. I'm wondering if the thruster index is used somewhere, and deleting the thruster is causing issues.
 
Thanks for the sugestions, but I managed to find the problem!
I logged in sometime ago to write about my failure to find problem, but decided to test one more thing hitting the "Submit Reply" button and now I can tell you about the problem itself.
Basicaly I was sending -1.#IND00 to a SetThrusterLevel call, then sometime later it blew up... I had the math to control the vent level all worked out for when the valves were open, but if they were closed -> division by 0... :facepalm:

Lesson learned: use more asserts!!! :lol:
 
Thanks for the sugestions, but I managed to find the problem!
I logged in sometime ago to write about my failure to find problem, but decided to test one more thing hitting the "Submit Reply" button and now I can tell you about the problem itself.
Basicaly I was sending -1.#IND00 to a SetThrusterLevel call, then sometime later it blew up... I had the math to control the vent level all worked out for when the valves were open, but if they were closed -> division by 0... :facepalm:

Lesson learned: use more asserts!!! :lol:
Great news then! How are things coming along besides that little coding mistake?

---------- Post added at 06:03 AM ---------- Previous post was at 04:42 AM ----------

I'm working on adding the T0 umbilical panels to the aft compartment and I was wondering if I should add the P/L LOX F/D cut out to the LOX T0 umbilical panel? The P/L LOX F/D would have been used for Centaur LOX F/D on the missions that would have carried it.

The P/L LOX F/D would have been between the MPS LOX F/D and the Midbody Purge Circuit cut out.
 
I know one thing. Don't fly this near my ISS AtoZ.:rolleyes:
 
LH2 umbilical panel done and aligned:

New_orbiter_22.jpg


---------- Post added at 10:34 PM ---------- Previous post was at 09:06 PM ----------

LOX umbilical panel now integrated with the orbiter:

New_orbiter_23.jpg
 
Great news then! How are things coming along besides that little coding mistake?

---------- Post added at 06:03 AM ---------- Previous post was at 04:42 AM ----------

I'm working on adding the T0 umbilical panels to the aft compartment and I was wondering if I should add the P/L LOX F/D cut out to the LOX T0 umbilical panel? The P/L LOX F/D would have been used for Centaur LOX F/D on the missions that would have carried it.

The P/L LOX F/D would have been between the MPS LOX F/D and the Midbody Purge Circuit cut out.

Right now I'm trying to finish all of the dump logic and get it to look real. Still have some work to do in the controller and it's software, and probably will have to re-work the He system to get it to all that it should, and also have to modify the logic for the limit switch because what I found only works for 1EO, and probalby some other small things. Also I notice that there are some unused code and variables for the SSMEs in the Atlantis class, and I will try to do a little cleanup of that one of this days.

Coming back to the switch/GPC/system interactions, I was thinking of having a SimpleGPCSoftware class that "listens" to the switches and relays their position to the other SW, and also commands valves and motors based on the input from the SW, something like an "IO module". I think there is something like this in the real thing (at least on the switch side), but I want to throw it for discussion.

About the Centaur umbilical I say add it, sooner or later we'll get there! (Hopefully there is a way to put a cover in it, so it's only exposed in the missions that need it.)
 
Donamy: How are thing progressing on your end? The orbiter mesh rapidly coming to a close on my end, so I'd like an update.
 
I can't get the OMS to fit to your texture, maybe you should just use the one I sent you. And that's all I have time for right now.
 
I can't get the OMS to fit to your texture, maybe you should just use the one I sent you. And that's all I have time for right now.
Thanks for the update, that was what I was looking for. I'll slow down things on my end so the project would be sitting in idle for a long time.
 
How could it possibly slow down ?
 
How could it possibly slow down ?
I'm still waiting for the refurbed PLBDs/radiator panels and the corrected PLB bulkhead textures. Those are the pacing items right now. I need them so I can fit-check the RMS, OBSS and Ku-band DA.
 
And the list goes on and on ....
 
And the list goes on and on ....
I guess I have been asking a bit much of you. I can promise you that the doors and radiator panels are the very last mesh work required on your end for the new orbiter to become operational.

And even you must agree that the current FWD bulkhead texture needs to be updated to work with the new orbiter.
 
Just an orbiter update: While doing some troubleshooting on why the new forward end OMS pod texture wouldn't fit, I discovered that the aft PLB(XO1307) bulkhead had the wrong shape where it interfaces with the PLBDs. This means that the texture for the bulkhead texture won't fit anymore as it it is made to fit the wrongly-shaped mesh.

It will take some time to fix this.
 
Development delays? I think those numbers are transposed. We might make April 2031 at this rate. :rolleyes:
 
Back
Top