Class SpecificTrafficController
java.lang.Object
jmri.jmrix.AbstractMRTrafficController
jmri.jmrix.powerline.SerialTrafficController
jmri.jmrix.powerline.insteon2412s.SpecificTrafficController
- All Implemented Interfaces:
SerialInterface
public class SpecificTrafficController extends SerialTrafficController
Converts Stream-based I/O to/from messages. The "SerialInterface" side
sends/receives message objects.
The connection to a SerialPortController 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 maintains a list of nodes, but doesn't currently do anything with it.
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrix.AbstractMRTrafficController
AbstractMRTrafficController.RcvNotifier, AbstractMRTrafficController.XmtNotifier
-
Field Summary
Fields inherited from class jmri.jmrix.AbstractMRTrafficController
allowUnexpectedReply, AUTORETRYSTATE, cmdListeners, connectionError, controller, flushReceiveChars, IDLESTATE, istream, listenerQueue, maxRcvExceptionCount, mCurrentMode, mCurrentState, mLastSender, msgQueue, mWaitBeforePoll, NORMALMODE, NOTIFIEDSTATE, OKSENDMSGSTATE, ostream, POLLSTATE, PROGRAMINGMODE, rcvException, rcvThread, replyInDispatch, threadStopRequest, WAITMSGREPLYSTATE, WAITREPLYINNORMMODESTATE, WAITREPLYINPROGMODESTATE, waitTimePoll, xmtException, xmtRunnable, xmtThread
-
Constructor Summary
Constructors Constructor Description SpecificTrafficController(SerialSystemConnectionMemo memo)
-
Method Summary
Modifier and Type Method Description protected boolean
endOfMessage(AbstractMRReply msg)
This is a default, null implementation, which must be overridden in an adapter-specific subclass.protected void
forwardToPort(AbstractMRMessage m, AbstractMRListener reply)
Actually transmit the next message to the port.SerialMessage
getSerialMessage(int length)
Get a message of a specific length for filling in.protected void
loadChars(AbstractMRReply msg, DataInputStream istream)
read a stream and pick packets out of it. knows the size of the packets from the contents.protected AbstractMRReply
newReply()
This is a default, null implementation, which must be overridden in an adapter-specific subclass.void
sendInsteonSequence(InsteonSequence s, SerialListener l)
Send a sequence of Insteon messagesvoid
sendX10Sequence(X10Sequence s, SerialListener l)
Send a sequence of X10 messagesMethods inherited from class jmri.jmrix.powerline.SerialTrafficController
addSerialListener, enterNormalMode, enterProgMode, enterProgModeDelayTime, forwardMessage, forwardReply, getAdapterMemo, getNumberOfIntensitySteps, getSensorManager, pollMessage, pollReplyHandler, removeSerialListener, sendSerialMessage, setAdapterMemo, setSensorManager
Methods inherited from class jmri.jmrix.AbstractMRTrafficController
addHeaderToOutput, addListener, addTrailerToOutput, canReceive, connectionWarn, connectPort, disconnectPort, distributeReply, finalize, getLastSender, getPortName, getSynchronizeRx, handleOneIncomingReply, handleTimeout, hasTimeouts, lengthOfByteStream, newRcvNotifier, notifyMessage, notifyReply, portReadyToSend, portWarn, portWarnTCP, programmerIdle, readByteProtected, receiveLoop, recovery, removeListener, reportReceiveLoopException, resetTimeout, sendMessage, setAllowUnexpectedReply, setSynchronizeRx, status, terminate, terminateThreads, transmitLoop, transmitWait, unexpectedReplyStateError, waitForStartOfReply
-
Constructor Details
-
Method Details
-
sendX10Sequence
Send a sequence of X10 messagesMakes them into the local messages and then queues in order
- Overrides:
sendX10Sequence
in classSerialTrafficController
- Parameters:
s
- sequence to sendl
- listener for reply
-
sendInsteonSequence
Send a sequence of Insteon messagesMakes them into the local messages and then queues in order
- Overrides:
sendInsteonSequence
in classSerialTrafficController
- Parameters:
s
- sequence to sendl
- listener for reply
-
getSerialMessage
Get a message of a specific length for filling in.- Overrides:
getSerialMessage
in classSerialTrafficController
- Parameters:
length
- message size- Returns:
- null
-
forwardToPort
Description copied from class:AbstractMRTrafficController
Actually transmit the next message to the port.- Overrides:
forwardToPort
in classSerialTrafficController
- Parameters:
m
- the message to sendreply
- the Listener sending the message, often provided as 'this'- See Also:
AbstractMRTrafficController.sendMessage(AbstractMRMessage, AbstractMRListener)
-
newReply
Description copied from class:SerialTrafficController
This is a default, null implementation, which must be overridden in an adapter-specific subclass.- Overrides:
newReply
in classSerialTrafficController
-
endOfMessage
Description copied from class:SerialTrafficController
This is a default, null implementation, which must be overridden in an adapter-specific subclass.- Overrides:
endOfMessage
in classSerialTrafficController
-
loadChars
read a stream and pick packets out of it. knows the size of the packets from the contents.- Overrides:
loadChars
in classAbstractMRTrafficController
- Parameters:
msg
- message to fillistream
- character source.- Throws:
IOException
- when presented by the input source.
-