Add some documentation on creating signals

This commit is contained in:
Y. Wang 2022-04-25 14:55:42 +02:00
parent 539a0742c3
commit 686e1dde46
No known key found for this signature in database
GPG Key ID: 54A05DDF18D7A0EB
1 changed files with 22 additions and 2 deletions

View File

@ -1332,9 +1332,29 @@ The following entries are present in \texttt{advtrains.speed}:
\item \apifunc{merge\_aspect}{\var{train},\var{asp}} Merge the signal aspect \var{asp} into the speed restriction table of \var{train} and update the \texttt{speed\_restriction} field of \var{train} accordingly.
\end{apidoc}
\section{Definition tables}\label{s:deftables}
\section{Node definition}
Please refer to \texttt{advtrains/api\_doc.txt} for now.
\subsection{Node groups}
\advtrains{} uses node groups to identify whether a node has certain properties. The following fields are used:
\begin{apidoc}{Node definition!\texttt{groups}}
\item \apifield{advtrains\_signal} Whether the node is a signal.
\item \apifield{not\_blocking\_trains} The numeric constant 1 if the item does not block trains.
\item \apifield{save\_in\_at\_nodedb} The numeric constant 1 if the item should be save in the internal node database used by \advtrains{}.
\end{apidoc}
The following values (as numeric constants) are accepted for items in the \texttt{advtrains\_signal} group:
\begin{apidoc}{Node definition!\texttt{groups}!\texttt{advtrains\_signal}}
\item \apienum{1} The node is a signal with a static signal aspect.
\item \apienum{2} The node is a signal, and its signal aspect can be set.
\end{apidoc}
\subsection{The \texttt{advtrains} field}
The \texttt{advtrains} field in the node definition may contain the following fields:
\begin{apidoc}{Node definition!\texttt{advtrains}}
\item \apifield{get\_aspect(\var{pos}, \var{node})} A function that returns the signal aspect of the signal \var{node} at \var{pos}. The returned signal aspect does not need to be identical to the signal aspect passed to the previous call to \texttt{set\_aspect}.
\item \apifield{set\_aspect(\var{pos}, \var{node}, \var{asp})} A function that sets the aspect of the signal \var{node} at \var{pos} to \var{pos}. If \var{asp} is not supported by the signal, the implementation may choose to set the aspect to something different.
\item \apifield{supported\_aspects} A table of supported signal aspects.
\end{apidoc}
\section{Table structures}\label{s:structs}