SHARE
TWEET

Untitled

a guest Aug 30th, 2013 28 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # ==============================================================================
  2. # Boeing 747-400 EICAS by Gijs de Rooy
  3. # ==============================================================================
  4.  
  5. var eng1n1 = {};
  6. var eng1n1ref = {};
  7. var eng2n1 = {};
  8. var eng2n1ref = {};
  9. var eng3n1 = {};
  10. var eng3n1ref = {};
  11. var eng4n1 = {};
  12. var eng4n1ref = {};
  13. var eng1n1ref = {};
  14. var text5655 = {};
  15. var msgMemo = {};
  16. var msgWarning = {};
  17. var msgCaution = {};
  18. var msgAdvisory = {};
  19. var eng1n1rect = {};
  20. var eng1n1maxLine = {};
  21. var eng1n1refLine = {};
  22. var eng1n1rpmLine = {};
  23. var eng2n1maxLine = {};
  24. var eng2n1refLine = {};
  25. var eng2n1rpmLine = {};
  26. var eng3n1maxLine = {};
  27. var eng3n1refLine = {};
  28. var eng3n1rpmLine = {};
  29. var eng4n1maxLine = {};
  30. var eng4n1refLine = {};
  31. var eng4n1rpmLine = {};
  32. var canvas_group = {};
  33. var primary_dialog = {};
  34. var eng1egt = {};
  35. var eng2egt = {};
  36. var eng3egt = {};
  37. var eng4egt = {};
  38. var fuelToRemain = {};
  39. var fuelToRemainL = {};
  40. var fuelTotal = {};
  41. var fuelTemp = {};
  42. var fuelTempL = {};
  43. var text4283 = {};
  44. var flapsLine = {};
  45. var flapsL = {};
  46. var flapsBox = {};
  47. var eng1nai = {};
  48. var eng2nai = {};
  49. var eng3nai = {};
  50. var eng4nai = {};
  51. var wai = {};
  52. var path3104 = {};
  53. var tf_scale = {};
  54.  
  55. var canvas_primary = {
  56.         new: func(canvas_group)
  57.         {
  58.                 print("Boeing 747-400 EICAS: primary");
  59.  
  60.                 var m = { parents: [canvas_primary] };
  61.                
  62.                 var eicasP = canvas_group;
  63.                
  64.                 var font_mapper = func(family, weight)
  65.                 {
  66.                         if( family == "Liberation Sans" and weight == "normal" )
  67.                                 return "LiberationFonts/LiberationSans-Regular.ttf";
  68.                 };
  69.                
  70.                 canvas.parsesvg(eicasP, "Aircraft/747-400/Models/Cockpit/Instruments/EICAS/primary.svg", {'font-mapper': font_mapper});
  71.                
  72.                 eng1n1 = eicasP.getElementById("eng1n1");
  73.                 eng1n1ref = eicasP.getElementById("eng1n1ref");
  74.                 eng2n1 = eicasP.getElementById("eng2n1");
  75.                 eng2n1ref = eicasP.getElementById("eng2n1ref");
  76.                 eng3n1 = eicasP.getElementById("eng3n1");
  77.                 eng3n1ref = eicasP.getElementById("eng3n1ref");
  78.                 eng4n1 = eicasP.getElementById("eng4n1");
  79.                 eng4n1ref = eicasP.getElementById("eng4n1ref");
  80.                 text5655 = eicasP.getElementById("text5655");
  81.                 msgMemo = eicasP.getElementById("msgMemo");
  82.                 msgWarning = eicasP.getElementById("msgWarning");
  83.                 msgCaution = eicasP.getElementById("msgCaution");
  84.                 msgAdvisory = eicasP.getElementById("msgAdvisory");
  85.                 eng1n1rect = eicasP.getElementById("eng1n1rect");
  86.                 eng1n1maxLine = eicasP.getElementById("eng1n1maxLine");
  87.                 eng1n1refLine = eicasP.getElementById("eng1n1refLine");
  88.                 eng1n1rpmLine = eicasP.getElementById("eng1n1rpmLine");
  89.                 eng2n1maxLine = eicasP.getElementById("eng2n1maxLine");
  90.                 eng2n1refLine = eicasP.getElementById("eng2n1refLine");
  91.                 eng2n1rpmLine = eicasP.getElementById("eng2n1rpmLine");
  92.                 eng3n1maxLine = eicasP.getElementById("eng3n1maxLine");
  93.                 eng3n1refLine = eicasP.getElementById("eng3n1refLine");
  94.                 eng3n1rpmLine = eicasP.getElementById("eng3n1rpmLine");
  95.                 eng4n1maxLine = eicasP.getElementById("eng4n1maxLine");
  96.                 eng4n1refLine = eicasP.getElementById("eng4n1refLine");
  97.                 eng4n1rpmLine = eicasP.getElementById("eng4n1rpmLine");
  98.                 rect3032 =  eicasP.getElementById("rect3032");
  99.                 eng1egt =  eicasP.getElementById("eng1egt");
  100.                 eng2egt =  eicasP.getElementById("eng2egt");
  101.                 eng3egt =  eicasP.getElementById("eng3egt");
  102.                 eng4egt =  eicasP.getElementById("eng4egt");
  103.                 fuelToRemain =  eicasP.getElementById("fuelToRemain");
  104.                 fuelToRemainL =  eicasP.getElementById("fuelToRemainL");
  105.                 fuelTemp =  eicasP.getElementById("fuelTemp");
  106.                 fuelTempL =  eicasP.getElementById("fuelTempL");
  107.                 fuelTotal =  eicasP.getElementById("fuelTotal");
  108.                 text4283=  eicasP.getElementById("text4283");
  109.                 flapsLine =  eicasP.getElementById("flapsLine");
  110.                 flapsL =  eicasP.getElementById("flapsL");
  111.                 flapsBox =  eicasP.getElementById("flapsBox");
  112.                 eng1nai=  eicasP.getElementById("eng1nai");
  113.                 eng2nai=  eicasP.getElementById("eng2nai");
  114.                 eng3nai=  eicasP.getElementById("eng3nai");
  115.                 eng4nai=  eicasP.getElementById("eng4nai");
  116.                 wai=  eicasP.getElementById("wai");
  117.                 path3104 = eicasP.getElementById("path3104");
  118.                
  119.                 var c = path3104.getCenter();
  120.                 path3104.createTransform().setTranslation(-c[0], -c[1]);
  121.                 tf_scale = path3104.createTransform();
  122.                 path3104.createTransform().setTranslation(c[0], c[1]);
  123.                
  124.                 return m;
  125.         },
  126.         update: func()
  127.         {      
  128.                 # Engine 1 #
  129.                 if (getprop("controls/engines/engine[0]/reverser")) {
  130.                         eng1n1ref.setText("REV");
  131.                         if (getprop("engines/engine/reverser-pos-norm") != 1) {
  132.                                 eng1n1ref.setColor(1,0.5,0);
  133.                         } else {
  134.                                 eng1n1ref.setColor(0,1.0,0);
  135.                         }
  136.                         eng1n1refLine.hide();
  137.                 } else {
  138.                         eng1n1ref.setText(sprintf("%3.01f",82.5*getprop("controls/engines/engine[0]/throttle")+35));
  139.                         eng1n1refLine.show();
  140.                         eng1n1refLine.setTranslation(0,-150.957*getprop("controls/engines/engine[0]/throttle")-64.043);
  141.                 }
  142.                 eng1n1.setText(sprintf("%3.01f",getprop("engines/engine[0]/n1")));
  143.                 eng1n1maxLine.setTranslation(0,-175);
  144.                 eng1n1rpmLine.setTranslation(0,-215);
  145.                 if (getprop("engines/engine[0]/egt-degf") != nil) {
  146.                         eng1egt.setText(sprintf("%3.0f",(getprop("engines/engine[0]/egt-degf")-32)/1.8));
  147.                         if ((getprop("engines/engine[0]/egt-degf")-32)/1.8 >= 960) {
  148.                                 eng1egt.setColor(1,0,0);
  149.                         } else {
  150.                                 eng1egt.setColor(1,1,1);
  151.                         }
  152.                 }
  153.                 tf_scale.setScale(1, 5*getprop("controls/engines/engine/throttle"));
  154.                
  155.                 # Engine 2 #
  156.                 if (getprop("controls/engines/engine[1]/reverser")) {
  157.                         eng2n1ref.setText("REV");
  158.                         if (getprop("engines/engine[1]/reverser-pos-norm") != 1) {
  159.                                 eng2n1ref.setColor(1,0.5,0);
  160.                         } else {
  161.                                 eng2n1ref.setColor(0,1.0,0);
  162.                         }
  163.                         eng2n1refLine.hide();
  164.                 } else {
  165.                         eng2n1ref.setText(sprintf("%3.01f",82.5*getprop("controls/engines/engine[1]/throttle")+35));
  166.                         eng2n1refLine.show();
  167.                         eng2n1refLine.setTranslation(0,-150.957*getprop("controls/engines/engine[1]/throttle")-64.043);
  168.                 }
  169.                 eng2n1.setText(sprintf("%3.01f",getprop("engines/engine[1]/n1")));
  170.                 eng2n1maxLine.setTranslation(0,-175);
  171.                 eng2n1rpmLine.setTranslation(0,-215);
  172.                 if (getprop("engines/engine[1]/egt-degf") != nil) {
  173.                         eng2egt.setText(sprintf("%3.0f",(getprop("engines/engine[1]/egt-degf")-32)/1.8));
  174.                         if ((getprop("engines/engine[1]/egt-degf")-32)/1.8 >= 960) {
  175.                                 eng2egt.setColor(1,0,0);
  176.                         } else {
  177.                                 eng2egt.setColor(1,1,1);
  178.                         }
  179.                 }
  180.                
  181.                 # Engine 3 #
  182.                 if (getprop("controls/engines/engine[2]/reverser")) {
  183.                         eng3n1ref.setText("REV");
  184.                         if (getprop("engines/engine[2]/reverser-pos-norm") != getprop("controls/engines/engine[2]/reverser")) {
  185.                                 eng3n1ref.setColor(1,0.5,0);
  186.                         } else {
  187.                                 eng3n1ref.setColor(0,1.0,0);
  188.                         }
  189.                         eng3n1refLine.hide();
  190.                 } else {
  191.                         eng3n1ref.setText(sprintf("%3.01f",82.5*getprop("controls/engines/engine[2]/throttle")+35));
  192.                         eng3n1refLine.show();
  193.                         eng3n1refLine.setTranslation(0,-150.957*getprop("controls/engines/engine[2]/throttle")-64.043);
  194.                 }
  195.                 eng3n1.setText(sprintf("%3.01f",getprop("engines/engine[2]/n1")));
  196.                 eng3n1maxLine.setTranslation(0,-175);
  197.                 eng3n1rpmLine.setTranslation(0,-215);
  198.                 if (getprop("engines/engine[2]/egt-degf") != nil) {
  199.                         eng3egt.setText(sprintf("%3.0f",(getprop("engines/engine[2]/egt-degf")-32)/1.8));
  200.                         if ((getprop("engines/engine[2]/egt-degf")-32)/1.8 >= 960) {
  201.                                 eng3egt.setColor(1,0,0);
  202.                         } else {
  203.                                 eng3egt.setColor(1,1,1);
  204.                         }
  205.                 }
  206.                
  207.                 if (getprop("controls/engines/engine[3]/reverser")) {
  208.                         eng4n1ref.setText("REV");
  209.                         if (getprop("engines/engine[3]/reverser-pos-norm") != 1) {
  210.                                 eng4n1ref.setColor(1,0.5,0);
  211.                         } else {
  212.                                 eng4n1ref.setColor(0,1.0,0);
  213.                         }
  214.                         eng4n1refLine.hide();
  215.                 } else {
  216.                         eng4n1ref.setText(sprintf("%3.01f",82.5*getprop("controls/engines/engine[3]/throttle")+35));
  217.                         eng4n1refLine.show();
  218.                         eng4n1refLine.setTranslation(0,-150.957*getprop("controls/engines/engine[3]/throttle")-64.043);
  219.                 }
  220.                 eng4n1.setText(sprintf("%3.01f",getprop("engines/engine[3]/n1")));
  221.                 eng4n1maxLine.setTranslation(0,-175);
  222.                 eng4n1rpmLine.setTranslation(0,-215);
  223.                 if (getprop("engines/engine[3]/egt-degf") != nil) {
  224.                         eng4egt.setText(sprintf("%3.0f",(getprop("engines/engine[3]/egt-degf")-32)/1.8));
  225.                         if ((getprop("engines/engine[3]/egt-degf")-32)/1.8 >= 960) {
  226.                                 eng4egt.setColor(1,0,0);
  227.                         } else {
  228.                                 eng4egt.setColor(1,1,1);
  229.                         }
  230.                 }
  231.                
  232.                 text5655.setText(sprintf("%+03.0f",getprop("environment/temperature-degc")));
  233.                 fuelTotal.setText(sprintf("%03.01f",getprop("fdm/jsbsim/propulsion/total-fuel-lbs")*LB2KG/1000));
  234.                 if (getprop("/fdm/jsbsim/propulsion/jettison-flow-rates") > 0) {
  235.                         fuelToRemain.show();
  236.                         fuelToRemainL.show();
  237.                         fuelTemp.hide();
  238.                         fuelTempL.hide();
  239.                         fuelToRemain.setText(sprintf("%03.01f",getprop("controls/fuel/fuel-to-remain-lbs")*LB2KG/1000));
  240.                 } else {
  241.                         fuelToRemain.hide();
  242.                         fuelToRemainL.hide();
  243.                         fuelTemp.show();
  244.                         fuelTempL.show();
  245.                 }
  246.                 msgWarning.setText(getprop("instrumentation/eicas/msg/warning"));
  247.                 msgCaution.setText(getprop("instrumentation/eicas/msg/caution"));
  248.                 msgAdvisory.setText(getprop("instrumentation/eicas/msg/advisory"));
  249.                 msgMemo.setText(getprop("instrumentation/eicas/msg/memo"));
  250.                
  251.                 if (getprop("surface-positions/flap-pos-norm") == 0 and getprop("controls/flight/flaps") == 0) {
  252.                         text4283.hide();
  253.                         flapsLine.hide();
  254.                         flapsL.hide();
  255.                         flapsBox.hide();
  256.                 } else {
  257.                         text4283.show();
  258.                         flapsLine.show();
  259.                         flapsL.show();
  260.                         flapsBox.show();
  261.                         if (getprop("controls/flight/flaps") != getprop("surface-positions/flap-pos-norm")) {
  262.                                 text4283.setColor(1,0,1);
  263.                                 flapsLine.setColor(1,0,1);
  264.                         } else {
  265.                                 text4283.setColor(0,1,0);
  266.                                 flapsLine.setColor(0,1,0);
  267.                         }
  268.                         text4283.setText(sprintf("%2.0f",getprop("controls/flight/flaps")*30));
  269.                         flapsLine.setTranslation(0,157*getprop("controls/flight/flaps"));
  270.                         text4283.setTranslation(0,157*getprop("controls/flight/flaps"));
  271.                 }
  272.                 if (getprop("controls/anti-ice/engine/inlet-heat")) {
  273.                         eng1nai.show();
  274.                 } else {
  275.                         eng1nai.hide();
  276.                 }
  277.                 if (getprop("controls/anti-ice/engine[1]/inlet-heat")) {
  278.                         eng2nai.show();
  279.                 } else {
  280.                         eng2nai.hide();
  281.                 }
  282.                 if (getprop("controls/anti-ice/engine[2]/inlet-heat")) {
  283.                         eng3nai.show();
  284.                 } else {
  285.                         eng3nai.hide();
  286.                 }
  287.                 if (getprop("controls/anti-ice/engine[3]/inlet-heat")) {
  288.                         eng4nai.show();
  289.                 } else {
  290.                         eng4nai.hide();
  291.                 }
  292.                 if (getprop("controls/anti-ice/wing-heat")) {
  293.                         wai.show();
  294.                 } else {
  295.                         wai.hide();
  296.                 }
  297.  
  298.                 settimer(func me.update(), 0);
  299.         },
  300. };
  301.  
  302. setlistener("/nasal/canvas/loaded", func {
  303.         var my_canvas = canvas.new({
  304.                 "name": "EICASPrimary",   # The name is optional but allow for easier identification
  305.                 "size": [1024, 1024], # Size of the underlying texture (should be a power of 2, required)
  306.                 "view": [1024, 1024], # Virtual resolution (Defines the coordinate system of the canvas
  307.                                                         # which will be stretched the size of the texture, required)
  308.                 "mipmapping": 1       # Enable mipmapping (optional)
  309.         });
  310.         my_canvas.addPlacement({"node": "Upper-EICAS-Screen"});
  311.         var group = my_canvas.createGroup();
  312.         var demo = canvas_primary.new(group);
  313.         demo.update();
  314. }, 1);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top