Package jmri.jmrit.withrottle
Class MultiThrottle
java.lang.Object
jmri.jmrit.withrottle.MultiThrottle
Keeps track of what locos are being controlled by a throttle, and passes the
control messages on to them. Creates a new MultiThrottleController for each
loco requested on this throttle. Each loco will then be able to be controlled
individually. '*' is a wildcard loco key. Forwards to all locos on this
MultiThrottle.
Sample messages:
- MT+L757<;>L757 On T throttle, add loco L757.
- MT+L1234<;>L1234 On T throttle, add loco L1234.
- MTSL1234<;>L1234 On T throttle, steal loco L1234.
- MTAL757<;>R1 On T throttle, loco L757, set direction to forward.
- MTAL1234<;>R0 On T throttle, loco L1234, set direction to reverse.
- MTAL757<;>V42 On T throttle, loco L757, set speed to 42.
- MTAL1234<;>V42 On T throttle, loco L1234, set speed to 42.
- MTA*<;>V16 On T throttle, all locos, set speed to 16.
- MT-L757<;>L757 On T throttle, remove loco L757. (Still has L1234)
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) ConcurrentHashMap<String,MultiThrottleController> (package private) char -
Constructor Summary
ConstructorsConstructorDescriptionMultiThrottle(char id, ThrottleControllerListener tcl, ControllerInterface ci) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddThrottleController(String key, String action) voidA request for a this address has been cancelled, clean up the waiting MultiThrottleController.voiddispose()voideStop()voidhandleMessage(String message) Handle a message sent from the device.protected voidpassActionsToControllers(String key, String action) protected booleanremoveThrottleController(String key, String action) protected voidstealThrottleController(String key, String action)
-
Field Details
-
whichThrottle
char whichThrottle -
throttles
-
-
Constructor Details
-
MultiThrottle
-
-
Method Details
-
handleMessage
Handle a message sent from the device. A key is used to send an action to the correct loco. '*' is a wildcard key, sends action to all locos in this MultiThrottle.- Parameters:
message- Consists of a control character, the loco's key, a separator "<;>", and the action to forward to the MultiThrottleController.
-
addThrottleController
-
stealThrottleController
-
removeThrottleController
-
passActionsToControllers
-
dispose
-
eStop
-
canceledThrottleRequest
A request for a this address has been cancelled, clean up the waiting MultiThrottleController. If the MTC is marked as a steal, this cancel needs to not happen.- Parameters:
key- The string to use as a key to remove the proper MultiThrottleController
-