-
Notifications
You must be signed in to change notification settings - Fork 331
/
RocoXNetThrottleManager.java
52 lines (46 loc) · 1.66 KB
/
RocoXNetThrottleManager.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package jmri.jmrix.roco;
import jmri.LocoAddress;
import jmri.jmrix.lenz.XNetSystemConnectionMemo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Roco XNet implementation of a ThrottleManager based on the
* AbstractThrottleManager.
*
* @author Paul Bender Copyright (C) 2002-2004
*/
public class RocoXNetThrottleManager extends jmri.jmrix.lenz.XNetThrottleManager {
/**
* Constructor.
*/
public RocoXNetThrottleManager(XNetSystemConnectionMemo memo) {
super(memo);
}
/**
* Request a new throttle object be created for the address, and let the
* throttle listeners know about it.
*/
@Override
public void requestThrottleSetup(LocoAddress address, boolean control) {
// range check for LocoMaus II
if (tc.getCommandStation().getCommandStationType() == 0x04 ) {
if(address.getNumber()>=100) {
String typeString = Bundle.getMessage("CSTypeLokMaus");
failedThrottleRequest(address,Bundle.getMessage("ThrottleErrorCSTwoDigit",typeString));
return;
}
}
RocoXNetThrottle throttle;
if (log.isDebugEnabled()) {
log.debug("Requesting Throttle: " + address);
}
if (throttles.containsKey(address)) {
notifyThrottleKnown(throttles.get(address), address);
} else {
throttle = new RocoXNetThrottle((XNetSystemConnectionMemo) adapterMemo, address, tc);
throttles.put(address, throttle);
notifyThrottleKnown(throttle, address);
}
}
private final static Logger log = LoggerFactory.getLogger(RocoXNetThrottleManager.class);
}