Advertisement
LukasBor

CC_IR_nakladka/vykladka

Mar 14th, 2021 (edited)
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.99 KB | None | 0 0
  1. --[[
  2. Brzdeni vlaku pred nakladkou/vykladkou a vypousteni vlaku po dokonceni nakladky/vykladky.
  3. Instalace jako autorun: pastebin get HuWGeigy startup .
  4.  
  5. LocoControl (mode Computer) na strane horni (top), detector s redstonem za pocitacem ve smeru jizdy.
  6. Po prejezdu detectoru se zaradi neutral a aktivuji brzdy na 100%, pro vyslani odbrzdime a nastavime uroven plynu (viz tabulky nize).
  7.  
  8. Brzdna vzdalenost a rychlost neni konstantni, zalezi na vaze vlaku (rychlost/brzdna vzdalenost).
  9.  
  10. Loko GE B40-8, 2x cisterna US2 (po 85b nafty):
  11. plyn    0.2     0.25    0.3     0.35
  12. plny    11/1    22/3    38/12   61/33
  13. prazdny 18/1    35/8    60/26   96/67
  14.  
  15. Loko GE B40-8, 2x vagon USRA Boxcar RR-40 (po 90st dreva):
  16. plyn    0.2     0.25    0.3     0.35
  17. plny    14/1    26/5    45/24   71/39
  18. prazdny 22/2    41/9    70/28   103/71
  19. --]]
  20.  
  21. -- Urceni, zda se jedna o nakladku/vykladku a nastaveni stran redstonovych vstupu
  22. local Nakladka = true     -- nakladka je true, vykladka je false
  23. local SideVlak = "left"   -- strana detektoru prijezdu vlaku (log.1 pri pritomnosti vlaku)
  24. local SideLoad = "bottom" -- strana redstonu nakladky/vykladky (log.1 pri ukonceni)
  25. -- Urovne plynu pri vypousteni plneho/prazdneho vlaku (viz tabulky vyse)
  26. local Plyn = {plny = 0.25, prazdny = 0.25}
  27.  
  28. -- Nastaveni periferii a prvotnich promennych
  29. local Loko = peripheral.wrap("top") -- LocoControl augment na horni strane
  30.  
  31. -- Vymazani okna terminalu
  32. term.clear()
  33. term.setCursorPos(1,1)
  34.  
  35. -- Nekonecna smycka (hlavni telo programu)
  36. while true do
  37.   -- Cekame na prijezd vlaku
  38.   print("Cekam na vlak...")
  39.   repeat os.pullEvent("redstone") until (rs.getInput(SideVlak))
  40.   -- Zastavime ho a chvilku pockame (eliminace falesnych eventu)
  41.   Loko.setThrottle(0); Loko.setBrake(1); sleep(10)
  42.   -- Cekame na ukonceni nakladky/vykladky (na log.1)
  43.   print("Cekam na dokonceni nakladky/vykladky...")
  44.   repeat os.pullEvent("redstone") until (rs.getInput(SideLoad))
  45.   -- Muzeme vypustit vlak do sveta
  46.   if (Nakladka)
  47.     then Loko.setBrake(0); Loko.setThrottle(Plyn.plny) -- vlak plny a tezky
  48.     else Loko.setBrake(0); Loko.setThrottle(Plyn.prazdny) -- prazdny a lehky
  49.   end
  50.   print("Nakladka/vykladka dokoncena, vlak odjizdi...")
  51.   sleep(30) -- pozastavime program (eliminace falesnych eventu)
  52. end
  53.  
  54. --[[
  55. local RSVlak = false
  56. local RSLoad = false
  57.  
  58. -- Nekonecna smycka (hlavni telo programu)
  59. while true do
  60.   -- Cekame na zachyceni eventu (zmena redstone na nejake strane)
  61.   os.pullEvent("redstone")
  62.   -- Je pritomen vlak?
  63.   RSVlak = rs.getInput(SideVlak)
  64.   -- event vyvolal vlak, budeme brzdit
  65.   if (RSVlak) then Loko.setThrottle(0); Loko.setBrake(1); sleep(5); RSLoad = rs.getInput(SideLoad) end
  66.   -- event vyvolala nakladka/vykladka
  67.   if ((RSVlak) and (RSLoad)) then
  68.     if (Nakladka) -- je ukoncena nakladka (true) nebo vykladka (false)?
  69.       then Loko.setBrake(0); Loko.setThrottle(Plyn.plny) -- vlak plny a tezky
  70.       else Loko.setBrake(0); Loko.setThrottle(Plyn.prazdny) -- prazdny a lehky
  71.     end
  72.     sleep(30) -- pozastavime program - eliminace falesnych eventu pri odjezdu vlaku
  73.   end
  74. end
  75. --]]
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement