Package jmri.jmrix.can.adapters.lawicell
Class LawicellTrafficController
java.lang.Object
jmri.jmrix.AbstractMRTrafficController
jmri.jmrix.can.AbstractCanTrafficController
jmri.jmrix.can.TrafficController
jmri.jmrix.can.adapters.lawicell.LawicellTrafficController
- All Implemented Interfaces:
CanInterface
Traffic controller for the LAWICELL protocol.
Lawicell adapters use messages transmitted as an ASCII string of up to 24 characters of the form: ;ShhhhNd0d1d2d3d4d5d6d7: The S indicates a standard CAN frame hhhh is the two byte header N or R indicates a normal or remote frame d0 - d7 are the (up to) 8 data bytes
-
Nested Class Summary
Nested classes/interfaces inherited from class jmri.jmrix.AbstractMRTrafficController
AbstractMRTrafficController.RcvNotifier, AbstractMRTrafficController.XmtNotifier -
Field Summary
FieldsFields inherited from class jmri.jmrix.can.TrafficController
_canidFields 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, timeoutFlag, timeouts, WAITMSGREPLYSTATE, WAITREPLYINNORMMODESTATE, WAITREPLYINPROGMODESTATE, waitTimePoll, xmtException, xmtRunnable, xmtThread -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddTrailerToOutput(byte[] msg, int offset, AbstractMRMessage m) Add trailer to the outgoing byte stream.Make a CanReply from a Lawicell-specific reply.Encode a CanMessage into Lawicell format for the hardware.(package private) booleanprotected booleanNormal Lawicell replies will end with CR; errors are BELL.protected voidforwardMessage(AbstractMRListener client, AbstractMRMessage m) Forward a CanMessage to all registered CanInterface listeners.protected voidforwardReply(AbstractMRListener client, AbstractMRReply r) Forward a CanReply to all registered CanInterface listeners.intbooleanprotected intDetermine how much many bytes the entire message will take, including space for header and trailerprotected AbstractMRMessageGet the correct concrete class for the hardware connection messageprotected AbstractMRReplynewReply()voidsendCanMessage(CanMessage m, CanListener reply) Forward a preformatted message to the actual interface.voidsendCanReply(CanReply r, CanListener reply) Forward a preformatted reply to the actual interface.voidsetgcState(int s) Methods inherited from class jmri.jmrix.can.TrafficController
getCanid, setCanId, setCanIdMethods inherited from class jmri.jmrix.can.AbstractCanTrafficController
addCanConsoleListener, addCanListener, distributeOneReply, enterNormalMode, enterProgMode, forwardToPort, handleOneIncomingReply, pollMessage, pollReplyHandler, removeCanListenerMethods inherited from class jmri.jmrix.AbstractMRTrafficController
addConsoleListener, addHeaderToOutput, addListener, canReceive, connectionWarn, connectPort, disconnectPort, distributeReply, enterProgModeDelayTime, getLastSender, getPortName, getSynchronizeRx, handleTimeout, hasTimeouts, loadChars, newRcvNotifier, notifyMessage, notifyReply, portReadyToSend, portWarn, portWarnTCP, programmerIdle, readByteProtected, receiveLoop, recovery, removeListener, reportReceiveLoopException, resetTimeout, sendMessage, setAllowUnexpectedReply, setSynchronizeRx, status, terminate, terminateThreads, transmitLoop, transmitWait, unexpectedReplyStateError, waitForStartOfReply, warnOnTimeoutMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jmri.jmrix.can.CanInterface
status
-
Field Details
-
NORMAL
- See Also:
-
BOOTMODE
- See Also:
-
-
Constructor Details
-
LawicellTrafficController
public LawicellTrafficController()
-
-
Method Details
-
forwardMessage
Forward a CanMessage to all registered CanInterface listeners.- Specified by:
forwardMessagein classAbstractMRTrafficController- Parameters:
client- abstract listener.m- message to forward.
-
forwardReply
Forward a CanReply to all registered CanInterface listeners.- Specified by:
forwardReplyin classAbstractMRTrafficController
-
getgcState
-
setgcState
-
isBootMode
-
sendCanMessage
Forward a preformatted message to the actual interface. Send a message through the interface.- Parameters:
m- Message to be sent.reply- Listener to be notified of reply.
-
sendCanReply
Forward a preformatted reply to the actual interface. Send a reply through the interface.- Parameters:
r- Reply to be sent.reply- Listener to be notified of reply.
-
addTrailerToOutput
Add trailer to the outgoing byte stream.- Overrides:
addTrailerToOutputin classAbstractMRTrafficController- Parameters:
msg- The output byte streamoffset- the first byte not yet usedm- output message to extend
-
lengthOfByteStream
Determine how much many bytes the entire message will take, including space for header and trailer- Overrides:
lengthOfByteStreamin classAbstractMRTrafficController- Parameters:
m- The message to be sent- Returns:
- Number of bytes
-
newMessage
Description copied from class:AbstractCanTrafficControllerGet the correct concrete class for the hardware connection message- Specified by:
newMessagein classAbstractCanTrafficController- Returns:
- new blank message
-
decodeFromHardware
Make a CanReply from a Lawicell-specific reply.- Specified by:
decodeFromHardwarein classAbstractCanTrafficController
-
encodeForHardware
Encode a CanMessage into Lawicell format for the hardware.- Specified by:
encodeForHardwarein classAbstractCanTrafficController
-
newReply
- Specified by:
newReplyin classAbstractMRTrafficController
-
endOfMessage
Normal Lawicell replies will end with CR; errors are BELL.- Specified by:
endOfMessagein classAbstractMRTrafficController
-
endNormalReply
-