User Tools

Site Tools


analyzer-en

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
analyzer-en [2019/11/13 11:24] rjversluisanalyzer-en [2019/11/14 08:44] (current) – removed rjversluis
Line 1: Line 1:
-====== Track plan Router ====== 
-[[:english#rocrail|{{  :server.png}}]][[:english|{{  :rocrail-logo-32.png}}]] 
-[[:english | Content ]] -> [[:english#rocrail|Rocrail Server]]\\ 
-  * **[[analyzer-en|Track plan router]]** 
-    * [[rocrailini-router-en|Rocrail setup dialog]] 
- 
- 
- 
- \\ 
- 
-===== Features ===== 
-  * Analyse the track plan and create all possible routes automatically.  
-  * Sets the **routes** field in all track, signal and sensor objects -> route representation {{SpDrS60-track-route.png}} (**[[rocrailini-router-en|optional]]**). 
-  * Sets the **block** field in all track, signal and feedback objects for block occupancy display -> block representation {{SpDrS60-track-occ.png}} (**[[rocrailini-router-en|optional]]**). 
-  * The **[[#direction_tracks|direction track]]** can be used to restrict a route generation only in that direction. 
-  * With **[[#connector|connectors]]** routes across other objects, empty fields and track plan levels can be created. 
-  * Turnout commands are added to the route. 
-  * Signal pair assignment to **[[block-signals-en|block (signals)]]** as plus(+)- and minus(-)-side signals (**[[rocrailini-router-en|optional]]**). 
-  * Enter- and In- sensor assignment to **[[block-routes-de|block (routes)]]** (**[[rocrailini-router-en|optional]]**). 
-  * Module support.  
-  * Fiddle Yard support. 
- \\ 
- 
-==Note:== 
-The Router was introduced as a tool especially for the new and inexperienced user allowing for quick access to fully automated model railroading. \\  
-However, with complex or unusual layouts the Router may fail to generate all routes possible or it may generate unexpected routes or in worst case it may even hang. \\  
-In all these cases settings have to be adjusted or completed by hand while those routes generated correctly by the Router can serve as a blueprint. \\ 
-See also **[[analyzer-en#Limitations|section Limitations]]** 
-  
- \\ 
- 
-===== Operation ===== 
- 
-==== Requirements ====  
-  - Track plan must be __**[[planhealth-en|healthy]]**__ before analysing! 
-  - All items must be connected without a space in between them. Exception: The [[#connector|Connector]] 
-  - Only one item at one position in the plan is allowed. (**No overlapping.**)  
-  - The Router is based on the symbol sizes found in the default **[[:symbols-themes-spdr60-en|SpDrS60]]** theme. (See also **[[symbols-theme-props-en#basics|themes basics]]**) 
- \\ 
- 
-==== Activation ==== 
-The Router can be activated manually. 
- 
-The feature is started manually by 
-  * either entering **z** in the Rocrail server terminal if the **-console** option is active 
-  * or by selecting **[[rocgui-menu-en#file|Analyse]]** from the File menu of Rocview.  
- 
- \\ 
- 
-==== Clean up==== 
-If the analyzer is re-started after changes to the track plan, all routes with the option "automatically generated" are deleted. 
-This ensures that no invalidated routes are included in the plan before routes are created or recreated. 
-The option "automatically generated" must be activated for all routes so the changes can be implemented. 
-Manually-added routes with no auto-created option remain unchanged in the list.\\ 
- 
- \\  
- 
-==== Sensor and Signal Configuration ==== 
-|< >| 
-|  {{:analyzer:analyser-bk-fb-sg.png?750}}  | 
-|  The graphic shows the positioning of feedback sensors (// fb //) and Distant- (// sgv //) and Main (// sgh //) signals for a block (// bk //). \\ The sensors and signals are thus correctly assigned to the block and the routes of both sides of the block. \\ On both sides of the block, the sensors and signals must be positioned between the block and the next turnout (// sw //). \\ The order of objects between block and turnout is arbitrary.  | 
-| :!: The signals - as shown - __must__ be aligned with the "//symbol in the direction of travel to the right of the track//". (//Exception, for example: __**[[:symbols-themes-sbblsignals-en|SBB-L signals]]**__)// | 
-| :!: If the route between two blocks __ does not contain a turnout__, then signals could be assigned to the wrong block. | 
-\\ 
-=== Sensors === 
-The sensors are assigned to the routes __all enter +__ and __all enter -__, respectively. \\ The __all enter +__ route is for all routes entering the + side of the block (marked with the little + in the block). \\ The __all enter -__ route accordingly is used for all routes entering the - side of the block. \\ 
-Sensors have to be assigned to the routes on the routes tab of **[[block-routes-en|Block: Routes]]** in the block properties. \\ 
-**Note:**\\ 
-The assignment by the analyzer works only when using "enter" and "in" sensors. \\  
-In addition, place only one sensor on each side between the block and the next switch. \\  
-For blocks with one, three or four sensors there are no usable items. \\  
-With more than one sensor on a block side, only the sensor nearest the block will be considered.\\ 
-=== Signals === 
-The distant signal associated with a main signal of a block must be positioned on the opposite side of the block.\\ 
-The assignment is visible on the tab **[[block-signals-en|Block: Signal]]** and can be changed manually, if necessary.\\ 
-\\ 
- 
-==== Direction Tracks ==== 
-Direction tracks (s. also **[[:tracks-gen-en#type|Types of Tracks]]**) can be used to restrict the routes generated by the Router to one particular direction. For this purpose the direction track is placed between one or more blocks: 
-|< >| 
-^ Example ^ Description ^ Routes generated by the Router ^ 
-| {{:analyzer:dir-no.png}} | Two blocks connected by tracks | From A to B __and__ from B to A | 
-| {{:analyzer:dir-all.png}} | Two blocks with a track indicating both directions in between | Same as above; the track for both directions is descriptive only but has no function | 
-| {{:analyzer:dir-right.png}} | Two blocks with a direction track in between, arrow pointing to the right | __Only__ from A to B | 
-| {{:analyzer:dir-left.png}} | Two blocks with a direction track in between, arrow pointing to the left | __Only__ from B to A | 
-| {{:analyzer:dir-no1.png}} | Branch without direction tracks | A to B, A to C, B to A and C to A | 
-| {{:analyzer:dir-right1.png}} | Direction track within a branch | A to B, A to C and B to A | 
-| {{:analyzer:dir-right2.png}} | Direction track in front of a branch | A to B and A to C | 
-{{  :symbols:no-route.png}} 
- \\ 
-**Tip:** If there is no route to be created in a track section in both directions, this can be achieved by two opposite direction track symbols, or for the time of analyzer activity, a track symbol is removed from the section. 
- 
- \\ 
-See also: **[[tracks-gen-en#direction_exception|Analyser direction exceptions]]** 
-\\ 
-===== Connector ===== 
-|< >| 
-^  Important change from Rev. 15.164+  ^ 
-|  :!: It must always be clearly formed with **0...65535**((=16bit value)) numbered connector pairs.\\ The previously possible use of the numbers **0...9** for multiple connector pairs leads to the termination of the Analyzer run. \\ The orthogonal positioning and mutually facing cut surfaces of both symbols are no longer considered. \\ This includes divided bridge element (tracknr 2). {{symbols:track-2.png?20}} \\ **So that the track plan for the analyzer is "healthy" \\ and previous pairings remain valid in the future, the "old" connector pairs 0...9 \\ must be changed into a unique numbering for all levels in the entire track plan.**  | 
-====Why connectors ?==== 
-Connectors can be used to connect distant elements: The Router is seeking for a counterpart (second connector) in the same direction and ignores gaps and elements between these two.\\  
-With connectors it's easy to connect different levels on the layout. \\ 
- 
-|< >| 
-^ Examples for connectors \\ Avoiding track elements without function ^^ 
-| {{:analyzer:verbinder.png?800}}  || 
-| \\ || 
-^ Connectors illustrating a bridge ^^ 
-|  {{:analyzer:bridge.png}} |  {{:analyzer:bridge-crossing-example.png}}  | 
-|  Bridge with two connectors \\ with track type "connector" |  Bridge with one symbol of track type "tracknr" = **3** \\ Thus the analyzer is able to recognize and generate the possible routes A- < > B+ und C- < > D+  | 
-\\ 
-  * Connectors configured with **[[tracks-gen-en#number|a track number]]** between **0** and **65535** must have one corresponding connector with the same  number anywhere in the plan. The direction of the counterpart doesn't matter. The counterpart may be on a different track plan level.\\ 
- \\ 
- 
-==== Avoid connectors on module plans ==== 
-With module plans, connectors can be used at the module transitions when paired are defined with the **same** number in the range **0...65535**. 
- 
-**Disadvantages:**\\ 
-Connectors at the module transition without a partner with the same number the analyzer reports as error. \\ 
-If the module layout is set up in a different compilation, the numbering of affected connector pairs must be adapted. \\ 
-If in the compilation two connectors with the same number are forgotten somewhere, "strange" routes can arise. 
- 
-**Recommendation:**\\ 
-To the mentioned disadvantages - among others: Errors, high effort for changes, etc. - it is recommended to avoid connectors at the module transitions. \\ 
-Instead of the connectors, "straight track elements" {{:spdrs60-track-norm.png}} should be positioned so that they match each other without interruption when arrange the modules. \\ 
-This results in the perspective of the analyzer continuous track connections from which routes can be easily generated. 
- 
-With this method, all the disadvantages with connectors at module transitions are eliminated in a very simple way. 
-\\ 
-|< >| 
-| On Module transitions use straight track elements :!:  | 
-|  {{:modules:no-connector.png?200}}  | 
- 
-See also __**[[#messages_in_the_server_log|Messages in the server log]]**__\\ 
-\\ 
- 
-===== Limitations ===== 
-  * The Router ist not perfect, errors can occur. 
-  * Not all 'weird' situations are recognized.  
-  * The Router configures sensors (feedbacks) only after the option "Assign sensors to blocks" in **[[rocrailini-router-en##assign_feedbacks_to_blocks|Sensors in blocks]]** has been enabled (by default this option is off). 
-  * If "Assign feedbacks to blocks" is activated, the Router tries only to allocate the sensors **enter** and / or **in** in generic routes that are not yet fully generated (whether manually configured by the user or already existed from previous analyzes). \\ **Note:** Previously configured **enter** and / or **in** sensors are maintained and the Router does not change them (even if they were completely wrong). 
- 
-  * The above applies only to the closest (there are exceptions in special situations) sensors near a block that are unique to this block. 
-  * If a configured **enter2in** is found in a block, then no change is made to this block. 
-  * An **enter2in** sensor is never assigned (or deleted) by the analyser. 
-  * Only a few objects of the **[[switch-gen-en#accessory|Switch type "Accessory"]]** and the **[[tracks-gen-en#type|Track typ "tracknr"]]** are recognized: 
- 
-|< >| 
-^  Switch Type "Accessory"  ^^ 
-^  Accessory#  ^Description^ 
-|  1  | double track railroad crossing, obsolete | 
-|  10  | single track railroad crossing, ungated|  
-|  11  | single track railroad crossing, one side barrier |  
-|  12  | single track railroad crossing, double sided barriers  
-|  40  | double track flap bridge | 
-|  41  | single track flap bridge | 
-| || 
-^  Track Typ "tracknr"  ^^ 
-^  Number  ^Description^ 
-|  3  | bridge crossing | 
-Other accessory or track numbers are __not supported__ . It doesn't know the various grid sizes and orientations of these symbols. Therefore, before starting the Router these objects should be replaced __temporarily__ (and possibly later again) with normal track objects. \\ 
-> **Note:** Do not use two or more double track items consecutively. The Router will generate some wrong routes :!: 
- 
- \\ 
- 
-===== Example ===== 
-{{:analyzer:demo-plan.png?500}}\\ 
-{{:analyzer:demo-plan.zip}}\\ 
- 
-==== Generated Routes ==== 
-<code xml> 
-<stlist> 
-  <st id="[01+]-[02+]" generated="true" bka="01" bkb="02" bkaside="true" bkbside="true" show="false" x="0" y="0"> 
-    <swcmd id="sw1" cmd="straight"/> 
-  </st> 
-  <st id="[01+]-[03+]" generated="true" bka="01" bkb="03" bkaside="true" bkbside="true" show="false" x="0" y="0"> 
-    <swcmd id="sw1" cmd="turnout"/> 
-  </st> 
-  <st id="[04+]-[01-]" generated="true" bka="04" bkb="01" bkaside="true" bkbside="false" show="false" x="0" y="0"/> 
-  <st id="[02-]-[04-]" generated="true" bka="02" bkb="04" bkaside="false" bkbside="false" show="false" x="0" y="0"> 
-    <swcmd id="sw2" cmd="straight"/> 
-  </st> 
-  <st id="[03-]-[04-]" generated="true" bka="03" bkb="04" bkaside="false" bkbside="false" show="false" x="0" y="0"> 
-    <swcmd id="sw2" cmd="turnout"/> 
-  </st> 
-</stlist> 
-</code> 
-** Note: ** The previously used prefix **autogen-** is replaced by the parameter **''generated = "true"''** in the route record((See **[[#important_change|Important change]]** at the top of this page.)) 
- 
-===== Tips and Tricks ===== 
-==== Keep Routes ==== 
-Q: Why is Router always overwriting or removing my changes?\\ 
-A: At first the Router __deletes all__ routes with the activated option 'Automatically generated'.\\ 
-\\ 
-Q: How can I prevent Router to recreate a route?\\ 
-A: By deactivating the option 'Automatically generated' (-> no deletion -> no recreating)\\ 
-\\ 
- 
-==== Alternative Routes ==== 
-Preventing alternative routes from A- to B+ (avoid changing tracks) 
- 
-{{:analyzer:alt_route_ab.png}} \\ 
-- Before: 
-  * "[A-]-[B+]" (direct route) 
-  * "[A-]-[B+]-42" (alternative route using side track) 
-- Manual actions: 
-  * deactivating the option 'Automatically generated' of "[A-]-[B+]" 
-  * delete/remove "[A-]-[B+]-42" 
-- After: 
-  * calling Router will leave "[A-]-[B+]" untouched (the option 'Automatically generated' is deactivated) and will not create any alternative route from [A-] to [B+], because there is already a "manually configured" route for this relation. 
-\\ 
- 
-===== Messages in the server log ===== 
-To display the analyzer results, **[[rocrailini-trace-en#calculation|Trace: calculation]]** must be activated. 
-  * **Note:** \\ Activation of Trace level "Analyze" is not recommended. \\ This option should be reserved for troubleshooting analyzer functions. 
-==== Examples ==== 
-// **Note:** The message to the last action is at the top of the log.// 
- 
-** Server log at "Analyze" with typical design plan error: ** 
-<code> 
-17:23:09 route generator (re)created routes (0 -> 8) 
-17:23:08 ANALYSER: max. recursion depth (101 > 100) reached 
-17:23:08 ANALYSER: max. recursion depth (101 > 100) reached 
-</code> 
-  * On search for routes between 2 blocks more than 100 track diagram elements were found //(Two messages = search in both directions)// \\ **[[http://forum.rocrail.net/viewtopic.php?p=89410#p89410|Look at this thread in the german forum]]** 
-  * Please follow the **[[goldenrules-en|Best practice]]** 
- 
-**Server log at "Clean all analyze" and then "Analyze":** 
-<code> 
-23:45:36 route generator (re)created routes (0 -> 4) 
-23:45:35 starting analyzer... 
-23:45:25 route generator cleanup removed 4 routes (4 -> 0) 
-23:45:24 starting analyzer cleanup... 
-</code> 
-  - 4 routes have been deleted 
-  - 4 routes were newly created 
- 
-**Server log at "Analyze" with typical connectors errors:** 
-<code> 
-14:08:06 Router skipped because plan has ERRORs 
-14:08:06 ERROR: connector [tk5] at (6-5-1) number[3] : Too many counterparts (total 3) 
-14:08:06 WARNING: connector [tk4] at (14-3-0) with number[2] : no counterpart found. 
-14:08:06 ERROR: connector [tk3] at (14-1-0) number[3] : Too many counterparts (total 3) 
-14:08:06 ERROR: connector [tk2] at (6-3-0) number[3] : Too many counterparts (total 3) 
-</code> 
-  - There are more than two paired connectors with number **3** at the specified positions. // (Example: **6-3-0** = x-y-z) // 
-  - The connector with number **2** is missing the partner. 
-  - The Router run was aborted because of the listed errors in the track plan. 
  
analyzer-en.1573640685.txt.gz · Last modified: 2019/11/13 11:24 by rjversluis