You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
</span></span></span></code></pre></div><h2id=design-considerations>Design considerations</h2><h3id=where-to-put-the-speed-limit-value>Where to put the speed limit value</h3><p>When a speed limit is announced by dynamic signaling, we may be in a position where speed limit value is duplicated:</p><ul><li>once in the signal itself</li><li>once in the speed limit</li></ul><p>There are multiple ways this issue can be dealt with:</p><h4id=hahahugoshortcode127s0hbhb-mandatory-speed-limit-value-in-the-speed-section>✅
267
-
Mandatory speed limit value in the speed section</h4><p>Upsides:</p><ul><li>simpler to implement, works even without train reactions to signals nor additional API</li></ul><p>Downsides:</p><ul><li>more work on the side of users</li><li>room for inconsistencies between the speed limit announced by signaling, and the effective speed limit</li></ul><h4id=hahahugoshortcode127s1hbhb-deduce-the-signal-constraint-from-the-speed-limit>❌
266
+
</span></span></span></code></pre></div><h2id=design-considerations>Design considerations</h2><h3id=where-to-put-the-speed-limit-value>Where to put the speed limit value</h3><p>When a speed limit is announced by dynamic signaling, we may be in a position where speed limit value is duplicated:</p><ul><li>once in the signal itself</li><li>once in the speed limit</li></ul><p>There are multiple ways this issue can be dealt with:</p><h4id=hahahugoshortcode126s0hbhb-mandatory-speed-limit-value-in-the-speed-section>✅
267
+
Mandatory speed limit value in the speed section</h4><p>Upsides:</p><ul><li>simpler to implement, works even without train reactions to signals nor additional API</li></ul><p>Downsides:</p><ul><li>more work on the side of users</li><li>room for inconsistencies between the speed limit announced by signaling, and the effective speed limit</li></ul><h4id=hahahugoshortcode126s1hbhb-deduce-the-signal-constraint-from-the-speed-limit>❌
268
268
Deduce the signal constraint from the speed limit</h4><p>This option was not explored much, as it was deemed awkward
269
-
to deduce signal parameters from a speed limit value.</p><h4id=hahahugoshortcode127s2hbhb-deduce-the-speed-limit-from-the-signal>❌
269
+
to deduce signal parameters from a speed limit value.</p><h4id=hahahugoshortcode126s2hbhb-deduce-the-speed-limit-from-the-signal>❌
270
270
Deduce the speed limit from the signal</h4><p>Make the speed limit value optional, and deduce it from the signal itself.
271
271
Speed limits per tag also have to be deduced if missing.</p><p>Upsides:</p><ul><li>less work for users</li><li>lessens the likelyhood of configuration mismatches</li></ul><p>Downsides:</p><ul><li>not all signaling systems work well with this. It may be difficult to deduce the announced speed limit from a signal configuration, such as with TVM.</li><li>speed limits have to be deduced, which increases implementation complexity</li></ul><h3id=how-to-link-announce-signals-and-speed-limit-area>How to link announce signals and speed limit area</h3><p>Speed limit announced by dynamic signaling often start being enforced at a specific location,
272
272
which is distinct from the signal which announces the speed limit.</p><p>To allow for correct train reactions to this kind of limits, a link between the announce signal
273
-
and the speed limit section has to be made at some point.</p><h4id=hahahugoshortcode127s3hbhb-automated-matching-of-signals-and-speed-sections>❌
274
-
Automated matching of signals and speed sections</h4><p>Was not deemed realistic.</p><h4id=hahahugoshortcode127s4hbhb-explicit-link-from-route-to-speed-limit-and-signals>❌
273
+
and the speed limit section has to be made at some point.</p><h4id=hahahugoshortcode126s3hbhb-automated-matching-of-signals-and-speed-sections>❌
274
+
Automated matching of signals and speed sections</h4><p>Was not deemed realistic.</p><h4id=hahahugoshortcode126s4hbhb-explicit-link-from-route-to-speed-limit-and-signals>❌
275
275
Explicit link from route to speed limit and signals</h4><p>Was deemed to be awkward, as signaling is currently built over interlocking.
276
-
Referencing signaling from interlocking creates a circular dependency between the two schemas.</p><h4id=hahahugoshortcode127s5hbhb-explicit-link-from-speed-limit-to-signals>❌
277
-
Explicit link from speed limit to signals</h4><p>Add a list of <code>(route, signal)</code> tuples to speed sections.</p><p>Upside:</p><ul><li>a link with the signal can be made with creating the speed section</li></ul><p>Downside:</p><ul><li>Creates a dependency loop between speed limits and signaling. Part of the parsing of speed limit has to be deferred.</li><li>Signals parameters also have to be set per route, which is done in the signal. Having per-route options on both sides doubles the work.</li></ul><h4id=hahahugoshortcode127s6hbhb-inlining-speed-limit-definitions-into-signals>❌
276
+
Referencing signaling from interlocking creates a circular dependency between the two schemas.</p><h4id=hahahugoshortcode126s5hbhb-explicit-link-from-speed-limit-to-signals>❌
277
+
Explicit link from speed limit to signals</h4><p>Add a list of <code>(route, signal)</code> tuples to speed sections.</p><p>Upside:</p><ul><li>a link with the signal can be made with creating the speed section</li></ul><p>Downside:</p><ul><li>Creates a dependency loop between speed limits and signaling. Part of the parsing of speed limit has to be deferred.</li><li>Signals parameters also have to be set per route, which is done in the signal. Having per-route options on both sides doubles the work.</li></ul><h4id=hahahugoshortcode126s6hbhb-inlining-speed-limit-definitions-into-signals>❌
278
278
Inlining speed limit definitions into signals</h4><p>Introduces a new type of speed limit, which are announced by signals.
279
279
These speed limits are directly defined within signal definitions.</p><divclass=highlight><pretabindex=0style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><codeclass=language-yamldata-lang=yaml><spanstyle=display:flex><span>{<spanstyle=color:#f8f8f8;text-decoration:underline>
</span></span></span></code></pre></div><p>Upsides:</p><ul><li>straightforward infrastructure edition experience for speed sections announced by a single signal</li></ul><p>Downsides:</p><ul><li>creates two separate kinds of speed limits:<ul><li>can cause code duplication</li><li>could make later changes of the data model trickier</li><li>it’s unclear whether the criterion used to make this partition is appropriate</li></ul></li><li>speed sections created directly inside signals can only be announced by a single signal, which could be an issue for speed sections which apply to very large areas, and are announced by multiple signals (such as one for each direction)</li><li>the cost of reversing this decision could be fairly high</li></ul><h4id=hahahugoshortcode127s7hbhb-explicit-link-from-signal-to-speed-section>✅
294
+
</span></span></span></code></pre></div><p>Upsides:</p><ul><li>straightforward infrastructure edition experience for speed sections announced by a single signal</li></ul><p>Downsides:</p><ul><li>creates two separate kinds of speed limits:<ul><li>can cause code duplication</li><li>could make later changes of the data model trickier</li><li>it’s unclear whether the criterion used to make this partition is appropriate</li></ul></li><li>speed sections created directly inside signals can only be announced by a single signal, which could be an issue for speed sections which apply to very large areas, and are announced by multiple signals (such as one for each direction)</li><li>the cost of reversing this decision could be fairly high</li></ul><h4id=hahahugoshortcode126s7hbhb-explicit-link-from-signal-to-speed-section>✅
295
295
Explicit link from signal to speed section</h4><divclass=highlight><pretabindex=0style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><codeclass=language-yamldata-lang=yaml><spanstyle=display:flex><span>{<spanstyle=color:#f8f8f8;text-decoration:underline>
Inlining speed limit definitions into signals</h4>
1155
1155
<p>Introduces a new type of speed limit, which are announced by signals.
1156
1156
These speed limits are directly defined within signal definitions.</p>
@@ -1185,7 +1185,7 @@ These speed limits are directly defined within signal definitions.</p>
1185
1185
<li>speed sections created directly inside signals can only be announced by a single signal, which could be an issue for speed sections which apply to very large areas, and are announced by multiple signals (such as one for each direction)</li>
1186
1186
<li>the cost of reversing this decision could be fairly high</li>
0 commit comments