Advertisement
Guest User

Untitled

a guest
Aug 30th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.88 KB | None | 0 0
  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);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement