Board index FlightGear Development Spaceflight

Space Shuttle - Development

Discussion about development and usage of spacecraft

Re: Space Shuttle - Development

Postby Hooray » Sun Jul 12, 2020 7:15 am

You are right, I only responded to what I quoted - the first phrase read "Is there a way to render a font bold ( maybe with font weight ) without editing the font itself ( like a liberation monobold)" - thus, I shared an approach that works around limitations in our Canvas/SVG handling, by going through an alternate path, via librsvg/cairo.

My answer wasn't about any particular font at all.

This alternative obviously cannot work around limitations in the underlying font files, but it can work around issues in svg.nas - OSG/OSGText, and given just how sophisticated the shuttle has become over the years, the day may come where you realize that what I shared here may not be immediately useful to deal with said SSU font specifically, but that it may still be very useful to work around limitations in svg.nas and osgText specifically.

Until then, sorry for the noise :wink:


(On the other hand, didn't someone also mention that a rasterized font could be procedurally made italic (or bold) using a corresponding shader, i.e. without editing the font file ? :lol: )
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11836
Joined: Tue Mar 25, 2008 8:40 am

Re: Space Shuttle - Development

Postby GinGin » Mon Jul 13, 2020 6:57 pm

Thorsten wrote in Sat Jul 11, 2020 6:03 am:We don't do per GPC fault messages though (which is why GPC faults aren't properly messaged...) - that's really ugly to do because it increases the load of the fault detection routine by a large factor (rather than checking whether a fault occurred, we'd need to check in addition whether a GPC is on, powered, functional. what software it holds,...).



Ah ok I see, it makes sense.
How Heavy would it be ?


We do different fault messages for PASS and BFS though, so the detection routines have three options

a) announce PASS only
b) announce BFS only
c) announce PASS and BFS


Very interesting.
I had another deep look in the cws.nas, and I understand better the logic now.
We can assume that BFS will always be GPC 5 and SM GPC 4 for now.

In OPS 1,6 and 3, Fault detection by the BFS with custom messages
OPS 2, GNC fault by GNC GPC (1) and SM fault by SM GPC (4)

I listed all the fault messages that are worth to implement with currently available failures, that will be a nice addition :)




wlbragg wrote in Sat Jul 11, 2020 5:55 pm:Animated objects (you probably don't care about these names)

If you change the property names/paths make sure you change them in both the switch animations in cockpit-detailed (lines 3724 to 4090) and in the SpaceShuttle-common.xml file lines (649 to 656)



Perfect Wayne, thanks.

For the bold thing, I edited directly the weight in the font software.
GinGin
 
Posts: 1044
Joined: Wed Jul 05, 2017 10:41 am
Location: Paris
Callsign: Gingin

Re: Space Shuttle - Development

Postby Thorsten » Tue Jul 14, 2020 5:45 am

We can assume that BFS will always be GPC 5 and SM GPC 4 for now.


I don't think you need to do that, there ought to be a relatively cheap function call in the GPC management class which returns you the number of the GPC which runs BFS or SM (if there is any).

So to the degree that they run different software, we can do GPC-specific messaging - we just can't distinguish between any two PASS running GPCs inside the set.
Thorsten
 
Posts: 11648
Joined: Mon Nov 02, 2009 8:33 am

Re: Space Shuttle - Development

Postby GinGin » Tue Jul 14, 2020 7:44 am

Thorsten wrote in Tue Jul 14, 2020 5:45 am:
I don't think you need to do that, there ought to be a relatively cheap function call in the GPC management class which returns you the number of the GPC which runs BFS or SM (if there is any).

.


That is even better.
Like that, the fault message will contain the proper GPC that runs SM in OPS 2 or BFS elsewhere.
GinGin
 
Posts: 1044
Joined: Wed Jul 05, 2017 10:41 am
Location: Paris
Callsign: Gingin

Re: Space Shuttle - Development

Postby GinGin » Wed Jul 29, 2020 9:06 am

I started to implement new fault messages.
I discovered failures that are implemented and I wasnt even aware of , what a sim !! :)

First, I just changed the fault message placement and added a " type" argument for the function ( that allows to specify better the fault, I found a whole doc about that, so lets go)

Code: Select all

var create_fault_message = func (sys_string, type, gpc_id, class, sw = "ALL"){

#MET displayed for fault

var time_string = getprop("/fdm/jsbsim/systems/timer/MET-string");
var time_string_minimised = substr(time_string, 4);

var backup_marker = " ";
if (class == 2) {backup_marker = "*";}

var msg_string = sys_string~type~"   "~backup_marker~"  "~gpc_id~"                 "~time_string_minimised;
var msg_string_long = sys_string~type~"   "~backup_marker~"       "~gpc_id~"     "~time_string;



Image

The logic coded by Thorsten is already very accurate ( PASS , BFS or Both)
I just have to adjust some messages, and to add inspection groups ( APU, HYD, THERMAL faults etc)


I started with electrical group, just to confirm the logic there and to go with the elec panel rework


Here the example of a drop in ac voltage

Either we are in OPS 2 and fault is detected by the SM GPC
The type_test will show for an ac low voltage where is located the fault ( AC bus 1, 2 or 3)

Code: Select all

var cws_inspect_fc_electric = func {

var init_phase = getprop("/fdm/jsbsim/systems/electrical/init-electrical-on");
var major_mode = getprop("/fdm/jsbsim/systems/dps/major-mode");

if (init_phase > 0.0) {init_phase = 1.0;} else {init_phase = 0.0;}

var voltage_ac1 = getprop("/fdm/jsbsim/systems/electrical/ac/voltage");
var voltage_ac2 = getprop("/fdm/jsbsim/systems/electrical/ac[1]/voltage");
var voltage_ac3 = getprop("/fdm/jsbsim/systems/electrical/ac[2]/voltage");

#If OPS 2, PASS SM GPC 4

if ((major_mode == 201) or (major_mode == 202))
   {
   if (((voltage_ac1 < 115.0) or (voltage_ac2 < 115.0) or (voltage_ac3 < 115.0))  and (init_phase == 0.0))
      {
         if (cws_msg_hash.acvolt == 0)
         {

         var type_test = "";
         if (voltage_ac1 < 115.0){type_test = "1    ";}
         else if (voltage_ac2 < 115.0){type_test = "2    ";}
         else if (voltage_ac3 < 115.0){type_test = "3    ";}

         
         create_fault_message("S67 AC VOLTS      ", type_test, 4, 2, "PASS");
         cws_msg_hash.acvolt = 1;
         }
      }   
   }

#If not in OPS 2, BFS SM only GPC 5

else
   {
   if (((voltage_ac1 < 115.0) or (voltage_ac2 < 115.0) or (voltage_ac3 < 115.0))  and (init_phase == 0.0))
      {
         if (cws_msg_hash.acvolt == 0)
         {

         var type_test = "";
         if (voltage_ac1 < 115.0){type_test = "1    ";}
         else if (voltage_ac2 < 115.0){type_test = "2    ";}
         else if (voltage_ac3 < 115.0){type_test = "3    ";}

         
         create_fault_message("SM1 AC VOLTS      ", "1    ", 5, 2, "BFS");
         cws_msg_hash.acvolt = 1;
         }
      }
}



Which gives for a failure in Orbit that layout

Image

And in OPS 1,6,3 with BFS doing the SM task:

Image



When fault is cleared, or an input/output performed, the loop can detect a fault in other ac systems
I was thinking of the possibility to have multiple messages in the same time if 2 ac where out at the same time, but that would require 3 hash.ac volt functions.
So it might be too heavy, especially if we do the same logic for several parameters ( Main Bus, FC, APU etc )

Is the Logic above ok ?


Image
GinGin
 
Posts: 1044
Joined: Wed Jul 05, 2017 10:41 am
Location: Paris
Callsign: Gingin

Re: Space Shuttle - Development

Postby Thorsten » Wed Jul 29, 2020 9:40 am

Yes, the logic looks fine to me.
Thorsten
 
Posts: 11648
Joined: Mon Nov 02, 2009 8:33 am

Re: Space Shuttle - Development

Postby wlbragg » Fri Jul 31, 2020 9:03 pm

Was looking at the interior and realized I never updated the light-maps to allow for the addition of the seats. I burned lm-A1-A2-A3.png without issue, but I can't get lm-F12-F34-L1-R1.png to complete a burn and I don't know where or how to get any feedback from Blender as to what the issue might be. If it wasn't for the fact that lm-A1-A2-A3.png burns fine I would think it was I forgot how to do it. But that's not the case as I successfully burn lm-A1-A2-A3.png. Anyone have a clue why burns don't finish in Blender?
Kansas(2-27-15)/Ohio/Midwest scenery development.
KEQA (2-27-15), 3AU, KRCP Airport Layout
Intel i5 3570K AMDRX480
User avatar
wlbragg
 
Posts: 5607
Joined: Sat Aug 25, 2012 11:31 pm
Location: Kansas (Tornado Alley), USA
Callsign: WC2020
Version: next
OS: Win10/Linux/AMDRX480

Re: Space Shuttle - Development

Postby GinGin » Mon Aug 03, 2020 9:08 am

I animated the already pre existing RCS jet yellow light in model.xml ( for fail on/off RCS jet conditions)
But I just get a yellowish glow
What should I do ?

Code: Select all
<!-- RCS Jet "CW Yellow Light" -->
    <animation>
      <type>select</type>
      <object-name>cw-light-rcs-jet</object-name>
      <condition>
        <or>
          <equals>
            <property>/fdm/jsbsim/systems/cws/rcs-jet</property>
            <value>1</value>
          </equals>
          <equals>
            <property>/fdm/jsbsim/systems/cws/cw-test</property>
            <value>1</value>
          </equals>
        </or>
      </condition>
    </animation>
    <model>
      <name>proc_light_cw-light-rcs-jet</name>
      <path>Effects/procedural_light_cw-light-rcs-jet.xml</path>
      <offsets>
          <x-m>-12.483</x-m>
          <y-m>  0.106</y-m>
          <z-m> -0.430</z-m>
      </offsets>
      <condition>
          <and>
            <or>
              <equals>
                <property>/fdm/jsbsim/systems/cws/rcs-jet</property>
                <value>1</value>
              </equals>
              <equals>
                <property>/fdm/jsbsim/systems/cws/cw-test</property>
                <value>1</value>
              </equals>
            </or>
            <greater-than>
                <property>/sim/rendering/shaders/model</property>
                <value>1</value>
            </greater-than>
          </and>
      </condition>
    </model>



Image


I think I have not finish to play with all those RCS failures :)
The LEAK one during a RCS burn is really interesting

Image
GinGin
 
Posts: 1044
Joined: Wed Jul 05, 2017 10:41 am
Location: Paris
Callsign: Gingin

Re: Space Shuttle - Development

Postby wlbragg » Mon Aug 03, 2020 1:07 pm

I'll take a look at it later this evening, my guess is only the procedural light for the glow is activated. There should also be a text translate or select or material animation for the text label to actually change color. I don't remember off the top of my head which method we used.
Kansas(2-27-15)/Ohio/Midwest scenery development.
KEQA (2-27-15), 3AU, KRCP Airport Layout
Intel i5 3570K AMDRX480
User avatar
wlbragg
 
Posts: 5607
Joined: Sat Aug 25, 2012 11:31 pm
Location: Kansas (Tornado Alley), USA
Callsign: WC2020
Version: next
OS: Win10/Linux/AMDRX480

Re: Space Shuttle - Development

Postby Thorsten » Mon Aug 03, 2020 2:11 pm

Doesn't the test mode light all of them? Aka, shouldn't we have noticed anything odd?
Thorsten
 
Posts: 11648
Joined: Mon Nov 02, 2009 8:33 am

Re: Space Shuttle - Development

Postby GinGin » Mon Aug 03, 2020 3:28 pm

The test mode works well.
I find why I had just the glow.
I had to remove RCS jet light from that list once I "activated" the switch with a correct property


Code: Select all

<!-- CWS  "Lights" -->
    <animation>
        <type>select</type>
        <object-name>cw-light-o2press</object-name>
        <object-name>cw-light-h2press</object-name>
        <object-name>cw-light-o2heater-temp</object-name>
        <object-name>cw-light-ac-overload</object-name>
        <!--<object-name>cw-light-freon-loop</object-name>-->
        <!--<object-name>cw-light-av-bay-cabin-air</object-name>-->
        <object-name>cw-light-imu</object-name>
        <!--<object-name>cw-light-rcs-jet</object-name>-->
        <!--<object-name>cw-light-h2o-loop</object-name>-->
        <object-name>cw-light-rga-accel</object-name>
        <object-name>cw-light-gpc</object-name>
        <!--<object-name>cw-light-oms-kit</object-name>-->
        <object-name>cw-light-payload-caution</object-name>
        <object-name>cw-light-primary-cw</object-name>
        <object-name>cw-light-fcs-channel</object-name>
        <!--<object-name>cw-light-apu-temp</object-name>-->
        <!--<object-name>cw-light-apu-overspeed</object-name>-->
        <!--<object-name>cw-light-apu-underspeed</object-name>-->
        <!--<object-name>cw-light-hyd-press</object-name>-->
        <!--<object-name>cw-light-cabin-atm</object-name>-->
        <!--<object-name>cw-light-air-data</object-name>-->
        <object-name>cw-light-left-rhc</object-name>
        <object-name>cw-light-right-aft-rhc</object-name>
        <object-name>cw-light-payload-warning</object-name>
        <object-name>cw-light-fcs-saturation</object-name>
        <!--<object-name>cw-light-mps</object-name>-->
        <condition>
          <equals>
            <property>/fdm/jsbsim/systems/cws/cw-test</property>
            <value>1</value>
          </equals>
        </condition>
    </animation>

GinGin
 
Posts: 1044
Joined: Wed Jul 05, 2017 10:41 am
Location: Paris
Callsign: Gingin

Previous

Return to Spaceflight

Who is online

Users browsing this forum: No registered users and 4 guests