Class LnSensorAddress

java.lang.Object
jmri.jmrix.loconet.LnSensorAddress

public class LnSensorAddress extends Object
Utilities for handling LocoNet sensor addresses.

There are three addressing spaces for LocoNet sensors:

  • The space used for DS54 inputs, where the least-significant-bit in the address refers to the "Aux" and "Switch" inputs. These are represented by system names of the form LSnnnA and LSnnnS respectively. nnn is then the turnout number of the DS54 channel.
  • The space used for BDL16 inputs, where the card and section numbers are part of the address. These are represented by names of the form LScccA1 through LScccA4, LScccB1 through LScccB4, and on through LScccD4. ccc is the BDL16 card number.
  • A straight-forward numeric space, represented by LSmmm. Note that this is a 1-4096 scheme, not a 0-4095.
Some of the message formats used in this class are Copyright Digitrax, Inc. and used with permission as part of the JMRI project. That permission does not extend to uses in other software products. If you wish to use this code, algorithm or these message formats outside of JMRI, please contact Digitrax Inc for separate permission.
  • Field Details

  • Constructor Details

  • Method Details

    • reportParseError

    • insertAddress

      public void insertAddress(LocoNetMessage m)
      Update a LocoNet message to have this address. It is assumed that the sensor address may be encoded into bytes 1 and 2 of the message.
      Parameters:
      m - a LocoNetmessage to be updated to contain this object's sensor address
    • matchAddress

      public boolean matchAddress(int a1, int a2)
    • asInt

      protected int asInt()
      Returns:
      integer value of this address in 0-4095 space
    • getLowBits

      public int getLowBits()
    • getHighBits

      public int getHighBits()
    • getASBit

      public int getASBit()
      The bit representing the Aux or Sensor input
      Returns:
      0x20 for aux input, 0x00 for switch input
    • isValid

      public boolean isValid()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getNumericAddress

      Name in the 1-4096 space
      Returns:
      LSnnn
    • getDS54Address

      Name in the DS54 space
      Returns:
      LSnnnA or LSnnnS, depending on Aux or Switch input
    • getBDL16Address

      Name in the BDL16 space
      Returns:
      e.g. LSnnnA3, with nnn the BDL16 number, A the section number, and 3 the channel number