Package jmri.jmrix.powerline

This package handles communications for powerline adapters, such as X10.

The package structure has to take two kinds of variation into account:

  1. Multiple adapters, e.g. as shown on the compatibility page. Each of these has its own serial protocol, including its own message format.
  2. Multiple device families and types, starting with X10, but later including Insteon and perhaps others. Individual adapters might support one or several of these.

Our strategy is to use explicit interfaces for each device protocol, implemented by a polymorphic TrafficController for each adapter type.

For example, the primary SerialTrafficController abstract class has an interface for sending X10Sequence objects. An X10Sequence encapulates just the X10 commands, not the particular message needed to send them. When the X10Sequence is passed to the specific SerialTrafficController implementation, e.g. SpecificTrafficController, it's encapsulated in one or more SpecificMessage objects, queued and sent.

The setup is done in SerialDriverAdapter, which keys off the adapter name in option1.

Related Documentation

Other sources of documentation

To Do