# A320 Pneumatics System # Jonathan Redpath (legoboyvdlp) and Joshua Davidson (it0uchpods) ############# # Init Vars # ############# # 7th stage of HP compressor is where the bleed is normally extracted at 44 PSI +- 4 but at low N2 10th stage is selected to provide 36 +- 4 psi var pneumatics_init = func { setprop("/systems/pneumatic/tempspsi/eng1/bleedvalvepsi", 0); setprop("/systems/pneumatic/tempspsi/eng1/bleedvalvetemp", 0); setprop("/systems/pneumatic/tempspsi/eng2/bleedvalvepsi", 0); setprop("/systems/pneumatic/tempspsi/eng2/bleedvalvetemp", 0); setprop("/systems/pneumatic/tempspsi/eng1/downstreamfavtemp", 0); setprop("/systems/pneumatic/tempspsi/eng2/downstreamfavtemp", 0); setprop("/systems/pneumatic/valves/xbleed", 0); setprop("/systems/pneumatic/valves/eng1/bleedvalvepos", 0); setprop("/systems/pneumatic/valves/eng1/OPRESSvalve", 0); setprop("/systems/pneumatic/valves/eng1/bleedengsrc", "7"); setprop("/systems/pneumatic/valves/eng1/fav", 0); setprop("/systems/pneumatic/valves/eng2/fav", 0); setprop("/systems/pneumatic/valves/eng2/bleedvalvepos", 0); setprop("/systems/pneumatic/valves/eng2/OPRESSvalve", 0); setprop("/systems/pneumatic/valves/eng2/bleedengsrc", "7"); setprop("/systems/pneumatic/valves/eng2/fav", 0); setprop("/systems/pneumatic/valves/apubleed", 0); setprop("/systems/pneumatic/valves/eng1/startvalve", 0); setprop("/systems/pneumatic/valves/eng2/startvalve", 0); setprop("/controls/bleed/ground", 0); setprop("/controls/bleed/OHP/pack1", 0); setprop("/controls/bleed/OHP/pack2", 0); setprop("/controls/bleed/OHP/bleed1", 0); setprop("/controls/bleed/OHP/bleed2", 0); setprop("/controls/bleed/OHP/xbleed", 0); setprop("/controls/bleed/OHP/bleedapu", 0); setprop("/controls/bleed/OHP/ramair", 0); pneu_timer.start(); } ####################### # Main Pneumatic Loop # ####################### var master_pneu = func { var bleed1 = getprop("/controls/bleed/OHP/bleed1"); var bleed2 = getprop("/controls/bleed/OHP/bleed2"); var apubleedsw = getprop("/controls/bleed/OHP/bleedapu"); var apubleed = getprop("/systems/pneumatic/valves/apubleed"); var opress1 = getprop("/systems/pneumatic/valves/eng1/OPRESSvalve"); var bleedohp1 = getprop("/controls/bleed/OHP/bleed1"); var eng1valveopen = getprop("/systems/pneumatic/valves/eng1/startvalve"); var opress2 = getprop("/systems/pneumatic/valves/eng2/OPRESSvalve"); var bleedohp2 = getprop("/controls/bleed/OHP/bleed2"); var eng2valveopen = getprop("/systems/pneumatic/valves/eng2/startvalve"); if (bleed1) { setprop("/systems/pneumatic/valves/eng1/bleedvalvepos", 1); } else { setprop("/systems/pneumatic/valves/eng1/bleedvalvepos", 0); } if (bleed2) { setprop("/systems/pneumatic/valves/eng2/bleedvalvepos", 1); } else { setprop("/systems/pneumatic/valves/eng2/bleedvalvepos", 0); } if (opress1 or apubleed or !bleedohp1 or eng1valveopen) { setprop("/systems/pneumatic/valves/eng1/bleedvalvepos", 0); } if (opress2 or apubleed or !bleedohp2 or eng2valveopen) { setprop("/systems/pneumatic/valves/eng2/bleedvalvepos", 0); } if (apubleedsw) { apubleedtimer.start(); } else { apubleedtimer.stop(); setprop("/systems/pneumatic/valves/xbleed", 0); setprop("/systems/pneumatic/valves/apubleed", 0); } } var apubleedtimer = maketimer(0.5, func { var APU = getprop("/systems/apu/rpm"); if (APU > 94.9) { apubleedtimer.stop(); setprop("/systems/pneumatic/valves/xbleed", 1); setprop("/systems/pneumatic/valves/eng1/bleedvalvepos", 0); setprop("/systems/pneumatic/valves/eng2/bleedvalvepos", 0); setprop("/controls/bleed/OHP/bleed1", 0); setprop("/controls/bleed/OHP/bleed2", 0); setprop("/systems/pneumatic/valves/apubleed", 1); } }); ################### # Update Function # ################### var update_pneumatic = func { master_pneu(); } var pneu_timer = maketimer(0.5, update_pneumatic);