SSU Development Thread (2.0 to 3.0)

Status
Not open for further replies.

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Can confirm this. I thin what we have here is a very tricky Orbiter bug and not an SSU bug.

I agree - the bug manifests itself differently depending on the external view mode, which suggests it is not depending on our inputs. Possibly it is a DX9 client bug, that is what I use there.

I would suggest putting the ticket on hold for later and report the behaviour for further research - maybe we are not the only add-on with that behavior, we could also just make test with just a simple VC and an inverted camera.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
I agree - the bug manifests itself differently depending on the external view mode, which suggests it is not depending on our inputs. Possibly it is a DX9 client bug, that is what I use there.
No, it's an Orbiter bug as it is the same in the inline version.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
No, it's an Orbiter bug as it is the same in the inline version.

OK, thats good to know. So we just need a second test with another add-on and such a default view direction.

Quicktest with the Black Dart did not reproduce bug, because the VC position is not saved.
 
Last edited:

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
OK, thats good to know. So we just need a second test with another add-on and such a default view direction.

Quicktest with the Black Dart did not reproduce bug, because the VC position is not saved.

I think it was when the VC position save was introduced, that the MFD menu overwritting problem showed up. It might not be possible to implement this feature, or it might have to be done in a different way. It is worth checking (by going back to when it was introduced) if this is related to the other VC problems: the panel A8 not working when payloads are latched in the PLB, and the panel behind the current view getting the mouse events.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
I think it was when the VC position save was introduced, that the MFD menu overwritting problem showed up. It might not be possible to implement this feature
Well, it comes from the Crawler where it works just fine.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
Well, it comes from the Crawler where it works just fine.

OK.
BTW: I tested earlier this month, and the crawler has the panel behind getting the mouse events problem as well. Tested that on DG and SH-A and couldn't replicate the issue.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I also doubt it is causing the problems itself.

We have some lot of ugliness in the shuttle orbiter code, I would not be surprised if the problems actually come from calling a SSU function in a place, in which was never designed to be used.

---------- Post added at 11:33 PM ---------- Previous post was at 11:22 PM ----------

Is ticket #49 still an issue?
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
I also doubt it is causing the problems itself.

We have some lot of ugliness in the shuttle orbiter code, I would not be surprised if the problems actually come from calling a SSU function in a place, in which was never designed to be used.

---------- Post added at 11:33 PM ---------- Previous post was at 11:22 PM ----------

Is ticket #49 still an issue?
Not really. We'll get the remaining masses once we add those systems.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Not really. We'll get the remaining masses once we add those systems.

Ok, then I will close the ticket, we can open a new one, should we get divergences from new subsystems.

---------- Post added at 11:41 PM ---------- Previous post was at 11:38 PM ----------

Ticket #59 "Incorrect switch configuration in panel R2" requires changes to the VC mesh as well - how is the status there?
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
Ticket #59 "Incorrect switch configuration in panel R2" requires changes to the VC mesh as well - how is the status there?

I'd leave that for when the panels are separated. We could then have both versions.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Next ticket review: #76 "Orbiter/ET sep motions"

Just launched and focussed camera on the ET, this looks OK.

I will now look for the ET separation trajectory reference. I suspect that everything is correct as we do it and the effect of a rotating orbiter in the ET camera view caused by camera perspective.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
Next ticket review: #76 "Orbiter/ET sep motions"

Just launched and focussed camera on the ET, this looks OK.

I will now look for the ET separation trajectory reference. I suspect that everything is correct as we do it and the effect of a rotating orbiter in the ET camera view caused by camera perspective.
I also think it's OK. Any problems that might exist there are related to the lack of a complete/correct RCS implementation, and I have that on my list for the next version or so.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I also think it's OK. Any problems that might exist there are related to the lack of a complete/correct RCS implementation, and I have that on my list for the next version or so.

As far as I can see, we already use proper RCS thruster coordinates. The only thing we need to review maybe is the use of the thrusters by the DAP

---------- Post added at 12:18 AM ---------- Previous post was at 12:13 AM ----------

This short report might be interesting for getting better autopilot parameters...

http://hdl.handle.net/2060/20110003654
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
As far as I can see, we already use proper RCS thruster coordinates. The only thing we need to review maybe is the use of the thrusters by the DAP
Are we? Are you sure that we use the correct coordinates for the thrusters and not the exhausts? There's a difference you know. From what I can tell, it's the latter. We're still using the idealised thruster layout from the default Atlantis.

This is why this ticket is still open: https://sourceforge.net/p/shuttleultra/tickets/18/
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Are we? Are you sure that we use the correct coordinates for the thrusters and not the exhausts? There's a difference you know. From what I can tell, it's the latter. We're still using the idealised thruster layout from the default Atlantis.

This is why this ticket is still open: https://sourceforge.net/p/shuttleultra/tickets/18/

Code:
void Atlantis::CreateFRCS(const VECTOR3 &ref_pos)
{
	//=================================================================================================
	// Downwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1D] == NULL) {
		thManFRCS1[RCS_F1D] = CreateThruster (ref_pos + RCS_F1D_OFS, RCS_F1D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1D]);
	}
	if(thManFRCS2[RCS_F2D] == NULL) {
		thManFRCS2[RCS_F2D] = CreateThruster (ref_pos + RCS_F2D_OFS, RCS_F2D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2D]);
	}
	if(thManFRCS3[RCS_F3D] == NULL)	{
		thManFRCS3[RCS_F3D] = CreateThruster (ref_pos + RCS_F3D_OFS, RCS_F3D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3D]);
	}
	if(thManFRCS4[RCS_F4D] == NULL)	{
		thManFRCS4[RCS_F4D] = CreateThruster (ref_pos + RCS_F4D_OFS, RCS_F4D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS4[RCS_F4D]);
	}
	//=================================================================================================
	// Upwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1U] == NULL) {
		thManFRCS1[RCS_F1U] = CreateThruster (ref_pos + RCS_F1U_OFS, RCS_F1U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1U]);
	}
	if(thManFRCS2[RCS_F2U] == NULL) {
		thManFRCS2[RCS_F2U] = CreateThruster (ref_pos + RCS_F2U_OFS, RCS_F2U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2U]);
	}
	if(thManFRCS3[RCS_F3U] == NULL)	{
		thManFRCS3[RCS_F3U] = CreateThruster (ref_pos + RCS_F3U_OFS, RCS_F3U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3U]);
	}
	//=================================================================================================
	// Left firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1L] == NULL) {
		thManFRCS1[RCS_F1L] = CreateThruster (ref_pos + RCS_F1L_OFS, RCS_F1L_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1L]);
	}
	if(thManFRCS2[RCS_F3L] == NULL) {
		thManFRCS2[RCS_F3L] = CreateThruster (ref_pos + RCS_F3L_OFS, RCS_F3L_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F3L]);
	}
	//=================================================================================================
	// Right firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F2R] == NULL) {
		thManFRCS1[RCS_F2R] = CreateThruster (ref_pos + RCS_F2R_OFS, RCS_F2R_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F2R]);
	}
	if(thManFRCS2[RCS_F4R] == NULL) {
		thManFRCS2[RCS_F4R] = CreateThruster (ref_pos + RCS_F4R_OFS, RCS_F4R_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F4R]);
	}
	//=================================================================================================
	// Forwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1F] == NULL) {
		thManFRCS1[RCS_F1F] = CreateThruster (ref_pos + RCS_F1F_OFS, RCS_F1F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1F]);
	}
	if(thManFRCS2[RCS_F2F] == NULL) {
		thManFRCS2[RCS_F2F] = CreateThruster (ref_pos + RCS_F2F_OFS, RCS_F2F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2F]);
	}
	if(thManFRCS3[RCS_F3F] == NULL)	{
		thManFRCS3[RCS_F3F] = CreateThruster (ref_pos + RCS_F3F_OFS, RCS_F3F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3F]);
	}
}

Is supposed to be used if "bUseRealRCS" is set to true. It looks like the implementation is only partially done.... I would say I grab ticket 18 and add it to the current milestone for further fixing and testing there.
 
Last edited:

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
As far as I can see, we already use proper RCS thruster coordinates. The only thing we need to review maybe is the use of the thrusters by the DAP

---------- Post added at 12:18 AM ---------- Previous post was at 12:13 AM ----------

This short report might be interesting for getting better autopilot parameters...

http://hdl.handle.net/2060/20110003654

But at ET separation there are 6 jets firing at the back and 4 at the front. Add to that the c.g. position, and the real orbiter might actually have had an moment added to it.
Given that I have some free time now from the ius-1.0 branch, I'll move back to the trunk to fix ticket 86 and do more research on the mouse events going where they shouldn't go.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
Code:
void Atlantis::CreateFRCS(const VECTOR3 &ref_pos)
{
	//=================================================================================================
	// Downwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1D] == NULL) {
		thManFRCS1[RCS_F1D] = CreateThruster (ref_pos + RCS_F1D_OFS, RCS_F1D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1D]);
	}
	if(thManFRCS2[RCS_F2D] == NULL) {
		thManFRCS2[RCS_F2D] = CreateThruster (ref_pos + RCS_F2D_OFS, RCS_F2D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2D]);
	}
	if(thManFRCS3[RCS_F3D] == NULL)	{
		thManFRCS3[RCS_F3D] = CreateThruster (ref_pos + RCS_F3D_OFS, RCS_F3D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3D]);
	}
	if(thManFRCS4[RCS_F4D] == NULL)	{
		thManFRCS4[RCS_F4D] = CreateThruster (ref_pos + RCS_F4D_OFS, RCS_F4D_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS4[RCS_F4D]);
	}
	//=================================================================================================
	// Upwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1U] == NULL) {
		thManFRCS1[RCS_F1U] = CreateThruster (ref_pos + RCS_F1U_OFS, RCS_F1U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1U]);
	}
	if(thManFRCS2[RCS_F2U] == NULL) {
		thManFRCS2[RCS_F2U] = CreateThruster (ref_pos + RCS_F2U_OFS, RCS_F2U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2U]);
	}
	if(thManFRCS3[RCS_F3U] == NULL)	{
		thManFRCS3[RCS_F3U] = CreateThruster (ref_pos + RCS_F3U_OFS, RCS_F3U_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3U]);
	}
	//=================================================================================================
	// Left firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1L] == NULL) {
		thManFRCS1[RCS_F1L] = CreateThruster (ref_pos + RCS_F1L_OFS, RCS_F1L_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1L]);
	}
	if(thManFRCS2[RCS_F3L] == NULL) {
		thManFRCS2[RCS_F3L] = CreateThruster (ref_pos + RCS_F3L_OFS, RCS_F3L_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F3L]);
	}
	//=================================================================================================
	// Right firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F2R] == NULL) {
		thManFRCS1[RCS_F2R] = CreateThruster (ref_pos + RCS_F2R_OFS, RCS_F2R_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F2R]);
	}
	if(thManFRCS2[RCS_F4R] == NULL) {
		thManFRCS2[RCS_F4R] = CreateThruster (ref_pos + RCS_F4R_OFS, RCS_F4R_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F4R]);
	}
	//=================================================================================================
	// Forwards firing thrusters 
	//=================================================================================================
	if(thManFRCS1[RCS_F1F] == NULL) {
		thManFRCS1[RCS_F1F] = CreateThruster (ref_pos + RCS_F1F_OFS, RCS_F1F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS1[RCS_F1F]);
	}
	if(thManFRCS2[RCS_F2F] == NULL) {
		thManFRCS2[RCS_F2F] = CreateThruster (ref_pos + RCS_F2F_OFS, RCS_F2F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS2[RCS_F2F]);
	}
	if(thManFRCS3[RCS_F3F] == NULL)	{
		thManFRCS3[RCS_F3F] = CreateThruster (ref_pos + RCS_F3F_OFS, RCS_F3F_DIR, ORBITER_RCS_THRUST, ph_frcs, ORBITER_RCS_ISP0, 
			ORBITER_RCS_ISP1);
		AddPrimaryRCSExhaust(thManFRCS3[RCS_F3F]);
	}
}
As far as I can tell that code is not used. And it is only for the FRCS not the ARCS. It might have something to do with the UseRealRCS option in the SpaceShuttleUltra.cfg file.

---------- Post added at 12:30 AM ---------- Previous post was at 12:27 AM ----------

As far as I can tell that code is not used. And it is only for the FRCS not the ARCS. It might have something to do with the UseRealRCS option in the SpaceShuttleUltra.cfg file.
And I just confirmed that it isn't used by default as it is set to FALSE and setting it to TRUE causes a CTD upon loading.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,663
Reaction score
2,383
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I created ticket #102 and grabbed it.

https://sourceforge.net/p/shuttleultra/tickets/102/

If anybody has requirements to be included in the ticket for implementation and testing, state them now, I will update the ticket with the more accurate requirements.

DaveS: It could be possible I make a research ticket for you, for the accurate RCS thruster positions and directions. We have the exhaust defined below as literals, but if something is not accurate there, I need corrected reference data there. I could also just get the specifications from the ODB, but that data is only accurate to the mesh that we use.

I think we agree that the current implementation of the RCS is functional, but inaccurate.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,956
Reaction score
2,976
Points
188
Website
github.com
I created ticket #102 and grabbed it.

https://sourceforge.net/p/shuttleultra/tickets/102/

If anybody has requirements to be included in the ticket for implementation and testing, state them now, I will update the ticket with the more accurate requirements.

DaveS: It could be possible I make a research ticket for you, for the accurate RCS thruster positions and directions. We have the exhaust defined below as literals, but if something is not accurate there, I need corrected reference data there. I could also just get the specifications from the ODB, but that data is only accurate to the mesh that we use.

Are the DAPs going to work well after? I say leave this RCS business for after the release (and maybe for the release after that). It works, it might not be perfect, but it works.
I think tickets 74, 83 and 99 are the critical ones for this release.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,459
Reaction score
712
Points
203
Are the DAPs going to work well after? I say leave this RCS business for after the release (and maybe for the release after that). It works, it might not be perfect, but it works.
I think tickets 74, 83 and 99 are the critical ones for this release.
I would leave out 74 as we don't have a de-orbit calculator. And until we can do at least STS-1 without exiting the sim, more runways aren't doing us any good.
 
Status
Not open for further replies.
Top