lejos.nxt
Class I2CSensor

java.lang.Object
  extended by lejos.nxt.I2CSensor
All Implemented Interfaces:
SensorConstants
Direct Known Subclasses:
ColorSensor, CompassSensor, IRSeeker, NXTCam, RCXLink, RCXMotorMultiplexer, TiltSensor, UltrasonicSensor

public abstract class I2CSensor
extends Object
implements SensorConstants

Abstract class that implements common methods for all I2C sensors. Extend this class to implement new I2C sensors.

Author:
Lawrie Griffiths (lawrie.griffiths@ntlworld.com)

Field Summary
 
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
I2CSensor(I2CPort port)
           
 
Method Summary
 int getData(int register, byte[] buf, int len)
          Executes an I2C read transaction and waits for the result.
 String getProductID()
          Return the sensor product identifier.
 String getSensorType()
          Return the sensor type.
 String getVersion()
          Return the sensor version number.
 int sendData(int register, byte value)
          Executes an I2C write transaction.
 int sendData(int register, byte[] buf, int len)
          Executes an I2C write transaction.
 void setAddress(int addr)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

Constructor Detail

I2CSensor

public I2CSensor(I2CPort port)
Method Detail

getData

public int getData(int register,
                   byte[] buf,
                   int len)
Executes an I2C read transaction and waits for the result.

Parameters:
register - I2C register, e.g 0x41
buf - Buffer to return data
len - Length of the return data
Returns:
status zero=success, non-zero=failure

sendData

public int sendData(int register,
                    byte[] buf,
                    int len)
Executes an I2C write transaction.

Parameters:
register - I2C register, e.g 0x42
buf - Buffer containing data to send
len - Length of data to send
Returns:
status zero=success, non-zero=failure

sendData

public int sendData(int register,
                    byte value)
Executes an I2C write transaction.

Parameters:
register - I2C register, e.g 0x42
value - single byte to send
Returns:
status zero=success, non-zero=failure

getVersion

public String getVersion()
Return the sensor version number.

Returns:
8-byte string

getProductID

public String getProductID()
Return the sensor product identifier.

Returns:
8-byte string

getSensorType

public String getSensorType()
Return the sensor type.

Returns:
8-byte string

setAddress

public void setAddress(int addr)