Odpowiedź 
Problemy ze skryptem opóźniającym zamknięcie drzwi
Autor Wiadomość

Administrator
Administratorzy
Liczba postów: 1,327
Dołączył: 12-2012
Podziękowań: 420
Post: #1
Problemy ze skryptem opóźniającym zamknięcie drzwi
Witam

Próbuję opanować skrypt opóźniający zamknięcie drzwi i mam z nim pewien problem...
Przednie drzwi działają perfekcyjnie, opóźnienie jest o jedną sekundę. Problem jest z drugimi drzwiami. Gdy pierwsze są zamknięte, drugie działają dobrze, gdy pierwsze są otwarte, wtedy drugie zamykają się już bez opóźnienia.
Jakby ktoś, kto ogarnia trochę zajrzał i podpowiedział co się może dziać, byłbym wdzęczny:)

Wklejam cały skrypt poniżej:
'##############
'Door Script
'##############

'Controls Doors

'© 2007-2009 Rüdiger Hülsmann
'© 2007-2009 Marcel Kuhnt

'Script Version: 1.1
'Omsi release: 1.0

'Needs:
'- elec

'Revision History:
'- Marcel Kuhnt 13.06.2009 Batterietrennschalter => elec_busbar_main
'- Marcel Kuhnt 21.06.2009 AI-Unterstützung hinzugefügt
'- Rüdiger Hülsmann 24.10.2009 Ansteuerung des Kinderwagenwunsches modifiziert
'- 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
'- RÜdiger Hülsmann 22.09.2010 Door light trigger value set to 0.1
'- RÜdiger Hülsmann 07.11.2010 Door speed based on reservoir pressure, air-operated doors made an option
'- Marcel Kuhnt 08.11.2010 AI procedure closing doors debugged
'- Rüdiger Hülsmann 21.11.2010 Front doors only operable when busbar on
'- Rüdiger Hülsmann 23.12.2010 External front door operation included, option: doors only operable with actual stop brake
'- Rüdiger Hülsmann 31.12.2010 Electric door function debugged
'- Rüdiger Hülsmann 05.01.2011 20h-switch
'- Rüdiger Hülsmann 07.01.2011 Backdoor manual switch sound debugged, 20h switch depending on bus type
'- Rüdiger Hülsmann 19.01.2011 Electric door support
'- Mattez 09.06.2013 External open door button support for D92

'--------------------------------------------------------------------------------

{trigger:bus_doorfront0}
(L.L.cp_dummy_sw04) ! (S.L.cp_dummy_sw04)
(M.L.trg_bus_doorfront0)
{end}

{trigger:bus_doorfront1}
(L.L.elec_busbar_avail) (L.L.door_lock)
{if}
(M.L.trg_bus_doorfront1)
{endif}
1 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront1_off}
0 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront3}
(L.L.elec_busbar_avail) (L.L.door_lock)
{if}
(M.L.trg_bus_doorfront3)
{endif}
1 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_doorfront3_off}
0 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_dooraft}
(M.L.trg_bus_dooraft)
{end}

{trigger:bus_20h-switch}
(L.L.elec_busbar_avail) (L.L.door_lock)
{if}
(M.L.trg_bus_doorfront1)
(M.L.trg_bus_doorfront3)
{endif}
1 (M.L.trg_bus_20h-switch)
1 (S.L.cockpit_tuertaster1)
1 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_20h-switch_off}
0 (M.L.trg_bus_20h-switch)
0 (S.L.cockpit_tuertaster1)
0 (S.L.cockpit_tuertaster2)
{end}

{trigger:ext_cg_button0}
(L.L.cg_sw_on)
{if}
1 (M.L.trg_bus_doorfront1)
{endif}
1 (S.L.cockpit_tuertaster1)
{end}

{trigger:ext_cg_button1}
(L.L.cg_sw_on)
{if}
1 (M.L.trg_bus_doorfront3)
{endif}
1 (S.L.cockpit_tuertaster2)
{end}

'{trigger:int_haltewunsch}
' 1 (S.L.haltewunsch)
'{end}

'{trigger:door_haltewunsch}
' 1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
'{end}

{trigger:door_haltewunsch_off}
0 (S.L.door_haltewunsch_knopfdruck)
{end}

{trigger:cg_sw_on}
(L.L.cg_button) ! (S.L.cg_button)
{if}
(T.L.ev_kippschalter_ein)
{else}
(T.L.ev_kippschalter_aus)
{endif}

{end}

{trigger:door_kinderwagenwunsch}
(L.L.bremse_halte) (L.L.door_handsteuerung) ! &&
{if}
1 (S.L.door_kinderwagenwunsch)
{endif}
{end}


{macro:Door_Init}
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0_kierman)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)

1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm_kierman)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)

(C.L.door_refl) (S.L.doorRefl_0_kierman)
(C.L.door_refl) (S.L.doorRefl_0)
(C.L.door_refl) (S.L.doorRefl_1)
(C.L.door_refl) (S.L.doorRefl_2)
(C.L.door_refl) (S.L.doorRefl_3)


{end}

{macro:Door_Frame}
(M.L.Door0_Calc)
(M.L.Door0_Calc_kierman)
(M.L.Door1_Calc)
(M.L.Door2_Calc)
(M.L.Door3_Calc)
(M.L.CG)
(M.L.door_lock_frame)


(L.L.door_1) 0.9 > (S.L.PAX_Entry0_Open) (S.L.PAX_Exit0_Open)
(L.L.door_2) 0.9 > (S.L.PAX_Entry1_Open) (S.L.PAX_Exit1_Open)
(L.L.door_3) 0.9 > (S.L.PAX_Entry2_Open) (S.L.PAX_Exit2_Open)


' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
(L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
{if}
1 (S.L.haltewunsch)
{endif}

' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
(L.L.bremse_halte_sw) (L.L.door_20h_sw) (L.L.door_1) 0.1 > (L.L.door_2) 0.1 > (L.L.door_3) 0.1 > || || || ||
(L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
{if}
(L.L.elec_busbar_main)
{if}
(T.L.ev_haltebremse_an)
1 (S.L.bremse_halte)
{endif}
{endif}

' Anhand dieser Bedingungen kann nun die Automatiktür geöffnet werden:


' Türfreigabekriterium

(L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)




(L.L.haltewunsch) (L.L.door_1) 0.2 < (L.L.elec_busbar_main) && &&
{if}
1 (S.L.haltewunschlampe)

(L.L.stop_request_played) !
(L.L.haltewunschlampe) &&
1 (S.L.stop_request_played)

{else}
0 (S.L.stop_request_played)
0 (S.L.haltewunschlampe) (S.L.haltewunsch)
{endif}

(L.L.haltewunsch) (L.L.door_2) 0.2 < (L.L.elec_busbar_main) && &&
{if}
1 (S.L.haltewunschlampe)

(L.L.stop_request_played) !
(L.L.haltewunschlampe) &&
1 (S.L.stop_request_played)

{else}
0 (S.L.stop_request_played)
0 (S.L.haltewunschlampe) (S.L.haltewunsch)
{endif}

(L.L.haltewunsch) (L.L.door_3) 0.2 < (L.L.elec_busbar_main) && &&
{if}
1 (S.L.haltewunschlampe)

(L.L.stop_request_played) !
(L.L.haltewunschlampe) &&
1 (S.L.stop_request_played)

{else}
0 (S.L.stop_request_played)
0 (S.L.haltewunschlampe) (S.L.haltewunsch)
{endif}


' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:

(L.L.elec_busbar_main) 0 =
{if}
0 (S.L.door_kinderwagenwunsch)
{endif}

' Beleuchtung der Einstiege

(L.L.elec_busbar_main)
{if}
(L.L.door_1) 0.1 >
{if}
(S.L.door_light_1) (S.L.door_open0) &&
{else}
(S.L.door_light_1) && (S.L.door_open0) &&
{endif}
(L.L.door_2) 0.1 > (L.L.door_3) 0.1 > &&
{if}
(S.L.door_light_2) (S.L.door_open1) &&
{else}
(S.L.door_light_2) (S.L.door_open1) &&
{endif}
{endif}


' Druckabhängige Türgeschwindigkeit

(C.L.door_druckluft)
{if}
(L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
(L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
(L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
(L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
{endif}
'----------------------
' AI-Ablauf:

(L.L.AI_Scheduled_AtStation) s0
1 =
{if}
'Wenn Türen geöffnet werden sollen:
(L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
{if}
'Nur, wenn v < maxkmh, sonst warten
'Taster jeweils nur betätigen, falls noch nicht an
(L.L.bremse_halte_sw) !
{if}
(M.L.trg_bus_dooraft)
{endif}
(L.L.doorTarget_0) ! (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront0)
{endif}
(L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.6 > &&
{if}
(M.L.trg_bus_doorfront1)
{endif}
(L.L.doorTarget_23) ! (L.L.door_AI_timer) 0.6 > &&
{if}
(M.L.trg_bus_doorfront3)
{endif}

{else}
0 (S.L.door_AI_timer)
{endif}
(L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{else}
l0 -1 =
{if}
'Wenn Türen geschlossen werden sollen:
'Taster jeweils nur betätigen, falls noch nicht aus:
(L.L.doorTarget_1)
{if}
(M.L.trg_bus_doorfront1)
0 (S.L.door_AI_timer)
{endif}
(L.L.doorTarget_0) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront0)
{endif}
(L.L.doorTarget_23) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront3)
{endif}
'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
(L.L.door_1) 0.1 < &&
(L.L.door_2) 0.1 < &&
(L.L.door_3) 0.1 < &&
{if}
(L.L.bremse_halte_sw) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_dooraft)
{endif}
(L.L.bremse_halte_sw) !
{if}
0 (S.L.AI_Scheduled_AtStation)
{endif}
{else}
'Sollte eine der Türen auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
(L.L.bremse_halte_sw) !
{if}
(M.L.trg_bus_dooraft)
{endif}
(L.L.doorTarget_0) !
(L.L.doorTarget_1) ! &&
{if}
0 (S.L.door_AI_timer)
{endif}
{endif}
(L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{endif}
{endif}


{end}

{macro:CG}


(L.L.haltewunsch)
{if}
1 (S.L.haltewunsch)
(T.L.stop_request)
{else}
(L.L.PAX_Exit0_Req) || (L.L.PAX_Exit1_Req) || (L.L.PAX_Exit2_Req) || (S.L.haltewunsch)
{endif}


(L.L.cg_button)
{if}
(L.L.door_1) 0 =
{if}
(L.L.PAX_Entry0_Req) (L.L.PAX_Exit0_Req) ||
{if}
1 (S.L.door_auto_0) (M.L.trg_bus_doorfront1)
{else}
0 (S.L.door_auto_0)
{endif}
{endif}
(L.L.door_2) 0 = (L.L.door_3) 0 = ||
{if}
(L.L.PAX_Entry1_Req) (L.L.PAX_Exit1_Req) (L.L.PAX_Entry2_Req) (L.L.PAX_Exit2_Req) || || ||
{if}
1 (S.L.door_auto_1) (M.L.trg_bus_doorfront3)
{else}
0 (S.L.door_auto_1)
{endif}
{endif}
1 (S.L.bremse_halte)
1 (S.L.cg_sw_on)
{else}
(L.L.cg_sw_on)
{if}
(L.L.door_1) 0.1 >
{if}
(M.L.trg_bus_doorfront1)
{endif}
(L.L.door_2) 0.1 > (L.L.door_3) 0.1 > ||
{if}
(M.L.trg_bus_doorfront3)
{endif}
0 (S.L.cg_sw_on)
{endif}
0 (S.L.bremse_halte)
{endif}
{end}

{macro:Door0_Calc_kierman}
(L.L.doorTarget_0_kierman)
{if}
(L.L.door_0_kierman) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
{else}
(L.L.door_0_kierman) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
{endif}

(C.L.fdoor_acc) (S.L.doorAcc_0)

(L.L.doorTarget_0_kierman) ! (L.L.doorSpeed_0_kierman) s0 abs 0.05 > (L.L.door_0_kierman) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0_kierman)
{else}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0_kierman)
{endif}
(L.L.door_0_kierman) (L.L.doorSpeed_0_kierman) (L.S.Timegap) * + (S.L.door_0_kierman)
{else}
(L.L.doorSpeed_0_kierman) abs 0.05 > (L.L.door_0_kierman) 1 < || (L.L.doorTarget_0_kierman) &&
{if}
l0 (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0_kierman)
{else}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0_kierman)
{endif}
(L.L.door_0_kierman) (L.L.doorSpeed_0_kierman) (L.S.Timegap) * + (S.L.door_0_kierman)
{else}
0 (S.L.doorSpeed_0_kierman)
{endif}
{endif}
{else}
(L.L.doorTarget_0_kierman) ! (L.L.doorSpeed_0_kierman) s0 abs 0.05 > (L.L.door_0_kierman) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0_kierman)
{endif}
(L.L.door_0_kierman) (L.L.doorSpeed_0_kierman) (L.S.Timegap) * + (S.L.door_0_kierman)
{else}
(L.L.doorSpeed_0_kierman) abs 0.05 > (L.L.door_0_kierman) 1 < || (L.L.doorTarget_0_kierman) &&
{if}
l0 (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0_kierman) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0_kierman)
{endif}
(L.L.door_0_kierman) (L.L.doorSpeed_0_kierman) (L.S.Timegap) * + (S.L.door_0_kierman)
{else}
0 (S.L.doorSpeed_0_kierman)
{endif}
{endif}
{endif}

(L.L.door_0_kierman) 1 >
{if}
(T.L.ev_doorhitopen_0)
1 (S.L.door_0_kierman)
(L.L.doorSpeed_0_kierman) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0_kierman)
{else}
(L.L.door_0_kierman) 0 <
{if}
(T.L.ev_doorhitclose_0)
0 (S.L.door_0_kierman)
(L.L.doorSpeed_0_kierman) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0_kierman)
{endif}
{endif}
{end}

{macro:Door0_Calc}
(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.fdoor_acc) (S.L.doorAcc_0)

(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 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}
(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.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}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
0 (S.L.doorSpeed_0)
{endif}
{endif}
{else}
(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(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.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)
{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}
{end}

{macro:Door1_Calc}
(L.L.door_Warncounter) 0 <
(L.L.doorTarget_1) 1 = ||
{if}
(L.L.door_Warnung) 1 =
{if}
0 (S.L.door_Warnung)
{endif}
(C.L.electric_doors)
{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.fdoor_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) * + (S.L.door_1)
{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}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{else}
(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)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{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)
{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_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
{end}

{macro:Door2_Calc}
(L.L.door_Warncounter) 0 <
(L.L.doorTarget_1) 1 = ||
{if}
(L.L.door_Warnung) 1 =
{if}
0 (S.L.door_Warnung)
{endif}
(C.L.electric_doors)
{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.bdoor_acc) (S.L.doorAcc_2)

(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
{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.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}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.doorSpeed_2)
{endif}
{endif}
{else}
(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_2) <
{if}
(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.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)
{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_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
{end}

{macro:Door3_Calc}
(L.L.door_Warncounter) 0 <
(L.L.doorTarget_1) 1 = ||
{if}
(L.L.door_Warnung) 1 =
{if}
0 (S.L.door_Warnung)
{endif}
(C.L.electric_doors)
{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.bdoor_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)
{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}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
0 (S.L.doorSpeed_3)
{endif}
{endif}
{else}
(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)
{endif}
(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.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_3) <
{if}
(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)
{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_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
{endif}
{end}



{macro:trg_bus_doorfront0_kierman}

(L.L.doorTarget_0_kierman) ! (S.L.doorTarget_0_kierman)
{if}
(T.L.ev_doortriggeropen_0)
{else}
(T.L.ev_doortriggerclose_0)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}

{macro:trg_bus_doorfront0}

(L.L.doorTarget_0) ! (S.L.doorTarget_0)
{if}
(T.L.ev_doortriggeropen_0)
{else}
(T.L.ev_doortriggerclose_0)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}

{macro:trg_bus_doorfront1}

(L.L.doorTarget_1) ! (S.L.doorTarget_1)
{if}
(T.L.ev_doortriggeropen_1)
0 (S.L.door_Warncounter)
{else}
(T.L.ev_doortriggerclose_1)
1 (S.L.door_ClosedLast)
2 (S.L.door_Warncounter)
1 (S.L.door_Warnung)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{end}

{macro:trg_bus_doorfront3}

(L.L.doorTarget_23) ! (S.L.doorTarget_23)
{if}
(T.L.ev_doortriggeropen_2)
1 (S.L.door_open1)
0 (S.L.door_Warncounter)
{else}
(T.L.ev_doortriggerclose_2)
1 (S.L.door_ClosedLast)
0 (S.L.door_open1)
2 (S.L.door_Warncounter)
1 (S.L.door_Warnung)
{endif}
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
{endif}

{end}



{macro:trg_bus_dooraft}
(L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)

(L.L.bremse_halte_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}

{macro:trg_bus_20h-switch}
(L.L.door_20h_sw) ! (S.L.door_20h_sw)

(L.L.door_20h_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}

{macro:door_lock_frame}
(L.L.Velocity) 2 >
{if}

(L.L.door_lock_snd) 0 =
{if}
(T.L.door_lock_cvak)
1 (S.L.door_lock_snd)
{endif}

(L.L.doorTarget_0) !
{if}
0 (S.L.door_lock)
{endif}
{endif}


(L.L.Velocity) 1 <
{if}
1 (S.L.door_lock)

(L.L.door_lock_snd) 1 =
{if}
(T.L.door_lock_cvak)
0 (S.L.door_lock_snd)
{endif}
{endif}
{end}


!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
26.07.2013 08:56
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: