📄 potentiometercontainer.java
字号:
/*--------------------------------------------------------------------------- * Copyright (C) 1999,2000 Dallas Semiconductor Corporation, All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of Dallas Semiconductor * shall not be used except as stated in the Dallas Semiconductor * Branding Policy. *--------------------------------------------------------------------------- */package com.dalsemi.onewire.container;// importsimport com.dalsemi.onewire.OneWireException;import com.dalsemi.onewire.adapter.OneWireIOException;/** * 1-Wire® Potentiometer interface class for basic potentiometer operations. * This class should be implemented for each potentiometer type * 1-Wire device. * * Currently there is only the DS2890, but it appears that plans have * been made for more complex parts with more wipers, different * possible number of wiper positions, etc. * * <P>The PotentiometerContainer methods can be organized into the following categories: </P> * <UL> * <LI> <B> Information </B> * <UL> * <LI> {@link #isLinear isLinear} * <LI> {@link #wiperSettingsAreVolatile wiperSettingsAreVolatile} * <LI> {@link #numberOfPotentiometers numberOfPotentiometers} * <LI> {@link #numberOfWiperSettings numberOfWiperSettings} * <LI> {@link #potentiometerResistance potentiometerResistance} * <LI> {@link #getCurrentWiperNumber getCurrentWiperNumber} * <LI> {@link #getWiperPosition getWiperPosition} * <LI> {@link #isChargePumpOn isChargePumpOn} * </UL> * <LI> <B> Options </B> * <UL> * <LI> {@link #setCurrentWiperNumber setCurrentWiperNumber} * <LI> {@link #setChargePump setChargePump} * <LI> {@link #setWiperPosition setWiperPosition} * <LI> {@link #increment increment}, {@link #increment() increment} * <LI> {@link #decrement decrement}, {@link #decrement() decrement} * </UL> * <LI> <B> I/O </B> * <UL> * <LI> {@link #readDevice readDevice} * <LI> {@link #writeDevice writeDevice} * </UL> * </UL> * * <H3> Usage </H3> * * Display some features of PotentiometerContainer instance '<code>pc</code>': * <PRE> <CODE> * byte[] state = pc.readDevice(); * if (!(pc.isChargePumpOn())) * pc.setChargePump(true, state); * pc.writeDevice(state); * pc.setWiperPosition(127); * pc.increment(); * pc.decrement(); * </CODE> </PRE> * * @see com.dalsemi.onewire.container.OneWireContainer2C * @see OneWireSensor * @see ClockContainer * @see TemperatureContainer * @see SwitchContainer * * @version 0.00, 31 August 2000 * @author KLA * */public interface PotentiometerContainer extends OneWireSensor{ //-------- //-------- Potentiometer Feature methods //-------- /** * Querys to see if this Potentiometer 1-Wire Device * has linear potentiometer element(s) or logarithmic * potentiometer element(s). * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return <CODE>true</CODE> if this device has linear potentiometer element(s), * <CODE>false</CODE> if this device has logarithmic potentiometer element(s) */ public boolean isLinear (byte[] state); /** * Querys to see if this Potentiometer 1-Wire Device's * wiper settings are volatile or non-volatile. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return <CODE>true</CODE> if the wiper settings are volatile, * <CODE>false</CODE> if the wiper settings are non-volatile. */ public boolean wiperSettingsAreVolatile (byte[] state); /** * Querys to see how many potentiometers this * Potentiometer 1-Wire Device has. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return number of potentiometers on this device */ public int numberOfPotentiometers (byte[] state); /** * Querys to find the number of wiper settings * that any wiper on this Potentiometer 1-Wire * Device can have. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return number of wiper positions available */ public int numberOfWiperSettings (byte[] state); /** * Querys to find the resistance value of the potentiometer. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return resistance value in k-Ohms */ public int potentiometerResistance (byte[] state); //-------- //-------- Potentiometer State methods //-------- /** * Gets the currently selected wiper number. All wiper actions * affect this wiper. The number of wipers is the same as * <CODE>numberOfPotentiometers()</CODE>. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return current wiper number */ public int getCurrentWiperNumber (byte[] state); /** * Sets the currently selected wiper number. All wiper actions will * then affect this wiper. The number of wipers is the same as * <CODE>numberOfPotentiometers()</CODE>. * * @param wiper_number wiper number to select for communication * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) */ public void setCurrentWiperNumber (int wiper_number, byte[] state); /** * Determines if the Potentiometer's charge pump is enabled. * * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return <CODE>true</CODE> if enabled, <CODE>false</CODE> if not * */ public boolean isChargePumpOn (byte[] state); /** * Sets the state of the Potentiometer's charge pump. This decreases the wiper's resistance, * but increases the power consumption by the part. Vdd must be * connected to use the charge pump. * * @param charge_pump_on <CODE>true</CODE> to enable the charge pump, <CODE>false</CODE> to disable charge pump * @param state state buffer of the Potentiometer 1-Wire Device (returned by <CODE>readDevice()</CODE>) * @return <CODE>true</CODE> if the operation was successful, <CODE>false</CODE> if there was an error */ public void setChargePump (boolean charge_pump_on, byte[] state); //-------- //-------- Potentiometer Wiper access methods //-------- /** * Gets the current wiper position of the Potentiometer. The wiper position * is between 0 and <CODE>numberOfWiperPositions()</CODE>, and describes the voltage output. * * @return wiper position between 0 and <CODE>numberOfWiperPositions()</CODE> * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not read correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public int getWiperPosition () throws OneWireIOException, OneWireException; /** * Sets the wiper position of the potentiometer. * * @param position position to set the wiper to * @return <CODE>true</CODE> if the operation was successful, <CODE>false</CODE> otherwise * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not written correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public boolean setWiperPosition (int position) throws OneWireIOException, OneWireException; /** * Increments the wiper position by one. * * @param reselect <CODE>increment()</CODE> can be called without resetting * the part if the last call was an <CODE>increment()</CODE> or <CODE>decrement()</CODE>. * <CODE>true</CODE> if device is to be selected (must be called with <CODE>true</CODE> * after any other 1-wire method) * * @return new position of wiper (0 to <CODE>numberOfWiperPositions()</CODE>) * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not written correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public int increment (boolean reselect) throws OneWireIOException, OneWireException; /** * Decrements the wiper position. * * @param reselect <CODE>decrement()</CODE> can be called without resetting * the part if the last call was an <CODE>increment()</CODE> or <CODE>decrement()</CODE>. * <CODE>true</CODE> if device is to be selected (must be called with <CODE>true</CODE> * after any other 1-wire method) * * @return new position of wiper (0 to <CODE>numberOfWiperPositions()</CODE>). * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not written correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public int decrement (boolean reselect) throws OneWireIOException, OneWireException; /** * Increments the wiper position after selecting the part. * * @return new position of wiper (0 to <CODE>numberOfWiperPositions()</CODE>) * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not written correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public int increment () throws OneWireIOException, OneWireException; /** * Decrements the wiper position after selecting the part. * * @return new position of wiper (0 to <CODE>numberOfWiperPositions()</CODE>) * * @exception com.dalsemi.onewire.adapter.OneWireIOException Data was not written correctly * @exception com.dalsemi.onewire.OneWireException Could not find device */ public int decrement () throws OneWireIOException, OneWireException;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -