From: <kev...@us...> - 2011-12-31 19:28:21
|
Revision: 19607 http://jmri.svn.sourceforge.net/jmri/?rev=19607&view=rev Author: kevin-dickerson Date: 2011-12-31 19:28:15 +0000 (Sat, 31 Dec 2011) Log Message: ----------- Updated to fix issue with the throttle on the PR3 not working in standalone mode. Modified Paths: -------------- branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LnPr2ThrottleManager.java branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LocoNetSystemConnectionMemo.java branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/locomon/LocoMonPane.java branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/pr3/PR3SystemConnectionMemo.java Modified: branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LnPr2ThrottleManager.java =================================================================== --- branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LnPr2ThrottleManager.java 2011-12-31 19:27:06 UTC (rev 19606) +++ branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LnPr2ThrottleManager.java 2011-12-31 19:28:15 UTC (rev 19607) @@ -25,10 +25,8 @@ */ public LnPr2ThrottleManager(LocoNetSystemConnectionMemo memo) { super(memo); - this.tc = memo.getLnTrafficController(); } - private LnTrafficController tc; /** * PR2 allows only one throttle @@ -91,39 +89,6 @@ */ public DccLocoAddress getActiveAddress() { return activeAddress; } - public boolean disposeThrottle(DccThrottle t, ThrottleListener l){ - if (super.disposeThrottle(t, l)){ - LocoNetThrottle lnt = (LocoNetThrottle) t; - lnt.throttleDispose(); - return true; - } - return false; - //LocoNetSlot tSlot = lnt.getLocoNetSlot(); - } - - public void dispatchThrottle(DccThrottle t, ThrottleListener l) { - // set status to common - LocoNetThrottle lnt = (LocoNetThrottle) t; - LocoNetSlot tSlot = lnt.getLocoNetSlot(); - - tc.sendLocoNetMessage( - tSlot.writeStatus(LnConstants.LOCO_COMMON)); - - // and dispatch to slot 0 - tc.sendLocoNetMessage(tSlot.dispatchSlot()); - - super.dispatchThrottle(t, l); - } - - public void releaseThrottle(DccThrottle t, ThrottleListener l){ - LocoNetThrottle lnt = (LocoNetThrottle) t; - LocoNetSlot tSlot = lnt.getLocoNetSlot(); - if (tSlot != null) - tc.sendLocoNetMessage( - tSlot.writeStatus(LnConstants.LOCO_COMMON)); - super.releaseThrottle(t, l); - } - // initialize logging static org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LnPr2ThrottleManager.class.getName()); } Modified: branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LocoNetSystemConnectionMemo.java =================================================================== --- branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LocoNetSystemConnectionMemo.java 2011-12-31 19:27:06 UTC (rev 19606) +++ branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/LocoNetSystemConnectionMemo.java 2011-12-31 19:28:15 UTC (rev 19607) @@ -196,7 +196,7 @@ } - private LnPowerManager powerManager; + protected LnPowerManager powerManager; public LnPowerManager getPowerManager() { if (getDisabled()) @@ -206,7 +206,7 @@ return powerManager; } - private ThrottleManager throttleManager; + protected ThrottleManager throttleManager; public ThrottleManager getThrottleManager() { if (getDisabled()) @@ -220,7 +220,7 @@ throttleManager = t; } - private LnTurnoutManager turnoutManager; + protected LnTurnoutManager turnoutManager; public LnTurnoutManager getTurnoutManager() { if (getDisabled()) @@ -230,7 +230,7 @@ return turnoutManager; } - private LnClockControl clockControl; + protected LnClockControl clockControl; public LnClockControl getClockControl() { if (getDisabled()) @@ -240,7 +240,7 @@ return clockControl; } - private LnReporterManager reporterManager; + protected LnReporterManager reporterManager; public LnReporterManager getReporterManager() { if (getDisabled()) @@ -250,7 +250,7 @@ return reporterManager; } - private LnSensorManager sensorManager; + protected LnSensorManager sensorManager; public LnSensorManager getSensorManager() { if (getDisabled()) @@ -260,7 +260,7 @@ return sensorManager; } - private LnLightManager lightManager; + protected LnLightManager lightManager; public LnLightManager getLightManager() { if (getDisabled()) Modified: branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/locomon/LocoMonPane.java =================================================================== --- branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/locomon/LocoMonPane.java 2011-12-31 19:27:06 UTC (rev 19606) +++ branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/locomon/LocoMonPane.java 2011-12-31 19:28:15 UTC (rev 19607) @@ -51,9 +51,12 @@ this.memo = memo; // connect to the LnTrafficController memo.getLnTrafficController().addLocoNetListener(~0, this); - llnmon.setLocoNetTurnoutManager((jmri.TurnoutManager)memo.get(jmri.TurnoutManager.class)); - llnmon.setLocoNetSensorManager((jmri.SensorManager)memo.get(jmri.SensorManager.class)); - llnmon.setLocoNetReporterManager((jmri.ReporterManager)memo.get(jmri.ReporterManager.class)); + if(memo.provides(jmri.TurnoutManager.class)) + llnmon.setLocoNetTurnoutManager((jmri.TurnoutManager)memo.get(jmri.TurnoutManager.class)); + if(memo.provides(jmri.SensorManager.class)) + llnmon.setLocoNetSensorManager((jmri.SensorManager)memo.get(jmri.SensorManager.class)); + if(memo.provides(jmri.ReporterManager.class)) + llnmon.setLocoNetReporterManager((jmri.ReporterManager)memo.get(jmri.ReporterManager.class)); } Modified: branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/pr3/PR3SystemConnectionMemo.java =================================================================== --- branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/pr3/PR3SystemConnectionMemo.java 2011-12-31 19:27:06 UTC (rev 19606) +++ branches/jmri/releases/2.14.1/java/src/jmri/jmrix/loconet/pr3/PR3SystemConnectionMemo.java 2011-12-31 19:28:15 UTC (rev 19607) @@ -3,6 +3,7 @@ package jmri.jmrix.loconet.pr3; import jmri.InstanceManager; +import jmri.ThrottleManager; import jmri.jmrix.loconet.*; /** @@ -21,44 +22,106 @@ public PR3SystemConnectionMemo() { super(); } + + + @SuppressWarnings("unchecked") + @Override + public <T> T get(Class<?> T) { + if (getDisabled()) + return null; + if(mode==MS100MODE){ + return (T)super.get(T); + } + if (T.equals(jmri.ProgrammerManager.class)) + return (T)getProgrammerManager(); + if (T.equals(jmri.ThrottleManager.class)) + return (T)getThrottleManager(); + if (T.equals(jmri.PowerManager.class)) + return (T)getPowerManager(); + return null; // nothing, by default + } + + final static int PR3MODE = 0x00; + final static int MS100MODE = 0x01; + + int mode = PR3MODE; /** * Configure the subset of LocoNet managers valid for the PR3 in PR2 mode. */ public void configureManagersPR2() { - - InstanceManager.setPowerManager(new jmri.jmrix.loconet.pr2.LnPr2PowerManager(this)); + mode = PR3MODE; + InstanceManager.setPowerManager( + getPowerManager()); - InstanceManager.setThrottleManager(new jmri.jmrix.loconet.LnPr2ThrottleManager(this)); + InstanceManager.setThrottleManager( + getThrottleManager()); jmri.InstanceManager.setProgrammerManager( - new jmri.jmrix.loconet.LnProgrammerManager(getSlotManager(), this)); + getProgrammerManager()); } + public ThrottleManager getThrottleManager() { + if (super.getDisabled()) + return null; + if(mode==MS100MODE){ + return super.getThrottleManager(); + } + if (throttleManager == null) + throttleManager = new jmri.jmrix.loconet.LnPr2ThrottleManager(this); + return throttleManager; + } + + @Override + public boolean provides(Class<?> type) { + if (getDisabled()) + return false; + if(mode==MS100MODE){ + return super.provides(type); + } + if (type.equals(jmri.ProgrammerManager.class)) + return true; + if (type.equals(jmri.ThrottleManager.class)) + return true; + if (type.equals(jmri.PowerManager.class)) + return true; + return false; + } + //private jmri.jmrix.loconet.pr2.LnPr2PowerManager powerManager; + + public LnPowerManager getPowerManager() { + if (getDisabled()) + return null; + if(mode==MS100MODE){ + return super.getPowerManager(); + } + if (powerManager == null) + powerManager = new jmri.jmrix.loconet.pr2.LnPr2PowerManager(this); + return powerManager; + } + /** * Configure the subset of LocoNet managers valid for the PR3 in MS100 mode. */ public void configureManagersMS100() { - - LocoNetThrottledTransmitter tm = new LocoNetThrottledTransmitter(getLnTrafficController()); + mode = MS100MODE; - InstanceManager.setPowerManager(new jmri.jmrix.loconet.LnPowerManager(this)); + InstanceManager.setPowerManager(super.getPowerManager()); - InstanceManager.setTurnoutManager(new jmri.jmrix.loconet.LnTurnoutManager(getLnTrafficController(), tm, getSystemPrefix())); + InstanceManager.setTurnoutManager(getTurnoutManager()); - InstanceManager.setLightManager(new jmri.jmrix.loconet.LnLightManager(getLnTrafficController(), getSystemPrefix())); + InstanceManager.setLightManager(getLightManager()); - InstanceManager.setSensorManager(new jmri.jmrix.loconet.LnSensorManager(getLnTrafficController(), getSystemPrefix())); + InstanceManager.setSensorManager(getSensorManager()); - InstanceManager.setThrottleManager(new jmri.jmrix.loconet.LnThrottleManager(this)); + InstanceManager.setThrottleManager(super.getThrottleManager()); - jmri.InstanceManager.setProgrammerManager( - new jmri.jmrix.loconet.LnProgrammerManager(getSlotManager(), this)); + jmri.InstanceManager.setProgrammerManager(getProgrammerManager()); - InstanceManager.setReporterManager(new jmri.jmrix.loconet.LnReporterManager(getLnTrafficController(), getSystemPrefix())); + InstanceManager.setReporterManager(getReporterManager()); - InstanceManager.addClockControl(new jmri.jmrix.loconet.LnClockControl(getSlotManager(), getLnTrafficController())); + InstanceManager.addClockControl(getClockControl()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |