108 lines
4.4 KiB
Java
108 lines
4.4 KiB
Java
package jmri.jmrit.ussctc;
|
|
|
|
import jmri.util.JUnitUtil;
|
|
import java.util.*;
|
|
import jmri.*;
|
|
|
|
/**
|
|
* Demo of classes in jmri.jmrit.ussctc
|
|
*
|
|
* @author Bob Jacobsen Copyright 2003, 2007, 2015, 2017
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
public class PackageDemo {
|
|
|
|
public PackageDemo(String s) {
|
|
}
|
|
|
|
// Main entry point
|
|
public static void main(String[] args) {
|
|
JUnitUtil.setUp();
|
|
JUnitUtil.initConfigureManager();
|
|
JUnitUtil.initInternalTurnoutManager();
|
|
JUnitUtil.initInternalLightManager();
|
|
JUnitUtil.initInternalSensorManager();
|
|
JUnitUtil.initInternalSignalHeadManager();
|
|
JUnitUtil.initMemoryManager();
|
|
JUnitUtil.resetProfileManager();
|
|
|
|
// load file that defines various NamedBeans and pops a demo panel
|
|
try {
|
|
boolean loaded = InstanceManager.getDefault(ConfigureManager.class)
|
|
.load(new java.io.File("java/test/jmri/jmrit/ussctc/PackageDemo.xml"));
|
|
if (!loaded){
|
|
log.error("Could not load PackageDemo.xml");
|
|
}
|
|
InstanceManager.getDefault(LogixManager.class).activateAllLogixs();
|
|
} catch (Exception e) { System.err.println(e); }
|
|
|
|
// turn signals on for display
|
|
SignalHeadManager shm = InstanceManager.getDefault(SignalHeadManager.class);
|
|
SignalHead rupper = shm.getSignalHead("2R Upper");
|
|
SignalHead rlower = shm.getSignalHead("2R Lower");
|
|
SignalHead lmain = shm.getSignalHead("2L Main");
|
|
SignalHead lsiding = shm.getSignalHead("2L Siding");
|
|
|
|
if ( rupper!=null && rlower!=null && lmain !=null && lsiding !=null ) {
|
|
rupper.setAppearance(SignalHead.RED);
|
|
rlower.setAppearance(SignalHead.RED);
|
|
lmain.setAppearance(SignalHead.RED);
|
|
lsiding.setAppearance(SignalHead.RED);
|
|
} else {
|
|
log.error("Could not find all Signal Heads");
|
|
}
|
|
|
|
// create and wire USS CTC objects
|
|
Bell bell = new PhysicalBell("CTC Bell");
|
|
|
|
CodeLine line = new CodeLine("Code Indication Start", "Code Send Start", "IT101", "IT102", "IT103", "IT104");
|
|
|
|
CodeButton button = new CodeButton("Sec1 Code", "Sec1 Code");
|
|
Station station = new Station("1", line, button);
|
|
|
|
TurnoutSection turnout = new TurnoutSection("Sec 1 Layout TO", "Sec1 TO 1 N", "Sec1 TO 1 R", "Sec1 TO 1 N", "Sec1 TO 1 R", station);
|
|
station.add(turnout);
|
|
|
|
SignalHeadSection signals = new SignalHeadSection(
|
|
Arrays.asList(new String[]{"2R Upper","2R Lower"}), Arrays.asList(new String[]{"2L Main", "2L Siding"}),
|
|
"Sec1 Sign 2 Left", "Sec1 Sign 2 Center", "Sec1 Sign 2 Right",
|
|
"Sec1 Sig 2 Left", "Sec1 Sig 2 Right",
|
|
station);
|
|
station.add(signals);
|
|
|
|
Lock occupancyLock = new OccupancyLock("Sec1 Track OS");
|
|
Lock routeLock = new RouteLock(new String[]{"2R Upper","2R Lower", "2L Main", "2L Siding"});
|
|
turnout.addLocks(Arrays.asList(new Lock[]{occupancyLock, routeLock}));
|
|
|
|
station.add(new TrackCircuitSection("Sec1 Track Between", "Sec1 Track Outside", station));
|
|
station.add(new TrackCircuitSection("Sec1 Track OS", "Sec1 Track OS", station, bell));
|
|
station.add(new TrackCircuitSection("Sec1 Track Main", "Sec1 Track Main", station));
|
|
station.add(new TrackCircuitSection("Sec1 Track Siding", "Sec1 Track Siding", station));
|
|
|
|
station.add(new MaintainerCallSection("Sec1 MC", "Sec 1 MC", station));
|
|
|
|
// slow down delayed turnouts
|
|
jmri.implementation.AbstractTurnout.DELAYED_FEEDBACK_INTERVAL = 10000;
|
|
|
|
// show times
|
|
log.debug("Code line start pulse: {}", CodeLine.START_PULSE_LENGTH);
|
|
log.debug("Code line send duration: {}", CodeLine.CODE_SEND_DELAY);
|
|
log.debug("Turnout motion delay: {}", jmri.implementation.AbstractTurnout.DELAYED_FEEDBACK_INTERVAL);
|
|
log.debug("Signal setting pause: {}", SignalHeadSection.MOVEMENT_DELAY);
|
|
|
|
// user interacts here
|
|
|
|
// wait for Swing to end
|
|
Thread.getAllStackTraces().keySet().forEach((t) ->
|
|
{
|
|
if (t.getName().startsWith("AWT-EventQueue")) {
|
|
try {
|
|
t.join(); // Wait for AWT to end on last window deleted
|
|
} catch (Exception e) {}
|
|
}
|
|
});
|
|
}
|
|
|
|
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(PackageDemo.class);
|
|
}
|