Odpowiedź 
Opóźnienie zamykania drzwi
Autor Wiadomość

Administrator
Administratorzy
Liczba postów: 1,327
Dołączył: 12-2012
Podziękowań: 420
Post: #11
RE: Opóźnienie zamykania drzwi
Zapomniałem o wyjaśnieniu jednej kwestii, dodałem to do swojego poprzedniego posta, to powinno rozwiązać problem. Chodzi o zmianę wartości 0 (S.L.opoznienie_drzwi) na 0 (S.L.opoznienie_drzwiZ) w triggerach drzwi z wartością odpowiadającą konkretnej parze.


!NIE POMAGAM NA PW - OD POMOCY JEST FORUM!

PCB: Gigabyte GA-970A-DS3
CPU: AMD FX-8350 @ 8x4.4GHz + Raijintek EreBoss
RAM: 8GB RAM DDR3
GPU: Sapphire Radeon RX480 Nitro+ 8GB
PSU: Corsair TX850M
OS: Windows 10 Pro x64

Zanim cokolwiek napiszesz, przeczytaj koniecznie REGULAMIN
Jeśli masz problem techniczny, zapoznaj się z ZASADAMI DZIAŁÓW TECHNICZNYCH
Jeśli chcesz podzielić się dodatkiem, zapoznaj się z REGULAMINEM DZIAŁU POBIERALNIA



Find me on: fb.me/mattezpl
25.09.2013 07:17
Szukaj postów Cytat

Asertywniak
Użytkownicy
Liczba postów: 124
Dołączył: 08-2013
Podziękowań: 13
Post: #12
RE: Opóźnienie zamykania drzwi
Więc tak. Pozwolę odnieść się do tego wątku. O ile bez problemu można zrobić opóźnienie, to z dźwiękiem już tak wesoło nie jest. Nie ukrywam, że nigdy nie "grzebałem" w plikach OMSI, nie tworzyłem skryptów, bo musiałbym posiedzieć trochę w tym, a nie mam niestety na to czasu. Do configu od dźwięków dodałem:

[sound]
warning.wav
0.8

[3d]
0
6
0
2

[trigger]
dzwonek_drzwi1

niestety, nigdzie nie znalazłem, jak poprawnie dodać jakikolwiek dźwięk. Czy ktoś ma radę? Bo obecnie jest tak, że jest opóźnienie, ale dźwięk nie działa i zamiast tego odtwarza się dźwięk zamykania drzwi.

pzdr

09.10.2014 21:13
Szukaj postów Cytat

Administrator
Administratorzy
Liczba postów: 1,327
Dołączył: 12-2012
Podziękowań: 420
Post: #13
RE: Opóźnienie zamykania drzwi
Pamiętam, że kiedyś udało mi się rozwiązać ten problem. Wydaje mi się, że przez kombinację wartości "+" i "-" w poniższym wpisie:
Cytat:{else}
(L.L.opoznienie_drzwiY) (L.S.Timegap) - (S.L.opoznienie drzwiY)
{endif}

Nie wiem od czego to zależy i pamiętam, że w każdych drzwiach zmieniałem "na pałę" minus na plus w dowolnych kombinacjach i wreszcie się udało.


!NIE POMAGAM NA PW - OD POMOCY JEST FORUM!

PCB: Gigabyte GA-970A-DS3
CPU: AMD FX-8350 @ 8x4.4GHz + Raijintek EreBoss
RAM: 8GB RAM DDR3
GPU: Sapphire Radeon RX480 Nitro+ 8GB
PSU: Corsair TX850M
OS: Windows 10 Pro x64

Zanim cokolwiek napiszesz, przeczytaj koniecznie REGULAMIN
Jeśli masz problem techniczny, zapoznaj się z ZASADAMI DZIAŁÓW TECHNICZNYCH
Jeśli chcesz podzielić się dodatkiem, zapoznaj się z REGULAMINEM DZIAŁU POBIERALNIA



Find me on: fb.me/mattezpl
10.10.2014 07:17
Szukaj postów Cytat

Użytkownik
Użytkownicy
Liczba postów: 151
Dołączył: 03-2013
Podziękowań: 9
Post: #14
RE: Opóźnienie zamykania drzwi
Mam pewien problem odnośnie tego poradnika. Otóż próbuję dodać opóźnienie zamknięcia drzwi w Mercedesie Citaro C2 (Hamburger Buspaket) i o ile z pierwszą parą poszło bez problemu tak drugie i trzecie drzwi kompletnie nie reagują na wprowadzone zmiany, tak jak bym nic nie zmienił.
Poniżej daję kod z door.osc (od momentu z door calc do końca pliku)

Kod:
'###############################################################################​################
' Door Calc Türenpaar 1
'###############################################################################​################


{macro:Door0_Calc}
    (L.L.door_warnung1) 0 <
    (L.L.doorTarget_0) 1 = ||
    {if}
        (L.L.dzwonek_drzwi1) 1 =
        {if}
            0 (S.L.dzwonek_drzwi1)
        {endif}
    (L.L.door_0_locked) ! && (L.L.door_0_locked_elec) ! && (L.L.doorEntriegelung_E_active_01) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_01)
        {if}

        (L.L.doorTarget_0)
        {if}
            (L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
        {else}
            (L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
        {endif}

        (C.L.door0_acc) (S.L.doorAcc_0)

        (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
        {if}
            (C.L.thinking_doors)
            {if}
                (L.L.doorTarget_1) !
                (L.L.door_1) 0 > &&
                (L.L.door_1) (L.L.door_0) - 0.25 /-/ > &&
                (L.L.door_1) (L.L.door_0) - 0.25 < &&
                (L.L.door_0) 0.15 > &&
                {if}
                    (L.L.door0_warten) 1 =
                    {if}
                        0 (S.L.doorSpeed_0)
                        0.20 (S.L.door_0)
                    {else}
                        (L.L.door_0) 0.25 >
                        {if}
                            l0 /-/ (L.L.doorMaxSpeed_0) <
                            {if}
                                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                            {else}
                                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                            {endif}
                            (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                        {else}
                            (L.L.door0_umkehr) 1 =
                            {if}
                                0.1 (S.L.doorMaxSpeed_0)
                                (L.L.doorSpeed_0) (L.L.doorMaxSpeed_0) <
                                {if}
                                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                                {else}
                                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                                {endif}
                                    (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                                    (L.L.door_0) 0.20 >
                                    {if}
                                        1 (S.L.door0_warten)
                                    {endif}
                            {else}
                                0.2 (S.L.doorMaxSpeed_0)
                                l0 /-/ (L.L.doorMaxSpeed_0) <
                                {if}
                                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                                {else}
                                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                                {endif}
                                    (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                                    (L.L.door_0) 0.18 <
                                    {if}
                                        1 (S.L.door0_umkehr)
                                    {endif}
                            {endif}
                        {endif}
                    {endif}
                {else}
                    (L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
                    l0 /-/ (L.L.doorMaxSpeed_0) <
                    {if}
                        (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                    {else}
                        (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                    {endif}
                        (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
                {endif}
    
            {else}
                l0 /-/ (L.L.doorMaxSpeed_0) <
                {if}
                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                {else}
                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                {endif}
                (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
            {endif}
        {else}
            (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
            {if}
                l0 (L.L.doorMaxSpeed_0) <
                {if}
                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
                {else}
                    (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
                {endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_1) (L.L.door_0) < (L.L.door0_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_0)
                    (T.L.ev_doortriggeropen_0)
                {endif}

                (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
            {else}
                0 (S.L.doorSpeed_0)
            {endif}
        {endif}

        {else}
        0 (S.L.doorSpeed_0)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || (L.L.doorDragAcc_0) 0 = ! || &&  (L.L.door_0_locked) ! && (L.L.door_0_locked_elec) ! &&
        {if}
            (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.L.door_pressure_close_0) * (L.L.doorDragAcc_0) - (L.S.Timegap) * -
                (L.L.doorDamper_0) (L.L.doorDamper_0_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_0)
            (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
        {else}
            (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorDragAcc_0) 0 = ! || (L.L.doorTarget_0) && (L.L.door_0_locked) ! && (L.L.door_0_locked_elec) ! &&
            {if}
                (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.L.door_pressure_open_0) * (L.L.doorDragAcc_0) + (L.S.Timegap) * +
                    (L.L.doorDamper_0) (L.L.doorDamper_0_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_0)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_1) (L.L.door_0) < (L.L.door0_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_0)
                {endif}

                (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
            {else}
                0 (S.L.doorSpeed_0)
            {endif}
        {endif}
    {endif}

    (L.L.door_0) 1 >
    {if}
        (T.L.ev_doorhitopen_0)
        1 (S.L.door_0)
        (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
    {else}
        (L.L.door_0) 0 <
        {if}
            (T.L.ev_doorhitclose_0)
            0 (S.L.door_0)
            (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung1) (L.S.Timegap) - (S.L.door_warnung1)
    {endif}
{end}

{macro:Door1_Calc}
    (L.L.door_warnung1) 0 <
    (L.L.doorTarget_1) 1 = ||
    
    {if}
        (L.L.dzwonek_drzwi1) 1 =
        {if}
            0 (S.L.dzwonek_drzwi1)
        {endif}
'Nur, wenn nicht verriegelt:
    (C.L.electric_doors) (L.L.door_1_locked) ! && (L.L.door_1_locked_elec) ! && (L.L.doorEntriegelung_E_active_01) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_01)
        {if}
        (L.L.doorTarget_1)
        {if}
            (L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
        {else}
            (L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
        {endif}

        (C.L.door1_acc) (S.L.doorAcc_1)

        (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_1) <
            {if}
                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
            {else}
                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
            {endif}
            (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_1)
            (L.L.door_1) 0.01 <
            {if}
                0 (S.L.door0_warten)
                0 (S.L.door0_umkehr)
            {endif}

        {else}
            (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
            {if}
                l0 (L.L.doorMaxSpeed_1) <
                {if}
                    (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
                {else}
                    (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
                {endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_0) (L.L.door_1) < (L.L.door1_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_1)
                    (T.L.ev_doortriggeropen_1)
                {endif}

                (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
            {else}
                0 (S.L.doorSpeed_1)
            {endif}
        {endif}
        
        {else}
        0 (S.L.doorSpeed_1)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || (L.L.doorDragAcc_1) 0 = ! || && (L.L.door_1_locked) ! && (L.L.door_1_locked_elec) ! &&
        {if}
            (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.L.door_pressure_close_1) (L.L.doorDragAcc_1) - * (L.S.Timegap) * -
                (L.L.doorDamper_1) (L.L.doorDamper_1_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_1)
            (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_1)
        {else}
            (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorDragAcc_1) 0 = ! || (L.L.doorTarget_1) && (L.L.door_1_locked) ! && (L.L.door_1_locked_elec) ! &&
            {if}
                (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.L.door_pressure_open_1) (L.L.doorDragAcc_1) + * (L.S.Timegap) * +
                    (L.L.doorDamper_1) (L.L.doorDamper_1_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_1)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_0) (L.L.door_1) < (L.L.door1_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_1)
                {endif}

                (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
            {else}
                0 (S.L.doorSpeed_1)
            {endif}
        {endif}
    {endif}
    (L.L.door_1) 1 >
    {if}
        (T.L.ev_doorhitopen_1)
        1 (S.L.door_1)
        (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
    {else}
        (L.L.door_1) 0 <
        {if}
            (T.L.ev_doorhitclose_1)
            0 (S.L.door_1)
            (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung1) (L.S.Timegap) - (S.L.door_warnung1)
    {endif}
{end}

'###############################################################################​################
' Door Calc Türenpaar 2
'###############################################################################​################


{macro:Door2_Calc}
    (L.L.door_warnung2) 0 <
    (L.L.doorTarget_23) 1 = ||
    {if}
        (L.L.dzwonek_drzwi2) 1 =
        {if}
            0 (S.L.dzwonek_drzwi2)
        {endif}
    (C.L.electric_doors) (L.L.doorEntriegelung_E_active_01) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_01)
        {if}

        (L.L.doortarget_23)
        {if}
            (L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
        {else}
            (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
        {endif}

        (C.L.door2_acc) (S.L.doorAcc_2)

        (L.L.doortarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
        {if}
            (C.L.thinking_doors)
            {if}
                (L.L.doorTarget_1) !
                (L.L.door_3) 0 > &&
                (L.L.door_3) (L.L.door_2) - 0.25 /-/ > &&
                (L.L.door_3) (L.L.door_2) - 0.25 < &&
                (L.L.door_2) 0.15 > &&
                {if}
                    (L.L.door2_warten) 1 =
                    {if}
                        0 (S.L.doorSpeed_2)
                        0.20 (S.L.door_2)
                    {else}
                        (L.L.door_2) 0.25 >
                        {if}
                            l0 /-/ (L.L.doorMaxSpeed_2) <
                            {if}
                                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                            {else}
                                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                            {endif}
                            (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                        {else}
                            (L.L.door2_umkehr) 1 =
                            {if}
                                0.1 (S.L.doorMaxSpeed_2)
                                (L.L.doorSpeed_2) (L.L.doorMaxSpeed_2) <
                                {if}
                                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                                {else}
                                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                                {endif}
                                    (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                                    (L.L.door_2) 0.20 >
                                    {if}
                                        1 (S.L.door2_warten)
                                    {endif}
                            {else}
                                0.2 (S.L.doorMaxSpeed_2)
                                l0 /-/ (L.L.doorMaxSpeed_2) <
                                {if}
                                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                                {else}
                                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                                {endif}
                                    (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                                    (L.L.door_2) 0.18 <
                                    {if}
                                        1 (S.L.door2_umkehr)
                                    {endif}
                            {endif}
                        {endif}
                    {endif}
                {else}
                    (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
                    l0 /-/ (L.L.doorMaxSpeed_2) <
                    {if}
                        (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                    {else}
                        (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                    {endif}
                        (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
                {endif}
    
            {else}
                l0 /-/ (L.L.doorMaxSpeed_2) <
                {if}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                {else}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                {endif}
                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
            {endif}
        {else}
            (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doortarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_2) <
                {if}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
                {else}
                    (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
                {endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_3) (L.L.door_2) < (L.L.door2_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_2)
                    (T.L.ev_doortriggeropen_2)
                {endif}

                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
            {else}
                0 (S.L.doorSpeed_2)
            {endif}
        {endif}

        {else}
        0 (S.L.doorSpeed_2)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doortarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || (L.L.doorDragAcc_2) 0 = ! || &&  (L.L.door_2_locked) ! &&
        {if}
            (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.L.door_pressure_close_2) * (L.L.doorDragAcc_2) - (L.S.Timegap) * -
                (L.L.doorDamper_2) (L.L.doorDamper_2_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_2)
            (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
        {else}
            (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorDragAcc_2) 0 = ! || (L.L.doortarget_23) && (L.L.door_2_locked) ! &&
            {if}
                (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.L.door_pressure_open_2) * (L.L.doorDragAcc_2) + (L.S.Timegap) * +
                    (L.L.doorDamper_2) (L.L.doorDamper_2_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_2)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_3) (L.L.door_2) < (L.L.door2_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_2)
                {endif}

                (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
            {else}
                0 (S.L.doorSpeed_2)
            {endif}
        {endif}
    {endif}

    (L.L.door_2) 1 >
    {if}
        (T.L.ev_doorhitopen_2)
        1 (S.L.door_2)
        (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
    {else}
        (L.L.door_2) 0 <
        {if}
            (T.L.ev_doorhitclose_2)
            0 (S.L.door_2)
            (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung2) (L.S.Timegap) - (S.L.door_warnung2)
    {endif}
{end}

{macro:Door3_Calc}
    (L.L.door_warnung2) 0 <
    (L.L.doorTarget_23) 1 = ||
    
    {if}
        (L.L.dzwonek_drzwi2) 1 =
        {if}
            0 (S.L.dzwonek_drzwi2)
        {endif}
'Nur, wenn nicht verriegelt:
    (C.L.electric_doors) (L.L.door_3_locked) ! && (L.L.doorEntriegelung_E_active_23) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_23)
        {if}
        (L.L.doortarget_23)
        {if}
            (L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
        {else}
            (L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
        {endif}

        (C.L.door3_acc) (S.L.doorAcc_3)

        (L.L.doortarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_3) <
            {if}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
            {else}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
            {endif}
            (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
            (L.L.door_3) 0.01 <
            {if}
                0 (S.L.door3_warten)
                0 (S.L.door3_umkehr)
            {endif}

        {else}
            (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doortarget_23) &&
            {if}
                l0 (L.L.doorMaxSpeed_3) <
                {if}
                    (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
                {else}
                    (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
                {endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_2) (L.L.door_3) < (L.L.door3_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_3)
                    (T.L.ev_doortriggeropen_3)
                {endif}

                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
            {else}
                0 (S.L.doorSpeed_3)
            {endif}
        {endif}
        
        {else}
        0 (S.L.doorSpeed_3)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doortarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || (L.L.doorDragAcc_3) 0 = ! || && (L.L.door_3_locked) ! &&
        {if}
            (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.L.door_pressure_close_3) (L.L.doorDragAcc_3) - * (L.S.Timegap) * -
                (L.L.doorDamper_3) (L.L.doorDamper_3_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_3)
            (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
        {else}
            (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorDragAcc_3) 0 = ! || (L.L.doortarget_23) && (L.L.door_3_locked) ! &&
            {if}
                (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.L.door_pressure_open_3) (L.L.doorDragAcc_3) + * (L.S.Timegap) * +
                    (L.L.doorDamper_3) (L.L.doorDamper_3_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_3)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
                (L.L.door_2) (L.L.door_3) < (L.L.door1_physblock) &&
                {if}
                    (C.L.door_blocking_speed) (S.L.doorSpeed_3)
                {endif}

                (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
            {else}
                0 (S.L.doorSpeed_3)
            {endif}
        {endif}
    {endif}
    (L.L.door_3) 1 >
    {if}
        (T.L.ev_doorhitopen_3)
        1 (S.L.door_3)
        (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
    {else}
        (L.L.door_3) 0 <
        {if}
            (T.L.ev_doorhitclose_3)
            0 (S.L.door_3)
            (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung2) (L.S.Timegap) - (S.L.door_warnung2)
    {endif}
{end}

'###############################################################################​################
' Hintertürautomatiken
'###############################################################################​################

{macro:DoorMid_Open}
    

        (L.L.doorTarget_23) !
'        (L.L.door_2) 0 >
'        (L.L.door_3) 0 > || ||
        {if}
            (T.L.ev_doortriggeropen_2)
            1 (S.L.doorTarget_23)
            0 (S.L.doorMidLastOpen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_23) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_23)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {else}
            1 (S.L.doorEntriegelung_doorActive_23)
        {endif}
                

{end}


{macro:DoorAft_Open}

        (L.L.doorTarget_45) !
'        (L.L.door_4) 0 > (L.L.door_5) 0 > || ||
        {if}
            (T.L.ev_doortriggeropen_4)
            1 (S.L.doorTarget_45)
            0 (S.L.tuer3_piep)
            0 (S.L.doorAftLastOpen)    
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_45) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_45)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {else}
            1 (S.L.doorEntriegelung_doorActive_45)
        {endif}
            

{end}

{macro:DoorAftCalc}


    (L.L.knickschutz_aktiv) ! s0
    {if}
        l0
        (L.L.door_2) 0 = &&
        (L.L.door_3) 0 = &&
        s0
    {endif}

'    TUER MITTE *******************************************************************************
    (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) (L.L.door_23_forceclose) || ||
    {if}
        (L.L.door_handrampe) 0 =
        (L.L.doorMidLastOpen) 0 > (L.L.door_freigabe) || &&
        (L.L.door_2_wunsch) ! && (L.L.door_kinderwagen) ! &&
        (L.L.door_2) 0.1 > &&
            {if}
                (L.L.doorMidLastOpen) (L.S.Timegap) + (S.L.doorMidLastOpen)
            {endif}
            
        (L.L.PAX_Exit0_Req) (L.L.door_2_wunsch) (L.L.door_kinderwagen) || || (L.L.doorMidLastOpen) 0 > && (L.L.door_freigabe) &&
            {if}
                0.01 (S.L.doorMidLastOpen)
            {endif}    
                
        (L.L.doorMidLastOpen) (C.L.doorMidOpenTime) 1.3 / > (L.L.door_freigabe) ! && (L.L.door_23_forceclose) ||
        (L.L.PAX_Entry2_Req) (L.L.PAX_Exit0_Req) 18 (M.V.GetHumanCountOnPathLink) 19 (M.V.GetHumanCountOnPathLink) || || || &&
        (L.L.door_handrampe) 0 = &&        
            {if}
                1 (S.L.tuer2_piep)
            {endif}    
            
        (L.L.door_23_forceclose) (L.L.tuer2_piep) && (L.L.door_2) 0 > &&
            {if}
                1 (S.L.tuer_2_piepforced)
            {endif}
        
        (L.L.door_23_forceclose) ! (L.L.door_2) 0 = &&
            {if}
                0 (S.L.tuer_2_piepforced)
            {endif}        

        (L.L.doorTarget_23)
        (L.L.doorMidLastOpen) (C.L.doorMidOpenTime) > (L.L.door_kinderwagen) ! && (L.L.door_2_wunsch) ! && (L.L.PAX_Exit0_Req) ! && (L.L.PAX_Entry2_Req) ! && 18 (M.V.GetHumanCountOnPathLink) ! &&   19 (M.V.GetHumanCountOnPathLink) ! && (L.L.door_23_forceclose) || &&
        (L.L.door_handrampe) 0 = &&                
        {if}            
            (T.L.ev_doortriggerclose_2)
            0 (S.L.doorTarget_23) (S.L.door_23_forceclose) (S.L.rampenwunsch) (S.L.door_kinderwagen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_23) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_23)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {endif}
    {endif}
    
'    TUER HINTEN *******************************************************************************

    (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) (L.L.door_45_forceclose) || ||
    {if}
        (L.L.doorAftLastOpen) 0 > (L.L.door_freigabe) || (L.L.door_3_wunsch) ! && (L.L.door_kinderwagen2) ! && (L.L.door_4) 0.1 > &&
            {if}
                (L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
            {endif}
        
        (L.L.PAX_Exit1_Req) (L.L.door_3_wunsch) (L.L.door_kinderwagen2) || || (L.L.doorAftLastOpen) 0 > &&  (L.L.door_freigabe) &&
            {if}
                0.01 (S.L.doorAftLastOpen)
            {endif}
        
        (L.L.doorTarget_45)
        (L.L.doorAftLastOpen) (C.L.doorAftOpenTime) 1.3 / > (L.L.door_freigabe) ! && && (L.L.door_45_forceclose) ||
        (L.L.PAX_Entry3_Req) (L.L.PAX_Exit1_Req) || &&
            {if}
                1 (S.L.tuer3_piep)
            {endif}    
            
        (L.L.door_45_forceclose) (L.L.tuer3_piep) && (L.L.door_4) 0 > &&
            {if}
                1 (S.L.tuer_3_piepforced)
            {endif}
        
        (L.L.door_45_forceclose) ! (L.L.door_4) 0 = &&
            {if}
                0 (S.L.tuer_3_piepforced)
            {endif}            

        (L.L.doorTarget_45)
        (L.L.doorAftLastOpen) (C.L.doorAftOpenTime) > (L.L.door_kinderwagen2) ! && &&
        (L.L.door_3_wunsch) ! &&
        (L.L.PAX_Entry3_Req) ! &&
        (L.L.PAX_Exit1_Req) ! &&
        (L.L.door_45_forceclose) ||
        {if}            
            (T.L.ev_doortriggerclose_4)
            0 (S.L.doorTarget_45) (S.L.door_45_forceclose)  (S.L.rampenwunsch) (S.L.door_kinderwagen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_45) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_45)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {endif}
    {endif}




'###############################################################################​################
' Door Calc Türenpaar 3
'###############################################################################​################

{macro:Door4_Calc}
    (L.L.door_warnung3) 0 <
    (L.L.doorTarget_45) 1 = ||
    {if}
        (L.L.dzwonek_drzwi3) 1 =
        {if}
            0 (S.L.dzwonek_drzwi3)
        {endif}
    (C.L.electric_doors) (L.L.doorEntriegelung_E_active_45) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_45)
        {if}
        (L.L.doorTarget_45)
        {if}
            (L.L.door_4) (F.L.door_4_opn_speed) (S.L.doorMaxSpeed_4)
        {else}
            (L.L.door_4) (F.L.door_4_cls_speed) (S.L.doorMaxSpeed_4)
        {endif}

        (C.L.door4_acc) (S.L.doorAcc_4)

        (L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_4) <
            {if}
                (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
            {else}
                (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
            {endif}
            (L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
        {else}
            (L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < || (L.L.doorTarget_45) &&
            {if}
                l0 (L.L.doorMaxSpeed_4) <
                {if}
                    (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
                {else}
                    (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
                {endif}
                (L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
            {else}
                0 (S.L.doorSpeed_4)
            {endif}
        {endif}
    
        {else}
        0 (S.L.doorSpeed_4)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > || (L.L.doorDragAcc_4) 0 = ! || && (L.L.door_4_locked) ! &&
        {if}
            (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.L.door_pressure_close_4) (L.L.doorDragAcc_4) - * (L.S.Timegap) * -
                (L.L.doorDamper_4) (L.L.doorDamper_4_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_4)
            (L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
        {else}
            (L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < || (L.L.doorDragAcc_4) 0 = ! || (L.L.doorTarget_45) && (L.L.door_4_locked) ! &&
            {if}
                (L.L.doorSpeed_4) (L.L.doorAcc_4) (L.L.door_pressure_open_4) (L.L.doorDragAcc_4) + * (L.S.Timegap) * +
                    (L.L.doorDamper_4) (L.L.doorDamper_4_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_4)
                (L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
            {else}
                0 (S.L.doorSpeed_4)
            {endif}
        {endif}
    {endif}

    (L.L.door_4) 1 >
    {if}
        (T.L.ev_doorhitopen_4)
        1 (S.L.door_4)
        (L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
    {else}
        (L.L.door_4) 0 <
        {if}
            (T.L.ev_doorhitclose_4)
            0 (S.L.door_4)
            (L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung3) (L.S.Timegap) - (S.L.door_warnung3)
    {endif}
{end}

{macro:Door5_Calc}
    (L.L.door_warnung3) 0 <
    (L.L.doorTarget_45) 1 = ||
    {if}
        (L.L.dzwonek_drzwi3) 1 =
        {if}
            0 (S.L.dzwonek_drzwi3)
        {endif}
    (C.L.electric_doors) (L.L.doorEntriegelung_E_active_45) ! &&
    {if}
        (L.L.doorEntriegelung_doorActive_45)
        {if}
        (L.L.doorTarget_45)
        {if}
            (L.L.door_5) (F.L.door_5_opn_speed) (S.L.doorMaxSpeed_5)
        {else}
            (L.L.door_5) (F.L.door_5_cls_speed) (S.L.doorMaxSpeed_5)
        {endif}

        (C.L.door5_acc) (S.L.doorAcc_5)

        (L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || &&
        {if}
            l0 /-/ (L.L.doorMaxSpeed_5) <
            {if}
                (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
            {else}
                (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
            {endif}
            (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_5)
        {else}
            (L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorTarget_45) &&
            {if}
                l0 (L.L.doorMaxSpeed_5) <
                {if}
                    (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
                {else}
                    (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
                {endif}
                (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_5)
            {else}
                0 (S.L.doorSpeed_5)
            {endif}
        {endif}
        
        {else}
        0 (S.L.doorSpeed_5)
        {endif}
'Pneumatisch: .................................
    {else}
        (L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || (L.L.doorDragAcc_5) 0 = ! || && (L.L.door_5_locked) ! &&
        {if}
            (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.L.door_pressure_close_5) (L.L.doorDragAcc_5) - * (L.S.Timegap) * -
                (L.L.doorDamper_5) (L.L.doorDamper_5_kennwert) (L.S.Timegap) * * -
                (S.L.doorSpeed_5)
            (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_5)
        {else}
            (L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorDragAcc_5) 0 = ! || (L.L.doorTarget_45) && (L.L.door_5_locked) ! &&
            {if}
                (L.L.doorSpeed_5) (L.L.doorAcc_5) (L.L.door_pressure_open_5) (L.L.doorDragAcc_5) + * (L.S.Timegap) * +
                    (L.L.doorDamper_5) (L.L.doorDamper_5_kennwert) (L.S.Timegap) * * -
                    (S.L.doorSpeed_5)
                (L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) (C.L.door_overlap_delay) * * + (S.L.door_5)
            {else}
                0 (S.L.doorSpeed_5)
            {endif}
        {endif}
    {endif}

    (L.L.door_5) 1 >
    {if}
        (T.L.ev_doorhitopen_5)
        1 (S.L.door_5)
        (L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
    {else}
        (L.L.door_5) 0 <
        {if}
            (T.L.ev_doorhitclose_5)
            0 (S.L.door_5)
            (L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
        {endif}
    {endif}
    {else}
        (L.L.door_warnung3) (L.S.Timegap) - (S.L.door_warnung3)
    {endif}
{end}

'###############################################################################​################

{macro:trg_bus_doorfront0}

    (L.L.doorEntriegelung_E_active_01) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_0) ! (S.L.doorTarget_0)
        {if}
            (T.L.ev_doortriggeropen_0)
                0 (S.L.door_warnung1)
        {else}
            (T.L.ev_doortriggerclose_0)
                3 (S.L.door_warnung1)
        {endif}
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_01) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_01)
            {else}
                1 (S.L.doorEntriegelung_doorActive_01)
            {endif}    
            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_01)
        {endif}
    {endif}
{end}

{macro:trg_bus_doorfront1}

    (L.L.doorEntriegelung_E_active_01) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_1) ! (S.L.doorTarget_1)
        {if}
            (T.L.ev_doortriggeropen_1)
                0 (S.L.door_warnung1)
        {else}
            (T.L.ev_doortriggerclose_1)
                3 (S.L.door_warnung1)
        {endif}    
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_01) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_01)
            {else}
                1 (S.L.doorEntriegelung_doorActive_01)
            {endif}    
            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_01)
        {endif}
    {endif}
{end}

{macro:trg_bus_dooraft23}

    (L.L.doorEntriegelung_E_active_23) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_23) ! (S.L.doorTarget_23)
        {if}
            (T.L.ev_doortriggeropen_2)
                0 (S.L.door_warnung2)
        {else}
            (T.L.ev_doortriggerclose_2)
                7 (S.L.door_warnung2)
        {endif}
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_23) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_23)
            {endif}
'            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_23)
        {endif}
    {endif}
{end}

{macro:trg_bus_dooraft45}

    (L.L.doorEntriegelung_E_active_45) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_45) ! (S.L.doorTarget_45)
        {if}
            (T.L.ev_doortriggeropen_4)
                0 (S.L.door_warnung3)
        {else}
            (T.L.ev_doortriggerclose_4)
                7 (S.L.door_warnung3)
        {endif}
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_45) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_45)
            {endif}
            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_45)
        {endif}
    {endif}
{end}

'Trigger for default keyboard input (minus on numpad)

{macro:trg_bus_dooraft}

    (L.L.vdv_sw_tuerfreigabe) 0 =     
    {if}
        (M.L.wippschaltereinsound)    
        1 (S.L.vdv_sw_tuerfreigabe)

    {else}
        (M.L.wippschalteraussound)    
        0 (S.L.vdv_sw_tuerfreigabe)    (S.L.door_freigabe)
    {endif}
    
{end}

'Default keyboard trigger for station brake
{trigger:bus_20h-switch}
(L.L.cp_stopbrake_targeton) 0 =     
    {if}
        1 (S.L.cp_stopbrake_targeton) (S.L.bremse_halte_sw)    
        (M.L.wippschaltereinsound)
    {else}                    
        0 (S.L.cp_stopbrake_targeton) (S.L.bremse_halte_sw)
        (M.L.wippschalteraussound)    
    {endif}    
{end}

{macro:wippschaltereinsound}    
        (T.L.ev_wippschaltereinsound)        
        {end}

{macro:wippschalteraussound}
    (T.L.ev_wippschalteraussound)    
        {end}
        

'AI Hintertuer
{macro:AI_doorback}
    
    (L.L.door_2) 0.05 <
        {if}    
            (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) ||
            (L.L.doorentriegelung_23) ! &&
            (L.L.Velocity) (C.L.doors_maxvspeed) < (L.L.elec_busbar_main_sw) 0 = || &&
            (L.L.bremse_p_Tank04) 500000 > &&
                {if}                
                    1 (S.L.door_23_forceopen)    
                {endif}        
        {endif}
        
        (L.L.door_2) 0.05 >
        {if}
            (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) ||
                {if}
                    1 (S.L.door_23_forceclose)                
                        (L.L.kneeling) 1 =
                        (L.L.door_0) 1 < &&
                        (L.L.door_4) 1 < &&
                            {if}
                                2 (S.L.kneeling)                    
                            {endif}  
                        
                        0 (S.L.door_kinderwagenwunsch) (S.L.door_kinderwagen)
                {endif}
    
        {endif}    
{end}        

{macro:traegheit}

'Simuliert träges Verhalten (exponentiell)

'Ladekonventionen:
'    Sollwert        l0
'    Istwert            l1
'    Konstante Anlauf    l2 (Einheiten/s)
'    Konstante Ablauf    l3 (Einheiten/s)

'Anlauf oder Auslauf?
    l0 l1 >
    {if}
        l2 (L.S.Timegap) * 1 min -1 max s4
    {else}
        l3 (L.S.Timegap) * 1 min -1 max s4
    {endif}


'Sollwert:
    l0
'Istwert:
    l1
'Beschleunigung:
    - l4 *
'Addition zum Istwert:
    l1 + s1
{end}

Z góry dzięki za pomoc:)

EDIT: Dodatkowo po wprowadzeniu tych zmian pojawia się problem z awaryjnym otwieraniem drzwi - nie da się przywrócić zaworu do "normalnego" stanu)
Ktoś coś? Problem chyba leży w sekcji "Hintertürautomatiken", nie ważne co bym robił (próbowałem przenieść skrypt z innego autobusu) to drugie i trzecie drzwi dalej nie reagują...
Nie mam jednak pomysłu jak zedytować tą część.
Nikt nie jest w stanie pomóc? Zauważyłem, że po usunięciu:
Kod:
{macro:trg_bus_dooraft23}

    (L.L.doorEntriegelung_E_active_23) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_23) ! (S.L.doorTarget_23)
        {if}
            (T.L.ev_doortriggeropen_2)
                0 (S.L.door_warnung2)
        {else}
            (T.L.ev_doortriggerclose_2)
                7 (S.L.door_warnung2)
        {endif}
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_23) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_23)
            {endif}
'            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_23)
        {endif}
    {endif}
{end}

{macro:trg_bus_dooraft45}

    (L.L.doorEntriegelung_E_active_45) (C.L.electric_doors) && !
    {if}
        (L.L.doorTarget_45) ! (S.L.doorTarget_45)
        {if}
            (T.L.ev_doortriggeropen_4)
                0 (S.L.door_warnung3)
        {else}
            (T.L.ev_doortriggerclose_4)
                7 (S.L.door_warnung3)
        {endif}
        (C.L.door_druckluft)
        {if}
            (L.L.doorEntriegelung_doorActive_45) -1 =
            {if}
                0 (S.L.doorEntriegelung_doorActive_45)
            {endif}
            (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
        {else}
            1 (S.L.doorEntriegelung_doorActive_45)
        {endif}
    {endif}
{end}

Drzwi i tak działają... Za to po usunięciu sekcji "Hintertürautomatiken"drzwi przestają się otwierać/zamykać. W którym miejscu zatem w tej sekcji powinienem dodać jakąś zmienną/kod? Sam próbowałem dodawać tam to, co jest napisane w pierwszym poście jednak bez skutku, opóźnienia jak nie było tak nie ma...

Tak wygląda cały ten Hintertürautomatiken:
Kod:
'###############################################################################​?################
' Hintertürautomatiken
'###############################################################################​?################

{macro:DoorMid_Open}
    

        (L.L.doorTarget_23) !
'        (L.L.door_2) 0 >
'        (L.L.door_3) 0 > || ||
        {if}
            (T.L.ev_doortriggeropen_2)
            1 (S.L.doorTarget_23)
            0 (S.L.doorMidLastOpen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_23) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_23)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {else}
            1 (S.L.doorEntriegelung_doorActive_23)
        {endif}
                

{end}


{macro:DoorAft_Open}

        (L.L.doorTarget_45) !
'        (L.L.door_4) 0 > (L.L.door_5) 0 > || ||
        {if}
            (T.L.ev_doortriggeropen_4)
            1 (S.L.doorTarget_45)
            0 (S.L.tuer3_piep)
            0 (S.L.doorAftLastOpen)    
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_45) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_45)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {else}
            1 (S.L.doorEntriegelung_doorActive_45)
        {endif}
            

{end}

{macro:DoorAftCalc}


    (L.L.knickschutz_aktiv) ! s0
    {if}
        l0
        (L.L.door_2) 0 = &&
        (L.L.door_3) 0 = &&
        s0
    {endif}

'    TUER MITTE *******************************************************************************
    (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) (L.L.door_23_forceclose) || ||
    {if}
        (L.L.door_handrampe) 0 =
        (L.L.doorMidLastOpen) 0 > (L.L.door_freigabe) || &&
        (L.L.door_2_wunsch) ! && (L.L.door_kinderwagen) ! &&
        (L.L.door_2) 0.1 > &&
            {if}
                (L.L.doorMidLastOpen) (L.S.Timegap) + (S.L.doorMidLastOpen)
            {endif}
            
        (L.L.PAX_Exit0_Req) (L.L.door_2_wunsch) (L.L.door_kinderwagen) || || (L.L.doorMidLastOpen) 0 > && (L.L.door_freigabe) &&
            {if}
                0.01 (S.L.doorMidLastOpen)
            {endif}    
                
        (L.L.doorMidLastOpen) (C.L.doorMidOpenTime) 1.3 / > (L.L.door_freigabe) ! && (L.L.door_23_forceclose) ||
        (L.L.PAX_Entry2_Req) (L.L.PAX_Exit0_Req) 18 (M.V.GetHumanCountOnPathLink) 19 (M.V.GetHumanCountOnPathLink) || || || &&
        (L.L.door_handrampe) 0 = &&        
            {if}
                1 (S.L.tuer2_piep)
            {endif}    
            
        (L.L.door_23_forceclose) (L.L.tuer2_piep) && (L.L.door_2) 0 > &&
            {if}
                1 (S.L.tuer_2_piepforced)
            {endif}
        
        (L.L.door_23_forceclose) ! (L.L.door_2) 0 = &&
            {if}
                0 (S.L.tuer_2_piepforced)
            {endif}        

        (L.L.doorTarget_23)
        (L.L.doorMidLastOpen) (C.L.doorMidOpenTime) > (L.L.door_kinderwagen) ! && (L.L.door_2_wunsch) ! && (L.L.PAX_Exit0_Req) ! && (L.L.PAX_Entry2_Req) ! && 18 (M.V.GetHumanCountOnPathLink) ! &&   19 (M.V.GetHumanCountOnPathLink) ! && (L.L.door_23_forceclose) || &&
        (L.L.door_handrampe) 0 = &&                
        {if}            
            (T.L.ev_doortriggerclose_2)
            0 (S.L.doorTarget_23) (S.L.door_23_forceclose) (S.L.rampenwunsch) (S.L.door_kinderwagen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_23) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_23)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {endif}
    {endif}
    
'    TUER HINTEN *******************************************************************************

    (L.L.elec_busbar_main_sw) (L.L.engine_injection_on) (L.L.door_45_forceclose) || ||
    {if}
        (L.L.doorAftLastOpen) 0 > (L.L.door_freigabe) || (L.L.door_3_wunsch) ! && (L.L.door_kinderwagen2) ! && (L.L.door_4) 0.1 > &&
            {if}
                (L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
            {endif}
        
        (L.L.PAX_Exit1_Req) (L.L.door_3_wunsch) (L.L.door_kinderwagen2) || || (L.L.doorAftLastOpen) 0 > &&  (L.L.door_freigabe) &&
            {if}
                0.01 (S.L.doorAftLastOpen)
            {endif}
        
        (L.L.doorTarget_45)
        (L.L.doorAftLastOpen) (C.L.doorAftOpenTime) 1.3 / > (L.L.door_freigabe) ! && && (L.L.door_45_forceclose) ||
        (L.L.PAX_Entry3_Req) (L.L.PAX_Exit1_Req) || &&
            {if}
                1 (S.L.tuer3_piep)
            {endif}    
            
        (L.L.door_45_forceclose) (L.L.tuer3_piep) && (L.L.door_4) 0 > &&
            {if}
                1 (S.L.tuer_3_piepforced)
            {endif}
        
        (L.L.door_45_forceclose) ! (L.L.door_4) 0 = &&
            {if}
                0 (S.L.tuer_3_piepforced)
            {endif}            

        (L.L.doorTarget_45)
        (L.L.doorAftLastOpen) (C.L.doorAftOpenTime) > (L.L.door_kinderwagen2) ! && &&
        (L.L.door_3_wunsch) ! &&
        (L.L.PAX_Entry3_Req) ! &&
        (L.L.PAX_Exit1_Req) ! &&
        (L.L.door_45_forceclose) ||
        {if}            
            (T.L.ev_doortriggerclose_4)
            0 (S.L.doorTarget_45) (S.L.door_45_forceclose)  (S.L.rampenwunsch) (S.L.door_kinderwagen)
            (C.L.door_druckluft)
            {if}
                (L.L.doorEntriegelung_doorActive_45) -1 =
                {if}
                    0 (S.L.doorEntriegelung_doorActive_45)
                {endif}
'                (L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
            {endif}
        {endif}
    {endif}

@solaris to najlepszy autobus, jakbym edytował w kółko tamten post to tym bardziej bym nie uzyskał pomocy bo nikt by tu nawet nie zajrzał....

EDIT: Udało mi się osiągnąć zamierzany efekt, niestety dalej nie działa awaryjne otwieranie drzwi ale nie mam już pomysłów ani sił by się z tym bawić. Niedługo modyfikacja ta pojawi się na forum (jak wprowadzę te zmiany jeszcze do przegubowców) a tymczasem nie dziękuję za brak pomocy i bezsensowne ostrzeżenia:)

Jestem Szymek w dniu 10.08.2019 o 11:47 edytował tego posta. Powód zmian / notatka moderatorska:

Nie piszemy posta pod postem tylko używamy funkcji edytuj.

4.2 Spamowanie, floodowanie lub dublowanie postów / ostrzeżenie niskoprocentowe


(Ten post był ostatnio modyfikowany: 10.08.2019 14:36 przez szymex71.)
09.08.2019 13:40
Szukaj postów Cytat
Odpowiedź 




Użytkownicy przeglądający ten wątek: 1 gości

Forum Strefa-OMSI.pl

Tematyczne Forum dotyczące najpopularniejszego symulatora autobusu - OMSI. Zapraszamy do rejestracji i aktywnego udziału w Społeczności.

Strona wykorzystuje pliki cookies. Korzystanie z witryny oznacza zgodę na ich zapis lub odczyt wg ustawień przeglądarki.

Współpracujemy z:

Polecamy także: