From: Ken C. <ke...@us...> - 2008-04-12 16:36:50
|
Update of /cvsroot/jmri/jmri/jmrix/powerline/cm11 In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv12128/src/jmri/jmrix/powerline/cm11 Modified Files: SpecificLight.java Log Message: Current work in progress. Trying to figured conflict over transition handling. Also tried to hid the variable light stuff when the light doesn't support dimming. Index: SpecificLight.java =================================================================== RCS file: /cvsroot/jmri/jmri/jmrix/powerline/cm11/SpecificLight.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SpecificLight.java 8 Apr 2008 16:17:14 -0000 1.1 --- SpecificLight.java 12 Apr 2008 16:36:44 -0000 1.2 *************** *** 34,37 **** --- 34,53 ---- public class SpecificLight extends jmri.jmrix.powerline.SerialLight { + // System-dependent instance variables + + /** + * Current output step 0 to maxDimStep. + * <p> + * -1 means unknown + */ + int lastOutputStep = -1; + + /** + * Largest X10 dim step number available. + * <p> + * Loaded from SerialTrafficController.maxX10DimStep(); + */ + int maxDimStep = 0; + /** * Create a Light object, with only system name. *************** *** 64,77 **** // see if going to stabilize at on or off ! if (intensity<= 0.5) { // create output sequence ! X10Sequence out = new X10Sequence(); // going to low, first set off ! out.addAddress(housecode, devicecode); ! out.addFunction(housecode, X10Sequence.FUNCTION_OFF, 0); ! // then set to full dim ! out.addFunction(housecode, X10Sequence.FUNCTION_DIM, maxDimStep); // send ! SerialTrafficController.instance().sendX10Sequence(out, null); lastOutputStep = 0; --- 80,96 ---- // see if going to stabilize at on or off ! if (intensity <= 0.5) { // create output sequence ! X10Sequence out1 = new X10Sequence(); // going to low, first set off ! out1.addAddress(housecode, devicecode); ! out1.addFunction(housecode, X10Sequence.FUNCTION_OFF, 0); // send ! SerialTrafficController.instance().sendX10Sequence(out1, null); ! X10Sequence out2 = new X10Sequence(); ! out2.addAddress(housecode, devicecode); ! // then set to full dim ! out2.addFunction(housecode, X10Sequence.FUNCTION_DIM, maxDimStep); ! SerialTrafficController.instance().sendX10Sequence(out2, null); lastOutputStep = 0; *************** *** 80,91 **** } else { // create output sequence ! X10Sequence out = new X10Sequence(); // going to high, first set on ! out.addAddress(housecode, devicecode); ! out.addFunction(housecode, X10Sequence.FUNCTION_ON, 0); // then set to full dim ! out.addFunction(housecode, X10Sequence.FUNCTION_BRIGHT, maxDimStep); // send ! SerialTrafficController.instance().sendX10Sequence(out, null); lastOutputStep = maxDimStep; --- 99,114 ---- } else { // create output sequence ! X10Sequence out1 = new X10Sequence(); // going to high, first set on ! out1.addAddress(housecode, devicecode); ! out1.addFunction(housecode, X10Sequence.FUNCTION_ON, 0); ! // send ! SerialTrafficController.instance().sendX10Sequence(out1, null); // then set to full dim ! X10Sequence out2 = new X10Sequence(); ! out2.addAddress(housecode, devicecode); ! out2.addFunction(housecode, X10Sequence.FUNCTION_BRIGHT, maxDimStep); // send ! SerialTrafficController.instance().sendX10Sequence(out2, null); lastOutputStep = maxDimStep; *************** *** 95,114 **** } - // System-dependent instance variables - - /** - * Current output step 0 to maxDimStep. - * <p> - * -1 means unknown - */ - int lastOutputStep = -1; - - /** - * Largest X10 dim step number available. - * <p> - * Loaded from SerialTrafficController.maxX10DimStep(); - */ - int maxDimStep = 0; - /** * Send a Dim/Bright commands to the X10 hardware --- 118,121 ---- *************** *** 118,127 **** if (log.isDebugEnabled()) { ! log.debug("updateIntensity(" + intensity + ")"); } // are we doing intensity? ! if ( (intensity==0.0 || intensity==1.0) && (lastOutputStep < 0)) ! return; // no, so let on/off handle this // if we don't know the dim count, force it to a value. --- 125,134 ---- if (log.isDebugEnabled()) { ! log.debug("updateIntensity(" + intensity + ")" + " lastOutputStep: " + lastOutputStep + " maxDimStep: " + maxDimStep); } // are we doing intensity? ! //if ((SerialTrafficController.instance().) && (lastOutputStep < 0)) ! // return; // no, so let on/off handle this // if we don't know the dim count, force it to a value. *************** *** 129,140 **** // find the new correct dim count ! int newStep = (int)Math.round(intensity*maxDimStep); // maxDimStep is full on, 0 is full off, etc // check for errors ! if (newStep <0 || newStep>maxDimStep) ! log.error("newStep wrong: "+newStep+" intensity: "+intensity); // find the number to send ! int sendSteps = newStep-lastOutputStep; // + for bright, - for dim // figure out the function code --- 136,147 ---- // find the new correct dim count ! int newStep = (int)Math.round(intensity * maxDimStep); // maxDimStep is full on, 0 is full off, etc // check for errors ! if ((newStep < 0) || (newStep > maxDimStep)) ! log.error("newStep wrong: " + newStep + " intensity: " + intensity); // find the number to send ! int sendSteps = newStep - lastOutputStep; // + for bright, - for dim // figure out the function code *************** *** 142,149 **** if (sendSteps == 0) { // nothing to do! ! log.debug("intensity "+intensity+" within current step, return"); return; ! } else if (sendSteps >0) { function = X10Sequence.FUNCTION_BRIGHT; log.debug("function bright"); --- 149,156 ---- if (sendSteps == 0) { // nothing to do! ! log.debug("intensity " + intensity + " within current step, return"); return; ! } else if (sendSteps > 0) { function = X10Sequence.FUNCTION_BRIGHT; log.debug("function bright"); *************** *** 155,160 **** // check for errors ! if (sendSteps <-maxDimStep || sendSteps>maxDimStep) ! log.error("sendSteps wrong: "+sendSteps+" intensity: "+intensity); int deltaDim = Math.abs(sendSteps); --- 162,167 ---- // check for errors ! if ((sendSteps <- maxDimStep) || (sendSteps > maxDimStep)) ! log.error("sendSteps wrong: " + sendSteps + " intensity: " + intensity); int deltaDim = Math.abs(sendSteps); |