JMRI Layout Automation
      JMRI applications provide a large number of ways of automating your layout, ranging from
      simple fill-in forms to full-fledged scripting and programming capabilities. These
      include:
      
        - 
          Signaling
        
 
        - JMRI provides signaling logic from simple to prototypical, which can be used to drive
        your signals in many applications.
 
        - 
          Entry Exit (NX)
        
 
        - 
          NX Routing builds a dynamic valid path between two locations on a Layout Editor Panel.
        
 
        - 
          Warrants
        
 
        - 
          Warrants let you automatically run trains on layouts with Control Panel Editor Panels.
        
 
        - 
          Dispatcher
        
 
        - 
          Dispatcher lets you dispatch and (automatically) run trains on layouts with Layout Editor Panels.
        
 
        - 
          Dispatcher System
        
 
        - 
          Dispatcher System extends Dispatcher by automatically creating stations and associated dispatcher files
          allowing trains to be dispatched between the stations and scheduled with timetables.
        
 
        - 
          Routes
        
 
        - A simple form of automation is to define Routes, which allow you to simplify the
        control of your turnouts and signals.
 
        - 
          LRoutes
        
 
        - LRoutes are like Routes but offer more types of control. When an LRoute is defined, it
        automatically creates Logix statements (see below) which can be further edited to implement
        even more route controls.
 
        - 
          CTC (Centralized Traffic Control)
        
 
        - A set of tools to help in the automation of CTC Panels.
 
        - 
          Logix
        
 
        - Using JMRI Logix, you can specify actions to happen when various conditions occur on
        the layout.
 
        - 
          LogixNG
        
 
        - The Next Generation of Logix capabilities with a modular structure for extending and
        the ability to create more complex logic without scripting.
 
        - 
          Scripting
        
 
        - JMRI provides a very powerful scripting tool. Based on a real programming language, it
        gives you access to all the JMRI capabilities.
 
        - 
          Writing your own code in Java
        
 
        - The JMRI libraries greatly simplify writing a program to make your layout do exactly
        what you want.