Class DexterCompassSensor
- java.lang.Object
-
- lejos.hardware.Device
-
- lejos.hardware.sensor.BaseSensor
-
- lejos.hardware.sensor.I2CSensor
-
- lejos.hardware.sensor.DexterCompassSensor
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,SensorConstants,SensorMode,SensorModes,SampleProvider
public class DexterCompassSensor extends I2CSensor implements SensorModes
Dexter Industries dCompass sensor
A three axis magnetometerSupported modes Mode name Description unit(s) Getter Magnetic Measures the strength of the magnetic field over three axes getMagneticMode()Sensor configuration
Range can be set Using getRanges() and setRange methods. Internal update frequency of the sensor can be set using getRates and setRate methods.See Sensor datasheet See Sensor Product page See The leJOS sensor framework See
leJOS conventions for SampleProviders- Author:
- Aswin Bouwmeester
-
-
Field Summary
Fields Modifier and Type Field Description protected static intREG_CONFIGprotected static intREG_MAGNETOprotected static intREG_STATUS-
Fields inherited from class lejos.hardware.sensor.I2CSensor
address, DEFAULT_I2C_ADDRESS, port, REG_PRODUCT_ID, REG_VENDOR_ID, REG_VERSION, retryCount
-
Fields inherited from class lejos.hardware.sensor.BaseSensor
currentMode, modes
-
Fields inherited from interface lejos.hardware.sensor.SensorConstants
BLACK, BLANK_INDEX, BLUE, BLUE_INDEX, BROWN, GREEN, GREEN_INDEX, MAX_TYPE, MIN_TYPE, MODE_RAW, NXT_ADC_RES, RED, RED_INDEX, TYPE_ANGLE, TYPE_COLORBLUE, TYPE_COLORFULL, TYPE_COLORGREEN, TYPE_COLORNONE, TYPE_COLORRED, TYPE_CUSTOM, TYPE_HIGHSPEED, TYPE_HIGHSPEED_9V, TYPE_HISPEED, 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, WHITE, YELLOW
-
-
Constructor Summary
Constructors Constructor Description DexterCompassSensor(I2CPort port)Constructor for the driver.DexterCompassSensor(Port port)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SampleProvidergetMagneticMode()Dexter Industries dCompass sensor, magnetic mode
Measures the strength of the magnetic field over three axesfloatgetMaximumRange()protected intgetMeasurementMode()protected intgetOperatingMode()float[]getRanges()floatgetSampleRate()float[]getSampleRates()protected voidinit()protected booleannewDataAvailable()Reads the new data ready bit of the status register of the sensor.protected voidsetMeasurementMode(int measurementMode)protected voidsetOperatingMode(int operatingMode)Sets the operating mode of the sensorvoidsetRange(float range)voidsetRange(int range)Sets the dynamic range of the sensor (1.3 Gauss is default).voidsetSampleRate(float rate)voidstart()voidstop()boolean[]test()Self-test routine of the sensor.-
Methods inherited from class lejos.hardware.sensor.I2CSensor
fetchString, getAddress, getData, getData, getPort, getProductID, getRetryCount, getVendorID, getVersion, sendData, sendData, sendData, setAddress, setRetryCount
-
Methods inherited from class lejos.hardware.sensor.BaseSensor
fetchSample, getAvailableModes, getCurrentMode, getMode, getMode, getModeCount, getName, sampleSize, setCurrentMode, setCurrentMode, setModes
-
Methods inherited from class lejos.hardware.Device
close, releaseOnClose
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface lejos.robotics.SampleProvider
fetchSample, sampleSize
-
Methods inherited from interface lejos.hardware.sensor.SensorMode
getName
-
Methods inherited from interface lejos.hardware.sensor.SensorModes
getAvailableModes, getCurrentMode, getMode, getMode, getModeCount, setCurrentMode, setCurrentMode
-
-
-
-
Field Detail
-
REG_CONFIG
protected static final int REG_CONFIG
- See Also:
- Constant Field Values
-
REG_MAGNETO
protected static final int REG_MAGNETO
- See Also:
- Constant Field Values
-
REG_STATUS
protected static final int REG_STATUS
- See Also:
- Constant Field Values
-
-
Method Detail
-
getMagneticMode
public SampleProvider getMagneticMode()
Dexter Industries dCompass sensor, magnetic mode
Measures the strength of the magnetic field over three axesSize and content of the sample
The sample contains 3 elements. Each element gives the strength of the magnetic field (in Gueass). Axis order is X, Y, Z.Configuration
By default the sensor is configured for a range of 5.6 Gauss and an update frequency of 30 Hertz.
The sensor can be tested using the test method.- Returns:
- A sampleProvider
See
leJOS conventions for SampleProvidersSee Sensor datasheet
-
init
protected void init()
-
getMeasurementMode
protected int getMeasurementMode()
- Returns:
- Returns the measurement mode of the sensor (normal, positive bias
or negative bias).
positive and negative bias mode should only be used for testing the sensor.
-
getOperatingMode
protected int getOperatingMode()
- Returns:
- The operating mode of the sensor (single measurement, continuous or Idle)
-
getMaximumRange
public float getMaximumRange()
- Returns:
- The dynamic range of the sensor.
-
newDataAvailable
protected boolean newDataAvailable()
Reads the new data ready bit of the status register of the sensor.- Returns:
- True if new data available
-
setMeasurementMode
protected void setMeasurementMode(int measurementMode)
- Parameters:
measurementMode- Sets the measurement mode of the sensor.
-
setOperatingMode
protected void setOperatingMode(int operatingMode)
Sets the operating mode of the sensor- Parameters:
operatingMode- Continuous is normal mode of operationSingleMeasurement can be used to conserve energy or to increase maximum measurement rate
Idle is to stop the sensor and conserve energy
-
setRange
public void setRange(int range)
Sets the dynamic range of the sensor (1.3 Gauss is default).- Parameters:
range-
-
test
public boolean[] test()
Self-test routine of the sensor.- Returns:
- An array of boolean values. A true indicates the sensor axis is working properly.
-
setSampleRate
public void setSampleRate(float rate)
-
getSampleRates
public float[] getSampleRates()
-
start
public void start()
-
stop
public void stop()
-
getSampleRate
public float getSampleRate()
-
setRange
public void setRange(float range)
-
getRanges
public float[] getRanges()
-
-