jmri.jmrix.loconet
Class LnThrottleManager

java.lang.Object
  extended by jmri.jmrix.AbstractThrottleManager
      extended by jmri.jmrix.loconet.LnThrottleManager
All Implemented Interfaces:
EventListener, SlotListener, ThrottleManager

public class LnThrottleManager
extends AbstractThrottleManager
implements ThrottleManager, SlotListener

LocoNet implementation of a ThrottleManager.

Works in cooperation with the SlotManager, which actually handles the communications.

Author:
Bob Jacobsen Copyright (C) 2001
See Also:
SlotManager

Constructor Summary
LnThrottleManager()
          Constructor.
 
Method Summary
 boolean addressTypeUnique()
          Are there any ambiguous addresses (short vs long) on this system?
 boolean canBeLongAddress(int address)
          Address 128 and above is a long address
 boolean canBeShortAddress(int address)
          Address 127 and below is a short address
 boolean hasDispatchFunction()
          LocoNet does have a Dispatch function
 void notifyChangedSlot(LocoNetSlot s)
          SlotListener contract.
 void requestThrottleSetup(LocoAddress address)
          Start creating a Throttle object.
protected  boolean singleUse()
          LocoNet allows multiple throttles for the same device
 
Methods inherited from class jmri.jmrix.AbstractThrottleManager
cancelThrottleRequest, cancelThrottleRequest, notifyThrottleKnown, requestThrottle, requestThrottle, supportedSpeedModes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface jmri.ThrottleManager
cancelThrottleRequest, cancelThrottleRequest, requestThrottle, requestThrottle, supportedSpeedModes
 

Constructor Detail

LnThrottleManager

public LnThrottleManager()
Constructor. Gets a reference to the LocoNet SlotManager.

Method Detail

singleUse

protected boolean singleUse()
LocoNet allows multiple throttles for the same device

Overrides:
singleUse in class AbstractThrottleManager

requestThrottleSetup

public void requestThrottleSetup(LocoAddress address)
Start creating a Throttle object. This returns directly, having arranged for the Throttle object to be delivered via callback

Specified by:
requestThrottleSetup in class AbstractThrottleManager

hasDispatchFunction

public boolean hasDispatchFunction()
LocoNet does have a Dispatch function

Specified by:
hasDispatchFunction in interface ThrottleManager
Overrides:
hasDispatchFunction in class AbstractThrottleManager

notifyChangedSlot

public void notifyChangedSlot(LocoNetSlot s)
SlotListener contract. Get notification that an address has changed slot. This method creates a throttle for all ThrottleListeners of that address and notifies them via the ThrottleListener.notifyThrottleFound method.

Specified by:
notifyChangedSlot in interface SlotListener

canBeLongAddress

public boolean canBeLongAddress(int address)
Address 128 and above is a long address

Specified by:
canBeLongAddress in interface ThrottleManager

canBeShortAddress

public boolean canBeShortAddress(int address)
Address 127 and below is a short address

Specified by:
canBeShortAddress in interface ThrottleManager

addressTypeUnique

public boolean addressTypeUnique()
Are there any ambiguous addresses (short vs long) on this system?

Specified by:
addressTypeUnique in interface ThrottleManager


Copyright © 1997 - 2008 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: SourceForge_Logo