|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjmri.jmrix.AbstractMRTrafficController
jmri.jmrix.AbstractMRNodeTrafficController
jmri.jmrix.acela.AcelaTrafficController
public class AcelaTrafficController
Converts Stream-based I/O to/from Acela messages.
The "SerialInterface" side sends/receives message objects.
The connection to an AcelaPortController is via a pair of *Streams, which then carry sequences of characters for transmission. Note that this processing is handled in an independent thread.
This handles the state transistions, based on the necessary state in each message.
Handles initialization, polling, output, and input for multiple Serial Nodes.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class jmri.jmrix.AbstractMRTrafficController |
|---|
AbstractMRTrafficController.RcvNotifier, AbstractMRTrafficController.XmtNotifier |
| Field Summary | |
|---|---|
protected static AcelaTrafficController |
self
|
| Fields inherited from class jmri.jmrix.AbstractMRNodeTrafficController |
|---|
maxNode, minNode |
| Fields inherited from class jmri.jmrix.AbstractMRTrafficController |
|---|
allowUnexpectedReply, cmdListeners, controller, IDLESTATE, istream, mCurrentMode, mCurrentState, mLastSender, mWaitBeforePoll, NORMALMODE, NOTIFIEDSTATE, OKSENDMSGSTATE, ostream, PROGRAMINGMODE, replyInDispatch, WAITMSGREPLYSTATE, WAITREPLYINNORMMODESTATE, WAITREPLYINPROGMODESTATE, xmtRunnable |
| Constructor Summary | |
|---|---|
AcelaTrafficController()
|
|
| Method Summary | |
|---|---|
void |
addAcelaListener(AcelaListener l)
|
protected boolean |
endOfMessage(AbstractMRReply msg)
|
protected AbstractMRMessage |
enterNormalMode()
|
protected AbstractMRMessage |
enterProgMode()
|
protected void |
forwardMessage(AbstractMRListener client,
AbstractMRMessage m)
Forward a AcelaMessage to all registered AcelaInterface listeners. |
protected void |
forwardReply(AbstractMRListener client,
AbstractMRReply m)
Forward a AcelaReply to all registered AcelaInterface listeners. |
boolean |
getAcelaSensorsState()
|
boolean |
getAcelaTrafficControllerState()
|
int |
getMaximumNumberOfNodes()
Public method to get maximum number of Acela nodes |
int |
getMinimumNodeAddress()
Public method to get minimum address of an Acela node |
boolean |
getNeedToPollNodes()
|
protected void |
handleTimeout(AbstractMRMessage m)
|
void |
initializeAcelaNode(AcelaNode node)
Public method to set up for initialization of a Acela node |
static AcelaTrafficController |
instance()
static function returning the AcelaTrafficController instance to use. |
protected void |
loadChars(AbstractMRReply msg,
DataInputStream istream)
Get characters from the input source, and file a message. |
int |
lookupAcelaNodeAddress(int bitAddress,
boolean isSensor)
Public method to identify a AcelaNode from its bit address Note: nodeAddress is numbered from 0. |
protected AbstractMRReply |
newReply()
|
protected AbstractMRMessage |
pollMessage()
Handles initialization, output and polling for Acela Nodes from within the running thread |
protected AbstractMRListener |
pollReplyHandler()
|
void |
registerAcelaNode(AcelaNode node)
Public method to register a Acela node |
void |
removeAcelaListener(AcelaListener l)
|
protected void |
resetTimeout(AbstractMRMessage m)
|
void |
sendAcelaMessage(AcelaMessage m,
AcelaListener reply)
Forward a preformatted message to the actual interface. |
void |
setAcelaSensorsState(boolean newstate)
|
void |
setAcelaTrafficControllerState(boolean newstate)
|
protected void |
setInstance()
|
void |
setNeedToPollNodes(boolean newstate)
|
void |
setSensorManager(AcelaSensorManager m)
|
void |
updateSensorsFromPoll(AcelaReply r)
For each sensor node call markChanges. |
protected void |
waitForStartOfReply(DataInputStream istream)
Dummy routine, to be filled by protocols that have to skip some start-of-message characters. |
| Methods inherited from class jmri.jmrix.AbstractMRNodeTrafficController |
|---|
deleteNode, getMustInit, getNode, getNodeFromAddress, getNumNodes, init, registerNode, setMustInit, setMustInit |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface jmri.jmrix.acela.AcelaInterface |
|---|
status |
| Field Detail |
|---|
protected static AcelaTrafficController self
| Constructor Detail |
|---|
public AcelaTrafficController()
| Method Detail |
|---|
public void addAcelaListener(AcelaListener l)
addAcelaListener in interface AcelaInterfacepublic void removeAcelaListener(AcelaListener l)
removeAcelaListener in interface AcelaInterfacepublic int getMinimumNodeAddress()
public int getMaximumNumberOfNodes()
public boolean getAcelaTrafficControllerState()
public void setAcelaTrafficControllerState(boolean newstate)
public boolean getAcelaSensorsState()
public void setAcelaSensorsState(boolean newstate)
public boolean getNeedToPollNodes()
public void setNeedToPollNodes(boolean newstate)
public void registerAcelaNode(AcelaNode node)
public void initializeAcelaNode(AcelaNode node)
public int lookupAcelaNodeAddress(int bitAddress,
boolean isSensor)
protected AbstractMRMessage enterProgMode()
enterProgMode in class AbstractMRTrafficControllerprotected AbstractMRMessage enterNormalMode()
enterNormalMode in class AbstractMRTrafficController
protected void forwardMessage(AbstractMRListener client,
AbstractMRMessage m)
forwardMessage in class AbstractMRTrafficController
protected void forwardReply(AbstractMRListener client,
AbstractMRReply m)
forwardReply in class AbstractMRTrafficControllerpublic void setSensorManager(AcelaSensorManager m)
protected AbstractMRMessage pollMessage()
pollMessage in class AbstractMRTrafficControllerprotected void handleTimeout(AbstractMRMessage m)
handleTimeout in class AbstractMRTrafficControllerprotected void resetTimeout(AbstractMRMessage m)
resetTimeout in class AbstractMRTrafficControllerprotected AbstractMRListener pollReplyHandler()
pollReplyHandler in class AbstractMRTrafficController
public void sendAcelaMessage(AcelaMessage m,
AcelaListener reply)
sendAcelaMessage in interface AcelaInterfacepublic static AcelaTrafficController instance()
protected void setInstance()
setInstance in class AbstractMRTrafficControllerprotected AbstractMRReply newReply()
newReply in class AbstractMRTrafficControllerprotected boolean endOfMessage(AbstractMRReply msg)
endOfMessage in class AbstractMRTrafficController
protected void loadChars(AbstractMRReply msg,
DataInputStream istream)
throws IOException
AbstractMRTrafficControllerReturns only when the message is complete.
Only used in the Receive thread.
Handles timeouts on read by ignoring zero-length reads.
loadChars in class AbstractMRTrafficControllermsg - message to fillistream - character source.
IOException - when presented by the input source.
protected void waitForStartOfReply(DataInputStream istream)
throws IOException
AbstractMRTrafficController
waitForStartOfReply in class AbstractMRTrafficControllerIOExceptionpublic void updateSensorsFromPoll(AcelaReply r)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||