|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjmri.implementation.AbstractNamedBean
jmri.implementation.AbstractTurnout
jmri.jmrix.maple.SerialTurnout
public class SerialTurnout
Turnout implementation for Maple systems.
This object doesn't listen to the interface communications. This is because it should be the only object that is sending messages for this turnout; more than one Turnout object pointing to a single device is not allowed.
Turnouts on the layout may be controlled by one or two output bits. To control a turnout from one Turnout object via two output bits, the output bits must be on the same node, the Turnout address must point to the first output bit, and the second output bit must follow the output bit at the next address. Valid states for the two bits controlling the two-bit turnout are: ON OFF, and OFF ON for the two bits.
This class can also drive pulsed outputs, which can be combined with the two-bit option in the expected ways.
When a Turnout is configured for pulsed and two-output, a request to go to a new CommandedState sets the desired configuration for the pulse interval, then sets both leads to their off condition.
When a Turnout is configured for pulsed and one output, a request to go to a new CommandedState just sets the output on for the interval; it's assumed that there's something out on the layout that converts that pulse into a "flip to other state" operation.
Finally, this implementation supports the "inverted" option. Inverted applies to the status of the lead on the output itself.
For example, a pulsed, two-output, inverted turnout will have both pins set to 1 in the resting state. When THROWN, one lead will be set to 0 for the configured interval, then set back to 1.
For more discussion of this, please see the documentation page (for C/MRI, but this is similar). NOTE: In the current version Maple support, code for implementing pulsed turnouts has been commented out.
| Field Summary | |
|---|---|
protected Timer |
mPulseClosedTimer
|
protected Timer |
mPulseThrownTimer
|
protected boolean |
mPulseTimerOn
|
protected int |
tBit
|
| Fields inherited from class jmri.implementation.AbstractTurnout |
|---|
_activeFeedbackType, _cabLockout, _decoderName, _enableCabLockout, _enablePushButtonLockout, _inverted, _pushButtonLockout, _reportLocked, _validDecoderNames, _validFeedbackModes, _validFeedbackNames, _validFeedbackTypes, binaryOutput, inhibitOperation, myOperator, myTurnoutOperation |
| Fields inherited from class jmri.implementation.AbstractNamedBean |
|---|
mSystemName, mUserName |
| Fields inherited from interface jmri.Turnout |
|---|
CABLOCKOUT, CLOSED, DIRECT, EXACT, INDIRECT, LOCKED, MONITORING, ONESENSOR, PUSHBUTTONLOCKOUT, SIGNAL, THROWN, TWOSENSOR, UNLOCKED |
| Fields inherited from interface jmri.NamedBean |
|---|
INCONSISTENT, UNKNOWN |
| Constructor Summary | |
|---|---|
SerialTurnout(String systemName,
String userName)
Create a Turnout object, with both system and user names. |
|
| Method Summary | |
|---|---|
boolean |
canInvert()
Turnouts do support inversion |
protected void |
forwardCommandChangeToLayout(int newState)
Handle a request to change state by sending a turnout command |
protected void |
sendMessage(boolean closed)
Control the actual layout hardware. |
protected void |
turnoutPushbuttonLockout(boolean _pushButtonLockout)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected int tBit
protected Timer mPulseClosedTimer
protected Timer mPulseThrownTimer
protected boolean mPulseTimerOn
| Constructor Detail |
|---|
public SerialTurnout(String systemName,
String userName)
'systemName' was previously validated in SerialTurnoutManager
| Method Detail |
|---|
protected void forwardCommandChangeToLayout(int newState)
forwardCommandChangeToLayout in class AbstractTurnoutnewState - desired new state, one of the Turnout class constantspublic boolean canInvert()
canInvert in interface TurnoutcanInvert in class AbstractTurnoutprotected void turnoutPushbuttonLockout(boolean _pushButtonLockout)
turnoutPushbuttonLockout in class AbstractTurnoutprotected void sendMessage(boolean closed)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||