lejos.nxt.addon
Class RCXRotationSensor

java.lang.Object
  extended by java.lang.Thread
      extended by lejos.nxt.addon.RCXRotationSensor
All Implemented Interfaces:
Runnable, SensorConstants

public class RCXRotationSensor
extends Thread
implements SensorConstants

Provide access to the Lego RCX Rotation Sensor. The sensor records the direction and degree of rotation. A full rotation will result in a count of +/-16. Thus each count is 22.5 degrees.

Author:
andy

WARNING: THIS CLASS IS SHARED BETWEEN THE classes AND pccomms PROJECTS. DO NOT EDIT THE VERSION IN pccomms AS IT WILL BE OVERWRITTEN WHEN THE PROJECT IS BUILT.

Nested Class Summary
protected  class RCXRotationSensor.Reader
           
 
Field Summary
protected  int count
           
protected static int[][] inc
          The following table when indexed by [previous phase][current phase] provides the current direction of rotation.
static int ONE_ROTATION
           
protected  LegacySensorPort port
           
protected  RCXRotationSensor.Reader reader
           
protected static int UPDATE_TIME
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Fields inherited from interface lejos.nxt.SensorConstants
MODE_ANGLESTEP, MODE_BOOLEAN, MODE_CELSIUS, MODE_FARENHEIT, MODE_PCTFULLSCALE, MODE_PERIODCOUNTER, MODE_RAW, MODE_TRANSITIONCNT, TYPE_ANGLE, TYPE_CUSTOM, TYPE_LIGHT_ACTIVE, TYPE_LIGHT_INACTIVE, TYPE_LOWSPEED, TYPE_LOWSPEED_9V, TYPE_NO_SENSOR, TYPE_REFLECTION, TYPE_SOUND_DB, TYPE_SOUND_DBA, TYPE_SWITCH, TYPE_TEMPERATURE
 
Constructor Summary
RCXRotationSensor(LegacySensorPort port)
          Create an RCX rotation sensor object attached to the specified port.
 
Method Summary
 int getCount()
          Returns the current count.
protected  int getPhase()
          Returns the current phase of the sensor.
 void resetCount()
          Resets the current count to zero.
 
Methods inherited from class java.lang.Thread
currentThread, getPriority, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, run, setDaemon, setPriority, sleep, start, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE_ROTATION

public static final int ONE_ROTATION
See Also:
Constant Field Values

UPDATE_TIME

protected static final int UPDATE_TIME
See Also:
Constant Field Values

port

protected LegacySensorPort port

count

protected int count

reader

protected final RCXRotationSensor.Reader reader

inc

protected static final int[][] inc
The following table when indexed by [previous phase][current phase] provides the current direction of rotation. Invalid phase combinations result in zero.

Constructor Detail

RCXRotationSensor

public RCXRotationSensor(LegacySensorPort port)
Create an RCX rotation sensor object attached to the specified port.

Parameters:
port - port, e.g. Port.S1
Method Detail

getPhase

protected int getPhase()
Returns the current phase of the sensor. The sensor returns four distinct values read by the ADC port. Each value represents a phase in the rotation. The sequence of the phases is: 0 1 3 2 and 0 2 3 1 The transition from one phase to another can be used to identify the direction of rotation.

Returns:
the current rotation phase.

getCount

public int getCount()
Returns the current count.

Returns:
the current count

resetCount

public void resetCount()
Resets the current count to zero.