Package jmri.jmrix
Class AbstractNode
java.lang.Object
jmri.jmrix.AbstractNode
- Direct Known Subclasses:
AcelaNode,IEEE802154Node,SerialNode,SerialNode,SerialNode,SerialNode,SerialNode
Basic implementation of a node for JMRI protocol support.
Integrated with AbstractMRNodeTrafficController.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract booleancheckNodeAddress(int address) Check for valid address with respect to range, etc.abstract AbstractMRMessageCreate the needed Initialization packet (AbstractMRMessage) for this node.abstract AbstractMRMessageCreate a Transmit packet (AbstractMRMessage) to send current state.intPublic method to return the node address.abstract booleanAre any sensors present, and hence will this node need to be polled?abstract booleanDeal with a timeout in the transmission controller.booleanmustSend()Get Must Send state.voidPublic to reset state of needSend flag.abstract voidA reply was received, so there was no timeout, do any needed processing.voidPublic to set state of needSend flag.voidsetNodeAddress(int address) Public method to set the node address.
-
Field Details
-
nodeAddress
-
needSend
boolean needSend
-
-
Constructor Details
-
AbstractNode
public AbstractNode()Create a new instance of AbstractNode.
-
-
Method Details
-
getNodeAddress
Public method to return the node address.- Returns:
- node address number
-
setNodeAddress
Public method to set the node address. Address range is checked in subclasses.- Parameters:
address- address index to set in node- Throws:
IllegalArgumentException- if out of range
-
checkNodeAddress
Check for valid address with respect to range, etc.- Parameters:
address- node number to check.- Returns:
- true if valid
-
createInitPacket
Create the needed Initialization packet (AbstractMRMessage) for this node.- Returns:
- the packet, or 'null' if not needed
-
createOutPacket
Create a Transmit packet (AbstractMRMessage) to send current state.- Returns:
- packet to send current node state.
-
getSensorsActive
Are any sensors present, and hence will this node need to be polled?- Returns:
- 'true' if at least one sensor is active for this node
-
handleTimeout
Deal with a timeout in the transmission controller.- Parameters:
m- message that didn't receive a replyl- listener that sent the message- Returns:
- true if initialization is required
-
resetTimeout
A reply was received, so there was no timeout, do any needed processing.- Parameters:
m- message received that has reset the timeout and is waiting to be handled
-
mustSend
Get Must Send state.- Returns:
- state of needSend flag.
-
resetMustSend
Public to reset state of needSend flag. Subclasses may override to enforce conditions. -
setMustSend
Public to set state of needSend flag.
-