Skip to content

Commit

Permalink
Merge branch 'master' into CzechTranslation-2021-06-05
Browse files Browse the repository at this point in the history
  • Loading branch information
sidlo64 committed Jun 5, 2021
2 parents 4224550 + 967797e commit 0ca187d
Show file tree
Hide file tree
Showing 276 changed files with 16,084 additions and 4,462 deletions.
2 changes: 2 additions & 0 deletions help/en/Acknowledgements.shtml
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,8 @@
who hosts a large part of our
development and distribution infrastructure.

<li>@gitophile, who found the fix for a broken link.</li>

<li>Joseph Goldstone, who put together the javax.comm
implementation for Mac OS X</li>

Expand Down
10 changes: 6 additions & 4 deletions help/en/JmriHelp_enIndex.xml
Original file line number Diff line number Diff line change
Expand Up @@ -403,20 +403,22 @@

</indexitem>
<indexitem text="LogixNG " target="html.tools.logixng.LogixNG">
<indexitem text="LogixNG Table " target="package.jmri.jmrit.logixng.LogixNGTable"/>
<indexitem text="LogixNG Table " target="package.jmri.jmrit.beantable.LogixNGTable"/>

<indexitem text="LogixNG Table Editor " target="package.jmri.jmrit.logixng.LogixNGTableEditor"/>

<indexitem text="ConditionalNG Editor " target="package.jmri.jmrit.logixng.ConditionalNGEditor"/>

<indexitem text="LogixNG Module Table " target="package.jmri.jmrit.logixng.LogixNGModuleTable"/>
<indexitem text="LogixNG Module Table " target="package.jmri.jmrit.beantable.LogixNGModuleTable"/>

<indexitem text="LogixNG Tables Table " target="package.jmri.jmrit.logixng.LogixNGTableTable"/>
<indexitem text="LogixNG Module Table " target="package.jmri.jmrit.logixng.ModuleEditor"/>

<indexitem text="LogixNG Tables Table Editor " target="package.jmri.jmrit.logixng.LogixNGTableTableEditor"/>
<indexitem text="LogixNG Tables Table " target="package.jmri.jmrit.beantable.LogixNGTableTable"/>

<indexitem text="LogixNG Initialization Table " target="package.jmri.jmrit.logixng.LogixNGInitializationTable"/>

<indexitem text="LogixNG Logix Import " target="package.jmri.jmrit.logixng.LogixImport"/>

</indexitem>
<indexitem text="LRoute " target="html.tools.LRoutes">
<indexitem text="Add/Edit LRoute " target="package.jmri.jmrit.beantable.LRouteAddEdit"/>
Expand Down
10 changes: 6 additions & 4 deletions help/en/JmriHelp_enTOC.xml
Original file line number Diff line number Diff line change
Expand Up @@ -424,20 +424,22 @@

</tocitem>
<tocitem text="LogixNG " target="html.tools.logixng.LogixNG">
<tocitem text="LogixNG Table " target="package.jmri.jmrit.logixng.LogixNGTable"/>
<tocitem text="LogixNG Table " target="package.jmri.jmrit.beantable.LogixNGTable"/>

<tocitem text="LogixNG Table Editor " target="package.jmri.jmrit.logixng.LogixNGTableEditor"/>

<tocitem text="ConditionalNG Editor " target="package.jmri.jmrit.logixng.ConditionalNGEditor"/>

<tocitem text="LogixNG Module Table " target="package.jmri.jmrit.logixng.LogixNGModuleTable"/>
<tocitem text="LogixNG Module Table " target="package.jmri.jmrit.beantable.LogixNGModuleTable"/>

<tocitem text="LogixNG Tables Table " target="package.jmri.jmrit.logixng.LogixNGTableTable"/>
<tocitem text="LogixNG Module Table " target="package.jmri.jmrit.logixng.ModuleEditor"/>

<tocitem text="LogixNG Tables Table Editor " target="package.jmri.jmrit.logixng.LogixNGTableTableEditor"/>
<tocitem text="LogixNG Tables Table " target="package.jmri.jmrit.beantable.LogixNGTableTable"/>

<tocitem text="LogixNG Initialization Table " target="package.jmri.jmrit.logixng.LogixNGInitializationTable"/>

<tocitem text="LogixNG Logix Import " target="package.jmri.jmrit.logixng.LogixImport"/>

</tocitem>
<tocitem text="LRoutes " target="html.tools.LRoutes">
<tocitem text="LRoute Table " target="package.jmri.jmrit.beantable.LRouteTable"/>
Expand Down
334 changes: 182 additions & 152 deletions help/en/html/tools/logixng/LogixNG.shtml

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions help/en/html/tools/logixng/Sidebar.shtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<!-- Sidebar.shtml -->
<!-- Common sidebar for html/tools/[subdirectory] pages, mimics html/tools/Sidebar.shtml -->
<!-- NOTE: subdirectory MUST have a SidebarToolLocalPart.shtml -->

<hr class="hide">

<div id="side"> <!-- Block of text on left side of page -->
<div style="text-align: center">JMRI&reg; is...</div>
<dl>

<!-- To include specific sidebar info for this subdirectory... -->
<!--#include virtual="SidebarToolLocalPart.shtml" -->

<!--#include virtual="../../../parts/SidebarTools.shtml" -->

<!--#include virtual="../../../parts/SidebarLayoutAutomation.shtml" -->

<dt><a href="../../../hardware/">Supported Hardware</a></dt>
<dd>JMRI supports a wide range of DCC systems, command stations and protocols.</dd>
<!-- If someday we want to show the whole list, use #include virtual="../../../parts/SidebarSupportedHardware.shtml" -->

<!--#include virtual="../../../parts/SidebarApplications.shtml" -->

</dl>

<!--#include virtual="../../../parts/SidebarTail.shtml" -->

</div>

<!-- /Sidebar.shtml -->

42 changes: 42 additions & 0 deletions help/en/html/tools/logixng/SidebarToolLocalPart.shtml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!-- SidebarToolLocalPart.shtml -->
<!-- This is the local part sidebar definition for html/tools/logixng pages -->

<dt class="dtheader">LogixNG</dt>
<dd>LogixNG: The Next Generation
<ul>
<li><em style="padding-left: 1em;">Home Pages</em>
<ul>
<li><a href="/help/en/html/tools/logixng/LogixNG.shtml">LogixNG</a>
<li><a href="/help/en/html/tools/logixng/Tutorial/index.shtml">LogixNG Tutorial</a>
</ul>
</li>
<li><em style="padding-left: 1em;">LogixNGs Table:</em>
<ul>
<li><a href="/help/en/package/jmri/jmrit/beantable/LogixNGTable.shtml">LogixNG Table</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/LogixNGTableEditor.shtml">LogixNG Table Editor</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/ConditionalNGEditor.shtml">ConditionalNG Editor</a>
</ul>
</li>
<li><em style="padding-left: 1em;">Modules Table:</em>
<ul>
<li><a href="/help/en/package/jmri/jmrit/beantable/LogixNGModuleTable.shtml">LogixNG Module Table</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/ModuleEditor.shtml">Module Editor</a>
</ul>
</li>
<li><em style="padding-left: 1em;">Tables Table:</em>
<ul>
<li><a href="/help/en/package/jmri/jmrit/beantable/LogixNGTableTable.shtml">LogixNG Tables Table</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/LogixNGTableTableEditor.shtml">Tables Editor</a>
</ul>
</li>
<li><em style="padding-left: 1em;">Tools:</em>
<ul>
<li><a href="/help/en/package/jmri/jmrit/logixng/LogixNGInitializationTable.shtml">Initialization Table</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/LogixImport.shtml">Logix Import</a>
<li><a href="/help/en/package/jmri/jmrit/logixng/LogixNGBrowser.shtml">LogixNG Browser</a>
</ul>
</li>
</ul>
</dd>

<!-- /SidebarToolLocalPart.shtml -->
Binary file not shown.
97 changes: 97 additions & 0 deletions help/en/html/tools/logixng/Tutorial/Using the debugger.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
Using the debugger


All the managers (StringActionManager, DigitalExpressionManager, ...) should have the possibility to add an extra MaleSocket around the MaleSocket on registerAction, registerExpression.

That way, a tool like the debugger, could add a new MaleSocket around the MaleSocket, to add extra features like step-by-step debugging.

Important!! If a ConditionalNG is step-by-step debugging, no other ConditionalNG can be executed while this.

Step-by-step debugging will not work for fast changes, but if the user simulates the layout, that can be handled.




Using the step-by-step debugger:

* Activate the debugger in the preferences _before_ loading the panel. If the panel is auto loaded during start, activate the debugger and restart JMRI.

* If the layout has fast changes or is large or difficult to oversee, it's recommended to simulate external items. It's recommended in this case to run
the layout in a simulator.

* It's possible to override an action or expression. It's useful if you need to debug on the real layout but for example needs to keep a track open.




Info for JMRI developers:

How does the step-by-step debugger works?

Each action and expression are embedded in a MaleSocket. When the step-by-step debugger is activated in the preferences, an extra MaleSocket is added
around the MaleSocket. This extra male socket handles the stepping for the debugger.




Step into

Step over
getParent() -> If getParent().getParent().getParent()...getParent() == "StepOver".debugMaleSocket så kör utan att step into.



MaleSocket LogixNG_Manager.encapsulateMaleSocket(Class<? extends Base> clazz, MaleSocket maleSocket);




public interface MaleSocketFactory {

/**
* Encapsulate a male socket onto another male socket.
* @param clazz the type of the male socket to be encapsulated
* @param maleSocket the male socket to be encapsulated
public MaleSocket encapsulateMaleSocket(Class<? extends Base> clazz, MaleSocket maleSocket);

}


switch (clazz) {
case DigitalAction.class:
break;
}





One problem with the debugger is that when you step thru a ConditionalNG step by step, every other ConditionalNG is on
hold. This can be handled by moving this conditionalng to the debug thread. By default, LogixNG uses one thread, the
LogixNG thread. But it also have a secondary thread, the debug thread. You can select which conditionalngs that should
be executed on the debug thread.

When you open the debugger, you have the option to debug all condtionalngs or to debug only the conditionalngs on the
debug thread. If you choose the later option, to only debug the conditionalngs on the debug thread, all the other
conditionalngs will execute as normal. But the drawback is that if a conditionalng on the LogixNG thread is dependent
on a conditionalng on the debug thread, you might get a different result than if both the conditionalngs are executed
on the same thread.

The reason for this is that if two conditionalngs uses the same thread, the second conditionalng will wait to be
executed until the first conditionalng has finished execution. But if they are using different threads, they may be
executed in parallel.





Note for JMRI developers:

The debugger is an example of the modularity of LogixNG. The debugger share the same editor with the ConditionalNG
editor, the Module editor and the clipboard editor. And it manages to step thru the ConditionalNG and Module by adding
an extra MaleSocket on top of the ordinary male socket that embed the actions and expressions. The point here is that
it's easy to add new tools that do interesting stuff without the tool needs deep understanding of the things the tool
works on. For example, the debugger knows nothing about the actions and expressions it debugs.



17 changes: 17 additions & 0 deletions help/en/html/tools/logixng/Tutorial/Yard table.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

North yard West yard East yard South yard

We have a couple of turnouts
Left turnout IT_10_1 IT_10_3 IT_10_5 IT_10_7
Middle turnout IT_10_9
Right turnout IT_10_2 IT_10_4 IT_10_6 IT_10_8

And we have a couple of signal masts
Left mast Mast_10_1 Mast_10_3 Mast_10_5 Mast_10_7
Middle mast Mast_10_9
Right mast Mast_10_2 Mast_10_4 Mast_10_6 Mast_10_8

And also some sensors
Sensor track 1 IS_10_1 IS_10_3 IS_10_5 IS_10_7
Sensor track 2 IS_10_2 IS_10_4 IS_10_6 IS_10_8
Sensor track 3 IS_10_9
Binary file not shown.
33 changes: 33 additions & 0 deletions help/en/html/tools/logixng/Tutorial/chapter0.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<html>
<head>
<title>LogixNG Tutorial - Chapter 0</title>
<script type="text/javascript" src="/web/js/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="script.js"></script>
<link rel="stylesheet" href="style.css">
</head>

<body>

<table width="800">
<tr>
<td>

<h1>LogixNG Tutorial - Chapter 0</h1>

<h2>Setting up the profile</h2>

<img src="images/chapter0/connection.png">

<ul>
<li>The layout connection will use the Digitrax Simulator.</li>
<li>The layout components will be without reference to any specific LocoNet hardware.</li>
<li>The following description is just one of many possible workflows.</li>
<li>The screenshots are made on Windows 8.1, they will look different depending on the operating system.</li>
</ul>


</td>
</tr>
</table>
</body>
</html>

0 comments on commit 0ca187d

Please sign in to comment.