aboutsummaryrefslogtreecommitdiffstats
path: root/curses.m4 (follow)
AgeCommit message (Expand)AuthorFilesLines
2003-02-27[lcd4linux @ 2003-02-27 07:43:10 by reinelt]reinelt1-1/+1
2002-12-08[lcd4linux @ 2002-12-08 07:36:06 by reinelt]reinelt1-50/+51
2001-05-31[lcd4linux @ 2001-05-31 10:26:41 by ltoetsch]ltoetsch1-0/+317
25' href='#n25'>25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
/*
 * Copyright 2006 Phidgets Inc.  All rights reserved.
 */

package com.phidgets;
import java.util.Iterator;
import java.util.LinkedList;
import com.phidgets.event.*;
/**
 * This class represents a Phidget Weight Sensor. All methods
 * to read weight data from the weight sensor are implemented in this class.
 * <p>
 * The Phidget Weight Sensor is simply an electronic scale with a USB interface.
 * It provides one weight value, in kg.
 *
 * @author Phidget Inc.
 */
public final class WeightSensorPhidget extends Phidget
{
	public WeightSensorPhidget () throws PhidgetException
	{
		super (create ());
	}
	private static native long create () throws PhidgetException;
	/**
	 * Returns the sensed weight in kg. This weight is in kg (kilograms), but can
	 * easily be converted into other units. The accuracy, sesitivity and range depends on the scale and version.
	 *
	 * @return The sensed weight
	 * @throws PhidgetException If this Phidget is not opened and attached. 
	 * See {@link com.phidgets.Phidget#open(int) open} for information on determining if a device is attached.
	 */
	public native double getWeight () throws PhidgetException;
	/**
	 * Sets the weight change trigger. This is the ammount by which the sensed weight must
	 * change between WeightChangeEvents. By default this is set to 5.
	 *
	 * @param newVal The new trigger value
	 * @throws PhidgetException If this Phidget is not opened and attached. 
	 * See {@link com.phidgets.Phidget#open(int) open} for information on determining if a device is attached.
	 */
	public native void setWeightChangeTrigger (double newVal) throws PhidgetException;
	/**
	 * Returns the weight change trigger. This is the ammount by which the sensed weight must
	 * change between WeightChangeEvents. By default this is set to 5.
	 *
	 * @return The trigger value
	 * @throws PhidgetException If this Phidget is not opened and attached. 
	 * See {@link com.phidgets.Phidget#open(int) open} for information on determining if a device is attached.
	 */
	public native double getWeightChangeTrigger () throws PhidgetException;

	private final void enableDeviceSpecificEvents (boolean b)
	{
		enableWeightChangeEvents (b && weightChangeListeners.size () > 0);
	}
	/**
	 * Adds a weight change listener. The weight change handler is a method that will be called when the weight 
	 * has changed by at least the {@link #getWeightChangeTrigger() Trigger} that has been set.
	 * <p>
	 * There is no limit on the number of weight change handlers that can be registered for a particular Phidget.
	 * 
	 * @param l An implemetation of the {@link com.phidgets.event.WeightChangeListener WeightChangeListener} interface
	 */
	public final void addWeightChangeListener (WeightChangeListener l)
	{
		synchronized (weightChangeListeners)
		{
			weightChangeListeners.add (l);
			enableWeightChangeEvents (true);
	}} private LinkedList weightChangeListeners = new LinkedList ();
	private long nativeWeightChangeHandler = 0;
	public final void removeWeightChangeListener (WeightChangeListener l)
	{
		synchronized (weightChangeListeners)
		{
			weightChangeListeners.remove (l);
			enableWeightChangeEvents (weightChangeListeners.size () > 0);
	}} private void fireWeightChange (WeightChangeEvent e)
	{
		synchronized (weightChangeListeners)
		{
			for (Iterator it = weightChangeListeners.iterator (); it.hasNext ();)
				((WeightChangeListener) it.next ()).weightChanged (e);
		}
	}
	private native void enableWeightChangeEvents (boolean b);
}