SSU Development Thread (2.0 to 3.0)

Status
Not open for further replies.

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,916
Reaction score
211
Points
138
Location
Cape
Try this :
 

Attachments

  • Centaur_panel_L10.zip
    185.4 KB · Views: 196

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,919
Reaction score
2,924
Points
188
Website
github.com
I'm gotten all the talkback (in R13L, will to L10 now) and IUS stuff working in the ius-1.0 branch... with only 2 problems so far:
1) there's some animation issue with the tilt table that I'm begining to investigate;
2) the ghost panel issue strikes back! If I add the panel to pgAftPort it doesn't work, but there's no problems in pgAft. Both groups should work in the port workstation.
 

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,916
Reaction score
211
Points
138
Location
Cape
To do what? That texture is just what you see there, single layer.

Shading doesn't look right. It looks more like a 2D panel, not a 3D one.
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
689
Points
203
Shading doesn't look right. It looks more like a 2D panel, not a 3D one.
Actually the SSPs are flat like that. Here's a photo of the same panel configured for payloads of STS-95, HOST and IEH-03. The purpose of the SSPs are to provide payload customers with a standard panel that can be easily reconfigured to suit any requirements. The payload customer submits a proposed SSP layout to NASA which then reviews it and if it meets all the requirements, then they'll reconfig the SSP to meet that particular customer's layout.

hostssp2.jpg


---------- Post added at 08:08 PM ---------- Previous post was at 08:02 PM ----------

Here's the schematic for the SSP when it is not configured for any mission:

SSP%20layout.jpg


---------- Post added at 08:10 PM ---------- Previous post was at 08:08 PM ----------

Here's the final photo I have of an SSP, this time STS-49 the Intelsat VI Reboost mission:

2010_Day_05-01C-SSM_Consoles-DSC_9479.JPG
 
Last edited:

SiameseCat

Addon Developer
Addon Developer
Joined
Feb 9, 2008
Messages
1,699
Reaction score
1
Points
0
Location
Ontario
I think I will then pick up the work on the Centaur again and use the new talkback code there as well for its panel, so both is based on the same code-base.

On a parallel track, I think I have the research together to create a second prototype for a Java FX 8 based mission editor, after the quick&dirty GUI prototype there. If consensus goes against Java FX (I count the vote as 1/1/1 right now), I would just keep it general and without too many SSU relations.
I'd prefer C# to Java, mainly so we don't have to install the JDK (and so users don't need to install the JRE). I also prefer C# to Java as a language, although I don't have particularly strong feelings there. I haven't done much GUI programming in either C# or Java, so I'm not sure if there's a big difference there.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
I'd prefer C# to Java, mainly so we don't have to install the JDK (and so users don't need to install the JRE). I also prefer C# to Java as a language, although I don't have particularly strong feelings there. I haven't done much GUI programming in either C# or Java, so I'm not sure if there's a big difference there.

Well, the big issue isn't really the GUI programming. Both use XML files for defining stuff, both follow similar approaches there, both use some sort of view controller pattern to connect GUI and data model, both know data bindings.

The devil is in the detail: C# has no production grade dependency injection framework, the most stable around is NInject. In the Java world, Google Guice has a very strong support now, parallel to Spring (which is much more bloated IMHO than Guice). Should we move towards a modular mission designer, all attempts in the direction of modular systems stopped in C#, while Java is the native language of OSGI bundles and containers like Apache Felix (used in the Glassfish application server) or Eclipse Equinox.

Same with testing frameworks - C# has the minimum necessary, but everything comfortable either costs serious money or is simply missing, while Java means having to choose from a wide range of tools.

Also, the use of partial classes in the standard WPF programming sucks enormously compared to the JavaFX approach of using annotations to bind view controller and XML. The partial classes hide a lot of implementation, which makes debugging pretty time consuming.

You are right about the JDK there, though a Netbeans 8.0.2 installation brings everything you need and allows installing the current reference FXML8 editor as plug-in.

I learned some lot of C#/WPF to the JavaFX8 stuff I learned before, so I am pretty flexible there. Would I have to decide alone, I would take Java for the reasons stated above. It is not so much about the differences in the languages, than about the tools available around both.
 
Last edited:

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,919
Reaction score
2,924
Points
188
Website
github.com
Remember to also subtract the coordinates of the old state from the texture coordinates so you are not shifting the texture with every update.
Because now every update is done based on the original mesh (instead of the modified by a previous update), there is no need to subtract the old state. Instead we need to subtract the default state, which so far is barberpole = (0,0), so it still worked perfectly without any subtraction. But if the default isn't barberpole then a subtraction is needed, so the subtraction (of the default state) is back in.

EDIT... since new and malloc() are pretty slow, would it be possible to use a static vertex buffer in the DLL or must we create a new array of vertex coordinates in every modification?
Done.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
@DaveS: Working on the FSS OWP animation, I discovered I could need some measurements of the mesh to fix them. Can you get me the following distances:

FSS_OWP_BRACKET_LENGTH: Length of the OWP bracket from OWP rotation axis to strut axis.
FSS_OWP_STRUT_OFFSET: Offset of the strut rail from the FSS
FSS_OWP_STRUT_LENGTH: Length of the strut that connects OWP and FSS rail.
FSS_OWP_STRUT_NULL_ANGLE: Initial angle of the strut in the mesh, relative to the OWP

Bracket is the part that carries the actual OWP, strut is the part that connects the bracket to the FSS rail.
 
Last edited:

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
689
Points
203
FSS_OWP_BRACKET_LENGTH: I don't quite understand this one.
FSS_OWP_STRUT_OFFSET: 23.8144 //Is this measured from the center point of the FSS (coordinate 0,0,0)?
FSS_OWP_STRUT_LENGTH: 17.9491//Entire length of the rail
FSS_OWP_STRUT_NULL_ANGLE: 83°s
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
FSS_OWP_BRACKET_LENGTH: I don't quite understand this one.
FSS_OWP_STRUT_OFFSET: 23.8144 //Is this measured from the center point of the FSS (coordinate 0,0,0)?
FSS_OWP_STRUT_LENGTH: 17.9491//Entire length of the rail
FSS_OWP_STRUT_NULL_ANGLE: 83°s

I'll make a drawing on this one, to explain it easier.

---------- Post added at 08:27 PM ---------- Previous post was at 07:46 PM ----------

Here it is:

picture.php


The bold parts are the required constants
 
Last edited:

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
689
Points
203
These are what I get when I have measured out things in the mesh:
FSS_OWP_BRACKET_LENGTH: 5.6557
FSS_OWP_STRUT_OFFSET: 17.305
FSS_OWP_STRUT_LENGTH: 17.9491
FSS_OWP_STRUT_NULL_ANGLE: 83°s
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
These are what I get when I have measured out things in the mesh:
FSS_OWP_BRACKET_LENGTH: 5.6557
FSS_OWP_STRUT_OFFSET: 17.305
FSS_OWP_STRUT_LENGTH: 17.9491
FSS_OWP_STRUT_NULL_ANGLE: 83°s

Are you sure about the FSS_OWP_BRACKET_LENGTH? Its only half the length it was before.

Code:
const double FSS_OWP_BRACKET_LENGTH = 12.4;
const double FSS_OWP_STRUT_LENGTH = 18.02;
const double FSS_OWP_STRUT_OFFSET = 13.427;
const double FSS_OWP_STRUT_NULL_ANGLE = 88.5; //angle in degrees
 

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
689
Points
203
You're correct, I read the measurement wrong. The correct number for FSS_OWP_BRACKET_LENGTH is 11.8745.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
You're correct, I read the measurement wrong. The correct number for FSS_OWP_BRACKET_LENGTH is 11.8745.

That number makes more sense to me. Is the definition of the angle correct or did I analyse this wrong in the code?

EDIT: Is wrong, need to calculate 180 - 83° for the proper angle.

EDIT2: Is more wrong than that... back to the pen & paper.
 
Last edited:

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,624
Reaction score
2,343
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Did you make this? If so, then you just won a place in the "manual writing group" as "head diagram designer". :thumbup:

Yes, a quick job with Inkscape.

But its wrong - I have a systematic linear growth of the distance between OWP strut and its rail while extending - I must have calculated some number wrong.

I know that basic trigonometry is applied in the calculation... and still I must have done something wrong there. :facepalm:

Code:
double StrutAngle=acos((FSS_OWP_STRUT_OFFSET-YPos)/FSS_OWP_STRUT_LENGTH)+angle;

EDIT: Found one error... exchanged two values in the definition

EDIT2: Still the distance is growing - the measurements are still off the geometry it seems. So back to the math.

EDIT3: Using the original value for FSS_OWP_STRUT_OFFSET results in closer results, but still the distance to the rail grows... is the rail really parallel to the Z axis?

EDIT4: Calculating with DaveS numbers, I got a Null angle of 72.39°, which is much closer, but there is still a small error between animation and model.

EDIT 5: Using the animation coordinates, I got a bit closer, Null angle now 72.4545°, but still the strut leaves the rail significant at the end of the extension. FSS_OWP_STRUT_OFFSET or FSS_OWP_STRUT_LENGTH must still be wrong.

---------- Post added at 11:08 PM ---------- Previous post was at 09:19 PM ----------

Updated the drawing to the latest findings.

picture.php


The top image shows the constants used in the animation calculation
the bottom image shows the local variables used for calculating the animation state of the strut.

The X coordinate of the FSS OWP rail would be interesting for me, as well as the accurate length of the strut.
 
Last edited:

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,434
Reaction score
689
Points
203
The strut length if you mean the east/west length is 17.9491. The X pos of the rail is 7.1742.
 
Status
Not open for further replies.
Top