From: Ken C. <ke...@us...> - 2008-02-29 04:46:12
|
Update of /cvsroot/jmri/jmri In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv6798/src/jmri Modified Files: Light.java AbstractLight.java Log Message: Dimmable lights added to the Light Table. No help written yet, also only does dimming and min/max, no rate changes. I want to see if I broke things or not. Before next build I want to add some help and fix issue of dim vs on/off. I need someothers to test this if posible. Index: Light.java =================================================================== RCS file: /cvsroot/jmri/jmri/Light.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Light.java 21 Sep 2007 05:48:51 -0000 1.8 --- Light.java 29 Feb 2008 04:46:06 -0000 1.9 *************** *** 10,14 **** * Light objects are created using the standard JMRI * systemName/userName concept, accessor routines are provided ! * for setting and editting these instance variables. * <P> * Light objects are implemented in a hardware system independent --- 10,14 ---- * Light objects are created using the standard JMRI * systemName/userName concept, accessor routines are provided ! * for setting and editing these instance variables. * <P> * Light objects are implemented in a hardware system independent *************** *** 32,35 **** --- 32,36 ---- * <P> * @author Dave Duchamp Copyright (C) 2004 + * @author Ken Cameron Copyright (C) 2008 * @version $Revision$ */ *************** *** 61,74 **** --- 62,95 ---- /** + * for a dimmable light, uses true and false + */ + public boolean isDimSupported(); // true if dimmable light + public boolean isCanDim(); // true if dimmable light + public void setCanDim(boolean flag); // sets light as dimmiable + public double getDimRequest(); // dim is zero to 1, returns requested dim, will differ from current when rate in effect + public double getDimCurrent(); // dim is zero to 1 + public void setDimRequest(double v); // dim is zero to 1 + public int getDimRate(); // time in fast minutes to go 0 to 1, 0 being immediate + public void setDimRate(int fastMinutes); // time in fast minutes to go 0 to 1, 0 being immediate + public boolean hasBeenDimmed(); // init is false, triggers dim init first time a setDim is used + public void setDimMin(double v); // sets minimum dim level + public double getDimMin(); // sets minimum dim level + public void setDimMax(double v); // sets maximum dim level + public double getDimMax(); // sets maximum dim level + + /** * Control type information, valid by control type */ public String getControlSensorName(); // controlling Sensor if SENSOR_CONTROL public int getControlSensorSense(); // sense of Sensor for Light ON + public int getFastClockOnHour(); // on Hour if FAST_CLOCK_CONTROL public int getFastClockOnMin(); // on Minute if FAST_CLOCK_CONTROL public int getFastClockOffHour(); // off Hour if FAST_CLOCK_CONTROL public int getFastClockOffMin(); // off Minute if FAST_CLOCK_CONTROL + public String getControlTurnoutName(); // turnout whose status is shown if TURNOUT_STATUS_CONTROL public int getControlTurnoutState(); // turnout state corresponding to this Light ON + public String getControlTimedOnSensorName(); // trigger Sensor if TIMED_ON_CONTROL public int getTimedOnDuration(); // duration (milliseconds) if TIMED_ON_CONTROL *************** *** 76,83 **** public void setControlSensor(String sensorSystemName); // controlling Sensor if SENSOR_CONTROL public void setControlSensorSense(int sense); // sense of Sensor for Light ON ! // Set the On/Off Schedule if FAST_CLOCK_CONTROL public void setFastClockControlSchedule(int onHour,int onMin,int offHour, int offMin); public void setControlTurnout(String turnoutSystemName); // turnout whose status is shown if TURNOUT_STATUS_CONTROL public void setControlTurnoutState(int ts); // turnout state corresponding to this Light ON public void setControlTimedOnSensor(String sensorSystemName); // trigger Sensor if TIMED_ON_CONTROL public void setTimedOnDuration(int duration); // duration (milliseconds) if TIMED_ON_CONTROL --- 97,106 ---- public void setControlSensor(String sensorSystemName); // controlling Sensor if SENSOR_CONTROL public void setControlSensorSense(int sense); // sense of Sensor for Light ON ! // Set the On/Off Schedule if FAST_CLOCK_CONTROL public void setFastClockControlSchedule(int onHour,int onMin,int offHour, int offMin); + public void setControlTurnout(String turnoutSystemName); // turnout whose status is shown if TURNOUT_STATUS_CONTROL public void setControlTurnoutState(int ts); // turnout state corresponding to this Light ON + public void setControlTimedOnSensor(String sensorSystemName); // trigger Sensor if TIMED_ON_CONTROL public void setTimedOnDuration(int duration); // duration (milliseconds) if TIMED_ON_CONTROL Index: AbstractLight.java =================================================================== RCS file: /cvsroot/jmri/jmri/AbstractLight.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** AbstractLight.java 11 Apr 2007 06:54:24 -0000 1.10 --- AbstractLight.java 29 Feb 2008 04:46:06 -0000 1.11 *************** *** 49,52 **** --- 49,67 ---- protected String mTimedSensorName = ""; protected int mTimeOnDuration = 0; + + /** + * new internal values for dimmable lights + */ + protected boolean mSupportsDimmable = false; + protected boolean mIsDimmable = false; + protected int mRequestedDimValue = 0; + protected int mCurrentDimValue = 0; + protected double mCurrentDimRate = 0; + protected Date mLastDimChangeStart; + protected int mDawnDurration = 0; + protected int mDuskDurration = 0; + protected double mMinDimValue = 0; + protected double mMaxDimValue = 0; + protected boolean mDimInit = false; /** *************** *** 82,85 **** --- 97,162 ---- if (old != v) firePropertyChange("Enabled", new Boolean(old), new Boolean(v)); } + + /** + * for a dimmable light, uses true and false + */ + public boolean isDimSupported() { + return(mSupportsDimmable); + } + public boolean isCanDim() { + return(mIsDimmable); + } + public void setCanDim(boolean flag) { + boolean old = mIsDimmable; + mIsDimmable = flag; + if (old != flag) { + firePropertyChange("isDimmable", new Boolean(old), new Boolean(flag)); + } + } + public boolean hasBeenDimmed() { + return(mDimInit); + } + + /** + * Dim rate is for number of fast minutes to go from 0 to 100% + */ + public void setDimRate(int newRate) { + mRequestedDimValue = newRate; + mCurrentDimValue = newRate; + } + + /** + * sets the minimum output for a dimmed light + */ + public void setDimMin(double v) { + if (v > 1 || v < 0) { + return; + } + mMinDimValue = v; + } + + /** + * gets the minimum output for a dimmed light + */ + public double getDimMin() { + return(mMinDimValue); + } + + /** + * sets the minimum output for a dimmed light + */ + public void setDimMax(double v) { + if (v > 1 || v < 0) { + return; + } + mMaxDimValue = v; + } + + /** + * gets the minimum output for a dimmed light + */ + public double getDimMax() { + return(mMaxDimValue); + } /** *************** *** 170,175 **** // legal value, set it mFastClockOffMin = offMin; ! } ! else { log.error("Light time off minute not 0 - 59, but is "+offMin); mFastClockOffMin = 0; --- 247,251 ---- // legal value, set it mFastClockOffMin = offMin; ! } else { log.error("Light time off minute not 0 - 59, but is "+offMin); mFastClockOffMin = 0; |