JMRI

Índex

General

Instal·lació / Installation

  • JMRI Install Guide: Linux
  • Download
  • JMRI / JMRI (Github)
  • From package
  • From source
    • JMRI Code: Getting the Code
    • Steps
      1. Dependències / Dependencies
        • Mageia
          • urpmi ...
      2. git clone https://github.com/JMRI/JMRI.git
      3. cd JMRI
      4. Choose one of the following methods:

        • dependencies
          build
          run
          ant
          • Mageia: urpmi ant rhino
          • ant -p
          • ant debug
          • ant decoderpro
          • ant panelpro
          • ant package-linux
            • cd dist/Linux/JMRI
            • ./DecoderPro
          maven
          • mvn test
          • mvn compile net.ossindex:ossindex-maven-plugin:audit
          • mvn versions:display-dependency-updates
          • mvn versions:display-plugin-updates
          • mvn antrun:run -Danttarget=decoderpro
          • mvn antrun:run -Danttarget=panelpro
          Eclipse
          • Eclipse
            • Help -> Install new software
              • Work with: Oxygen
                • Eclipse Java Development Tools
                • m3e Maven integration for Eclipse

          Run -> Run configurations
          • Maven Build
            • JMRI DecoderPro
              • Main -> Base directory:
                • ${workspace_loc:/JMRI}
              • Environment
                • Variable: _JAVA_OPTIONS
                • Value: -Dawt.useSystemAAFontSettings=lcd
            • JMRI PanelPro
  • Problemes / Problems
  • ...

Maquinari / Hardware

Desenvolupament / Development

DecodePro

  • Edita / Preferències... / Visualització / Aspecte: Nimbus
  • Edit / Preferences... / Connections
  • Nova Locomotora
    • Llegix el tipus de descodificador
      • z21 es posarà en mode PT (led verd): només hi pot haver una locomotora a la via
      • Llegeix els valors de:
        • CV8: mfgID
        • CV7: versionID
        • (CV250: productID)
      • i els compara amb els valors que hi ha al fitxer JMRI/xml/decoderIndex.xml
    • Seleccioneu la locomotora
      • Basic
        • Speed steps: 28/128 (per a evitar problemes amb els llums / to avoid problems with lights [F0])
  • Identifica
    • Troba la locomotora i marca la seva entrada (z21 es posarà un moment en mode PT)
  • Config
    • xml/names.xml
      • definitiongroup
        definition
        name
        item
        CV
        Basic



        Short Address

        Long Address

        Advanced Ack
        29b4
        Address Format
        29b5
        Speed and Motor
        Vstart
        2

        Vmid
        6

        Vhigh
        5

        Accel
        3

        Decel
        4



        AnalogPowerConversion


        Identification


        Consisitng


        BEMF and Motot Control


        Lighting


        Function mapping


        Advanced


        Sound


PanelPro

  • Create control panels using:
    • name
      image
      description
      usage
      tutorial
      Panel Editor jmri_control_panel_editor

      "lets you graphically draw a Panel exactly the way you want it,
      and then animate parts of it to show the status of your layout and let you click to control it."
      • graphical control panels
      • as many panels as you like
      • can be used to control the railroad
      • flexibility over appearance
      • supports warrants and automatic running
      • modular layouts
      • complicated panels for large layouts

      JMRI panel tutorial - Part 2
      Control Panel Editor "works like Panel Editor but provides an alternative interface.": menus, drag and drop

      Layout Editor jmri_layou_editor
      "provides tools to make a smart schematic of your layout while constructing the logic for signals, etc.
      This constrains how the panel appears a little, but it can save significant time when first bringing your layout up."
      • logical description of the layout
      • only for a single layout
      • designed for automation and semi-automation
      • can directly control turnouts and signals
      • needed by other jmri tools
      JMRI panel tutorial - Part 1
      Switchboard Editor jmri_switchboard_editor
      "is a graphic, straightforward control interface, showing a range of switch keys to watch and control items."
      • basic inputs: sensors
      • basic outputs: turnouts, lights

  • Passos / Steps
    • Launch PanelPro
      • Or, from DecoderPro: File->Open PanelPro Window
    • Create items with the following names (from Tables, or directly before adding items to the panel):
      • system name
        user name
        prefix
        type
        address

        • X: Z21XpressNet
        • L: Z21LocoNet
        • N: NCE
        • I: Internal
        • T: turnout, output in signal mast
        • S: sensor
        • L: light
        • H: signal head
        • B: block
        • Y: section
        • Z: transit
        • AL: audio listener
        • AB: audio buffer
        <integer>
        (free)
    • Panels -> New Panel -> [Panel Editor, Control Panel Editor, Layout Editor, Switchboard Editor]
  • Tutorials
      • Part 1 - Focusing on the Layout Editor (pdf)
        • 1.1 Background
        • 1.2 Layout Editor
        • 1.3 Panel Editor
        • 1.4 Getting Started
          • Connection1 (Edit -> Preferences)
            • System Manufacturer: NCE
            • System connection: Simulator
          • Download gif files:
            • mkdir ~/.jmri/panels && cd ~/.jmri/panels
            • wget http://quaker-valley.com/CTC/sampleCTC.gif
            • wget http://quaker-valley.com/CTC/QV_CTC.gif
        • 1.5 JMRI Tables
          • 1.5.1 Turnout Table
            • type
              • internal turnouts (IT): represent parts of your panel
              • connected to hardware turnouts (NT, XT, LT...)
            • Tools -> Tables -> Turnouts
              • Add: NT1, NT2, NT3, NT4, IT5
          • 1.5.2 Sensor Table
            • type:
              • internal sensors (IS)
              • connected to hardware sensors (NS,...): block detectors, push buttons, toggle switches
            • Tools -> Tables -> Sensors
              • Add: IS801 (BLOCK 801) - IS806 (BLOCK 806), IS901 (INTERLOCK 1) - IS904 (INTERLOCK 4)
        • 1.6 Layout Editor Development
          • Panels -> New Panel -> Layout Editor
            • Options
              • Grid Options
                • Show Grid in Edit Mode
                • Snap to Grid when Adding
            • Put all turnouts on grid (shift + click)
              • Turnout: LH, Name: Turnout 1 (top left), Rotate: 180
              • Turnout: RH, Name: Turnout 2 (bottom left), Rotate: 180
              • Turnout: LH, Name: Turnout 3 (bottom right)
              • Turnout: RH, Name: Turnout 4 (top right)
              • Turnout: LH, Name: Turnout 5 (bottom centre)
        • 1.7 Adding Track
          • Adding track (hold shift + click start + move + release):
            • seccions superior i inferior / top and bottom sections:
              • Track: Track Segment, Mainline
            • secció esquerra / left section:
              • Track nodes: Anchor Point
              • Track: Track Segment, Mainline
              • left click on central circle: Change to: circle; Flipped
              • Track: Track Segment, Mainline
              • left click on central circle: Change to: circle; Flipped
            • secció dreta / right section:
              • Track: Track Segment, Mainline
              • left click on central circle: Change to: circle
            • via morta / dead end:
              • Track nodes: End Bumper
              • Track: Track Segment
            • internal left
              • Track: Track Segment
              • left click on central circle: Change to: circle
            • internal right
              • Track Nodes: Anchor Point
              • Track: Track Segment
            • titles:
              • Label: Label Text
            • Options: disable Edit Mode
            • Options: Save Location and Size
            • Turnout are now functional
        • 1.8 SAVE your work
          • Panels -> Store Panels: JMRI Layout Panel
      • Part 2 - Developing a CTC Panel with Panel Editor (pdf)
        • nivell / level
          elements
          Select the type of icon to Add to Panel Change Icon... System / User name tutorial
          10 block sensors
          Sensor
          • smallschematics / LEDs
            • Active: red
            • Inactive: white
          • IS801 (extrem / end x2)
          • IS802 (Weston principal / main)
          • IS803 (Weston secundari / siding)
          • IS804 (yard turnout x2)
          • IS805 (Eastville principal / main)
          • IS806 (Eastville secundari / siding)

          10 text




          10 tracks (static)
          Icon
          • USS / track / turnout / left / east: east-l
          • USS / track / turnout / right / west: west-r
          • USS / track / block: block

          2.5
          10 left turnout lamps
          Right Hand Turnout
          • USS / sensor
            • Closed (recte): green-on
            • Thrown (desviat): green-off
            • Unknown: s-unknown
            • Inconsistent: s-inconsistent
          • NT1
          • NT2
          • NT3
          • NT4
          2.4
          10 right turnout lamps
          Right Hand Turnout
          • USS / sensor
            • Closed (recte): amber-on
            • Thrown (desviat): amber-off
            • Unknown: s-unknown
            • Inconsistent: s-inconsistent
          • NT1
          • NT2
          • NT3
          • NT4
          2.4
          10
          levers
          Sensor
          • USS / plate / levers
            • Active: I-left
            • Inactive: I-right
            • Unknown: I-unknown
            • Inconsistent: I-inconsistent
          • IS03
          • IS05
          • IS09
          • IS11
          2.3
          10
          code buttons
          Sensor
          • USS / plate / levers
            • Active: code
            • Inactive: code-press
            • Unknown: code-unknown
            • Inconsistent: code-inconsistent
          • IS04
          • IS06
          • IS10
          • IS12
          2.3

          plates (static)
          Icon
          • USS / plate / numbered-plates / turnout
          • USS / plate / numbered-plates / signal
          • USS / plate / base-plates / misc

          2.2
          2
          backgorund icons (static)
          Icon
          • USS / background

          2.1
          1





        • To add an icon to the Panel Editor:
          1. Select the type of icon to Add to Panel
          2. Change Icon...
            • Icon: 1 icon
            • Sensor: 4 icons
            • Right Hand Turnout: 4 icons
            • ...
          3. Add to Panel
        • 2.1 Panel Editor Development
          • create a new panel
            • Panels -> New Panel -> Panel Editor
          • add background to Panel Editor:
            • Add to panel: Icon
            • Change Icon: Program Directory / icons / USS / background
            • Drag to Icon
            • Add to Panel
              • Panel-left-7
              • Panel-blank-7: (12,0)
              • Panel-blank-7: (77,0)
              • Panel-blank-7: (142,0)
              • Panel-blank-7: (207,0)
              • Panel-blank-7: (272,0)
              • Panel-blank-7: (337,0)
              • Panel-blank-7: (402,0)
              • Panel-right-7: (467,0)
            • Set level: 2
        • 2.2 Adding Turnout and Signal Plates
          • add turnout plates to Panel Editor:
            • Add to Panel: Icon
            • Change Icon: Program Directory / icons / USS / plate / numbered-plates / turnout
            • Add to Panel
              • sw-3: (77,337)
              • sw-5: (142,337)
              • sw-9: (272,337)
              • sw-11: (337,337)
          • add signal plates to Panel Editor:
            • Add to Panel: Icon
            • Change Icon: Program Directory / icons / USS / plate / numbered-plates / signal
            • Add to Panel
              • si-4: (77,435)
              • si-6: (142,435)
              • si-10: (272,435)
              • si-12: (337,435)
          • add other plates to Panel Editor:
            • Add to Panel: Icon
            • Change Icon: Program Directory / icons / USS / plate / base-plates / misc
            • Add to Panel
              • USS-plate
              • code
            • Change Icon: Program Directory
            • Add to Panel
              • jmri48x48
        • 2.3 Adding Turnout Levers and Code Buttons
          • "The turnout or switch lever is an internal sensor that through the Logix controls the railroad turnouts."
          • create internal sensors to Sensor Table (one sensor for every lever or button):
            • Tools -> Tables -> Sensors -> Add
            • System Connection
              Hardware address
              User Name
              (generated)
              System Name
              Internal
              03
              Turnout Lever 3 IS03

              05
              Turnout Lever 5 IS05

              09
              Turnout Lever 9 IS09

              11
              Turnout Lever 11 IS11

              04
              Code Button 4 IS04

              06
              Code Button 6
              IS06

              10
              Code Button 10
              IS10

              12
              Code Button 12
              IS12
          • add levers and code buttons to Panel Editor (includes selection of one icon for each of the four states):

            • sensor icon (USS / plate / levers)

              inactive
              active
              unknown
              inconsistent
              IS03, IS05, IS09, IS11
              I-left
              I-right
              I-unknown
              I-inconsistent
              IS04, IS06, IS10, IS12
              code
              code-press
              code-unknown code-incosistent
            • add levers to Panel Edito:
              • Select the type of icon to Add to Panel: Sensor
              • Change Icon...
                • Program Directory / icons / USS / plate / levers
                  • I-left -> inactive
                  • I-right -> active
                  • I-unknown -> unknown
                  • I-inconsistent -> inconsistent
                • Close Catalog
              • IS03, IS05, IS09, IS11
            • add code buttons to Panel Editor:
              • Select the type of icon to Add to Panel: Sensor
              • Change Icon...
                • Program Directory / icons / USS / plate / levers
                  • code -> inactice
                  • code-press -> active
                  • code-unknown -> unknown
                  • code-incosistent -> inconsistent
                • Close Catalog
              • IS04, IS06, IS10, IS12
                • Momentary
        • 2.4 Adding Turnout Lever Logix
          • add turnout lamps:

            • (USS / sensor)

              close
              thrown
              unknown
              inconsistent
              NT1, NT2, NT3, NT4
              green-on
              green-off
              s-unknown
              s-inconsistent
              NT1, NT2, NT3, NT4 amber-off amber-on
              s-unknown s-inconsistent
            • Select the type of icon to Add to Panel: Right Hand Turnout
            • add left turnout lamps to Panel Editor:
              • Change Icon...
                • Program Directory / icons / USS / sensors
                  • green-on -> closed
                  • green-off -> thrown
                  • s-unknown -> unknown
                  • s-inconsistent -> inconsistent
                • Close Catalog
              • NT1, NT2, NT3, NT4: left
            • add right turnout lamps to Panel Editor:
              • Change Icon...
                • Program Directory / icons / USS / sensors
                  • amber-off -> closed
                  • amber-on -> thrown
                • Close Catalog
              • NT1, NT2, NT3, NT4: right
          • add logics:
            • Logix System Name
              Logix User Name
              Conditional


              System Name
              User Name
              State Variable
              Action
              IX03
              Turnout Lever 3
              IX03C1
              Lever Normal
              • Sensor "Turnout Lever 3" state is "Sensor Inactive"
              • AND Sensor "Code Button 4" state is "Sensor Active"
              • On Change to True, Set Turnout, "NT1" to Closed
              IX03C2 Lever Reverse
              • Sensor "Turnout Lever 3" state is "Sensor Active"
              • AND Sensor "Code Button 4" state is "Sensor Active"
              • On Change to True, Set Turnout, "NT1" to Thrown
              IX05





              IX09





              IX11






            • Tools -> Tables -> Logix
            • Add
              • IX03, Turnout Lever 3
                • New Conditional
                  • User Name: Lever Normal
                  • Add State Variable
                    • Variable Type: Sensor
                      • System / User Name: Turnout Lever 3
                      • Variable State: Inactive
                    • Variable Type: Sensor
                      • System / User Name: Code Button 4
                      • Variable State: Active
                    • R1: Trigger Cal: unchecked
                  • Add Action
                    • Action Group: Turnout
                      • System / User Name: NT1
                      • Action Type: Set Turnout
                      • Turnout Position: Closed
                      • Change Option: On Change to True
                    • Update
                • New Conditional
                  • User Name: Lever Thrown
                  • Add State Variable
                    • Variable Type: Sensor
                      • System / User Name: Turnout Lever 3
                      • Variable State: Active
                    • Variable Type: Sensor
                      • System / User Name: Code Button 4
                      • Variable State: Active
                    • R1: Trigger Cal: unchecked
                  • Add Action
                    • Action Group: Turnout
                      • System / User Name: NT1
                      • Action Type: Set Turnout
                      • Turnout Position: Thrown
                      • Change Option: On Change to True
                    • Update
        • 2.5 The CTC Panel Track Diagram
          • Panel -> Edit -> Open Editor
          • add tracks (static) to Panel Editor
            • Select the type to Add to Panel: Left HandTurnout
              • NT1 -> Add to Panel
            • Select the type to Add to Panel: Icon
            • Change Icon...
              • View on: Dark Gray
              • Program Directory / icons / USS / track / turnout / left / east
                • drag east-l to Icon
                • Add to Panel (twice)
              • Program Directory / icons / USS / track / turnout / ritgh / west
                • drag west-r to Icon
                • Add to Panel (twice)
              • Program Directory / icons / USS / track / block
                • drag block (left-click over draw, not text) to Icon
                • Add to Panel (15 times)
                • drag "b-45-dark" to Icon
                • Add to Panel (Rotate 90 degrees)
          • add text to Panel Editor:
            • Add text
              • "WESTON", Font -> Font Size: 16, Font -> Font Color: Yellow
              • "EASTVILLE", Font -> Font Size: 16, Font -> Font Color: Yellow
              • "3", Font -> Font Size: 16, Font -> Font Color: Yellow
              • "5", Font -> Font Size: 16, Font -> Font Color: Yellow
              • "9", Font -> Font Size: 16, Font -> Font Color: Yellow
              • "11", Font -> Font Size: 16, Font -> Font Color: Yellow
          • add block sensors to Panel Editor
            • IS801, IS802, IS803, IS804, IS805
          • 2.5.1 Activating the Block Sensors
            • ...
        • ...
        • ...
      • Part 3 - Adding Signals and Simple Signal Logic (pdf)
      • ...
  • Signaling
    • Un signal mast està composat de diversos signal head (cadascun pot estar en un appearance concret).
    • Aspect: cadascuna de les combinacions dels signals heads que hi ha en un signal mast.
    • Indication: significat d'un aspecte.
    • JMRI: Signal Heads
    • JMRI: Signal Masts
    • JMRI: Aspect Signaling
    • JMRI: Signal Groups
    • JMRI: Signal Mast Logic
    • JMRI: Defining Your Own Signaling System
      • index.shtml - Free-form description of the signal system
      • aspects.xml - Define the complete set of available aspects
      • appearance-*.xml - One file for each type of SignalMast, defining how to display each aspect
      • Validation
        • PanelPro -> Debug -> Validate XML File
        • Use xmlstarlet
          • xmlstarlet val -s http://jmri.org/xml/schema/aspecttable.xsd -e aspects.xml
          • xmlstarlet val -s http://jmri.org/xml/schema/appearancetable.xsd -e appearance...xml
      • xml -> html (no need to create them, as xml will be rendered as html when accessing them through an http server, which makes use of xml/XSLT/ translation files)
        • xmlstarlet tr ~/src/JMRI/xml/XSLT/aspecttable.xsl aspects.xml >aspects.html
        • ...
      • nginx conf to render xml files:
        • /etc/nginx/default.conf
          • server {
                listen       80;
                server_name  _;

                location /jmri {
                    alias /disc/src/JMRI;
                    autoindex on;
                }
            }
        • http://127.0.0.1/jmri/xml/signals/
      • francesc.pinyol.m / jmri-signals
    • Estructura de fitxers / File structure
      • resources/icons/<smallschematics|largeschematics>/aspects/<system_name>-<system_year>/
        • index.php
        • <CPL|PL|SE|SL|>-<number_signal_heads>-<high|low>-<abs|pbs>/
          • index.php
          • rule-<rule_number>.<gif|png|jpeg>
      • xml/signals/<system_name>/
        • appearance-<CPL|PL|SE|SL|>_<number_signal_heads>_<high|low>_<abs|pbs>.xml (sample-appearance.xml)
          • CPL: Color Position Light
            PL: Position Light
            SE: Semaphore
            SL: Searchlight
          • abs: absolute
            pbs: permissive
          • content
            • <aspectname>
            • <show>
            • ...
            • <reference>
            • ...
            • <imagelink type="small">../../../resources/icons/smallschematics/aspects/...
            • <imagelink type="large">../../../resources/icons/largeschematics/aspects/...
        • aspects.xml (sample-aspects.xml)
          • aspect



            name
            indication rule
            speed
            speed2
            route
            dccAspect
            Adif





            (signalSpeeds.xml)






            Clear
            Proceed

            Normal
            Normal


            Vía libre
            VL
            FF1A
            Approach Limited
            Proceed approaching next signal at limited speed.
            Proceed prepared to pass next signal not exceeding 60 MPH and be prepared to enter diverging route at prescribed speed.








            Advance Approach
            Proceed preparing to stop at the second signal
            Proceed prepared to pass next signal not exceeding 50 MPH and be prepared to enter diverging route at prescribed speed.








            Approach Diverging









            Approach Medium
            Proceed prepared to pass next signal not exceeding 40 MPH  and be prepared to enter diverging route at prescribed speed.







            Approach Medium (Diverging)
            Proceed prepared to pass next signal not exceeding 40 MPH  and be prepared to enter diverging route at prescribed speed.








            Approach restricting
            Proceed prepared to pass next signal at restricted speed.








            Approach
            Proceed prepared to stop at next signal.
            Proceed prepared to stop at next signal, trains exceeding 30 MPH immediately reduce to that speed.

            Medium
            Medium





            Diverging Clear
            Proceed through diverging route
            Proceed on diverging route not exceeding prescribed speed through turnout. (Prescribed speed is 60 MPH).

            Medium Medium




            Diverging approach medium









            Diverging Approach
            Proceed through diverging route preparing to stop at next signal

            Limited
            Limited





            Restricting
            Proceed at restricted speed.








            Restricting (diverging)
            Proceed at restricted speed.








            Restricted proceed
            Stop, then proceed at restricted speed.








            Proceed






            Rebase autorizado
            RA'
            FF8B,C
            Caution






            Anuncio de precaución
            PR
            FF3
            Stop
            Stop

            Stop
            Stop


            Parada
            P
            FF7
            Stop and proceed






            Rebase autorizado
            RA
            FF8A
            Unlit
            Unlit

            Stop Stop




  • ...

OperationsPro

...

http://www.francescpinyol.cat/jmri.html
Primera versió / First version: 24.V.2019
Darrera modificació: 9 de juny de 2019 / Last update: 9th June 2019

Valid HTML 4.01!

Cap a casa / Back home