Table of Contents

Network support

Network version for large model railroads.


Normally every Rocrail server will have its own Rocgui to control the layout section it is resposible for.
This diagram shows a Rocgui with an overview off all servers which is not planned.

   rocrail-1    |    rocrail-2    |    rocrail-3
                |                 |
+----[b01]----< | <----[b02]----- | <----[b02]----+
|               |                 |               |
+----[b02]----> | >----[b01]----- | >----[b01]----+
                |                 |

Example negotiation:

Request from rocrail-1 to rocrail-2

<netreq sname="rocrail-1" bk="b02" lcid="V200" req="lock">
  <!-- optional: current loc properties -->
  <lc id="V200" V="" dir="" .../>
</netreq>

Response from rocrail-2 to rocrail-1

System rocrail-2 reserved block rocrail-2.b01 for loco *V200*:

<netrsp sname="rocrail-2" bk="b01" lcid="V200" rsp="locked">
  <!-- optional: adjust loc speed for remote destination -->
  <lc id="" V="" dir="" .../>
</netrsp>

rocrail-1 street list:

<st id="st01" bka="b01" bkb="b02"/>
<st id="st02" bka="b02" bkb="$rocrail-2"/>
<st id="st03" bka="$rocrail-2" bkb="b01"/>

rocrail-2 street list:

<st id="st01" bka="$rocrail-1" bkb="b01"/>
<st id="st02" bka="b01" bkb="$rocrail-3"/>
<st id="st03" bka="$rocrail-3" bkb="b02"/>
<st id="st04" bka="b02" bkb="$rocrail-1"/>

rocrail-3 street list:

<st id="st01" bka="$rocrail-2" bkb="b01"/>
<st id="st02" bka="b01" bkb="b02"/>
<st id="st03" bka="b02" bkb="$rocrail-2"/>

rocrail-1/2 loc list:

<!-- the roaming flag allows a loc traveling to other systems -->
<lc id="V200" roaming="true" V="" dir="" .../>