Package jmri.jmrix.loconet.uhlenbrock
Class UhlenbrockPacketizer
java.lang.Object
jmri.jmrix.loconet.LnTrafficController
jmri.jmrix.loconet.LnPacketizer
jmri.jmrix.loconet.uhlenbrock.UhlenbrockPacketizer
- All Implemented Interfaces:
LocoNetInterface
Converts Stream-based I/O to/from LocoNet messages. The "LocoNetInterface"
side sends/receives LocoNetMessage objects. The connection to a
LnPortController is via a pair of *Streams, which then carry sequences of
characters for transmission.
Messages come to this via the main GUI thread, and are forwarded back to listeners in that same thread. Reception and transmission are handled in dedicated threads by RcvHandler and XmtHandler objects. Those are internal classes defined here. The thread priorities are:
- RcvHandler - at highest available priority
- XmtHandler - down one, which is assumed to be above the GUI
- (everything else)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classCaptive class to handle incoming characters.(package private) classCaptive class to handle transmission -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static int(package private) LocoNetMessageprotected intstatic final intstatic final intSynchronized list used as a transmit queue.Fields inherited from class jmri.jmrix.loconet.LnPacketizer
controller, echo, istream, ostream, rcvHandler, rcvThread, threadStopRequest, xmtHandler, xmtList, xmtThreadFields inherited from class jmri.jmrix.loconet.LnTrafficController
listeners, receivedByteCount, receivedMsgCount, transmittedMsgCountFields inherited from interface jmri.jmrix.loconet.LocoNetInterface
ALL, POWER, PROGRAMMING, SENSORS, SLOTINFO, TURNOUTS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidForward a preformatted LocoNetMessage to the actual interface.voidInvoked at startup to start the threads needed here.protected voidtransmitWait(int waitTime, int state) Methods inherited from class jmri.jmrix.loconet.LnPacketizer
connectPort, disconnectPort, dispose, isXmtBusy, messageTransmitted, readByteProtected, status, terminateThreadsMethods inherited from class jmri.jmrix.loconet.LnTrafficController
addLocoNetListener, getReceivedByteCount, getReceivedMsgCount, getSystemConnectionMemo, getTransmittedMsgCount, notify, removeLocoNetListener, resetStatistics, setSystemConnectionMemo
-
Field Details
-
NOTIFIEDSTATE
- See Also:
-
WAITMSGREPLYSTATE
- See Also:
-
defaultWaitTimer
-
xmtLocoNetList
Synchronized list used as a transmit queue.This is public to allow access from the internal class(es) when compiling with Java 1.1
-
lastMessage
-
mCurrentState
-
-
Constructor Details
-
UhlenbrockPacketizer
-
-
Method Details
-
sendLocoNetMessage
Forward a preformatted LocoNetMessage to the actual interface. Checksum is computed and overwritten here, then the message is converted to a byte array and queued for transmission.- Specified by:
sendLocoNetMessagein interfaceLocoNetInterface- Overrides:
sendLocoNetMessagein classLnPacketizer- Parameters:
m- Message to send; will be updated with CRC
-
transmitWait
-
startThreads
Invoked at startup to start the threads needed here.- Overrides:
startThreadsin classLnPacketizer
-