jmri.jmrix.can.cbus
Class CbusThrottle

java.lang.Object
  extended by jmri.jmrix.AbstractThrottle
      extended by jmri.jmrix.can.cbus.CbusThrottle
All Implemented Interfaces:
DccThrottle, Throttle

public class CbusThrottle
extends AbstractThrottle

An implementation of DccThrottle via AbstractThrottle with code specific to a Cbus connection.

Speed in the Throttle interfaces and AbstractThrottle is a float, but in CBUS is an int with values from 0 to 127.

Author:
Andrew Crosland Copyright (C) 2009

Field Summary
 
Fields inherited from class jmri.jmrix.AbstractThrottle
active, f0, f0Momentary, f1, f10, f10Momentary, f11, f11Momentary, f12, f12Momentary, f13, f13Momentary, f14, f14Momentary, f15, f15Momentary, f16, f16Momentary, f17, f17Momentary, f18, f18Momentary, f19, f19Momentary, f1Momentary, f2, f20, f20Momentary, f21, f21Momentary, f22, f22Momentary, f23, f23Momentary, f24, f24Momentary, f25, f25Momentary, f26, f26Momentary, f27, f27Momentary, f28, f28Momentary, f2Momentary, f3, f3Momentary, f4, f4Momentary, f5, f5Momentary, f6, f6Momentary, f7, f7Momentary, f8, f8Momentary, f9, f9Momentary, isForward, SPEED_STEP_128_INCREMENT, SPEED_STEP_14_INCREMENT, SPEED_STEP_27_INCREMENT, SPEED_STEP_28_INCREMENT, speedIncrement, speedSetting, speedStepMode
 
Fields inherited from interface jmri.DccThrottle
SpeedStepMode128, SpeedStepMode14, SpeedStepMode27, SpeedStepMode28
 
Constructor Summary
CbusThrottle(LocoAddress address, int handle)
          Constructor
 
Method Summary
protected  void dspdTimeout()
          Internal routine to resend the speed on a timeout
protected  float floatSpeed(int lSpeed)
          Convert a CBUS speed integer to a float speed value
 LocoAddress getLocoAddress()
          Locomotive address.
protected  int intSpeed(float fSpeed)
          Convert a float speed value to a CBUS speed integer
protected  void sendFunctionGroup1()
          Send the CBUS message to set the state of locomotive direction and functions F0, F1, F2, F3, F4
protected  void sendFunctionGroup2()
          Send the CBUS message to set the state of functions F5, F6, F7, F8
protected  void sendFunctionGroup3()
          Send the CBUS message to set the state of functions F9, F10, F11, F12
 void setIsForward(boolean forward)
          Set the direction and reset speed.
 void setSpeedSetting(float speed)
          Set the speed.
 void setSpeedStepMode(int Mode)
           
protected  void startRefresh()
           
 void throttleDispose()
          Dispose when finished with this object.
 String toString()
           
 
Methods inherited from class jmri.jmrix.AbstractThrottle
addPropertyChangeListener, dispatch, dispose, getF0, getF0Momentary, getF1, getF10, getF10Momentary, getF11, getF11Momentary, getF12, getF12Momentary, getF13, getF13Momentary, getF14, getF14Momentary, getF15, getF15Momentary, getF16, getF16Momentary, getF17, getF17Momentary, getF18, getF18Momentary, getF19, getF19Momentary, getF1Momentary, getF2, getF20, getF20Momentary, getF21, getF21Momentary, getF22, getF22Momentary, getF23, getF23Momentary, getF24, getF24Momentary, getF25, getF25Momentary, getF26, getF26Momentary, getF27, getF27Momentary, getF28, getF28Momentary, getF2Momentary, getF3, getF3Momentary, getF4, getF4Momentary, getF5, getF5Momentary, getF6, getF6Momentary, getF7, getF7Momentary, getF8, getF8Momentary, getF9, getF9Momentary, getIsForward, getListeners, getSpeedIncrement, getSpeedSetting, getSpeedStepMode, notifyPropertyChangeListener, release, removePropertyChangeListener, sendFunctionGroup4, sendFunctionGroup5, sendMomentaryFunctionGroup1, sendMomentaryFunctionGroup2, sendMomentaryFunctionGroup3, sendMomentaryFunctionGroup4, sendMomentaryFunctionGroup5, setF0, setF0Momentary, setF1, setF10, setF10Momentary, setF11, setF11Momentary, setF12, setF12Momentary, setF13, setF13Momentary, setF14, setF14Momentary, setF15, setF15Momentary, setF16, setF16Momentary, setF17, setF17Momentary, setF18, setF18Momentary, setF19, setF19Momentary, setF1Momentary, setF2, setF20, setF20Momentary, setF21, setF21Momentary, setF22, setF22Momentary, setF23, setF23Momentary, setF24, setF24Momentary, setF25, setF25Momentary, setF26, setF26Momentary, setF27, setF27Momentary, setF28, setF28Momentary, setF2Momentary, setF3, setF3Momentary, setF4, setF4Momentary, setF5, setF5Momentary, setF6, setF6Momentary, setF7, setF7Momentary, setF8, setF8Momentary, setF9, setF9Momentary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CbusThrottle

public CbusThrottle(LocoAddress address,
                    int handle)
Constructor

Parameters:
address - The address this throttle relates to.
Method Detail

setSpeedStepMode

public void setSpeedStepMode(int Mode)
Specified by:
setSpeedStepMode in interface DccThrottle
Overrides:
setSpeedStepMode in class AbstractThrottle

floatSpeed

protected float floatSpeed(int lSpeed)
Convert a CBUS speed integer to a float speed value


intSpeed

protected int intSpeed(float fSpeed)
Convert a float speed value to a CBUS speed integer


sendFunctionGroup1

protected void sendFunctionGroup1()
Send the CBUS message to set the state of locomotive direction and functions F0, F1, F2, F3, F4

Overrides:
sendFunctionGroup1 in class AbstractThrottle

sendFunctionGroup2

protected void sendFunctionGroup2()
Send the CBUS message to set the state of functions F5, F6, F7, F8

Overrides:
sendFunctionGroup2 in class AbstractThrottle

sendFunctionGroup3

protected void sendFunctionGroup3()
Send the CBUS message to set the state of functions F9, F10, F11, F12

Overrides:
sendFunctionGroup3 in class AbstractThrottle

setSpeedSetting

public void setSpeedSetting(float speed)
Set the speed.

This intentionally skips the emergency stop value of 1.

Specified by:
setSpeedSetting in interface Throttle
Overrides:
setSpeedSetting in class AbstractThrottle
Parameters:
speed - Number from 0 to 1; less than zero is emergency stop

setIsForward

public void setIsForward(boolean forward)
Set the direction and reset speed.

Specified by:
setIsForward in interface Throttle
Overrides:
setIsForward in class AbstractThrottle

toString

public String toString()
Overrides:
toString in class Object

throttleDispose

public void throttleDispose()
Dispose when finished with this object. After this, further usage of this Throttle object will result in a JmriException.

Specified by:
throttleDispose in class AbstractThrottle

startRefresh

protected void startRefresh()

dspdTimeout

protected void dspdTimeout()
Internal routine to resend the speed on a timeout


getLocoAddress

public LocoAddress getLocoAddress()
Description copied from interface: Throttle
Locomotive address. The exact format is defined by the specific implementation, as subclasses of LocoAddress will contain different information. This is an unbound property.



Copyright © 1997 - 2011 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: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads