Package jmri.jmrix.loconet
Class LnSensorAddress
- java.lang.Object
-
- jmri.jmrix.loconet.LnSensorAddress
-
public class LnSensorAddress extends java.lang.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.
-
-
Constructor Summary
Constructors Constructor Description LnSensorAddress(int sw1, int sw2, java.lang.String prefix)
LnSensorAddress(java.lang.String s, java.lang.String prefix)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
asInt()
int
getASBit()
The bit representing the Aux or Sensor inputjava.lang.String
getBDL16Address()
Name in the BDL16 spacejava.lang.String
getDS54Address()
Name in the DS54 spaceint
getHighBits()
int
getLowBits()
java.lang.String
getNumericAddress()
Name in the 1-4096 spacevoid
insertAddress(LocoNetMessage m)
Update a LocoNet message to have this address.boolean
isValid()
boolean
matchAddress(int a1, int a2)
(package private) void
reportParseError(java.lang.String s)
java.lang.String
toString()
-
-
-
Constructor Detail
-
LnSensorAddress
public LnSensorAddress(int sw1, int sw2, java.lang.String prefix)
-
LnSensorAddress
public LnSensorAddress(java.lang.String s, java.lang.String prefix)
-
-
Method Detail
-
reportParseError
void reportParseError(java.lang.String s)
-
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 java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getNumericAddress
public java.lang.String getNumericAddress()
Name in the 1-4096 space- Returns:
- LSnnn
-
getDS54Address
public java.lang.String getDS54Address()
Name in the DS54 space- Returns:
- LSnnnA or LSnnnS, depending on Aux or Switch input
-
getBDL16Address
public java.lang.String getBDL16Address()
Name in the BDL16 space- Returns:
- e.g. LSnnnA3, with nnn the BDL16 number, A the section number, and 3 the channel number
-
-