Advertisement
Guest User

door.osc z KZNS

a guest
Apr 14th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.07 KB | None | 0 0
  1. '##############
  2. 'Door Script
  3. '##############
  4.  
  5. 'Controls Doors
  6.  
  7. '(c) 2007-2009 Rüdiger Hülsmann
  8. '(c) 2007-2009 Marcel Kuhnt
  9.  
  10. 'Script Version: 1.1
  11. 'Omsi release: 1.0
  12.  
  13. 'Needs:
  14. '- elec
  15.  
  16. 'Revision History:
  17. '- Marcel Kuhnt 13.06.2009 Batterietrennschalter => elec_busbar_main
  18. '- Marcel Kuhnt 21.06.2009 AI-Unterstützung hinzugefügt
  19. '- Rüdiger Hülsmann 24.10.2009 Ansteuerung des Kinderwagenwunsches modifiziert
  20. '- Rüdiger Hülsmann 19.12.2009 Timer für Ausstiegstür jetzt Timegap-basiert, Bugfix: Tür schließt jetzt nur bei elec_busbar=1
  21. '- RÜdiger Hülsmann 22.09.2010 Door light trigger value set to 0.1
  22. '- RÜdiger Hülsmann 07.11.2010 Door speed based on reservoir pressure, air-operated doors made an option
  23. '- Marcel Kuhnt 08.11.2010 AI procedure closing doors debugged
  24. '- Rüdiger Hülsmann 21.11.2010 Front doors only operable when busbar on
  25. '- Rüdiger Hülsmann 23.12.2010 External front door operation included, option: doors only operable with actual stop brake
  26. '-Rüdiger Hülsmann 31.12.2010 Electric door function debugged
  27. '-Rüdiger Hülsmann 05.01.2011 20h-switch
  28. '-Rüdiger Hülsmann 07.01.2011 Backdoor manual switch sound debugged, 20h switch depending on bus type
  29. '-DG 28.03.2011 Add 3rd manual doors, remove second automatic doors
  30. '-DG 09.05.2011 Repair the lock system of the second doors
  31. '-DG 28.03.2011 Add 4rd manual doors, remove second automatic doors
  32. '-DG 09.05.2011 Repair the lock system of the second doors
  33. '-DG 09.05.2011 Added leszálás jelző,ajtó zárás jelző sounds
  34. '-Ńĺđăĺé ×číęîâ 19.05.2012 Ňĺďĺđü ęíîďęč îňęđűňč˙ äâĺđĺé ňîëüęî îňęđűâŕţň äâĺđč, č ęíîďęč çŕęđűňč˙ äâĺđĺé çŕęđűâŕţň äâĺđč
  35. '-Ńĺđăĺé ×číęîâ 19.05.2012 Óáđŕíŕ áëîęčđîâęŕ äâĺđĺé
  36. '-Ńĺđăĺé ×číęîâ 20.05.2012 Ďîďűňęč íŕëŕäčňü äâĺđč ďîä óďđŕâëĺíčĺě AI. Áĺçóńďĺříî.
  37. '- rew 03.06.2012 Managing from keyboard, AI-mode fixed
  38. '-Őŕáčáóëëčí Đîáĺđň 13.06.2012 Ŕäŕďňŕöč˙ âĺíăĺđńęîăî ńęđčďňŕ ňđĺáîâŕíč˙ îńňŕíîâęč, IkarusSTR.
  39. '-Ńĺđăĺé ×číęîâ 18.12.2012 Čçěĺí¸í ďđčíöčď đŕáîňű ęíîďîę íŕ çŕęđűňčĺ č îňęđűňčĺ äâĺđĺé.
  40. '--------------------------------------------------------------------------------
  41.  
  42. '------------managing from keyboard----------------------------------------------
  43. {trigger:bus_doorfront0}
  44. (L.L.doorTarget_1) 0 =
  45. {if}
  46. (M.L.trg_bus_doorfront0_open)
  47. 1 (S.L.cockpit_tuertaster1_open)
  48. {else}
  49. (M.L.trg_bus_doorfront0_close)
  50. 1 (S.L.cockpit_tuertaster1_close)
  51. {endif}
  52. {end}
  53.  
  54. {trigger:bus_doorfront0_off}
  55. 0 (S.L.cockpit_tuertaster1_open) (S.L.cockpit_tuertaster1_close)
  56. {end}
  57.  
  58. {trigger:bus_doorfront1}
  59. (L.L.doorTarget_23) 0 =
  60. {if}
  61. (M.L.trg_bus_doorfront1_open)
  62. 1 (S.L.cockpit_tuertaster2_open)
  63. {else}
  64. (M.L.trg_bus_doorfront1_close)
  65. 1 (S.L.cockpit_tuertaster2_close)
  66. {endif}
  67. {end}
  68.  
  69. {trigger:bus_doorfront1_off}
  70. 0 (S.L.cockpit_tuertaster2_open) (S.L.cockpit_tuertaster2_close)
  71. {end}
  72.  
  73. {trigger:bus_doorfront5}
  74. (L.L.doorTarget_5) 0 =
  75. {if}
  76. (M.L.trg_bus_doorfront5_open)
  77. 1 (S.L.cockpit_tuertaster6_open)
  78. {else}
  79. (M.L.trg_bus_doorfront5_close)
  80. 1 (S.L.cockpit_tuertaster6_close)
  81. {endif}
  82. {end}
  83.  
  84. {trigger:bus_doorfront5_off}
  85. 0 (S.L.cockpit_tuertaster6_open) (S.L.cockpit_tuertaster6_close)
  86. {end}
  87.  
  88. '--------------------------------------------------------------------------------
  89.  
  90. {trigger:bus_doorfront0_open}
  91. (L.L.elec_busbar_main_sw)
  92. {if}
  93. (L.L.doorTarget_1) 0 =
  94. {if}
  95. (M.L.trg_bus_doorfront0_open)
  96. {endif}
  97. {endif}
  98. 1 (S.L.cockpit_tuertaster1_open)
  99. {end}
  100.  
  101. {trigger:bus_doorfront0_open_off}
  102. 0 (S.L.cockpit_tuertaster1_open)
  103. {end}
  104.  
  105. {trigger:bus_doorfront0_close}
  106. (L.L.elec_busbar_main_sw)
  107. {if}
  108. (L.L.doorTarget_1)
  109. {if}
  110. (M.L.trg_bus_doorfront0_close)
  111. {endif}
  112.  
  113. (L.L.doorTarget_0)
  114. {if}
  115. (M.L.trg_bus_doorfront9_close)
  116. {endif}
  117. {endif}
  118. 1 (S.L.cockpit_tuertaster1_close)
  119. {end}
  120.  
  121. {trigger:bus_doorfront0_close_off}
  122. 0 (S.L.cockpit_tuertaster1_close)
  123. {end}
  124.  
  125. {trigger:bus_doorfront9_open_external}
  126. (L.L.elec_busbar_avail)
  127. {if}
  128. (L.L.doorTarget_0) 0 =
  129. {if}
  130. (M.L.trg_bus_doorfront9_open)
  131. {endif}
  132. {endif}
  133. 1 (S.L.cockpit_tuertaster11)
  134. {end}
  135.  
  136. {trigger:bus_doorfront9_open_external_off}
  137. 0 (S.L.cockpit_tuertaster11)
  138. {end}
  139.  
  140. {trigger:bus_doorfront9_close_external}
  141. (L.L.elec_busbar_avail)
  142. {if}
  143. (L.L.doorTarget_0)
  144. {if}
  145. (M.L.trg_bus_doorfront9_close)
  146. {endif}
  147. {endif}
  148. 1 (S.L.cockpit_tuertaster11)
  149. {end}
  150.  
  151. {trigger:bus_doorfront9_close_external_off}
  152. 0 (S.L.cockpit_tuertaster11)
  153. {end}
  154.  
  155. {trigger:bus_doorfront1_open}
  156. (L.L.elec_busbar_main_sw)
  157. {if}
  158. (L.L.doorTarget_23) 0 =
  159. {if}
  160. (M.L.trg_bus_doorfront1_open)
  161. {endif}
  162. {endif}
  163. 1 (S.L.cockpit_tuertaster2_open)
  164. {end}
  165.  
  166. {trigger:bus_doorfront1_open_off}
  167. 0 (S.L.cockpit_tuertaster2_open)
  168. {end}
  169.  
  170. {trigger:bus_doorfront1_close}
  171. (L.L.elec_busbar_main_sw)
  172. {if}
  173. (L.L.doorTarget_23)
  174. {if}
  175. (M.L.trg_bus_doorfront1_close)
  176. {endif}
  177. {endif}
  178. 1 (S.L.cockpit_tuertaster2_close)
  179. {end}
  180.  
  181. {trigger:bus_doorfront1_close_off}
  182. 0 (S.L.cockpit_tuertaster2_close)
  183. {end}
  184.  
  185. {trigger:bus_doorfront5_open}
  186. (L.L.elec_busbar_main_sw)
  187. {if}
  188. (L.L.doorTarget_5) 0 =
  189. {if}
  190. (M.L.trg_bus_doorfront5_open)
  191. {endif}
  192. {endif}
  193. 1 (S.L.cockpit_tuertaster6_open)
  194. {end}
  195.  
  196. {trigger:bus_doorfront5_open_off}
  197. 0 (S.L.cockpit_tuertaster6_open)
  198. {end}
  199.  
  200. {trigger:bus_doorfront5_close}
  201. (L.L.elec_busbar_main_sw)
  202. {if}
  203. (L.L.doorTarget_5)
  204. {if}
  205. (M.L.trg_bus_doorfront5_close)
  206. {endif}
  207. {endif}
  208. 1 (S.L.cockpit_tuertaster6_close)
  209. {end}
  210.  
  211. {trigger:bus_doorfront5_close_off}
  212. 0 (S.L.cockpit_tuertaster6_close)
  213. {end}
  214.  
  215. {trigger:bus_doorfront9_open}
  216. (L.L.elec_busbar_main_sw)
  217. {if}
  218. (L.L.doorTarget_0) 0 =
  219. {if}
  220. (M.L.trg_bus_doorfront9_open)
  221. {endif}
  222. {endif}
  223. 1 (S.L.cockpit_tuertaster11_open)
  224. {end}
  225.  
  226. {trigger:bus_doorfront9_open_off}
  227. 0 (S.L.cockpit_tuertaster11_open)
  228. {end}
  229.  
  230. {trigger:bus_doorfront8_open}
  231. (L.L.elec_busbar_main_sw)
  232. {if}
  233. (L.L.doorTarget_1) 0 =
  234. {if}
  235. (M.L.trg_bus_doorfront0_open)
  236. {endif}
  237.  
  238. (L.L.doorTarget_23) 0 =
  239. {if}
  240. (M.L.trg_bus_doorfront1_open)
  241. {endif}
  242.  
  243. (L.L.doorTarget_5) 0 =
  244. {if}
  245. (M.L.trg_bus_doorfront5_open)
  246. {endif}
  247. {endif}
  248. 1 (S.L.cockpit_tuertaster10_open)
  249. {end}
  250.  
  251. {trigger:bus_doorfront8_open_off}
  252. 0 (S.L.cockpit_tuertaster10_open)
  253. {end}
  254.  
  255. {trigger:bus_doorfront8_close}
  256. (L.L.elec_busbar_main_sw)
  257. {if}
  258. (L.L.doorTarget_1)
  259. {if}
  260. (M.L.trg_bus_doorfront0_close)
  261. {endif}
  262.  
  263. (L.L.doorTarget_23)
  264. {if}
  265. (M.L.trg_bus_doorfront1_close)
  266. {endif}
  267.  
  268. (L.L.doorTarget_5)
  269. {if}
  270. (M.L.trg_bus_doorfront5_close)
  271. {endif}
  272. {endif}
  273. 1 (S.L.cockpit_tuertaster10_close)
  274. {end}
  275.  
  276. {trigger:bus_doorfront8_close_off}
  277. 0 (S.L.cockpit_tuertaster10_close)
  278. {end}
  279.  
  280. {trigger:bus_doorfront7_open}
  281. (L.L.elec_busbar_main_sw)
  282. {if}
  283. (L.L.doorTarget_23) 0 =
  284. {if}
  285. (M.L.trg_bus_doorfront1_open)
  286. {endif}
  287.  
  288. (L.L.doorTarget_5) 0 =
  289. {if}
  290. (M.L.trg_bus_doorfront5_open)
  291. {endif}
  292. {endif}
  293. 1 (S.L.cockpit_tuertaster7_open)
  294. {end}
  295.  
  296. {trigger:bus_doorfront7_open_off}
  297. 0 (S.L.cockpit_tuertaster7_open)
  298. {end}
  299.  
  300. {trigger:bus_doorfront7_close}
  301. (L.L.elec_busbar_main_sw)
  302. {if}
  303. (L.L.doorTarget_23)
  304. {if}
  305. (M.L.trg_bus_doorfront1_close)
  306. {endif}
  307.  
  308. (L.L.doorTarget_5)
  309. {if}
  310. (M.L.trg_bus_doorfront5_close)
  311. {endif}
  312. {endif}
  313. 1 (S.L.cockpit_tuertaster7_close)
  314. {end}
  315.  
  316. {trigger:bus_doorfront7_close_off}
  317. 0 (S.L.cockpit_tuertaster7_close)
  318. {end}
  319.  
  320. {trigger:bus_20h-switch}
  321. (C.L.cockpit_has_20h_switch)
  322. {if}
  323. (M.L.trg_bus_20h-switch)
  324. {endif}
  325. {end}
  326.  
  327. {trigger:int_haltewunsch} (T.L.stopSound)
  328. 1 (S.L.haltewunsch2) (T.L.stopSound)
  329. 1 (S.L.haltewunsch3) (T.L.stopSound)
  330. {endif}
  331. {end}
  332.  
  333. {trigger:door_haltewunsch_2} (T.L.stopSound)
  334. 1 (S.L.haltewunsch2) (T.L.stopSound) (S.L.door_haltewunsch_knopfdruck_2) (T.L.stopSound)
  335. {end}
  336.  
  337. {trigger:door_haltewunsch_2_off} (T.L.stopSound)
  338. 0 (S.L.door_haltewunsch_knopfdruck_2) (T.L.stopSound)
  339. {end}
  340.  
  341. {trigger:door_haltewunsch_3} (T.L.stopSound)
  342. 1 (S.L.haltewunsch3) (T.L.stopSound) (S.L.door_haltewunsch_knopfdruck_3) (T.L.stopSound)
  343. {end}
  344.  
  345. {trigger:door_haltewunsch_3_off} (T.L.stopSound)
  346. 0 (S.L.door_haltewunsch_knopfdruck_3) (T.L.stopSound)
  347. {end}
  348.  
  349. {trigger:cp_schalter_kinderwagen}
  350. (L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
  351. {if}
  352. 0 (S.L.door_kinderwagenwunsch)
  353. (T.L.ev_kippschalter_ein)
  354. {else}
  355. (T.L.ev_kippschalter_aus)
  356. {endif}
  357.  
  358. {end}
  359.  
  360. {trigger:door_kinderwagenwunsch}
  361. (L.L.bremse_halte) (L.L.door_handsteuerung) ! &&
  362. {if}
  363. 1 (S.L.door_kinderwagenwunsch)
  364. {endif}
  365. {end}
  366.  
  367.  
  368. {macro:Door_Init}
  369. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
  370. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
  371. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
  372. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)
  373. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_5)
  374.  
  375. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
  376. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
  377. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
  378. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
  379. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_5_norm)
  380.  
  381. (C.L.door_refl) (S.L.doorRefl_0)
  382. (C.L.door_refl) (S.L.doorRefl_1)
  383. (C.L.door_refl) (S.L.doorRefl_2)
  384. (C.L.door_refl) (S.L.doorRefl_3)
  385. (C.L.door_refl) (S.L.doorRefl_5)
  386.  
  387.  
  388. {end}
  389.  
  390. {macro:Door_Frame}
  391. (M.L.Door0_Calc)
  392. (M.L.Door1_Calc)
  393. (M.L.Door5_Calc)
  394. (M.L.Door2_Calc)
  395. (M.L.Door3_Calc)
  396.  
  397. (L.L.door_0) 0.9 > (S.L.PAX_Entry3_Open) (S.L.PAX_Exit3_Open)
  398. (L.L.door_1) 0.9 > (S.L.PAX_Exit2_Open) (S.L.PAX_Entry2_Open)
  399. (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Entry1_Open) (S.L.PAX_Exit1_Open)
  400. (L.L.door_5) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Entry0_Open) (S.L.PAX_Exit0_Open)
  401.  
  402. ' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
  403. (L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
  404. {if}
  405. 1 (S.L.haltewunsch) (T.L.stopSound)
  406. {endif}
  407.  
  408. ' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
  409. (L.L.bremse_halte_sw) (L.L.door_20h_sw) ||
  410. (L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
  411. {if}
  412. (L.L.elec_busbar_main)
  413. {if}
  414. (T.L.ev_haltebremse_an)
  415. 1 (S.L.bremse_halte)
  416. {endif}
  417. {endif}
  418.  
  419. ' Anhand dieser Bedingungen kann nun die Automatiktür geöffnet werden:
  420.  
  421.  
  422. ' Türfreigabekriterium
  423.  
  424. (L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)
  425.  
  426. ' Haltewunschlampe:
  427. (L.L.haltewunsch) (L.L.door_1) 0.2 < (L.L.elec_busbar_main) && &&
  428. {if}
  429. 1 (S.L.haltewunschlampe) (T.L.stopSound)
  430. {else}
  431. 0 (S.L.haltewunschlampe) (T.L.stopSound) (S.L.haltewunsch) (T.L.stopSound)
  432. {endif}
  433.  
  434. (L.L.haltewunsch1) (L.L.door_1) 0.2 < (L.L.elec_busbar_main) && &&
  435. {if}
  436. 1 (S.L.haltewunschlampe_1) (T.L.stopSound)
  437.  
  438. {else}
  439. 0 (S.L.haltewunschlampe_1) (T.L.stopSound) (S.L.haltewunsch1) (T.L.stopSound)
  440. {endif}
  441.  
  442. (L.L.haltewunsch2) (L.L.door_2) 0.2 < (L.L.elec_busbar_main) && &&
  443. (L.L.haltewunsch2) (L.L.door_2) 0.2 < (L.L.elec_busbar_main) && && ||
  444. {if}
  445. 1 (S.L.haltewunschlampe_2) (T.L.stopSound)
  446. {else}
  447. 0 (S.L.haltewunschlampe_2) (T.L.stopSound) (S.L.haltewunsch2) (T.L.stopSound)
  448. {endif}
  449.  
  450. (L.L.haltewunsch3) (L.L.door_5) 0.2 < (L.L.elec_busbar_main) && &&
  451. (L.L.haltewunsch3) (L.L.door_5) 0.2 < (L.L.elec_busbar_main) && && ||
  452. {if}
  453. 1 (S.L.haltewunschlampe_3) (T.L.stopSound)
  454. {else}
  455. 0 (S.L.haltewunschlampe_3) (T.L.stopSound) (S.L.haltewunsch3) (T.L.stopSound)
  456. {endif}
  457.  
  458. ' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:
  459.  
  460. (L.L.elec_busbar_main) 0 =
  461. {if}
  462. 0 (S.L.door_kinderwagenwunsch)
  463. {endif}
  464.  
  465. ' Beleuchtung der Einstiege
  466.  
  467. (L.L.elec_busbar_main)
  468. {if}
  469. (L.L.door_0) 0.1 > (L.L.door_0) 0.1 > || (S.L.door_light_4)
  470. (L.L.door_1) 0.1 > (L.L.door_1) 0.1 > || (S.L.door_light_1)
  471. (L.L.door_2) 0.1 > (L.L.door_3) 0.1 > || (S.L.door_light_2)
  472. (L.L.door_5) 0.1 > (L.L.door_5) 0.1 > || (S.L.door_light_3)
  473. {else}
  474. 0 (S.L.door_light_1) (S.L.door_light_2) (S.L.door_light_3) (S.L.door_light_4)
  475. {endif}
  476.  
  477. (L.L.door_1) 0.1 < (L.L.door_2) 0.1 < (L.L.door_5) 0.1 < && &&
  478. {if}
  479. (T.L.ev_csengo_aus)
  480. 0 (S.L.cockpit_csengo_button)
  481. {endif}
  482.  
  483. ' Druckabhängige Türgeschwindigkeit
  484.  
  485. (C.L.door_druckluft)
  486. {if}
  487. (L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
  488. (L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
  489. (L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
  490. (L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
  491. (L.L.doorMaxSpeed_5_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_5)
  492. {else}
  493. (L.L.doorMaxSpeed_0_norm) (S.L.doorMaxSpeed_0)
  494. (L.L.doorMaxSpeed_1_norm) (S.L.doorMaxSpeed_1)
  495. (L.L.doorMaxSpeed_2_norm) (S.L.doorMaxSpeed_2)
  496. (L.L.doorMaxSpeed_3_norm) (S.L.doorMaxSpeed_3)
  497. (L.L.doorMaxSpeed_5_norm) (S.L.doorMaxSpeed_5)
  498. {endif}
  499. '----------------------
  500. ' AI-Ablauf:
  501.  
  502. (L.L.AI_Scheduled_AtStation) s0
  503. 1 =
  504. {if}
  505. 'Wenn Türen geöffnet werden sollen:
  506. (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
  507. {if}
  508. 'Nur, wenn v < maxkmh, sonst warten
  509. 'Taster jeweils nur betätigen, falls noch nicht an
  510. (L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.3 > &&
  511. {if}
  512. (M.L.trg_bus_doorfront0_open)
  513. {endif}
  514. (L.L.doorTarget_23) ! (L.L.door_AI_timer) 0.6 > &&
  515. {if}
  516. (M.L.trg_bus_doorfront1_open)
  517. {endif}
  518. (L.L.doorTarget_5) ! (L.L.door_AI_timer) 0.6 > &&
  519. {if}
  520. (M.L.trg_bus_doorfront5_open)
  521. {endif}
  522. {else}
  523. 0 (S.L.door_AI_timer)
  524. {endif}
  525. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  526. {else}
  527. l0 -1 =
  528. {if}
  529. 'Wenn Türen geschlossen werden sollen:
  530. 'Taster jeweils nur betätigen, falls noch nicht aus:
  531. (L.L.doorTarget_23)
  532. {if}
  533. (M.L.trg_bus_doorfront1_close)
  534. 0 (S.L.door_AI_timer)
  535. {endif}
  536. (L.L.doorTarget_1) (L.L.door_AI_timer) 0.3 > &&
  537. {if}
  538. (M.L.trg_bus_doorfront0_close)
  539. {endif}
  540. (L.L.doorTarget_5) (L.L.door_AI_timer) 0.6 > &&
  541. {if}
  542. (M.L.trg_bus_doorfront5_close)
  543. {endif}
  544. 'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
  545. (L.L.door_0) 0.1 <
  546. (L.L.door_1) 0.1 < &&
  547. (L.L.door_2) 0.1 < &&
  548. (L.L.door_5) 0.1 < &&
  549. {if}
  550. (L.L.bremse_halte_sw) !
  551. {if}
  552. 0 (S.L.AI_Scheduled_AtStation)
  553. {endif}
  554. {else}
  555. 'Sollte eine der Türen auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
  556. {endif}
  557. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  558. {endif}
  559. {endif}
  560.  
  561.  
  562. {end}
  563.  
  564.  
  565.  
  566.  
  567. {macro:Door0_Calc}
  568. (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
  569. {if}
  570. l0 /-/ (L.L.doorMaxSpeed_0) <
  571. {if}
  572. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  573. {endif}
  574. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  575. {else}
  576. (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
  577. {if}
  578. l0 (L.L.doorMaxSpeed_0) <
  579. {if}
  580. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  581. {endif}
  582. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  583. {else}
  584. 0 (S.L.doorSpeed_0)
  585. {endif}
  586. {endif}
  587.  
  588. (L.L.door_0) 1 >
  589. {if}
  590. (T.L.ev_doorhitopen_0)
  591. 1 (S.L.door_0)
  592. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  593. {else}
  594. (L.L.door_0) 0 <
  595. {if}
  596. (T.L.ev_doorhitclose_0)
  597. 0 (S.L.door_0)
  598. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  599. {endif}
  600. {endif}
  601. {end}
  602.  
  603. {macro:Door1_Calc}
  604. (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
  605. {if}
  606. l0 /-/ (L.L.doorMaxSpeed_1) <
  607. {if}
  608. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  609. {endif}
  610. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  611. {else}
  612. (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
  613. {if}
  614. l0 (L.L.doorMaxSpeed_1) <
  615. {if}
  616. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  617. {endif}
  618. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  619. {else}
  620. 0 (S.L.doorSpeed_1)
  621. {endif}
  622. {endif}
  623.  
  624. (L.L.door_1) 1 >
  625. {if}
  626.  
  627. (T.L.ev_doorhitopen_1)
  628. 1 (S.L.door_1)
  629. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  630. {else}
  631. (L.L.door_1) 0 <
  632. {if}
  633. (T.L.ev_doorhitclose_1)
  634. 0 (S.L.door_1)
  635. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  636. {endif}
  637. {endif}
  638. {end}
  639.  
  640. {macro:Door5_Calc}
  641. (L.L.doorTarget_5) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || &&
  642. {if}
  643. l0 /-/ (L.L.doorMaxSpeed_5) <
  644. {if}
  645. (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
  646. {endif}
  647. (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
  648. {else}
  649. (L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorTarget_5) &&
  650. {if}
  651. l0 (L.L.doorMaxSpeed_5) <
  652. {if}
  653. (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
  654. {endif}
  655. (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
  656. {else}
  657. 0 (S.L.doorSpeed_5)
  658. {endif}
  659. {endif}
  660.  
  661. (L.L.door_5) 1 >
  662. {if}
  663. (T.L.ev_doorhitopen_5)
  664. 1 (S.L.door_5)
  665. (L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
  666. {else}
  667. (L.L.door_5) 0 <
  668. {if}
  669. (T.L.ev_doorhitclose_5)
  670. 0 (S.L.door_5)
  671. (L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
  672. {endif}
  673. {endif}
  674. {end}
  675.  
  676. {macro:Door2_Calc}
  677. (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
  678. {if}
  679. l0 /-/ (L.L.doorMaxSpeed_2) <
  680. {if}
  681. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  682. {endif}
  683. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  684. {else}
  685. (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
  686. {if}
  687. l0 (L.L.doorMaxSpeed_2) <
  688. {if}
  689. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  690. {endif}
  691. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  692. {else}
  693. 0 (S.L.doorSpeed_2)
  694. {endif}
  695. {endif}
  696.  
  697. (L.L.door_2) 1 >
  698. {if}
  699. (T.L.ev_doorhitopen_2)
  700. 1 (S.L.door_2)
  701. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  702. {else}
  703. (L.L.door_2) 0 <
  704. {if}
  705. (T.L.ev_doorhitclose_2)
  706. 0 (S.L.door_2)
  707. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  708. {endif}
  709. {endif}
  710. {end}
  711.  
  712. {macro:Door3_Calc}
  713. (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
  714. {if}
  715. l0 /-/ (L.L.doorMaxSpeed_3) <
  716. {if}
  717. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  718. {endif}
  719. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  720. {else}
  721. (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
  722. {if}
  723. l0 (L.L.doorMaxSpeed_3) <
  724. {if}
  725. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  726. {endif}
  727. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  728. {else}
  729. 0 (S.L.doorSpeed_3)
  730. {endif}
  731. {endif}
  732.  
  733. (L.L.door_3) 1 >
  734. {if}
  735. (T.L.ev_doorhitopen_3)
  736. 1 (S.L.door_3)
  737. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  738. {else}
  739. (L.L.door_3) 0 <
  740. {if}
  741. (T.L.ev_doorhitclose_3)
  742. 0 (S.L.door_3)
  743. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  744. {endif}
  745. {endif}
  746.  
  747. {end}
  748.  
  749. {macro:trg_bus_doorfront0_open}
  750. 1 (S.L.doorTarget_1)
  751. (T.L.ev_doortriggeropen_0)
  752. (C.L.door_druckluft)
  753. {if}
  754. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  755. {endif}
  756. {end}
  757.  
  758. {macro:trg_bus_doorfront0_close}
  759. 0 (S.L.doorTarget_1)
  760. (T.L.ev_doortriggerclose_0)
  761. (C.L.door_druckluft)
  762. {if}
  763. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  764. {endif}
  765. {end}
  766.  
  767. {macro:trg_bus_doorfront1_open}
  768.  
  769. 1 (S.L.doorTarget_23)
  770. (T.L.ev_doortriggeropen_1)
  771. (C.L.door_druckluft)
  772. {if}
  773. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  774. {endif}
  775. {end}
  776.  
  777. {macro:trg_bus_doorfront1_close}
  778.  
  779. 0 (S.L.doorTarget_23)
  780. (T.L.ev_doortriggerclose_1)
  781. (C.L.door_druckluft)
  782. {if}
  783. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  784. {endif}
  785. {end}
  786.  
  787. {macro:trg_bus_doorfront2_open}
  788.  
  789. 1 (S.L.doorTarget_23)
  790. (T.L.ev_doortriggeropen_1)
  791. (C.L.door_druckluft)
  792. {if}
  793. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  794. {endif}
  795. {end}
  796.  
  797. {macro:trg_bus_doorfront2_close}
  798.  
  799. 0 (S.L.doorTarget_23)
  800. (T.L.ev_doortriggerclose_1)
  801. (C.L.door_druckluft)
  802. {if}
  803. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  804. {endif}
  805. {end}
  806.  
  807. {macro:trg_bus_doorfront5_open}
  808.  
  809. 1 (S.L.doorTarget_5)
  810. (T.L.ev_doortriggeropen_1)
  811. (C.L.door_druckluft)
  812. {if}
  813. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  814. {endif}
  815. {end}
  816.  
  817. {macro:trg_bus_doorfront5_close}
  818.  
  819. 0 (S.L.doorTarget_5)
  820. (T.L.ev_doortriggerclose_1)
  821. (C.L.door_druckluft)
  822. {if}
  823. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  824. {endif}
  825. {end}
  826.  
  827. {macro:trg_bus_doorfront9_open}
  828.  
  829. 1 (S.L.doorTarget_0)
  830. (T.L.ev_doortriggeropen_1)
  831. (C.L.door_druckluft)
  832. {if}
  833. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  834. {endif}
  835. {end}
  836.  
  837. {macro:trg_bus_doorfront9_close}
  838.  
  839. 0 (S.L.doorTarget_0)
  840. (T.L.ev_doortriggerclose_1)
  841. (C.L.door_druckluft)
  842. {if}
  843. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  844. {endif}
  845. {end}
  846.  
  847. {macro:trg_bus_20h-switch}
  848. (L.L.door_20h_sw) ! (S.L.door_20h_sw)
  849.  
  850. (L.L.door_20h_sw)
  851. {if}
  852. (T.L.ev_haltebremse_sw_an)
  853. {else}
  854. (T.L.ev_haltebremse_sw_aus)
  855. {endif}
  856.  
  857. (L.L.PAX_Exit1_Open) ||
  858. {if}
  859. (T.L.door_sound_2)
  860. 1 (S.L.haltewunschlampe_2) (T.L.stopSound)
  861. {endif}
  862. {end}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement