From 8a33e7b93803803ca84e1cbc8f4bfac8a8c4c409 Mon Sep 17 00:00:00 2001
From: orwell96 <orwell@bleipb.de>
Date: Tue, 15 Jan 2019 21:09:48 +0100
Subject: Update interlocking manual

---
 assets/interlocking.html.LyXconv/interlocking.tex | 209 +++++++++++++++++++---
 1 file changed, 189 insertions(+), 20 deletions(-)

(limited to 'assets/interlocking.html.LyXconv/interlocking.tex')

diff --git a/assets/interlocking.html.LyXconv/interlocking.tex b/assets/interlocking.html.LyXconv/interlocking.tex
index 87ef235..647821d 100644
--- a/assets/interlocking.html.LyXconv/interlocking.tex
+++ b/assets/interlocking.html.LyXconv/interlocking.tex
@@ -210,8 +210,11 @@ over new with setting up track sections.
 
 \subsection{Interlocking patterns}
 
-This section is supposed to show some examples on how you should set
-up track sections on certain track configurations.
+Have a look at the following images. They show you how you can set
+up sections so that reasonable train moves are possible.
+
+You should settle on a naming scheme for your sections. This way,
+you can determine the source of an issue faster
 
 \section{Signals and routes}
 
@@ -223,7 +226,7 @@ There are 2 types of signals:
 \item Static signals always display the same information to the train. This
 can be a speed restriction (or the end of one), a disallowal to proceed
 as shunt move or similar things. In most cases, these are signs.
-\item Variable signals are what most people would call a ``signal''. Its
+\item Dynamic signals are what most people would call a ``signal''. Its
 function is to inform trains about whether and at which speed they
 can proceed into the next section safely.
 \end{itemize}
@@ -246,7 +249,7 @@ different ways to configure this. Signals integrated into advtrains
 behave as follows:
 \begin{itemize}
 \item Static signals and all red-green light signals from core advtrains
-that are not assigned to a TCB can be configured by holding the ``Sneak''
+that are not assigned to a TCB can be configured by holding the ``Use''
 key and then right-clicking the signal
 \item All signals that are assigned to a TCB can be configured by first
 right-clicking them, then selecting ``Influence Point'' in the signalling
@@ -264,13 +267,28 @@ The advtrains-internal train safety system ensures that the train
 always obeys any restrictions imposed by signals, if (and only if)
 the influence point is set properly.
 
-\subsection{Main and Shunt signals}
+\subsection{Signal Aspects}
 
 While static signals are mainly used for speed restrictions, the interesting
 ones are variable signals. Of course, you can always control any variable
 signal by traditional means (mesecons, digiline, right-click) if the
 signal allows it, but that misses the point of this interlocking system.
 
+A signal aspect is a piece of information that a signal shows to the
+train driver. It contains information about whether and at what speed
+the driver may proceed at the signal.
+
+Every signal, both static and dynamic ones, imposes a certain aspect
+to trains passing the signal. For static signals, this is always the
+same aspect, such as ``Proceed at speed of 8'' or ``Shunt moves
+may not pass''. Dynamic signals, however, can display multiple different
+aspects. The default for them is always as restrictive as possible,
+mostly ``Halt!''.
+
+You should know that both static and dynamic signals use exactly the
+same properties for signal aspects. There is no difference in the
+meaning of the aspect definitions.
+
 In the following sections, we will talk about main signals. By this,
 we mean a variable signal that can display both a ``Danger'' aspect
 (trains are not allowed to proceed) and at least one ``Proceed''
@@ -278,6 +296,37 @@ aspect (train may proceed as train/shunt move, with optional speed
 restriction), which act as an ``entry signal'' for one or multiple
 routes.
 
+\subsection{Train moves and Shunt Moves}
+\begin{itemize}
+\item A ``Train move'' is a train that is running, going to run on or
+coming from a main line between stations, passing through or stopping
+at a station. Train moves can expect that there are no obstacles on
+the route and they can proceed at the maximum permitted speed of the
+line. This is the regular operation mode for trains. Shunt signals
+have no meaning for train moves.
+\item A ``Shunt move'' is a train that moves within a station and/or is
+coupling or decoupling wagons or engines. A shunt move may never leave
+a station except into a siding. Also, shunt moves may drive at a maximum
+speed of 6 speed units, because it is usually not ensured that the
+path is free of obstacles. (however, advtrains ensures that every
+route is free of railway vehicles, even shunt routes)
+\end{itemize}
+There are also 2 general types of signals: Main signals and Shunt
+signals. While main signals have a meaning for all types of trains,
+Shunt signals only have to be followed by shunt moves. Usually, Shunt
+signals that are on a train move route are set to a Proceed aspect
+as well.
+
+When a train reverses, its mode automatically changes to ``shunt
+move'' until it passes a main signal that shows ``Proceed as train
+move'', which is usually designated by a green light. From this point
+on, it can accelerate to maximum permitted speed.
+
+Some main signals, like the ones from the Ks signals mod included
+by default, can also display ``Proceed as shunt move'', which is
+designated by 2 white lights along with the red light. Once a train
+passes this signal, it becomes a shunt move.
+
 \subsection{The concept of routes}
 
 A so-called route is a locked path between two main signals, which
@@ -384,13 +433,7 @@ so it doesn't include the siding section itself:
 
 The Sht2 route then needs to show a shunt aspect, which instructs
 the driver to proceed slowly and watch out for vehicles on the route.
-To show a ``free'' aspect here would be wrong, because that would
-mean that the track is free until the next main signal, which it is
-clearly not.
-
-\textit{Note that advtrains\_interlocking currently does not allow
-to set individual aspects for routes, this is a feature still to be
-implemented soon.}
+See later on for how to set this up.
 
 Shunt routes like this are, so far, the only exception to the ``Routes
 should end at a signal facing the same direction'' rule.
@@ -466,10 +509,6 @@ final section using this method.
 \end{itemize}
 A few hints:
 \begin{itemize}
-\item If one turnout should be locked by more than one section, set the
-lock only in the \texttt{\textbf{last}} of those sections. Locking
-the same turnout in multiple sections of a single route results in
-undefined behavior!
 \item If you accidentally advanced the route wrongly, you can use the ``Step
 back one section'' button to undo this.
 \item If you want to stop programming the entire route without saving it,
@@ -485,6 +524,56 @@ because the system won't be able to determine the final TCB of the
 route then.
 \end{itemize}
 
+\subsection{Route information screen}
+
+\includegraphics[width=10cm]{10_home_moritz_Home_Projekte_Minetest_minetest_____lyx_img_Bildschirmfoto_2019-01-15_19-28-09.png}
+
+This is the screen that appears when you click ``Edit Route''. It
+lets you change the route name and delete the route. Also, it shows
+a summary of the route and its elements.
+
+The route summary lists information per track section on the route,
+so the line starting with ``1'' is the first section of the route.
+
+The ARS rule list and its purpose is explained later.
+
+\subsection{Specifying signal aspects}
+
+By default, newly programmed routes show an aspect that comes closest
+to ``Proceed at maximum speed''. However, it can be desirable to
+change this behavior, like when the route passes a diverging turnout,
+the train should be signalled to drive slower, or the route is a shunt
+route and therefore only ``Shunting allowed'' should be shown.
+
+This is the purpose of the ``Change Aspect'' button in the route
+info screen.
+
+Signal aspects in advtrains consist of 4 sections: main (Information
+for train moves), dst (Distant signal information, not implemented
+yet), shunt (Information for shunt moves) and info (additional information,
+currently not in use).
+\begin{itemize}
+\item Train may proceed as train move at maximum speed: ``main: free, speed
+-1''
+\item Train may proceed as train move at speed of 8: ``main: free, speed
+8''
+\item Train may proceed as shunt move: ``shunt: free''
+\end{itemize}
+There's a field in the ``shunt'' part of signal aspects that is
+not displayed in the GUI, but is of potential interest to developers
+of signal addons: shunt.proceed\_as\_main.
+\begin{itemize}
+\item A train move can always become a shunt move by passing a signal that
+shows ``Halt for train moves, shunting permitted''
+\item A shunt move can only pass a signal saying ``Proceed as train move,
+shunting not permitted'' when proceed\_as\_main is true.
+\end{itemize}
+The property is used by the Limit Of Shunt sign, where proceed\_as\_main
+is set to false. Shunt moves have to stop in front of it, while train
+moves are signalled ``Proceed''. Regular main signals that show
+``green'' have the field set to true, so that all trains can pass
+it.
+
 \section{Interlocking system operation}
 
 Setting up the interlocking for a portion of a railway network requires
@@ -513,9 +602,6 @@ emergency brake (``BB'') and can not be moved any further. You should
 then examine the situation and drive the train backwards out of the
 section.
 
-As of now, changing the driving direction of a train always clears
-any imposed speed restrictions.
-
 \subsection{Simple route setting and cancelling}
 
 To set a route, simply right-click the signal, select a route and
@@ -552,13 +638,96 @@ can also be useful on a line with high traffic, when there's a low-frequented
 access to a siding. You'd enable automatic working for the main route
 and cancel it only when you need a train to go into the siding.
 
+\subsection{Automatic Route Setting (ARS)}
+
+As interlocking systems evolved, the goal always was to offload work
+from the human to the system, automating things. Modern interlocking
+systems can automatically set routes based on a pre-programmed routing
+table for each particular train. Since one outstanding feature of
+Advtrains is it's high degree of automation, it has a similar system
+to automatically set routes for a train depending on certain parameters.
+
+Every train in Advtrains has 2 internal properties that can be set
+through the Onboard Computer of every engine in the train, the ``Line''
+and the ``Routing Code''
+\begin{itemize}
+\item The ``Line'' property is supposed to distinguish trains of multiple
+lines that share a track.
+\item The ``Routing Code'' property is supposed to tell the target of
+a train or which route it should take to reach the target
+\end{itemize}
+Examples:
+
+\includegraphics{11_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_arslin_ex1.png}
+
+Both lines share the section between Blackbirdshire and Parktown.
+To divert them again, they can save their line number in the ``Line''
+field.
+
+\includegraphics{12_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_arslin_ex2.png}
+
+Some trains should go to B, some to C, the direction can be set with
+a routing code.
+
+One single routing code should not contain spaces. You can set multiple
+routing codes by just separating them with spaces in the Routing Code
+field. So, ``Stn Ori'' would be matched by ARS rules either containing
+``Stn'' or ``Ori''. This does not work for lines.
+
+\subsubsection{Writing ARS Rules}
+
+Every route of every signal can be given a set of ARS rules. A single
+ARS rule can either match a line or a routing code (combinations,
+e.g. and's, are not yet supported). The first rule in the first route
+that matches any of the properties of the train is selected, and that
+route is set for the train.
+
+\includegraphics{13_home_moritz_Home_Projekte_Minetest_minetest_mods_advtrains_assets_lyx_img_ars_ex1.png}
+
+You can add an asterisk (``{*}'') to the ARS rules of one route.
+That route then becomes the default route.
+
+If no explicit ARS rule matches the train, then the default route
+is chosen and set. If there is no default route, nothing happens and
+the signal remains red.
+
+\subsubsection{Using ARS}
+
+In contrast to Automatic working, where the route is re-set immediately
+after the train passed, ARS sets the route only when the train approaches
+the signal, e.g. is just about to start braking in front of it.
+
+At any place where one of the following things take place, you should
+use the ARS system in favor of Automatic Working:
+\begin{itemize}
+\item A main line diverts into 2 or more lines: Using ARS, you can direct
+the trains along the line where they should go
+\item Two or more main lines join into one: You cannot use automatic working
+here, because all routes are tried to be set at the same time and
+it is a matter of luck which one ``wins''. In a bad situation, you
+have a train coming from A, but it cannot proceed because Signal B
+has won the ``route race'' into the shared section, even if there's
+no train coming from B. Using ARS, by just specifying the ``default
+route'' by a {*}, the inward route is only set when a train approaches.
+\item Complex intersections, which are probably a combination of the above
+two
+\item sometimes-used branching tracks on which only certain trains (with
+certain routing code or line) should head off, like the entrance to
+a factory where only one specific goods train should drive in.
+\end{itemize}
+In the route overview, you can see some information on the ARS settings:
+All routes that have ARS rules are highlighted red, the ``default
+route'' is highlighted green.
+
+ARS does not affect signals which already have a route set, and signals
+which are operating under ``Automatic Working''.
+
 \section{Final notes}
 
 The interlocking system is mainly finished, though there are still
 some plans and ideas. They include:
 \begin{itemize}
 \item Signalbox panels, as revival of itrainmap
-\item Individual signal aspects for routes
 \item Distant signals
 \item On-Train head-up display for oncoming signals (they have something
 like this in Czech Republic, I forgot how it's called.)
-- 
cgit v1.2.3

