Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
henrion

Signalisation de voie unique

Recommended Posts

Erakis    147

Bonsoir,

 

Si mes souvenirs sont bons...

 

La routine

Update = function( intervalle_de_temps )

renvoie le temps écoulé en secondes depuis le précédent appel de cette même routine que TS force à tourner en boucle.

 

Tu peux stocker le temps total par additions successives de la variable intervalle_de_temps (locale à la fonction Update) à une variable globale gTempsTotal (ligne 42 ci-dessous) :

-- Constante de temps à utiliser (en secondes)

DUREE_COMMUTATION = 5

-- Initialisation des variables globales :

Setup = function()

  gCommutateur = False
  gTempsEcoule = 0

end

-- Routine Update

Update = function( intervalle_de_temps )

  -- Si le temps écoulé est supérieur ou égal à la constante choisie...

  if gTempsEcoule >= DUREE_COMMUTATION then

    -- Alors activation du commutateur... :
    gCommutateur = True

    -- ...et remise à zéro du chronomètre :
    gTempsEcoule = 0

  end

  -- Si le commutateur est activé (vaut "True"), alors...

  if gCommutateur then

    -- Placer ici toutes les instructions à réaliser une fois le temps écoulé.
    -- (Prévoir de remettre gCommutateur à "False" si besoin d'utiliser cette temporisation plusieurs fois.)

    -- On aurait pu également se passer de la variable gCommutateur et tout mettre dans la condition précédente mais j'éviterais d'imbriquer trop d'instructions...

  end

  -- Augmentation de la valeur de la variable globale :
  gTempsEcoule = gTempsEcoule + intervalle_de_temps

end

J'avais utilisé cette fonctionnalité pour le script de VACMA (voir http://www.railsim-fr.com/forum/index.php?showtopic=1476&p=11947) pour déterminer les temps d'appui de la VA. J'imagine qu'une stratégie similaire est utilisée pour faire clignoter les feux dans les scripts de signalisation lumineuse.

 

Si tu veux réaliser cela en dehors d'une routine Update (même si je ne vois pas pour quelle raison) alors il est sans doute possible d'utiliser la fonction os.clock() qui renvoie le temps CPU en secondes au moment de l'appel de cette fonction (il faut donc faire la différence avec une valeur stockée précédemment pour obtenir une durée).

 

[EDIT] PS - désolé pour la coloration syntaxique délirante : le forum ne supporte pas le Lua...

Edited by Erakis

Share this post


Link to post
Share on other sites
henrion    101

Merci beaucoup pour cette réponse. Je vais voir comment faire avec tes indications.

 

J'avais essayé dans la fonction wait() en utilisant os.clock et cela me plante le simu.

 

 

[Edit:} J'ai résolu mon problème. A force de faire des choses compliquées, on ne voit pas forcément ce qui est simple :).

Edited by henrion

Share this post


Link to post
Share on other sites
henrion    101

Bonjour.

 

Je vais demain mettre en ligne la signalisation de voie unique qui comporte à la fois la signalisation mécanique et la signalisation lumineuse.

 

Cette signalisation va être, dans certains cas, compliquée à installer. Il faudra bien lire le manuel accompagnateur.

 

J’ai, en effet, été confronté à de nombreux problèmes :

 

- Certains signaux comme le disque-avertissement bloquent certains messages mais pas tous. Il a fallu trouver une solution un peu complexe pour pallier ce défaut.

- Le lien 1 des sémaphores de gare ne retransmet pas les messages vers l’arrière, mais là encore pas tous.

- La bifurcation de voie unique m’a demandé plusieurs mois de travail car deux sémaphores étaient systématiquement présentés ouverts ce qui n’était pas acceptable.

 

Par ailleurs, j’ai changé d’ordinateur et je suis passé simultanément de Windows 7 et Train simulator 2016 à Windows 10 et Train simulator 2017. Le passage de l’un à l’autre, et je ne sais pas qui en est responsable, a provoqué quelques anomalies. Ainsi certains signaux qui marchaient parfaitement sous Windows 7/TS 2016 ne marchaient plus sous Windows 10/TS 2017. Il a fallu que je réécrive certains scripts. Pour le manuel sous Word, sémaphores s’était transformé en séma Dhores. Allez comprendre pourquoi.

 

Bref, cette signalisation a été la plus compliquée pour moi à mettre au point. Elle fonctionne suivant le principe du test et par échange de messages comme dans la réalité.

 

Cela termine l’intégralité de la signalisation française qu’il est possible de faire dans l’état actuel du simulateur. Il manque la possibilité d’envoyer un message de la cabine à la signalisation, ce qui serait intéressant dans beaucoup de cas.

 

Vous avez donc à votre disposition :

 

- La signalisation mécanique

- La signalisation de BAPR

- La signalisation de BAL

- La signalisation des lignes à grande vitesse

- La double signalisation SNCF

- La signalisation de voie unique

 

Sans compter toute la panoplie des PN, pancartes, TIV,…….

 

Bref, il y a de quoi faire pour les lignes françaises.

 

Voici le manuel avec un peu d'avance. Il sera dans la partie Manuals/Fr

 

Manuel Voie unique.pdf

 

Il faut remercier Geluc, Papinic et TerLor pour leurs modèles 3D.

Edited by henrion
  • Like 3

Share this post


Link to post
Share on other sites
Gondel    51

Bonsoir,

A la lecture rapide du manuel, je mesure le travail de titan que cela a représenté !

Chapeau, monsieur Henrion

Share this post


Link to post
Share on other sites
al60    258

Bravo et merci pour cet excellent travail.

Share this post


Link to post
Share on other sites
pierreg    3,465

Un énorme MERCI, Henrion.

Comme à ton habitude, tu fais des documents impeccables et didactiques mais qui ne se digèrent qu'à tête reposée :blush:

Une doc de référence donc !

Bravo,

PierreG

Share this post


Link to post
Share on other sites

×