JMRI: Network Access
This page describes various forms of network access available in JMRI. More capabilities are added all the time, so please check with the user group for up-to-date information.Methods of Network Access
JMRI interacts with networks in two basic forms: downstream connections and upstream connections.A downstream connection allows JMRI to connect to a layout via a network for operations and control. This uses a network connection to do the same kinds of things that are often done via serial RS232 and USB links.
An upstream connection allows other devices to command JMRI over a network connection. In this case, the network connection allows other devices and/or programs to do things that are normally done via scripts and the graphical user interface.
In the rest of this page, we provide links to the various examples of those two general areas.
Downstream (networked layout hardware) connections
- LocoNet systems
- LocoNet RMI client server connection
This uses Java RMI to provide client-server access to the LocoNet message stream.
- LocoNetOverTcp to LbServer
This uses Java RMI to provides access to the LocoNet message stream via the LbServer protocol.
- LocoNet RMI client server connection
- EasyDCC
- JMRIClient
- NCE
- SRCP
- ECOS
- XPressNet
- Via network connection to an XnTcp adapter
- Via network connection to the Lenz LIUSB Server (Windows only)
Upstream (networked JMRI operations) connections
- Built-in mini web server
(code)
This is advertised on Bonjour/Zeroconf as a "_http._tcp.local." service. In particular, this contains the JMRI XMLIO support, which allows web browsers (with or without AJAX) to monitor and control a layout by accessing a JMRI XMLIO Servlet via the web. It also includes facilities for displaying and clicking on any open JMRI window.
- Via Python/jython scripting
- For remote throttles
such as the iPhone or Android.
(code)
(WiThrottle product web site)
(Android Engine Driver page)
This is advertised on Bonjour/Zeroconf as a "_withrottle._tcp.local." service.
- Via running JMRI as an Enterprise Java Bean
- Via providing a LocoNet RMI server.
This is advertised on Bonjour/Zeroconf as a "_jmri-locormi._tcp.local." service.
- Via providing a LbServer implementation.
This is advertised on Bonjour/Zeroconf as a "_loconetovertcpserver._tcp.local." service. (Name pending approval from the original protocol developers)
- Via providing an SRCP server implementation.
This is advertised on Bonjour/Zeroconf as a "_srcp._tcp.local." service.
- Via providing a JMRI Server implementation.
See also the DNS-SD page for more information on Zeroconf/Bonjour/"DNS Service Discovery" networking.
See also "man dns-sd" for more information on the dns-sd debugging command-line tool.