From: Dan B. <dan...@us...> - 2007-10-31 21:00:24
|
Update of /cvsroot/jmri/jmri/configurexml In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv18892/src/jmri/configurexml Modified Files: DefaultRouteManagerXml.java Log Message: New feature turnout lock. When a turnout is locked, only JMRI can change the state of the turnout. Commands from cabs to change turnout state are detected and canceled by JMRI. This feature requires feedback from layout. Only NCE is supported with these commits. There commits add a control lock turnout to routes. Index: DefaultRouteManagerXml.java =================================================================== RCS file: /cvsroot/jmri/jmri/configurexml/DefaultRouteManagerXml.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** DefaultRouteManagerXml.java 28 Oct 2007 22:39:49 -0000 1.12 --- DefaultRouteManagerXml.java 31 Oct 2007 21:00:21 -0000 1.13 *************** *** 18,21 **** --- 18,22 ---- * * @author Dave Duchamp Copyright (c) 2004 + * @author Daniel Boudreau Copyright (c) 2007 * @version $Revision$ */ *************** *** 48,65 **** int addedDelay = r.getRouteCommandDelay(); boolean routeLocked = r.getLocked(); Element elem = new Element("route") .setAttribute("systemName", sname); if (uname!=null) elem.setAttribute("userName", uname); ! if (cTurnout!=null) { elem.setAttribute("controlTurnout", cTurnout); int state = r.getControlTurnoutState(); ! if (state == Turnout.THROWN) { elem.setAttribute("controlTurnoutState","THROWN"); ! } ! else { elem.setAttribute("controlTurnoutState","CLOSED"); } } if (addedDelay>0) { elem.setAttribute("addedDelay",Integer.toString(addedDelay)); --- 49,83 ---- int addedDelay = r.getRouteCommandDelay(); boolean routeLocked = r.getLocked(); + String cLockTurnout = r.getLockControlTurnout(); Element elem = new Element("route") .setAttribute("systemName", sname); if (uname!=null) elem.setAttribute("userName", uname); ! if (cTurnout!=null && cTurnout!="") { elem.setAttribute("controlTurnout", cTurnout); int state = r.getControlTurnoutState(); ! if (state == Route.ONTHROWN) { elem.setAttribute("controlTurnoutState","THROWN"); ! }else if (state == Route.ONCHANGE) { ! elem.setAttribute("controlTurnoutState","CHANGE"); ! }else if (state == Route.VETOCLOSED) { ! elem.setAttribute("controlTurnoutState","VETOCLOSED"); ! }else if (state == Route.VETOTHROWN) { ! elem.setAttribute("controlTurnoutState","VETOTHROWN"); ! }else { elem.setAttribute("controlTurnoutState","CLOSED"); } } + if (cLockTurnout!=null && cLockTurnout!="") { + elem.setAttribute("controlLockTurnout", cLockTurnout); + int state = r.getLockControlTurnoutState(); + if (state == Route.ONTHROWN) { + elem.setAttribute("controlLockTurnoutState","THROWN"); + }else if (state == Route.ONCHANGE) { + elem.setAttribute("controlLockTurnoutState","CHANGE"); + }else { + elem.setAttribute("controlLockTurnoutState","CLOSED"); + } + } if (addedDelay>0) { elem.setAttribute("addedDelay",Integer.toString(addedDelay)); *************** *** 203,206 **** --- 221,226 ---- String addedDelayTxt = null; String routeLockedTxt = null; + String cLockTurnout = null; + String cLockTurnoutState = null; int addedDelay = 0; if ( ((Element)(routeList.get(i))).getAttribute("userName") != null) *************** *** 210,213 **** --- 230,237 ---- if ( ((Element)(routeList.get(i))).getAttribute("controlTurnoutState") != null) cTurnoutState = ((Element)(routeList.get(i))).getAttribute("controlTurnoutState").getValue(); + if ( ((Element)(routeList.get(i))).getAttribute("controlLockTurnout") != null) + cLockTurnout = ((Element)(routeList.get(i))).getAttribute("controlLockTurnout").getValue(); + if ( ((Element)(routeList.get(i))).getAttribute("controlLockTurnoutState") != null) + cLockTurnoutState = ((Element)(routeList.get(i))).getAttribute("controlLockTurnoutState").getValue(); if ( ((Element)(routeList.get(i))).getAttribute("addedDelay") != null) { addedDelayTxt = ((Element)(routeList.get(i))).getAttribute("addedDelay").getValue(); *************** *** 227,233 **** r.setControlTurnout(cTurnout); if (cTurnoutState.equals("THROWN")) { ! r.setControlTurnoutState(Turnout.THROWN); } else { ! r.setControlTurnoutState(Turnout.CLOSED); } } --- 251,263 ---- r.setControlTurnout(cTurnout); if (cTurnoutState.equals("THROWN")) { ! r.setControlTurnoutState(Route.ONTHROWN); ! } else if (cTurnoutState.equals("CHANGE")) { ! r.setControlTurnoutState(Route.ONCHANGE); ! } else if (cTurnoutState.equals("VETOCLOSED")) { ! r.setControlTurnoutState(Route.VETOCLOSED); ! } else if (cTurnoutState.equals("VETOTHROWN")) { ! r.setControlTurnoutState(Route.VETOTHROWN); } else { ! r.setControlTurnoutState(Route.ONCLOSED); } } *************** *** 238,241 **** --- 268,283 ---- if (routeLockedTxt != null && routeLockedTxt.equals("True")) r.setLocked(true); + + //add lock control turout if there is one + if (cLockTurnout != null) { + r.setLockControlTurnout(cLockTurnout); + if (cLockTurnoutState.equals("THROWN")) { + r.setLockControlTurnoutState(Route.ONTHROWN); + } else if (cLockTurnoutState.equals("CHANGE")) { + r.setLockControlTurnoutState(Route.ONCHANGE); + } else { + r.setLockControlTurnoutState(Route.ONCLOSED); + } + } // load output turnouts if there are any - old format first (1.7.6 and before) |