====== TRAIN DU ZOO ====== * **Concepteur :** [[utilisateurs:amelaye|amelaye]] * **Nombre de Stations :** 1 * **Lancement :** 2020 ===== Présentation ===== {{ ::screenshot_20210110_184336.png?nolink&600 |}} C'est un trajet relativement court qui attend le visiteur mais qui vaut le coup ! Prenez place à bord de ce train à l'ancienne, réalisé avec [[https://advtrains.de|Advanced Trains]], qui fait le tour du jardin zoologique. Il est entièrement automatisé. {{ ::screenshot_20210110_184739.png?nolink&600 |}} Ici il n'y a qu'un seul train disponible, qui arrive en gare toutes les **5 minutes**. Il attend **2 minutes** en gare et part faire le tour du parc en **3 minutes** à la vitesse de **11kms/heures**, de quoi vous laisser le temps de profiter du spectacle ! Aux environs, le site est sécurisé progressivement pour vous préserver d'un écrasement éventuel 8-) ! ===== Ressources Techniques ===== Cette rubrique permet de comprendre et de reproduire chez vous certains aspects intéressants et techniques du serveur. ==== LuaController : timing ==== Voici le code que j'ai utilisé pour programmer le panel d'attente. //pin.d// est le branchement avec le **Detector Rail**, //"gare_zoo"// est le nom du **panel Digilines**. mem.travel_time =151 mem.stations = {} mem.stations.here = "Zoo" mem.stations.there= "Zoo" digiline_send("gare_zoo", string.format("To %s ->", mem.stations.there)) if (pin.d) then mem.train_arrived_time = os.time() digiline_send("gare_zoo", "Train a quai !") else if (mem.train_arrived_time ~= nil and mem.train_arrived_time ~= "") then time = mem.travel_time - os.difftime(os.time(), mem.train_arrived_time) minutes = math.floor(time/60)+3 -- une minute de plus pour le delai digiline_send("gare_zoo", string.format("Prochain depart dans %s minutes.", minutes)) else digiline_send("gare_zoo", "Arrivee imminente ! (ou pas ...)") end end interrupt(1, "gareZooStation_Exclusive") ==== Passage piétons ==== Des croix de St André sont posées au niveau du passage. Elles portent le nom //"zoo_in"// et //"zoo_out"//, nommées grâce au **Passive Component Naming Tool**. Deux **rails LUA Automation** sont posés de part et d'autre pour détecter le passage du train et exécuter le code suivant : setstate("zoo_in", "on") setstate("zoo_out", "on") ... quand le signal doit s'allumer (le train arrive) ... setstate("zoo_in", "off") setstate("zoo_out", "off") Quand le signal doit s'éteindre (le train est parti).