OSDN Git Service

lejos_NXJ_win32_0_5_0beta.zip lejos_NXJ_win32_0_5_0beta.zip
authorMasaki Muranaka <monaka@monami-software.com>
Sat, 17 Apr 2010 03:24:40 +0000 (12:24 +0900)
committerMasaki Muranaka <monaka@monami-software.com>
Sat, 17 Apr 2010 03:24:40 +0000 (12:24 +0900)
472 files changed:
nxtOSEK/lejos_nxj/README.html
nxtOSEK/lejos_nxj/RELEASENOTES
nxtOSEK/lejos_nxj/bin/StartUpText.bin
nxtOSEK/lejos_nxj/bin/jlibnxt.dll
nxtOSEK/lejos_nxj/bin/lejos_nxt_rom.bin
nxtOSEK/lejos_nxj/bin/lejos_nxt_samba_ram.bin
nxtOSEK/lejos_nxj/bin/lejosfirmdl.bat
nxtOSEK/lejos_nxj/bin/nxj.bat
nxtOSEK/lejos_nxj/bin/nxjbrowse.bat
nxtOSEK/lejos_nxj/bin/nxjc.bat
nxtOSEK/lejos_nxj/bin/nxjflash.exe
nxtOSEK/lejos_nxj/bin/nxjlink.bat
nxtOSEK/lejos_nxj/bin/nxjupload.bat
nxtOSEK/lejos_nxj/docs/apidocs/StartUpText.html [deleted file]
nxtOSEK/lejos_nxj/docs/apidocs/allclasses-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/allclasses-noframe.html
nxtOSEK/lejos_nxj/docs/apidocs/constant-values.html
nxtOSEK/lejos_nxj/docs/apidocs/deprecated-list.html
nxtOSEK/lejos_nxj/docs/apidocs/help-doc.html
nxtOSEK/lejos_nxj/docs/apidocs/index-all.html
nxtOSEK/lejos_nxj/docs/apidocs/index.html
nxtOSEK/lejos_nxj/docs/apidocs/java/awt/Rectangle.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/java/awt/package-frame.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/java/awt/package-summary.html [moved from nxtOSEK/lejos_nxj/docs/apidocs/package-summary.html with 58% similarity]
nxtOSEK/lejos_nxj/docs/apidocs/java/awt/package-tree.html [moved from nxtOSEK/lejos_nxj/docs/apidocs/package-tree.html with 54% similarity]
nxtOSEK/lejos_nxj/docs/apidocs/java/io/DataInputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/DataOutputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/File.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/FileInputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/FileOutputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/IOException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/InputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/OutputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/Serializable.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/java/io/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/ArithmeticException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/ArrayIndexOutOfBoundsException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Class.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/ClassCastException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/ClassNotFoundException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Cloneable.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Error.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Exception.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Float.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/IllegalArgumentException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/IllegalMonitorStateException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/IllegalStateException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Integer.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/InterruptedException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Math.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/NoClassDefFoundError.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/NoSuchMethodError.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/NullPointerException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Object.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/OutOfMemoryError.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Runtime.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/RuntimeException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/StackOverflowError.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/String.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/StringBuffer.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/StringUtils.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/System.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Thread.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/ThreadDeath.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/Throwable.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/java/lang/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/ArrayList.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/BitSet.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/EmptyQueueException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/EmptyStackException.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/Hashtable.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/Queue.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/Random.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/Stack.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/Vector.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/java/util/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/io/StreamConnection.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/io/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/io/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/io/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Alert.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Choice.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/ChoiceGroup.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Command.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/CommandListener.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Display.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Displayable.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Font.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Form.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Gauge.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Graphics.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Image.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Item.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/ItemCommandListener.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/ItemStateListener.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/List.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Screen.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Spacer.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/StringItem.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/TextBox.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/TextField.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/Ticker.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/javax/microedition/lcdui/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/CompassNavigator.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/CompassPilot.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/Navigator.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/Pilot.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/TachoNavigator.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/navigation/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ADSensorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotor.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicSensorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Battery.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Button.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ButtonListener.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ColorSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/CompassSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Flash.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/GyroSensor.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/I2CPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/I2CSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/IRSeeker.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/LCD.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/LegacySensorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/LightSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ListenerCaller.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Motor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/MotorPort.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/NXTCam.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Poll.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXLightSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXLink.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXMotor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXMotorMultiplexer.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXPlexedMotorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXRemoteMotorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/SensorConstants.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/SensorPort.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/SensorPortListener.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Sound.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/SoundSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TachoMotorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Tachometer.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TextMenu.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TiltSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TouchSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/UltrasonicSensor.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/BTConnection.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/BTInputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/BTOutputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/BTRemoteDevice.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/Bluetooth.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/Debug.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/DeviceInfo.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/FirmwareInfo.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/InputValues.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/LCP.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/LCPBTResponder.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTComm.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTCommand.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTProtocol.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTServerSocket.html [moved from nxtOSEK/lejos_nxj/docs/apidocs/NXTServerSocket.html with 57% similarity]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTSocket.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/USB.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/USBConnection.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/USBInputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/USBOutputStream.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteBattery.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteMotorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteNXT.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteSensorPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-frame.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-summary.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-tree.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLC.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCHandler.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCReliableHandler.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Opcode.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/PacketHandler.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXAbstractPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXPort.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Serial.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-frame.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-summary.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-tree.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Activity.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/ActivityBase.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Arbitrator.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Arbitrator2.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Behavior.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Behavior2.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/StopException.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/AbstractRecyclable.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/ArrayRecycler.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/Assertion.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/ButtonCounter.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/Datalogger.html [moved from nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Datalogger.html with 84% similarity]
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/Recyclable.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/RecyclableArray.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/Recycler.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/Timer.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/TimerListener.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/package-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/package-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/package-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/overview-frame.html
nxtOSEK/lejos_nxj/docs/apidocs/overview-summary.html
nxtOSEK/lejos_nxj/docs/apidocs/overview-tree.html
nxtOSEK/lejos_nxj/docs/apidocs/package-frame.html [deleted file]
nxtOSEK/lejos_nxj/docs/apidocs/package-list
nxtOSEK/lejos_nxj/docs/apidocs/serialized-form.html
nxtOSEK/lejos_nxj/lib/classes.jar
nxtOSEK/lejos_nxj/lib/jtools.jar
nxtOSEK/lejos_nxj/lib/pccomm.jar
nxtOSEK/lejos_nxj/lib/pctools.jar
nxtOSEK/lejos_nxj/samples/.classpath
nxtOSEK/lejos_nxj/samples/BTConnectTest/BTConnectTest.java
nxtOSEK/lejos_nxj/samples/BTConnectTest/BTConnectTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/BTReceive/BTReceive.java
nxtOSEK/lejos_nxj/samples/BTReceive/BTReceive.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/BTSend/BTSend.java
nxtOSEK/lejos_nxj/samples/BlueStats/BlueStats.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/BlueStats/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/BumperCar/BumperCar.java
nxtOSEK/lejos_nxj/samples/BumperCar/BumperCar.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/ColorDetector/ColorDetector.java
nxtOSEK/lejos_nxj/samples/ColorDetector/ColorDetector.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/CompassTest/CompassTest.java
nxtOSEK/lejos_nxj/samples/CompassTest/CompassTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/DLTest/DLTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/DLTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/ExceptionTest/ExceptionTest.java
nxtOSEK/lejos_nxj/samples/ExceptionTest/ExceptionTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/GraphicsSample/GraphicsSample.java
nxtOSEK/lejos_nxj/samples/GraphicsSample/GraphicsSample.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/HelloWorld/HelloWorld.java
nxtOSEK/lejos_nxj/samples/HelloWorld/HelloWorld.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/LCDUI/LCDUI.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/LLCMonitor/LLCMonitor.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/LLCMonitor/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/Line/Line.java
nxtOSEK/lejos_nxj/samples/Line/Line.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/Listen/Listen.java
nxtOSEK/lejos_nxj/samples/Listen/Listen.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/MemoryTest/MemoryTest.java
nxtOSEK/lejos_nxj/samples/MemoryTest/MemoryTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/MonitorTest/MonitorTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/MonitorTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/NXTCamTest/NXTCamTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/NXTCamTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/PerformanceTest/PerformanceTest.java
nxtOSEK/lejos_nxj/samples/PerformanceTest/PerformanceTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/PilotTester/PilotTester.java
nxtOSEK/lejos_nxj/samples/PilotTester/PilotTester.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/RCXEmulator/RCXEmulator.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXEmulator/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXMMTest/RCXMMTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXMMTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXPortTest/RCXPortTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXPortTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXRemote/RCXRemote.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXRemote/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/RCXRemoteMotor.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RemoteNXTTest/RemoteNXTTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/RemoteNXTTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/SignalTest/SignalTest.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/SignalTest/build.xml [new file with mode: 0644]
nxtOSEK/lejos_nxj/samples/SocketTest/SocketTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/SonicTest/SonicTest.java
nxtOSEK/lejos_nxj/samples/SonicTest/SonicTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/SoundSample/SoundSample.java
nxtOSEK/lejos_nxj/samples/SoundSample/SoundSample.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/SpeedTest/SpeedTest.java
nxtOSEK/lejos_nxj/samples/SpeedTest/SpeedTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/Subsumption1/Main.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/Subsumption2/Main.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/TiltTest/TiltTest.java
nxtOSEK/lejos_nxj/samples/TiltTest/TiltTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/TimeTest/TimeTest.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/Tune/Tune.java
nxtOSEK/lejos_nxj/samples/Tune/Tune.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/USBReceive/USBReceive.java
nxtOSEK/lejos_nxj/samples/USBReceive/USBReceive.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/USBSend/USBSend.java
nxtOSEK/lejos_nxj/samples/View/View.nxj [deleted file]
nxtOSEK/lejos_nxj/samples/samples.properties
nxtOSEK/lejos_nxj/src/java/classes/java/awt/Rectangle.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/java/awt/package.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/java/io/DataInputStream.java
nxtOSEK/lejos_nxj/src/java/classes/java/io/DataOutputStream.java
nxtOSEK/lejos_nxj/src/java/classes/java/io/File.java
nxtOSEK/lejos_nxj/src/java/classes/java/io/FileInputStream.java
nxtOSEK/lejos_nxj/src/java/classes/java/io/FileOutputStream.java
nxtOSEK/lejos_nxj/src/java/classes/java/lang/Integer.java
nxtOSEK/lejos_nxj/src/java/classes/java/lang/Math.java
nxtOSEK/lejos_nxj/src/java/classes/java/lang/StringBuffer.java
nxtOSEK/lejos_nxj/src/java/classes/java/lang/System.java
nxtOSEK/lejos_nxj/src/java/classes/java/util/ArrayList.java
nxtOSEK/lejos_nxj/src/java/classes/java/util/Vector.java
nxtOSEK/lejos_nxj/src/java/classes/javax/microedition/lcdui/Display.java
nxtOSEK/lejos_nxj/src/java/classes/javax/microedition/lcdui/Graphics.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/navigation/CompassNavigator.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/navigation/CompassPilot.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/navigation/TachoNavigator.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/ADSensorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/BasicMotor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/BasicMotorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/BasicSensorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Flash.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/GyroSensor.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/I2CPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/I2CSensor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/IRSeeker.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/LCD.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/LegacySensorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/LightSensor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Motor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/MotorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/NXTCam.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Poll.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXLink.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXMotorMultiplexer.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXPlexedMotorPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXRemoteMotorPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/SensorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Sound.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/TachoMotorPort.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Tachometer.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/TextMenu.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/TiltSensor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/UltrasonicSensor.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/BTConnection.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/BTInputStream.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/BTOutputStream.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/BTRemoteDevice.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/Bluetooth.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/Debug.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/DeviceInfo.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/FirmwareInfo.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/InputValues.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/LCP.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/LCPBTResponder.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTComm.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTCommand.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTProtocol.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTServerSocket.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/USB.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/USBInputStream.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/USBOutputStream.java
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteBattery.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteMotorPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteNXT.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteSensorPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/package.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLC.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCHandler.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCReliableHandler.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Opcode.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/PacketHandler.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXAbstractPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXPort.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Serial.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/package.html [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Arbitrator2.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Behavior2.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/util/ButtonCounter.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/classes/lejos/util/Datalogger.java [moved from nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/Datalogger.java with 83% similarity]
nxtOSEK/lejos_nxj/src/java/jtools/js/common/AbstractTool.java
nxtOSEK/lejos_nxj/src/java/jtools/js/common/CLIToolProgressMonitor.java
nxtOSEK/lejos_nxj/src/java/jtools/js/common/NullToolProgressMonitor.java
nxtOSEK/lejos_nxj/src/java/jtools/js/common/ToolProgressMonitor.java
nxtOSEK/lejos_nxj/src/java/jtools/js/tinyvm/Binary.java
nxtOSEK/lejos_nxj/src/java/jtools/js/tinyvm/SpecialSignatureConstants.java
nxtOSEK/lejos_nxj/src/java/jtools/js/tinyvm/TinyVM.java
nxtOSEK/lejos_nxj/src/java/jtools/js/tinyvm/TinyVMTool.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/BTOutputStream.java [deleted file]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/InputValues.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTComm.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommBTInputStream.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommBluecove.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommBluez.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommException.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommFantom.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommInputStream.java [deleted file]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommLibnxt.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommLogListener.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommUSBInputStream.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommUSBOutputStream.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommand.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTInfo.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTProtocol.java
nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/OutputState.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/Connector.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/DataViewer.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/DebugMonitor.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJBrowser.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJLinkAndUpload.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJMonitor.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJUpload.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJUploadException.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXTTableModel.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/SendFile.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/SocketProxy.java
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogListener.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogger.java [new file with mode: 0644]
nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/Upload.java
nxtOSEK/lejos_nxj/src/java/startup/StartUpText.java [moved from nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/StartUpText.java with 65% similarity]
nxtOSEK/lejos_nxj/src/libnxt/build.xml
nxtOSEK/lejos_nxj/src/libnxt/firmware.c
nxtOSEK/lejos_nxj/src/libnxt/flash.c
nxtOSEK/lejos_nxj/src/libnxt/jlibnxt.h
nxtOSEK/lejos_nxj/src/libnxt/lowlevel.c
nxtOSEK/lejos_nxj/src/libnxt/main_jlibnxt.c
nxtOSEK/lejos_nxj/src/libnxt/main_nxjflash.c
nxtOSEK/lejos_nxj/src/nxtvm/javavm/configure.h
nxtOSEK/lejos_nxj/src/nxtvm/javavm/interpreter.c
nxtOSEK/lejos_nxj/src/nxtvm/javavm/interpreter.h
nxtOSEK/lejos_nxj/src/nxtvm/javavm/language.c
nxtOSEK/lejos_nxj/src/nxtvm/javavm/language.h
nxtOSEK/lejos_nxj/src/nxtvm/javavm/memory.c
nxtOSEK/lejos_nxj/src/nxtvm/javavm/memory.h
nxtOSEK/lejos_nxj/src/nxtvm/javavm/op_arrays.hc
nxtOSEK/lejos_nxj/src/nxtvm/javavm/op_objects.hc
nxtOSEK/lejos_nxj/src/nxtvm/javavm/signatures.db
nxtOSEK/lejos_nxj/src/nxtvm/javavm/specialsignatures.h
nxtOSEK/lejos_nxj/src/nxtvm/javavm/types.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/bt.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/bt.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/data_abort.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/display.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/display.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/flashprog.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/i2c.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/main.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/native.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_avr.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_lcd.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_lcd.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_motors.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_motors.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_spi.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/nxt_spi.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/platform_hooks.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/sensors.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/sound.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/udp.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/nxt/udp.h
nxtOSEK/lejos_nxj/src/nxtvm/platform/unix/build.xml
nxtOSEK/lejos_nxj/src/nxtvm/platform/unix/dump.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/unix/nativeemul.c
nxtOSEK/lejos_nxj/src/nxtvm/platform/unix/tvmemul.c

index e0cd76e..5a98454 100644 (file)
@@ -61,13 +61,22 @@ the NXT motors have enabled much improved control over speed, steering and navig
   <li>Make sure you have set JAVA_HOME properly to the root directory\r
 of the JDK.</li>\r
   <li>On systems other than Microsoft Windows, you will need to build the distribution, so your PATH must\r
-contain the ant binary (ant 1.6 or above).</li>
+contain the ant binary (ant 1.7 or above).</li>
   <li>You need libusb installed. On Microsoft Windows you should use the libusb-Win32 filter driver.</li>
-  <li>On Microsoft Windows you will need the LEGO Mindstorms NXT software installed, as its USB drivers are used.</li>\r
+  <li>On Microsoft Windows and MAC OS X you will need the LEGO Mindstorms NXT software installed, as its USB drivers are used.</li>
+  <li>On MAC OS X systems, you will need the OS X developer tools installed.</li>
+  \r
 </ul>
 
 The libusb filter driver for Microsoft Windows can be obtained from <a href="http://libusb-win32.sourceforge.net/#downloads">http://libusb-win32.sourceforge.net/#downloads</a>. \r
-This does not currently work under Windows Vista - see "Known Bugs and Limitations in leJOS NXJ" below.<br/><br/>
+This does not currently work under Windows Vista - see "Known Bugs and Limitations in leJOS NXJ" below.\r
+However, it works if you install on Vista under Windows XP compatibility mode:<br/>\r
+<ol>\r
+<li>Download libusb-win32-filter-bin-0.1.12.1.exe (the version current @ 27/09/07)\r
+<li>Right click on this file. Select Properties | Compatibility Click the "Run this program in compatibility mode" box and select "Windows XP (Service Pack2)" from the drop down list.\r
+<li>Right click again and select "Run as Administrator". Follow the installation instructions. Run the test program will list the usb devices plugged into your computer, but not new devices.\r
+</ol>\r
+<br/>
 
 libusb for other systems can be obtained from <a href="http://libusb.sourceforge.net">http://libusb.sourceforge.net</a>.<br/><br/>
 
@@ -119,7 +128,7 @@ gcj and libbluetooth-dev.
   <li>Flash the leJOS NXJ firmware using <em>nxjflash</em>.</li>
   <li>Compile using <em>nxjc</em> instead of <em>javac</em>.</li>
   <li>Link, upload and run programs using <em>nxj</em>.</li>
-  <li>Exceptions: Use <em>nxj --verbose</em> to get information on methods and special classes used by your program (but see "Known Bugs and Limitations in leJOS NXJ" below). Exceptions are shown on the NXT as Method:XXXX, CLASS:YY, where XXXX = method_signature and YY = exception_class_index</li>
+  <li>Exceptions: Use <em>nxj --verbose</em> to get information on methods and special classes used by your program. Exceptions are shown on the NXT as Method:XXXX, CLASS:YY, where XXXX = method_signature and YY = exception_class_index</li>
 </ul>
 
 <p>Your NXT must be plugged into the USB, switched on, and in firmware update mode to run nxjflash. Note that the standard LEGO firmware will be overwritten and all existing data lost. You can reinstall the LEGO firmware using the LEGO Mindstorms software.
@@ -152,11 +161,11 @@ To compile, link and download the Tune sample:
   <li>Type <em>nxj -r Tune</em></li>
  </ul>
  
-<p>After a few seconds, you should hear an ascending tone sequence indicating that the program uploaded OK. You will then hear a tune play. Then, after 5 seconds the NXT will switch itself off.</p>
+<p>After a few seconds, you should hear an ascending tone sequence indicating that the program uploaded OK. You will then hear a tune play. When it has finished the leJOS NXJ menu will be displayed.</p>
 \r
-<p>When you switch your NXT back on you will see "Tune.nxj" on the leJOS NXJ menu</p>\r
+<p>When you switch your NXT back on, select "Files" and press ENTER and you will see "Tune.nxj" in the files menu</p>\r
 \r
-<p>You can navigate through the leJOS NXJ menu using the left and right buttons. To select a program, press the ENTER button. You will then see a sub-menu that lets you execute or delete the program.</p>\r
+<p>You can navigate through the leJOS NXJ menus using the left and right buttons. You select a menu item by pressing ENTER, and exit from a menu by pressing ESCAPE. There are 3 menus: Files, Bluetooth ands System. To select a program, go to the Files menu, scroll down to your program and press the ENTER button. You will then see a sub-menu that lets you execute or delete the program.</p>\r
 \r
 <h1><a name="tools">LeJOS NXJ Tools</a></h1>\r
 <p>The following tools are available with leJOS NXJ:</p>\r
@@ -203,8 +212,6 @@ Due to size constraints, some Java language
 features have been omitted. Others just haven't been implemented yet.\r
 Known limitations with all versions of leJOS are: </a>\r
 <ul>\r
-  <li>Garbage collection is not performed yet.\r
-Hence, the number of objects in your program should be limited</li>\r
   <li>Switch statements are not supported</li>\r
   <li>Arithmetic operations on variables of type long are not\r
 supported, although you can cast ints to longs and vice versa</li>\r
@@ -240,81 +247,46 @@ initialized, when multiple threads use a class</li>
 <ul>\r
 <li>Occasionally, after flashing the firmware with with nxjflash, the battery level reads as 0.0 and buttons do not respond. If this happens, a battery must be removed and re-inserted. It is not necessary to repeat the nxjflash.\r
 </li>\r
-<li>leJOS NXJ does not work on Windows Vista systems. There are possible circumventions for Vista 32-bit systems, but not for Vista 64-bit systems. This is due to limitations in libusb-win32 that the leJOS  NXJ Windows USB tools, including nxjflash, rely on\r
-</li>\r
-<li>Occasionally, after pressing the orange (ENTER) button to start leJOS NXJ, the LCD remains blank. If this occurs, and is not due to low batteries, it is necessary to shut down leJOS, by pressing the orange and dark gray buttons (ENTER + ESCAPE), and try again.\r
-</li>\r
-<li>When plugging in the USB cable, or starting leJOS NXJ with the cable plugged in, the keys on the NXT do not respond for several seconds. This particularly affects Windows systems, and may be dependent on the speed of the host PC.\r
-</li>\r
-<li>I2C sensors such as the Ultrasonic sensor do not work in port 4.\r
-</li>\r
-<li>The Ultrasonic sensor needs a gap of at least 200 milliseconds between calls of getDistance().\r
+<li>leJOS NXJ does not work out of the box on Windows Vista systems. This is due to limitations in libusb-win32 that the leJOS  NXJ Windows USB tools, including nxjflash, rely on. Installing libusb in windows XP compatibility mode should cure the problem.\r
 </li>\r
-<li>I2C writes are not supported. This means that I2C multplexers and similar sensors that require data to be written to them are not supported. It also means that callibrarion of I2C sensors is not supported.\r
+<li>Bluetooth does not work on MAC OS X systems, and the ant build files for MAC OS X are largely untested.  See the forums on the leJOS web site for the latest state of leJOS on MAC OS X.\r
 </li>\r
-<li>The light sensor does not seem to work correctlly on port 4. The floodlight does not come on.\r
-</li>\r
-<li>Multidimensional arrays of objects do not work correctly. They can cause exceptions, data aborts and other problems.\r
-</li>\r
-<li>Turning off Bluetooth is on the Bluetooth menu, but not functional.\r
-</li>\r
-<li>leJOS NXJ closes down five seconds after a user program exits.  Press ENTER to restart it.\r
+<li>Occasionally, after pressing the orange (ENTER) button to start leJOS NXJ, the LCD remains blank. If this occurs, and is not due to low batteries, it is necessary to shut down leJOS, by pressing the orange and dark gray buttons (ENTER + ESCAPE), and try again.\r
 </li>\r
 <li>Only one file can be open at a time.\r
 </li>\r
-<li>leJOS NXJ only supports program upload and download, tools such as nxjbrowse, and LEGO communications Protocol commands when the start-up menu is running, not when a user program is running.\r
+<li>leJOS NXJ only supports program upload and download, tools such as nxjbrowse, and LEGO communications Protocol commands when the start-up menu is running, not when a user program is running, unless a user program explicitly starts the LCPBTResponder thread.\r
 </li>\r
-<li>The number of files that can be uploaded to lejos NXJ is limited by the fact that the whole file table must fit in a 256-byte page. If the average filename length is 15 characters, approximately 10 files are supported. This limitations is not checked, and will cause an exceptions when the file table becomes full.\r
+<li>The number of files that can be uploaded to lejos NXJ is limited by the fact that the whole file table must fit into two 256-byte pages. If the average filename length is 15 characters, approximately 20 files are supported.\r
 </li>\r
 <li>The maximum filename length is 20 characters.\r
 </li>\r
 <li>Not all LEGO Communications Protocol command are supported, and the semantics of some of them are different from that of the standard LEGO firmware. In particular only one file can be open at a time and the file handle is always 0.\r
 </li>\r
-<li>The maximum packet size over Bluetooth is 254 bytes (not 64k-1 that the standard Lego firmware supports).\r
-</li>\r
-<li>The leJOS NXJ USB driver does not return a unique serial number for each NXT, in the way that the standard LEGO software does. The affects of this are not known, but it may be the cause of lejos NXJ not working with the LEGO fantom API over USB.\r
-</li>\r
-<li>Closing Bluetooth connections on the PC is not detected by leJOS NXJ. New Bluetooth connections will fail unless the connection is closed at the NXJ end. The tools cope with this by sending a termination message that is dected by NXJ. Java streams connections need to be closed at the NXJ end, to circumvent this issue, e.g. close the connection when all expected data has been transmitted or send a termination message.\r
+<li>The leJOS NXJ USB driver does not return a unique serial number for each NXT, in the way that the standard LEGO software does. The effects of this are not known, but it may be the cause of lejos NXJ not working with the LEGO fantom API over USB.\r
 </li>\r
 <li>Java streams over USB are never closed down, and are always open.\r
 </li>\r
-<li>The RCX limitations of the Java VM also apply to NXJ. In particular, there is no garbage collection.\r
-</li>\r
-<li>LCD text and graphics modes do not mix very well. \r
-<li>Sound volume cannot be controlled.\r
-</li>\r
-<li>Support for sound sample files is a bit primitive.\r
-</li>\r
-<li>The name of a NXT can be changed using nxjbrowse over a USB connection. If this is attempted over a Bluetooth connection it may apprear to work, but will not.\r
-</li>\r
-<li>The last parameter to nxjflash (FMCN) is ignored. it is not normally necessary to use any parameters with nxflash as the defaults are fine.\r
+<li>Reading buttons is not very reliable unless your code takes steps to wait for button readings to stabilize. See the TextMenu code for how to do this.\r
 </li>\r
-<li>There are 767 256-byte pages of user flash memory avaiable. There is no check when this is filled, attempts to write to higher page number will probably fail silently. \r
+<li>The RCX limitations of the Java VM also apply to NXJ.\r
+</li> \r
+<li>Sound volume cannot be controlled when playing tones.\r
 </li>\r
-<li>The lejos NXJ menu system leaks memory every time a file operation is done. This is reclaimed when a user program is run. In practice, due to the amount of memory available on the NXT, this should not be a problem.\r
-</li>\r
-<li>The lejos linker (nxj or nxjlink commands), in verbose mode, does not list the special classes used by a program. To decode the class number displayed in a leJOS NXJ exception, you need to consult src/nxtvm/javavm/secialclasses.h.\r
-</li>\r
-<li>No buzz occurs when an exception happens (as it does on the RCX).\r
+<li>Support for sound sample files is limited to 8-bit WAV files with a sample rate of 11k.\r
 </li>\r
 <li>Data aborts occur if there is a failure in the NXJ VM. If a data abort occurs, it is necessary to remove and re-insert a battery.\r
 </li>\r
-<li>Some aspects of leJOS NXJ are much slower than they should be. In particular, a future release will make refreshing the LCD display much faster.\r
-</li>\r
 <li>leJOS NXJ does not work with the LEGO Mindstorms PC software, or the LEGO Mindstorms Fantom API.\r
 </li>\r
 <li>On Windows, using the Bluecove library, NXTs that have been paired with the PC are in the list of available NXTs, even when they are not switched on. This does not happen with Bluez on Linux.\r
 </li>\r
 <li>Is usually necessary to pair your NXT using the Operating System before it can be connected to by the lejOS NXJ PC tools and libraries.\r
 </li>\r
-<li>The Bluetooth PIN used by leJOS NXJ is always 1234.\r
-</li>\r
 <li>Discovery of Bluetooth devices is slow, taking at least 10 seconds. It is slower still with Bluez on Linux. For Java streams connections from user programs, you can connect directly by Bluetooth address, which is much faster.\r
 </li>\r
 <li>To get permissions to the lejos NXJ usb devices from non-root users on Linux, you typically need to user pamconsole or udev rules. The instructions for doing this are not very explicit.\r
 </li>\r
-<li>Some Linux systems may require you to delete the entries for your NXT device in /var/lib/bluetooth, to enable connections over Bluetooth.\r
-</li>\r
 </ul>\r
 <h1><a name="documentation">Documentation</a></h1>\r
 The API docs for leJOS NXJ is included in the download. You can also access them on the leJOS web site.\r
index f02970e..7577a41 100644 (file)
@@ -1,3 +1,72 @@
+lejos NXJ 0.5 beta
+------------------
+
+Andy Shaw has added:
+
+- I2C writes.
+- Use of port 4 for I2C sensors and the light sensor.
+- Faster LCD writing without need for LCD.refresh().
+- Mixing of text and graphics.
+- Bluetooth reset and detection of BC4 mode.
+- Rewrite of Bluetooth comms to support multiple connections and to remove restrictions.
+- Ability to switch Bluetooth power on and off.
+- Greatly improved UltrasonicSensor class.
+- Native arrayCopy method for improved performance.
+- Speed improvements to the SpeedTest sample.
+- I/O activity indicator in startup menu.
+- Fix for slow startup of USB on Windows.
+- Remote debugging over USB.
+- Size of menu flash area increased from 32kb to 48kb (causes reformat of file system).
+- Various bug fixes including to the garbage collector.
+
+Janusz Gorecki has added:
+
+- Garbage collection.
+- Execution of program directly from flash memory.
+
+Lawrie Griffiths has added:
+
+- Return to the startup menu after a program exits.
+- More Bluetooth methods including getSignalStrength().
+- Support for Mindsensors NRLink adapter (RCXLink class).
+- RCX Comms support using RCXLink class.
+- Support for Remote Motors, Sensors, etc. over Bluetooth via RemoteNXT class.
+- Remote monitoring and tracing over Bluetooth, including NXTMonitor tool.
+- Format menu item on System menu.
+- Support for Mindsensors NXTCam camera for tracking objects.
+- Support for the Mindsensors RCX Motor Multiplexer.
+- Untested support for the Hitechnic Gyro Sensor.
+- Improved Tiltsensor class including acceleration data for Mindsensors and HiTechnic Acceleration Sensors.
+- Untested support for the HiTechnic IRSeeker sensor.
+- Checking for flash and directory full conditions during program or file upload.
+- New and improved samples.
+- Support for 64-bit Linux systems in jlibnxt.
+- Various bug fixes.
+
+Brian Bagnall and Lawrie Griffiths have added:
+
+- Improved support for the Lego communications Protocol.
+- Support for automatic defrag of the file system.
+
+Brian Bagnall has added:
+
+- Bigger file table - now supports 30 files.
+
+Roger Glassey has added:
+
+- Improved Motor and TachoNavigator classes.
+- ButtonCounter class.
+- Behavior2 classes as an alternative to the Behavior classes.
+
+Patai Gergely and Brian Bagnall have added:
+
+- Improved support for playing 8-bit WAV files.
+
+Matthias Paul Scholz has added:
+
+- Restructured error handling of leJOS tools to support the Eclipse plugin.
+- An Eclipse plugin for leJOS.
+
 lejos NXJ 0.4beta
 -----------------
 
index 4924fae..557fc42 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/bin/StartUpText.bin and b/nxtOSEK/lejos_nxj/bin/StartUpText.bin differ
index 79b9405..980052c 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/bin/jlibnxt.dll and b/nxtOSEK/lejos_nxj/bin/jlibnxt.dll differ
index 0dbce3f..e81d025 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/bin/lejos_nxt_rom.bin and b/nxtOSEK/lejos_nxj/bin/lejos_nxt_rom.bin differ
index b117740..d189e0e 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/bin/lejos_nxt_samba_ram.bin and b/nxtOSEK/lejos_nxj/bin/lejos_nxt_samba_ram.bin differ
index e68df93..bd2aea4 100644 (file)
@@ -16,12 +16,12 @@ SET NXJ_HOME=%LEJOS_HOME%
 @REM Check operating system and skip Vista:\r
 Ver | Find "Version 6" >NUL\r
   If ErrorLevel 1 Goto :INSTALL\r
-  Echo Vista Detected. There have been reports of LibUSB disabling USB devices. Install at your own risk. http://libusb-win32.sourceforge.net/#downloads\r
+  Echo Vista Detected. Please manually install libusb in XP compatibility mode, otherwise USB devices will be deactivated. http://libusb-win32.sourceforge.net/#downloads\r
   Goto :DONE\r
 \r
 :INSTALL\r
 echo LIBUSB not installed. Running setup program...\r
-START "LIBUSB INSTALLER" /wait %NXJ_HOME%\3rdparty\lib\libusb-win32-filter-bin-0.1.12.1.exe\r
+START "LIBUSB INSTALLER" /wait "%NXJ_HOME%\3rdparty\lib\libusb-win32-filter-bin-0.1.12.1.exe"\r
 echo NOTE: If you encounter the error NXT Not Found, reboot your computer, make sure the brick is still in firmware upload mode, and try again.\r
 \r
 :MAIN\r
index 6063b40..aeec060 100644 (file)
@@ -2,9 +2,9 @@
 if "%NXJ_HOME%" == ""  goto homeless
 
 set THIRDPARTY_LIBS=%NXJ_HOME%\3rdparty\lib
-set LINK_CLASSPATH=.;%THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%THIRDPARTY_LIBS%\bluecove.jar;%NXJ_HOME%\lib\classes.jar
+set LINK_CLASSPATH=.;%THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%THIRDPARTY_LIBS%\bluecove.jar
 
-java -Djava.library.path=%NXJ_HOME%\bin -Dnxj.home=%NXJ_HOME% -classpath %LINK_CLASSPATH% lejos.pc.tools.NXJLinkAndUpload --writeorder LE --classpath %LINK_CLASSPATH% %*
+java "-Djava.library.path=%NXJ_HOME%\bin" "-Dnxj.home=%NXJ_HOME%" -classpath "%LINK_CLASSPATH%" lejos.pc.tools.NXJLinkAndUpload --writeorder LE --classpath ".;%NXJ_HOME%\lib\classes.jar" %*
 
 goto end
 
index f1eb37a..a384b34 100644 (file)
@@ -3,7 +3,7 @@ if "%NXJ_HOME%" == ""  goto homeless
 
 set THIRDPARTY_LIBS=%NXJ_HOME%\3rdparty\lib
 
-java -Djava.library.path=%NXJ_HOME%\bin -Dnxj.home=%NXJ_HOME% -classpath %THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%THIRDPARTY_LIBS%\bluecove.jar lejos.pc.tools.NXJBrowser %*
+java "-Djava.library.path=%NXJ_HOME%\bin" "-Dnxj.home=%NXJ_HOME%" -classpath "%THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%THIRDPARTY_LIBS%\bluecove.jar" lejos.pc.tools.NXJBrowser %*
 goto end
 
 :homeless
index 34cd869..dfe2862 100644 (file)
@@ -1,7 +1,7 @@
 @echo off
 if "%NXJ_HOME%" == ""  goto homeless
 
-javac -source 1.3 -target 1.1 -bootclasspath %NXJ_HOME%\lib\classes.jar;%CLASSPATH% %*
+javac -source 1.3 -target 1.1 -bootclasspath "%NXJ_HOME%\lib\classes.jar;%CLASSPATH%" %*
 goto end
 
 :homeless
index 1250dea..fad0e42 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/bin/nxjflash.exe and b/nxtOSEK/lejos_nxj/bin/nxjflash.exe differ
index d0b0cb9..00bb731 100644 (file)
@@ -4,7 +4,7 @@ if "%NXJ_HOME%" == ""  goto homeless
 set THIRDPARTY_LIBS=%NXJ_HOME%\3rdparty\lib
 set LINK_CLASSPATH=.;%THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\jtools.jar;%NXJ_HOME%\lib\classes.jar
 
-java -classpath %LINK_CLASSPATH% js.tinyvm.TinyVM --writeorder LE --classpath %LINK_CLASSPATH% %*
+java "-classpath %LINK_CLASSPATH%" js.tinyvm.TinyVM --writeorder LE --classpath ".;%NXJ_HOME%\lib\classes.jar" %*
 goto end
 
 :homeless
index 4a4ff4f..22b3981 100644 (file)
@@ -3,7 +3,7 @@ if "%NXJ_HOME%" == ""  goto homeless
 
 set THIRDPARTY_LIBS=%NXJ_HOME%\3rdparty\lib
 
-java -Djava.library.path=%NXJ_HOME%\bin -Dnxj.home=%NXJ_HOME% -classpath %THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%NXJ_HOME%\3rdparty\lib\bluecove.jar lejos.pc.tools.NXJUpload %*
+java "-Djava.library.path=%NXJ_HOME%\bin" "-Dnxj.home=%NXJ_HOME%" -classpath "%THIRDPARTY_LIBS%\bcel-5.1.jar;%THIRDPARTY_LIBS%\commons-cli-1.0.jar;%NXJ_HOME%\lib\pctools.jar;%NXJ_HOME%\lib\pccomm.jar;%NXJ_HOME%\lib\jtools.jar;%NXJ_HOME%\3rdparty\lib\bluecove.jar" lejos.pc.tools.NXJUpload %*
 goto end
 
 :homeless
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/StartUpText.html b/nxtOSEK/lejos_nxj/docs/apidocs/StartUpText.html
deleted file mode 100644 (file)
index 30620ec..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
-<TITLE>
-StartUpText (leJOS NXT API documentation)
-</TITLE>
-
-<META NAME="keywords" CONTENT="StartUpText class">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-<SCRIPT type="text/javascript">
-function windowTitle()
-{
-    parent.document.title="StartUpText (leJOS NXT API documentation)";
-}
-</SCRIPT>
-<NOSCRIPT>
-</NOSCRIPT>
-
-</HEAD>
-
-<BODY BGCOLOR="white" onload="windowTitle();">
-
-
-<!-- ========= START OF TOP NAVBAR ======= -->
-<A NAME="navbar_top"><!-- --></A>
-<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?StartUpText.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="StartUpText.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_top"></A>
-<!-- ========= END OF TOP NAVBAR ========= -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-Class StartUpText</H2>
-<PRE>
-<A HREF="java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
-  <IMG SRC="./resources/inherit.gif" ALT="extended by "><B>StartUpText</B>
-</PRE>
-<HR>
-<DL>
-<DT><PRE>public class <B>StartUpText</B><DT>extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A></DL>
-</PRE>
-
-<P>
-<HR>
-
-<P>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="StartUpText.html#StartUpText()">StartUpText</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="StartUpText.html#main(java.lang.String[])">main</A></B>(<A HREF="java/lang/String.html" title="class in java.lang">String</A>[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="java/lang/Object.html#getClass()">getClass</A>, <A HREF="java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="java/lang/Object.html#notify()">notify</A>, <A HREF="java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="java/lang/Object.html#toString()">toString</A>, <A HREF="java/lang/Object.html#wait()">wait</A>, <A HREF="java/lang/Object.html#wait(long)">wait</A></CODE></TD>
-</TR>
-</TABLE>
-&nbsp;
-<P>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="StartUpText()"><!-- --></A><H3>
-StartUpText</H3>
-<PRE>
-public <B>StartUpText</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(<A HREF="java/lang/String.html" title="class in java.lang">String</A>[]&nbsp;args)
-                 throws <A HREF="java/lang/Exception.html" title="class in java.lang">Exception</A></PRE>
-<DL>
-<DD><DL>
-
-<DT><B>Throws:</B>
-<DD><CODE><A HREF="java/lang/Exception.html" title="class in java.lang">Exception</A></CODE></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
-  <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
-  </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?StartUpText.html" target="_top"><B>FRAMES</B></A>  &nbsp;
-&nbsp;<A HREF="StartUpText.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
-&nbsp;<SCRIPT type="text/javascript">
-  <!--
-  if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
-  }
-  //-->
-</SCRIPT>
-<NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
-</NOSCRIPT>
-
-
-</FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<A NAME="skip-navbar_bottom"></A>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-
-<HR>
-
-</BODY>
-</HTML>
index 694c74c..a92f869 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:04 GMT 2008 -->
 <TITLE>
 All Classes (leJOS NXT API documentation)
 </TITLE>
@@ -26,10 +26,14 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption" target="classFrame">ActivityBase</A>
 <BR>
+<A HREF="lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>ADSensorPort</I></A>
+<BR>
 <A HREF="javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui" target="classFrame">Alert</A>
 <BR>
 <A HREF="lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption" target="classFrame">Arbitrator</A>
 <BR>
+<A HREF="lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption" target="classFrame">Arbitrator2</A>
+<BR>
 <A HREF="java/lang/ArithmeticException.html" title="class in java.lang" target="classFrame">ArithmeticException</A>
 <BR>
 <A HREF="java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang" target="classFrame">ArrayIndexOutOfBoundsException</A>
@@ -40,10 +44,18 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/util/Assertion.html" title="class in lejos.util" target="classFrame">Assertion</A>
 <BR>
+<A HREF="lejos/nxt/BasicMotor.html" title="class in lejos.nxt" target="classFrame">BasicMotor</A>
+<BR>
+<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt" target="classFrame"><I>BasicMotorPort</I></A>
+<BR>
+<A HREF="lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>BasicSensorPort</I></A>
+<BR>
 <A HREF="lejos/nxt/Battery.html" title="class in lejos.nxt" target="classFrame">Battery</A>
 <BR>
 <A HREF="lejos/subsumption/Behavior.html" title="interface in lejos.subsumption" target="classFrame"><I>Behavior</I></A>
 <BR>
+<A HREF="lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption" target="classFrame"><I>Behavior2</I></A>
+<BR>
 <A HREF="java/util/BitSet.html" title="class in java.util" target="classFrame">BitSet</A>
 <BR>
 <A HREF="lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm" target="classFrame">Bluetooth</A>
@@ -58,6 +70,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/Button.html" title="class in lejos.nxt" target="classFrame">Button</A>
 <BR>
+<A HREF="lejos/util/ButtonCounter.html" title="class in lejos.util" target="classFrame">ButtonCounter</A>
+<BR>
 <A HREF="lejos/nxt/ButtonListener.html" title="interface in lejos.nxt" target="classFrame"><I>ButtonListener</I></A>
 <BR>
 <A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui" target="classFrame"><I>Choice</I></A>
@@ -86,10 +100,14 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/DataInputStream.html" title="class in java.io" target="classFrame">DataInputStream</A>
 <BR>
-<A HREF="lejos/nxt/Datalogger.html" title="class in lejos.nxt" target="classFrame">Datalogger</A>
+<A HREF="lejos/util/Datalogger.html" title="class in lejos.util" target="classFrame">Datalogger</A>
 <BR>
 <A HREF="java/io/DataOutputStream.html" title="class in java.io" target="classFrame">DataOutputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm" target="classFrame">Debug</A>
+<BR>
+<A HREF="lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm" target="classFrame">DeviceInfo</A>
+<BR>
 <A HREF="javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui" target="classFrame">Display</A>
 <BR>
 <A HREF="javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui" target="classFrame">Displayable</A>
@@ -108,6 +126,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/FileOutputStream.html" title="class in java.io" target="classFrame">FileOutputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm" target="classFrame">FirmwareInfo</A>
+<BR>
 <A HREF="lejos/nxt/Flash.html" title="class in lejos.nxt" target="classFrame">Flash</A>
 <BR>
 <A HREF="java/lang/Float.html" title="class in java.lang" target="classFrame">Float</A>
@@ -120,8 +140,12 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui" target="classFrame">Graphics</A>
 <BR>
+<A HREF="lejos/nxt/GyroSensor.html" title="class in lejos.nxt" target="classFrame">GyroSensor</A>
+<BR>
 <A HREF="java/util/Hashtable.html" title="class in java.util" target="classFrame">Hashtable</A>
 <BR>
+<A HREF="lejos/nxt/I2CPort.html" title="interface in lejos.nxt" target="classFrame"><I>I2CPort</I></A>
+<BR>
 <A HREF="lejos/nxt/I2CSensor.html" title="class in lejos.nxt" target="classFrame">I2CSensor</A>
 <BR>
 <A HREF="java/lang/IllegalArgumentException.html" title="class in java.lang" target="classFrame">IllegalArgumentException</A>
@@ -134,12 +158,16 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/InputStream.html" title="class in java.io" target="classFrame">InputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm" target="classFrame">InputValues</A>
+<BR>
 <A HREF="java/lang/Integer.html" title="class in java.lang" target="classFrame">Integer</A>
 <BR>
 <A HREF="java/lang/InterruptedException.html" title="class in java.lang" target="classFrame">InterruptedException</A>
 <BR>
 <A HREF="java/io/IOException.html" title="class in java.io" target="classFrame">IOException</A>
 <BR>
+<A HREF="lejos/nxt/IRSeeker.html" title="class in lejos.nxt" target="classFrame">IRSeeker</A>
+<BR>
 <A HREF="javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui" target="classFrame">Item</A>
 <BR>
 <A HREF="javax/microedition/lcdui/ItemCommandListener.html" title="interface in javax.microedition.lcdui" target="classFrame"><I>ItemCommandListener</I></A>
@@ -150,12 +178,22 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm" target="classFrame">LCP</A>
 <BR>
+<A HREF="lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm" target="classFrame">LCPBTResponder</A>
+<BR>
+<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>LegacySensorPort</I></A>
+<BR>
 <A HREF="lejos/nxt/LightSensor.html" title="class in lejos.nxt" target="classFrame">LightSensor</A>
 <BR>
 <A HREF="javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui" target="classFrame">List</A>
 <BR>
 <A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt" target="classFrame"><I>ListenerCaller</I></A>
 <BR>
+<A HREF="lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm" target="classFrame">LLC</A>
+<BR>
+<A HREF="lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm" target="classFrame">LLCHandler</A>
+<BR>
+<A HREF="lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm" target="classFrame">LLCReliableHandler</A>
+<BR>
 <A HREF="java/lang/Math.html" title="class in java.lang" target="classFrame">Math</A>
 <BR>
 <A HREF="lejos/nxt/Motor.html" title="class in lejos.nxt" target="classFrame">Motor</A>
@@ -170,16 +208,28 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/NullPointerException.html" title="class in java.lang" target="classFrame">NullPointerException</A>
 <BR>
-<A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;" target="classFrame">NXTServerSocket</A>
+<A HREF="lejos/nxt/NXTCam.html" title="class in lejos.nxt" target="classFrame">NXTCam</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm" target="classFrame">NXTComm</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm" target="classFrame">NXTCommand</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm" target="classFrame"><I>NXTProtocol</I></A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm" target="classFrame">NXTServerSocket</A>
 <BR>
 <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm" target="classFrame">NXTSocket</A>
 <BR>
 <A HREF="java/lang/Object.html" title="class in java.lang" target="classFrame">Object</A>
 <BR>
+<A HREF="lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm" target="classFrame"><I>Opcode</I></A>
+<BR>
 <A HREF="java/lang/OutOfMemoryError.html" title="class in java.lang" target="classFrame">OutOfMemoryError</A>
 <BR>
 <A HREF="java/io/OutputStream.html" title="class in java.io" target="classFrame">OutputStream</A>
 <BR>
+<A HREF="lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm" target="classFrame">PacketHandler</A>
+<BR>
 <A HREF="lejos/navigation/Pilot.html" title="class in lejos.navigation" target="classFrame">Pilot</A>
 <BR>
 <A HREF="lejos/nxt/Poll.html" title="class in lejos.nxt" target="classFrame">Poll</A>
@@ -188,16 +238,38 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/util/Random.html" title="class in java.util" target="classFrame">Random</A>
 <BR>
+<A HREF="lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm" target="classFrame">RCXAbstractPort</A>
+<BR>
 <A HREF="lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt" target="classFrame">RCXLightSensor</A>
 <BR>
+<A HREF="lejos/nxt/RCXLink.html" title="class in lejos.nxt" target="classFrame">RCXLink</A>
+<BR>
 <A HREF="lejos/nxt/RCXMotor.html" title="class in lejos.nxt" target="classFrame">RCXMotor</A>
 <BR>
+<A HREF="lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt" target="classFrame">RCXMotorMultiplexer</A>
+<BR>
+<A HREF="lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt" target="classFrame">RCXPlexedMotorPort</A>
+<BR>
+<A HREF="lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm" target="classFrame">RCXPort</A>
+<BR>
+<A HREF="lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt" target="classFrame">RCXRemoteMotorPort</A>
+<BR>
+<A HREF="java/awt/Rectangle.html" title="class in java.awt" target="classFrame">Rectangle</A>
+<BR>
 <A HREF="lejos/util/Recyclable.html" title="interface in lejos.util" target="classFrame"><I>Recyclable</I></A>
 <BR>
 <A HREF="lejos/util/RecyclableArray.html" title="class in lejos.util" target="classFrame">RecyclableArray</A>
 <BR>
 <A HREF="lejos/util/Recycler.html" title="class in lejos.util" target="classFrame">Recycler</A>
 <BR>
+<A HREF="lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote" target="classFrame">RemoteBattery</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote" target="classFrame">RemoteMotorPort</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote" target="classFrame">RemoteNXT</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote" target="classFrame">RemoteSensorPort</A>
+<BR>
 <A HREF="java/lang/Runtime.html" title="class in java.lang" target="classFrame">Runtime</A>
 <BR>
 <A HREF="java/lang/RuntimeException.html" title="class in java.lang" target="classFrame">RuntimeException</A>
@@ -210,6 +282,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt" target="classFrame"><I>SensorPortListener</I></A>
 <BR>
+<A HREF="lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm" target="classFrame">Serial</A>
+<BR>
 <A HREF="java/io/Serializable.html" title="interface in java.io" target="classFrame"><I>Serializable</I></A>
 <BR>
 <A HREF="lejos/nxt/Sound.html" title="class in lejos.nxt" target="classFrame">Sound</A>
@@ -222,8 +296,6 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/StackOverflowError.html" title="class in java.lang" target="classFrame">StackOverflowError</A>
 <BR>
-<A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;" target="classFrame">StartUpText</A>
-<BR>
 <A HREF="lejos/subsumption/StopException.html" title="class in lejos.subsumption" target="classFrame">StopException</A>
 <BR>
 <A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io" target="classFrame"><I>StreamConnection</I></A>
@@ -238,6 +310,10 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/System.html" title="class in java.lang" target="classFrame">System</A>
 <BR>
+<A HREF="lejos/nxt/Tachometer.html" title="interface in lejos.nxt" target="classFrame"><I>Tachometer</I></A>
+<BR>
+<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt" target="classFrame"><I>TachoMotorPort</I></A>
+<BR>
 <A HREF="lejos/navigation/TachoNavigator.html" title="class in lejos.navigation" target="classFrame">TachoNavigator</A>
 <BR>
 <A HREF="javax/microedition/lcdui/TextBox.html" title="class in javax.microedition.lcdui" target="classFrame">TextBox</A>
index 5dea693..33e907d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:04 GMT 2008 -->
 <TITLE>
 All Classes (leJOS NXT API documentation)
 </TITLE>
@@ -26,10 +26,14 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption">ActivityBase</A>
 <BR>
+<A HREF="lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><I>ADSensorPort</I></A>
+<BR>
 <A HREF="javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <BR>
 <A HREF="lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption">Arbitrator</A>
 <BR>
+<A HREF="lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>
+<BR>
 <A HREF="java/lang/ArithmeticException.html" title="class in java.lang">ArithmeticException</A>
 <BR>
 <A HREF="java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang">ArrayIndexOutOfBoundsException</A>
@@ -40,10 +44,18 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/util/Assertion.html" title="class in lejos.util">Assertion</A>
 <BR>
+<A HREF="lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<BR>
+<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><I>BasicMotorPort</I></A>
+<BR>
+<A HREF="lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><I>BasicSensorPort</I></A>
+<BR>
 <A HREF="lejos/nxt/Battery.html" title="class in lejos.nxt">Battery</A>
 <BR>
 <A HREF="lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><I>Behavior</I></A>
 <BR>
+<A HREF="lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><I>Behavior2</I></A>
+<BR>
 <A HREF="java/util/BitSet.html" title="class in java.util">BitSet</A>
 <BR>
 <A HREF="lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
@@ -58,6 +70,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <BR>
+<A HREF="lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<BR>
 <A HREF="lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><I>ButtonListener</I></A>
 <BR>
 <A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui"><I>Choice</I></A>
@@ -86,10 +100,14 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <BR>
-<A HREF="lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
+<A HREF="lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A>
 <BR>
 <A HREF="java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<BR>
+<A HREF="lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<BR>
 <A HREF="javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
 <BR>
 <A HREF="javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
@@ -108,6 +126,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/FileOutputStream.html" title="class in java.io">FileOutputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A>
+<BR>
 <A HREF="lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A>
 <BR>
 <A HREF="java/lang/Float.html" title="class in java.lang">Float</A>
@@ -120,8 +140,12 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <BR>
+<A HREF="lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A>
+<BR>
 <A HREF="java/util/Hashtable.html" title="class in java.util">Hashtable</A>
 <BR>
+<A HREF="lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><I>I2CPort</I></A>
+<BR>
 <A HREF="lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <BR>
 <A HREF="java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</A>
@@ -134,12 +158,16 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/io/InputStream.html" title="class in java.io">InputStream</A>
 <BR>
+<A HREF="lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<BR>
 <A HREF="java/lang/Integer.html" title="class in java.lang">Integer</A>
 <BR>
 <A HREF="java/lang/InterruptedException.html" title="class in java.lang">InterruptedException</A>
 <BR>
 <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>
 <BR>
+<A HREF="lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>
+<BR>
 <A HREF="javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <BR>
 <A HREF="javax/microedition/lcdui/ItemCommandListener.html" title="interface in javax.microedition.lcdui"><I>ItemCommandListener</I></A>
@@ -150,12 +178,22 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <BR>
+<A HREF="lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm">LCPBTResponder</A>
+<BR>
+<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><I>LegacySensorPort</I></A>
+<BR>
 <A HREF="lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>
 <BR>
 <A HREF="javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui">List</A>
 <BR>
 <A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><I>ListenerCaller</I></A>
 <BR>
+<A HREF="lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<BR>
+<A HREF="lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<BR>
+<A HREF="lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<BR>
 <A HREF="java/lang/Math.html" title="class in java.lang">Math</A>
 <BR>
 <A HREF="lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
@@ -170,16 +208,28 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/NullPointerException.html" title="class in java.lang">NullPointerException</A>
 <BR>
-<A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;">NXTServerSocket</A>
+<A HREF="lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><I>NXTProtocol</I></A>
+<BR>
+<A HREF="lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm">NXTServerSocket</A>
 <BR>
 <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A>
 <BR>
 <A HREF="java/lang/Object.html" title="class in java.lang">Object</A>
 <BR>
+<A HREF="lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><I>Opcode</I></A>
+<BR>
 <A HREF="java/lang/OutOfMemoryError.html" title="class in java.lang">OutOfMemoryError</A>
 <BR>
 <A HREF="java/io/OutputStream.html" title="class in java.io">OutputStream</A>
 <BR>
+<A HREF="lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<BR>
 <A HREF="lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <BR>
 <A HREF="lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
@@ -188,16 +238,38 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/util/Random.html" title="class in java.util">Random</A>
 <BR>
+<A HREF="lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<BR>
 <A HREF="lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>
 <BR>
+<A HREF="lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<BR>
 <A HREF="lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A>
 <BR>
+<A HREF="lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<BR>
+<A HREF="lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A>
+<BR>
+<A HREF="lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm">RCXPort</A>
+<BR>
+<A HREF="lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A>
+<BR>
+<A HREF="java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<BR>
 <A HREF="lejos/util/Recyclable.html" title="interface in lejos.util"><I>Recyclable</I></A>
 <BR>
 <A HREF="lejos/util/RecyclableArray.html" title="class in lejos.util">RecyclableArray</A>
 <BR>
 <A HREF="lejos/util/Recycler.html" title="class in lejos.util">Recycler</A>
 <BR>
+<A HREF="lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<BR>
+<A HREF="lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<BR>
 <A HREF="java/lang/Runtime.html" title="class in java.lang">Runtime</A>
 <BR>
 <A HREF="java/lang/RuntimeException.html" title="class in java.lang">RuntimeException</A>
@@ -210,6 +282,8 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><I>SensorPortListener</I></A>
 <BR>
+<A HREF="lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<BR>
 <A HREF="java/io/Serializable.html" title="interface in java.io"><I>Serializable</I></A>
 <BR>
 <A HREF="lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
@@ -222,8 +296,6 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/StackOverflowError.html" title="class in java.lang">StackOverflowError</A>
 <BR>
-<A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;">StartUpText</A>
-<BR>
 <A HREF="lejos/subsumption/StopException.html" title="class in lejos.subsumption">StopException</A>
 <BR>
 <A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io"><I>StreamConnection</I></A>
@@ -238,6 +310,10 @@ All Classes (leJOS NXT API documentation)
 <BR>
 <A HREF="java/lang/System.html" title="class in java.lang">System</A>
 <BR>
+<A HREF="lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><I>Tachometer</I></A>
+<BR>
+<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><I>TachoMotorPort</I></A>
+<BR>
 <A HREF="lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <BR>
 <A HREF="javax/microedition/lcdui/TextBox.html" title="class in javax.microedition.lcdui">TextBox</A>
index e26ddb9..7896533 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 Constant Field Values (leJOS NXT API documentation)
 </TITLE>
@@ -84,6 +84,7 @@ Constant Field Values</H1>
 <LI><A HREF="#java.lang">java.lang.*</A>
 <LI><A HREF="#javax.microedition">javax.microedition.*</A>
 <LI><A HREF="#lejos.nxt">lejos.nxt.*</A>
+<LI><A HREF="#lejos.rcxcomm">lejos.rcxcomm.*</A>
 </UL>
 
 <A NAME="java.io"><!-- --></A>
@@ -605,6 +606,48 @@ lejos.nxt.*</FONT></TH>
 
 <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.nxt.<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.BasicMotorPort.PWM_BRAKE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.BasicMotorPort.PWM_FLOAT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.nxt.<A HREF="lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.Flash.MAX_USER_PAGES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/Flash.html#MAX_USER_PAGES">MAX_USER_PAGES</A></CODE></TD>
+<TD ALIGN="right"><CODE>704</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="3">lejos.nxt.<A HREF="lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -767,6 +810,126 @@ lejos.nxt.*</FONT></TH>
 
 <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.nxt.<A HREF="lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.BEEP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#BEEP">BEEP</A></CODE></TD>
+<TD ALIGN="right"><CODE>57</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.DELAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#DELAY">DELAY</A></CODE></TD>
+<TD ALIGN="right"><CODE>10</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.EEPROM_BUFFER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#EEPROM_BUFFER">EEPROM_BUFFER</A></CODE></TD>
+<TD ALIGN="right"><CODE>120</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.LONG_RANGE_IR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#LONG_RANGE_IR">LONG_RANGE_IR</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_A_FORWARD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_A_FORWARD">MOTOR_A_FORWARD</A></CODE></TD>
+<TD ALIGN="right"><CODE>33</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_A_REVERSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_A_REVERSED">MOTOR_A_REVERSED</A></CODE></TD>
+<TD ALIGN="right"><CODE>37</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_B_FORWARD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_B_FORWARD">MOTOR_B_FORWARD</A></CODE></TD>
+<TD ALIGN="right"><CODE>41</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_B_REVERSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_B_REVERSED">MOTOR_B_REVERSED</A></CODE></TD>
+<TD ALIGN="right"><CODE>45</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_C_FORWARD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_C_FORWARD">MOTOR_C_FORWARD</A></CODE></TD>
+<TD ALIGN="right"><CODE>49</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.MOTOR_C_REVERSED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#MOTOR_C_REVERSED">MOTOR_C_REVERSED</A></CODE></TD>
+<TD ALIGN="right"><CODE>53</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.POWER_OFF_RCX"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#POWER_OFF_RCX">POWER_OFF_RCX</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.RUN_PROGRAM_1"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#RUN_PROGRAM_1">RUN_PROGRAM_1</A></CODE></TD>
+<TD ALIGN="right"><CODE>9</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.RUN_PROGRAM_2"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#RUN_PROGRAM_2">RUN_PROGRAM_2</A></CODE></TD>
+<TD ALIGN="right"><CODE>13</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.RUN_PROGRAM_3"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#RUN_PROGRAM_3">RUN_PROGRAM_3</A></CODE></TD>
+<TD ALIGN="right"><CODE>17</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.RUN_PROGRAM_4"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#RUN_PROGRAM_4">RUN_PROGRAM_4</A></CODE></TD>
+<TD ALIGN="right"><CODE>21</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.RUN_PROGRAM_5"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#RUN_PROGRAM_5">RUN_PROGRAM_5</A></CODE></TD>
+<TD ALIGN="right"><CODE>25</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.SHORT_RANGE_IR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#SHORT_RANGE_IR">SHORT_RANGE_IR</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.RCXLink.STOP_ALL_PROGRAMS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/RCXLink.html#STOP_ALL_PROGRAMS">STOP_ALL_PROGRAMS</A></CODE></TD>
+<TD ALIGN="right"><CODE>29</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="3">lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -902,6 +1065,18 @@ lejos.nxt.*</FONT></TH>
 <TH ALIGN="left" COLSPAN="3">lejos.nxt.comm.<A HREF="lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.BT_PENDING_INPUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#BT_PENDING_INPUT">BT_PENDING_INPUT</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.BT_PENDING_OUTPUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#BT_PENDING_OUTPUT">BT_PENDING_OUTPUT</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_ACCEPT_CONNECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_ACCEPT_CONNECTION">MSG_ACCEPT_CONNECTION</A></CODE></TD>
@@ -914,6 +1089,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>5</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_ANY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_ANY">MSG_ANY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_BEGIN_INQUIRY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_BEGIN_INQUIRY">MSG_BEGIN_INQUIRY</A></CODE></TD>
@@ -962,6 +1143,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>19</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_CONNECTION_STATUS_RESULT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_CONNECTION_STATUS_RESULT">MSG_CONNECTION_STATUS_RESULT</A></CODE></TD>
+<TD ALIGN="right"><CODE>57</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_DUMP_LIST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_DUMP_LIST">MSG_DUMP_LIST</A></CODE></TD>
@@ -980,6 +1167,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>49</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_GET_CONNECTION_STATUS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_GET_CONNECTION_STATUS">MSG_GET_CONNECTION_STATUS</A></CODE></TD>
+<TD ALIGN="right"><CODE>56</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_GET_DISCOVERABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_GET_DISCOVERABLE">MSG_GET_DISCOVERABLE</A></CODE></TD>
@@ -1022,6 +1215,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>40</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_GET_OPERATING_MODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_GET_OPERATING_MODE">MSG_GET_OPERATING_MODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>53</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_GET_PORT_OPEN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_GET_PORT_OPEN">MSG_GET_PORT_OPEN</A></CODE></TD>
@@ -1046,6 +1245,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>48</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_GOTO_DFU_MODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_GOTO_DFU_MODE">MSG_GOTO_DFU_MODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>58</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_HEARTBEAT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_HEARTBEAT">MSG_HEARTBEAT</A></CODE></TD>
@@ -1124,6 +1329,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>11</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_OPERATING_MODE_RESULT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_OPERATING_MODE_RESULT">MSG_OPERATING_MODE_RESULT</A></CODE></TD>
+<TD ALIGN="right"><CODE>55</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_PIN_CODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_PIN_CODE">MSG_PIN_CODE</A></CODE></TD>
@@ -1214,6 +1425,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>34</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.Bluetooth.MSG_SET_OPERATING_MODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_SET_OPERATING_MODE">MSG_SET_OPERATING_MODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>54</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.Bluetooth.MSG_START_HEART"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/Bluetooth.html#MSG_START_HEART">MSG_START_HEART</A></CODE></TD>
@@ -1229,6 +1446,36 @@ lejos.nxt.*</FONT></TH>
 
 <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.BTConnection.AM_ALWAYS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/BTConnection.html#AM_ALWAYS">AM_ALWAYS</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.BTConnection.AM_DISABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/BTConnection.html#AM_DISABLE">AM_DISABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.BTConnection.AM_OUTPUT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;int</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/BTConnection.html#AM_OUTPUT">AM_OUTPUT</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="left" COLSPAN="3">lejos.nxt.comm.<A HREF="lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
@@ -1256,6 +1503,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>-96</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.DIRECTORY_FULL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#DIRECTORY_FULL">DIRECTORY_FULL</A></CODE></TD>
+<TD ALIGN="right"><CODE>-4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.LCP.FILE_NOT_FOUND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#FILE_NOT_FOUND">FILE_NOT_FOUND</A></CODE></TD>
@@ -1310,6 +1563,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>6</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.INSUFFICIENT_MEMORY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#INSUFFICIENT_MEMORY">INSUFFICIENT_MEMORY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.LCP.KEEP_ALIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#KEEP_ALIVE">KEEP_ALIVE</A></CODE></TD>
@@ -1334,12 +1593,30 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>15</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.MAILBOX_EMPTY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#MAILBOX_EMPTY">MAILBOX_EMPTY</A></CODE></TD>
+<TD ALIGN="right"><CODE>64</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.MESSAGE_READ"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#MESSAGE_READ">MESSAGE_READ</A></CODE></TD>
+<TD ALIGN="right"><CODE>19</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.LCP.MESSAGE_WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#MESSAGE_WRITE">MESSAGE_WRITE</A></CODE></TD>
 <TD ALIGN="right"><CODE>9</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.NOT_IMPLEMENTED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#NOT_IMPLEMENTED">NOT_IMPLEMENTED</A></CODE></TD>
+<TD ALIGN="right"><CODE>-3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.LCP.NXJ_FIND_FIRST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#NXJ_FIND_FIRST">NXJ_FIND_FIRST</A></CODE></TD>
@@ -1466,6 +1743,12 @@ lejos.nxt.*</FONT></TH>
 <TD ALIGN="right"><CODE>12</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.LCP.UNDEFINED_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#UNDEFINED_ERROR">UNDEFINED_ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-118</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="lejos.nxt.comm.LCP.WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/LCP.html#WRITE">WRITE</A></CODE></TD>
@@ -1478,6 +1761,1125 @@ lejos.nxt.*</FONT></TH>
 <P>
 
 <P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.ANGLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.ANGLESTEPSMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-32</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.BOOLEANMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>32</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.BOOT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A></CODE></TD>
+<TD ALIGN="right"><CODE>-105</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.BRAKE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.CELSIUSMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-96</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.CLOSE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-124</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.CUSTOM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A></CODE></TD>
+<TD ALIGN="right"><CODE>9</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.DELETE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-123</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.DELETE_USER_FLASH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A></CODE></TD>
+<TD ALIGN="right"><CODE>-96</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.DIRECT_COMMAND_NOREPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-128</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.DIRECT_COMMAND_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.FAHRENHEITMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-64</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.FIND_FIRST"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A></CODE></TD>
+<TD ALIGN="right"><CODE>-122</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.FIND_NEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A></CODE></TD>
+<TD ALIGN="right"><CODE>-121</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_BATTERY_LEVEL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A></CODE></TD>
+<TD ALIGN="right"><CODE>11</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_CURRENT_PROGRAM_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A></CODE></TD>
+<TD ALIGN="right"><CODE>17</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_DEVICE_INFO"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A></CODE></TD>
+<TD ALIGN="right"><CODE>-101</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_FIRMWARE_VERSION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A></CODE></TD>
+<TD ALIGN="right"><CODE>-120</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_INPUT_VALUES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.GET_OUTPUT_STATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A></CODE></TD>
+<TD ALIGN="right"><CODE>6</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.HIGH_SPEED_BUFFER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.KEEP_ALIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>13</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LIGHT_ACTIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LIGHT_INACTIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>6</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LOWSPEED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A></CODE></TD>
+<TD ALIGN="right"><CODE>10</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LOWSPEED_9V"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A></CODE></TD>
+<TD ALIGN="right"><CODE>11</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LS_GET_STATUS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A></CODE></TD>
+<TD ALIGN="right"><CODE>14</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LS_READ"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A></CODE></TD>
+<TD ALIGN="right"><CODE>16</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.LS_WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A></CODE></TD>
+<TD ALIGN="right"><CODE>15</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MESSAGE_READ"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A></CODE></TD>
+<TD ALIGN="right"><CODE>19</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MESSAGE_WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A></CODE></TD>
+<TD ALIGN="right"><CODE>9</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MODEMASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>-32</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_IDLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RAMPDOWN"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A></CODE></TD>
+<TD ALIGN="right"><CODE>64</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RAMPUP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A></CODE></TD>
+<TD ALIGN="right"><CODE>16</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RUNNING"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A></CODE></TD>
+<TD ALIGN="right"><CODE>32</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.MOTORON"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.NO_OF_SENSOR_TYPES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A></CODE></TD>
+<TD ALIGN="right"><CODE>12</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.NO_SENSOR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_APPEND_DATA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A></CODE></TD>
+<TD ALIGN="right"><CODE>-116</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_READ"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A></CODE></TD>
+<TD ALIGN="right"><CODE>-128</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_READ_LINEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-118</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-127</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_WRITE_DATA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A></CODE></TD>
+<TD ALIGN="right"><CODE>-117</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.OPEN_WRITE_LINEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-119</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.PCTFULLSCALEMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-128</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.PERIODCOUNTERMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>96</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.PLAY_SOUND_FILE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.PLAY_TONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.POLL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A></CODE></TD>
+<TD ALIGN="right"><CODE>-94</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.POLL_BUFFER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.POLL_LENGTH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A></CODE></TD>
+<TD ALIGN="right"><CODE>-95</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.RAWMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.READ"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#READ">READ</A></CODE></TD>
+<TD ALIGN="right"><CODE>-126</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REFLECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A></CODE></TD>
+<TD ALIGN="right"><CODE>3</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REGULATED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REGULATION_MODE_IDLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REGULATION_MODE_MOTOR_SPEED"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REGULATION_MODE_MOTOR_SYNC"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.REPLY_COMMAND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.RESET_MOTOR_POSITION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A></CODE></TD>
+<TD ALIGN="right"><CODE>10</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.RESET_SCALED_INPUT_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A></CODE></TD>
+<TD ALIGN="right"><CODE>8</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SET_BRICK_NAME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A></CODE></TD>
+<TD ALIGN="right"><CODE>-104</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SET_INPUT_MODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>5</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SET_OUTPUT_STATE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A></CODE></TD>
+<TD ALIGN="right"><CODE>4</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SLOPEMASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>31</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SOUND_DB"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A></CODE></TD>
+<TD ALIGN="right"><CODE>7</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SOUND_DBA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A></CODE></TD>
+<TD ALIGN="right"><CODE>8</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.START_PROGRAM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A></CODE></TD>
+<TD ALIGN="right"><CODE>0</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.STOP_PROGRAM"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.STOP_SOUND_PLAYBACK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A></CODE></TD>
+<TD ALIGN="right"><CODE>12</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SWITCH"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SYSTEM_COMMAND_NOREPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-127</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.SYSTEM_COMMAND_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>1</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.TEMPERATURE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A></CODE></TD>
+<TD ALIGN="right"><CODE>2</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.TRANSITIONCNTMODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>64</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.nxt.comm.NXTProtocol.WRITE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-125</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="lejos.rcxcomm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left"><FONT SIZE="+2">
+lejos.rcxcomm.*</FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">lejos.rcxcomm.<A HREF="lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ABSOLUTE_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE">OPCODE_ABSOLUTE_VALUE</A></CODE></TD>
+<TD ALIGN="right"><CODE>116</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ABSOLUTE_VALUE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE_REPLY">OPCODE_ABSOLUTE_VALUE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-125</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ADD_TO_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE">OPCODE_ADD_TO_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>36</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ADD_TO_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE_REPLY">OPCODE_ADD_TO_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-45</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ALIVE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ALIVE">OPCODE_ALIVE</A></CODE></TD>
+<TD ALIGN="right"><CODE>16</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_ALIVE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_ALIVE_REPLY">OPCODE_ALIVE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-25</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_AND_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE">OPCODE_AND_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-124</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_AND_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE_REPLY">OPCODE_AND_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>115</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_BRANCH_ALWAYS_FAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_FAR">OPCODE_BRANCH_ALWAYS_FAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>114</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_BRANCH_ALWAYS_NEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_NEAR">OPCODE_BRANCH_ALWAYS_NEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>39</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CALL_SUBROUTINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CALL_SUBROUTINE">OPCODE_CALL_SUBROUTINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>23</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CLEAR_MESSAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_MESSAGE">OPCODE_CLEAR_MESSAGE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-112</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CLEAR_SENSOR_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE">OPCODE_CLEAR_SENSOR_VALUE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-47</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CLEAR_SENSOR_VALUE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE_REPLY">OPCODE_CLEAR_SENSOR_VALUE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>38</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CLEAR_TIMER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER">OPCODE_CLEAR_TIMER</A></CODE></TD>
+<TD ALIGN="right"><CODE>-95</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_CLEAR_TIMER_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER_REPLY">OPCODE_CLEAR_TIMER_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>86</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DATALOG_NEXT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT">OPCODE_DATALOG_NEXT</A></CODE></TD>
+<TD ALIGN="right"><CODE>98</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DATALOG_NEXT_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT_REPLY">OPCODE_DATALOG_NEXT_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-107</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DECREMENT_LOOP_COUNTER_FAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_FAR">OPCODE_DECREMENT_LOOP_COUNTER_FAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-110</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DECREMENT_LOOP_COUNTER_NEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_NEAR">OPCODE_DECREMENT_LOOP_COUNTER_NEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>55</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_SUBROUTINES"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES">OPCODE_DELETE_ALL_SUBROUTINES</A></CODE></TD>
+<TD ALIGN="right"><CODE>112</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_SUBROUTINES_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES_REPLY">OPCODE_DELETE_ALL_SUBROUTINES_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-121</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_TASKS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS">OPCODE_DELETE_ALL_TASKS</A></CODE></TD>
+<TD ALIGN="right"><CODE>64</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_TASKS_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS_REPLY">OPCODE_DELETE_ALL_TASKS_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-73</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_FIRMWARE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE">OPCODE_DELETE_FIRMWARE</A></CODE></TD>
+<TD ALIGN="right"><CODE>101</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_FIRMWARE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE_REPLY">OPCODE_DELETE_FIRMWARE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-110</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_SUBROUTINE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE">OPCODE_DELETE_SUBROUTINE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-63</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_SUBROUTINE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE_REPLY">OPCODE_DELETE_SUBROUTINE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>54</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_TASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK">OPCODE_DELETE_TASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>97</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DELETE_TASK_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK_REPLY">OPCODE_DELETE_TASK_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-106</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DIVIDE_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE">OPCODE_DIVIDE_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>68</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_DIVIDE_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE_REPLY">OPCODE_DIVIDE_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-77</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_BATTERY_POWER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER">OPCODE_GET_BATTERY_POWER</A></CODE></TD>
+<TD ALIGN="right"><CODE>48</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_BATTERY_POWER_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER_REPLY">OPCODE_GET_BATTERY_POWER_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-57</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_MEMORY_MAP"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP">OPCODE_GET_MEMORY_MAP</A></CODE></TD>
+<TD ALIGN="right"><CODE>32</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_MEMORY_MAP_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP_REPLY">OPCODE_GET_MEMORY_MAP_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-41</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_VALUE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE">OPCODE_GET_VALUE</A></CODE></TD>
+<TD ALIGN="right"><CODE>18</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_VALUE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE_REPLY">OPCODE_GET_VALUE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-27</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_VERSIONS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS">OPCODE_GET_VERSIONS</A></CODE></TD>
+<TD ALIGN="right"><CODE>21</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_GET_VERSIONS_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS_REPLY">OPCODE_GET_VERSIONS_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-30</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_MASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_MASK">OPCODE_MASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>-9</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_MULTIPLY_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE">OPCODE_MULTIPLY_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>84</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_MULTIPLY_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE_REPLY">OPCODE_MULTIPLY_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-93</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_OR_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE">OPCODE_OR_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-108</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_OR_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE_REPLY">OPCODE_OR_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>99</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_PLAY_SOUND_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_PLAY_SOUND_REPLY">OPCODE_PLAY_SOUND_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-90</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_PLAY_TONE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE">OPCODE_PLAY_TONE</A></CODE></TD>
+<TD ALIGN="right"><CODE>35</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_PLAY_TONE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE_REPLY">OPCODE_PLAY_TONE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-44</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_POWER_OFF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF">OPCODE_POWER_OFF</A></CODE></TD>
+<TD ALIGN="right"><CODE>96</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_POWER_OFF_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF_REPLY">OPCODE_POWER_OFF_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-105</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_REMOTE_COMMAND"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_REMOTE_COMMAND">OPCODE_REMOTE_COMMAND</A></CODE></TD>
+<TD ALIGN="right"><CODE>-46</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SEND_MESSAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SEND_MESSAGE">OPCODE_SEND_MESSAGE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-78</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_DATALOG_SIZE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE">OPCODE_SET_DATALOG_SIZE</A></CODE></TD>
+<TD ALIGN="right"><CODE>82</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_DATALOG_SIZE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE_REPLY">OPCODE_SET_DATALOG_SIZE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-91</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_DISPLAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY">OPCODE_SET_DISPLAY</A></CODE></TD>
+<TD ALIGN="right"><CODE>51</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_DISPLAY_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY_REPLY">OPCODE_SET_DISPLAY_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-60</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_LOOP_COUNTER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_LOOP_COUNTER">OPCODE_SET_LOOP_COUNTER</A></CODE></TD>
+<TD ALIGN="right"><CODE>-126</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MESSAGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MESSAGE">OPCODE_SET_MESSAGE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-9</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_DIRECTION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION">OPCODE_SET_MOTOR_DIRECTION</A></CODE></TD>
+<TD ALIGN="right"><CODE>-31</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_DIRECTION_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION_REPLY">OPCODE_SET_MOTOR_DIRECTION_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>22</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_ON_OFF"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF">OPCODE_SET_MOTOR_ON_OFF</A></CODE></TD>
+<TD ALIGN="right"><CODE>33</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_ON_OFF_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF_REPLY">OPCODE_SET_MOTOR_ON_OFF_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-42</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_POWER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER">OPCODE_SET_MOTOR_POWER</A></CODE></TD>
+<TD ALIGN="right"><CODE>19</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_POWER_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER_REPLY">OPCODE_SET_MOTOR_POWER_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-28</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_POWER_DOWN_DELAY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY">OPCODE_SET_POWER_DOWN_DELAY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-79</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_POWER_DOWN_DELAY_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY_REPLY">OPCODE_SET_POWER_DOWN_DELAY_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>70</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_PROGRAM_NUMBER"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER">OPCODE_SET_PROGRAM_NUMBER</A></CODE></TD>
+<TD ALIGN="right"><CODE>-111</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_PROGRAM_NUMBER_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER_REPLY">OPCODE_SET_PROGRAM_NUMBER_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>102</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_MODE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE">OPCODE_SET_SENSOR_MODE</A></CODE></TD>
+<TD ALIGN="right"><CODE>66</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_MODE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE_REPLY">OPCODE_SET_SENSOR_MODE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-75</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_TYPE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE">OPCODE_SET_SENSOR_TYPE</A></CODE></TD>
+<TD ALIGN="right"><CODE>50</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_TYPE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE_REPLY">OPCODE_SET_SENSOR_TYPE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-59</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_TIME"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME">OPCODE_SET_TIME</A></CODE></TD>
+<TD ALIGN="right"><CODE>34</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_TIME_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME_REPLY">OPCODE_SET_TIME_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-43</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_TRANSMITTER_RANGE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE">OPCODE_SET_TRANSMITTER_RANGE</A></CODE></TD>
+<TD ALIGN="right"><CODE>49</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_TRANSMITTER_RANGE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE_REPLY">OPCODE_SET_TRANSMITTER_RANGE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-58</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE">OPCODE_SET_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>20</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SET_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE_REPLY">OPCODE_SET_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-29</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SIGN_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE">OPCODE_SIGN_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>100</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SIGN_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE_REPLY">OPCODE_SIGN_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-109</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_FIRMWARE_DOWNLOAD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD">OPCODE_START_FIRMWARE_DOWNLOAD</A></CODE></TD>
+<TD ALIGN="right"><CODE>117</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_FIRMWARE_DOWNLOAD_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD_REPLY">OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-126</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_SUBROUTINE_DOWNLOAD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD">OPCODE_START_SUBROUTINE_DOWNLOAD</A></CODE></TD>
+<TD ALIGN="right"><CODE>53</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY">OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-62</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_TASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_TASK">OPCODE_START_TASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>113</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_TASK_DOWNLOAD"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD">OPCODE_START_TASK_DOWNLOAD</A></CODE></TD>
+<TD ALIGN="right"><CODE>37</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_TASK_DOWNLOAD_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD_REPLY">OPCODE_START_TASK_DOWNLOAD_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-46</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_START_TASK_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_REPLY">OPCODE_START_TASK_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-122</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_STOP_ALL_TASKS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS">OPCODE_STOP_ALL_TASKS</A></CODE></TD>
+<TD ALIGN="right"><CODE>80</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_STOP_ALL_TASKS_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS_REPLY">OPCODE_STOP_ALL_TASKS_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-89</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_STOP_TASK"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK">OPCODE_STOP_TASK</A></CODE></TD>
+<TD ALIGN="right"><CODE>-127</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_STOP_TASK_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK_REPLY">OPCODE_STOP_TASK_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>118</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SUBTRACT_FROM_VARIABLE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE">OPCODE_SUBTRACT_FROM_VARIABLE</A></CODE></TD>
+<TD ALIGN="right"><CODE>52</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_SUBTRACT_FROM_VARIABLE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE_REPLY">OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-61</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_TEST_AND_BRANCH_FAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_FAR">OPCODE_TEST_AND_BRANCH_FAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-107</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_TEST_AND_BRANCH_NEAR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_NEAR">OPCODE_TEST_AND_BRANCH_NEAR</A></CODE></TD>
+<TD ALIGN="right"><CODE>-123</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_TRANSFER_DATA"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA">OPCODE_TRANSFER_DATA</A></CODE></TD>
+<TD ALIGN="right"><CODE>69</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_TRANSFER_DATA_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA_REPLY">OPCODE_TRANSFER_DATA_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>-78</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_UNLOCK_FIRMWARE"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE">OPCODE_UNLOCK_FIRMWARE</A></CODE></TD>
+<TD ALIGN="right"><CODE>-91</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_UNLOCK_FIRMWARE_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE_REPLY">OPCODE_UNLOCK_FIRMWARE_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>82</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_UPLOAD_DATALOG"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG">OPCODE_UPLOAD_DATALOG</A></CODE></TD>
+<TD ALIGN="right"><CODE>-92</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_UPLOAD_DATALOG_REPLY"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG_REPLY">OPCODE_UPLOAD_DATALOG_REPLY</A></CODE></TD>
+<TD ALIGN="right"><CODE>83</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="lejos.rcxcomm.Opcode.OPCODE_WAIT"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;byte</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="lejos/rcxcomm/Opcode.html#OPCODE_WAIT">OPCODE_WAIT</A></CODE></TD>
+<TD ALIGN="right"><CODE>67</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
 <HR>
 
 
index ea6f332..1c2ce64 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:04 GMT 2008 -->
 <TITLE>
 Deprecated List (leJOS NXT API documentation)
 </TITLE>
index a34511a..da0d571 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:04 GMT 2008 -->
 <TITLE>
 API Help (leJOS NXT API documentation)
 </TITLE>
index b0d4dcf..9f1a02e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 Index (leJOS NXT API documentation)
 </TITLE>
@@ -73,7 +73,7 @@ function windowTitle()
 <A NAME="skip-navbar_top"></A>
 <!-- ========= END OF TOP NAVBAR ========= -->
 
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> <HR>
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> <HR>
 <A NAME="_A_"><!-- --></A><H2>
 <B>A</B></H2>
 <DL>
@@ -83,6 +83,15 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class
 <DT><A HREF="./lejos/nxt/MotorPort.html#A"><B>A</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>MotorPort A.
+<DT><A HREF="./lejos/nxt/RCXLink.html#A"><B>A</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#A"><B>A</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#A"><B>A</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Math.html#abs(double)"><B>abs(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Returns the absolute value of a double value.
@@ -92,8 +101,8 @@ Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in
 <DT><A HREF="./lejos/util/AbstractRecyclable.html" title="class in lejos.util"><B>AbstractRecyclable</B></A> - Class in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>Represents a recyclable object.<DT><A HREF="./lejos/util/AbstractRecyclable.html#AbstractRecyclable()"><B>AbstractRecyclable()</B></A> - 
 Constructor for class lejos.util.<A HREF="./lejos/util/AbstractRecyclable.html" title="class in lejos.util">AbstractRecyclable</A>
 <DD>&nbsp;
-<DT><A HREF="./NXTServerSocket.html#accept()"><B>accept()</B></A> - 
-Method in class <A HREF="./NXTServerSocket.html" title="class in &lt;Unnamed&gt;">NXTServerSocket</A>
+<DT><A HREF="./lejos/nxt/comm/NXTServerSocket.html#accept()"><B>accept()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm">NXTServerSocket</A>
 <DD>Waits untill there is a socket connection available.
 <DT><A HREF="./java/lang/Math.html#acos(double)"><B>acos(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
@@ -105,6 +114,9 @@ Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" ti
 Method in interface lejos.subsumption.<A HREF="./lejos/subsumption/Behavior.html" title="interface in lejos.subsumption">Behavior</A>
 <DD>The code in action() represents the actual action of the robot when this
  behavior becomes active.
+<DT><A HREF="./lejos/nxt/LegacySensorPort.html#activate()"><B>activate()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/RCXLightSensor.html#activate()"><B>activate()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>
 <DD>Activates an RCX light sensor.
@@ -150,7 +162,7 @@ Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java
 <DT><A HREF="./lejos/nxt/SensorPort.html#addSensorPortListener(lejos.nxt.SensorPortListener)"><B>addSensorPortListener(SensorPortListener)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Adds a port listener.
-<DT><A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui"><B>Alert</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./javax/microedition/lcdui/Alert.html#Alert(java.lang.String)"><B>Alert(String)</B></A> - 
+<DT><A HREF="./lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>ADSensorPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>An abstraction for a port that supports Analog/Digital sensors.<DT><A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui"><B>Alert</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./javax/microedition/lcdui/Alert.html#Alert(java.lang.String)"><B>Alert(String)</B></A> - 
 Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#Alert(java.lang.String, java.lang.String, javax.microedition.lcdui.Image, int)"><B>Alert(String, String, Image, int)</B></A> - 
@@ -183,6 +195,21 @@ Method in class lejos.util.<A HREF="./lejos/util/ArrayRecycler.html" title="clas
 <DT><A HREF="./lejos/util/Recycler.html#allocate()"><B>allocate()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/Recycler.html" title="class in lejos.util">Recycler</A>
 <DD>Attempts to obtain a free object.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#AM_ALWAYS"><B>AM_ALWAYS</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#AM_DISABLE"><B>AM_DISABLE</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#AM_OUTPUT"><B>AM_OUTPUT</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#ANGLE"><B>ANGLE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE"><B>ANGLESTEPSMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/navigation/Navigator.html#angleTo(float, float)"><B>angleTo(float, float)</B></A> - 
 Method in interface lejos.navigation.<A HREF="./lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A>
 <DD>returns the direction angle (degrees) to the point with coordinates (x,y)
@@ -239,13 +266,21 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 Constructor for class lejos.subsumption.<A HREF="./lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption">Arbitrator</A>
 <DD>Allocates an Arbitrator object and initializes it with an array of
  Behavior objects.
+<DT><A HREF="./lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>Arbitrator2</B></A> - Class in <A HREF="./lejos/subsumption/package-summary.html">lejos.subsumption</A><DD>Arbitrator2 controls which behavior should currently be active in 
+ a behavior control system.<DT><A HREF="./lejos/subsumption/Arbitrator2.html#Arbitrator2(lejos.subsumption.Behavior2[])"><B>Arbitrator2(Behavior2[])</B></A> - 
+Constructor for class lejos.subsumption.<A HREF="./lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>
+<DD>Allocates an Arbitrator2 object and initializes it with an array of
+ Behavior2 objects.
 <DT><A HREF="./java/lang/ArithmeticException.html" title="class in java.lang"><B>ArithmeticException</B></A> - Exception in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/ArithmeticException.html#ArithmeticException()"><B>ArithmeticException()</B></A> - 
 Constructor for exception java.lang.<A HREF="./java/lang/ArithmeticException.html" title="class in java.lang">ArithmeticException</A>
 <DD>&nbsp;
+<DT><A HREF="./java/lang/System.html#arraycopy(java.lang.Object, int, java.lang.Object, int, int)"><B>arraycopy(Object, int, Object, int, int)</B></A> - 
+Static method in class java.lang.<A HREF="./java/lang/System.html" title="class in java.lang">System</A>
+<DD>Copies one array to another.
 <DT><A HREF="./java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang"><B>ArrayIndexOutOfBoundsException</B></A> - Exception in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/ArrayIndexOutOfBoundsException.html#ArrayIndexOutOfBoundsException()"><B>ArrayIndexOutOfBoundsException()</B></A> - 
 Constructor for exception java.lang.<A HREF="./java/lang/ArrayIndexOutOfBoundsException.html" title="class in java.lang">ArrayIndexOutOfBoundsException</A>
 <DD>&nbsp;
-<DT><A HREF="./java/util/ArrayList.html" title="class in java.util"><B>ArrayList</B></A> - Class in <A HREF="./java/util/package-summary.html">java.util</A><DD>&nbsp;<DT><A HREF="./java/util/ArrayList.html#ArrayList(int)"><B>ArrayList(int)</B></A> - 
+<DT><A HREF="./java/util/ArrayList.html" title="class in java.util"><B>ArrayList</B></A> - Class in <A HREF="./java/util/package-summary.html">java.util</A><DD>An expandable array.<DT><A HREF="./java/util/ArrayList.html#ArrayList(int)"><B>ArrayList(int)</B></A> - 
 Constructor for class java.util.<A HREF="./java/util/ArrayList.html" title="class in java.util">ArrayList</A>
 <DD>&nbsp;
 <DT><A HREF="./java/util/ArrayList.html#ArrayList(java.lang.Object[])"><B>ArrayList(Object[])</B></A> - 
@@ -271,11 +306,20 @@ Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in
 <DD>Arc tangent function valid to the four quadrants
  y and x can have any value without sigificant precision loss
  atan2(0,0) returns 0.
+<DT><A HREF="./javax/microedition/lcdui/Graphics.html#autoRefresh(boolean)"><B>autoRefresh(boolean)</B></A> - 
+Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/InputStream.html#available()"><B>available()</B></A> - 
 Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
 <DD>Returns the number of bytes that can be read (or skipped over) from
  this input stream without blocking by the next caller of a method for
  this input stream.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#available(int)"><B>available(int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Indicate the number of bytes available to be read.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#available()"><B>available()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/BTInputStream.html#available()"><B>available()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm">BTInputStream</A>
 <DD>returns the number of bytes in the input buffer - can be read without blocking
@@ -290,6 +334,15 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class
 <DT><A HREF="./lejos/nxt/MotorPort.html#B"><B>B</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>MotorPort B.
+<DT><A HREF="./lejos/nxt/RCXLink.html#B"><B>B</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#B"><B>B</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#B"><B>B</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Command.html#BACK"><B>BACK</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Command.html" title="class in javax.microedition.lcdui">Command</A>
 <DD>&nbsp;
@@ -302,20 +355,44 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#backward()"><B>backward()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Moves the NXT robot backward until stop() is called.
+<DT><A HREF="./lejos/nxt/BasicMotor.html#backward()"><B>backward()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Causes motor to rotate backwards.
 <DT><A HREF="./lejos/nxt/Motor.html#backward()"><B>backward()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Causes motor to rotate backwards.
-<DT><A HREF="./lejos/nxt/Battery.html" title="class in lejos.nxt"><B>Battery</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Provides access to Battery.<DT><A HREF="./lejos/nxt/Sound.html#beep()"><B>beep()</B></A> - 
+<DT><A HREF="./lejos/nxt/RCXLink.html#backward(int)"><B>backward(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#backwardStep(int)"><B>backwardStep(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>BasicMotor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>An abstraction for a motor without a tachometer,
+ such as an RCX motor.<DT><A HREF="./lejos/nxt/BasicMotor.html#BasicMotor()"><B>BasicMotor()</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>BasicMotorPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>An abstraction for a motor port that supports RCX
+ type motors, but not NXT motors with tachometers.<DT><A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>BasicSensorPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>An abstraction for a sensor port that supports 
+ setting and retrieving types and modes of sensors.<DT><A HREF="./lejos/nxt/Battery.html" title="class in lejos.nxt"><B>Battery</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Provides access to Battery.<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#Battery"><B>Battery</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#BEEP"><B>BEEP</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>NOTE: The BEEP macro is unreliable.
+<DT><A HREF="./lejos/nxt/RCXLink.html#beep()"><B>beep()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/Sound.html#beep()"><B>beep()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
-<DD>Beeps once - not yet implemented.
+<DD>Beeps once.
 <DT><A HREF="./lejos/nxt/Sound.html#beepSequence()"><B>beepSequence()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>Downward tones.
 <DT><A HREF="./lejos/nxt/Sound.html#beepSequenceUp()"><B>beepSequenceUp()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
-<DD>Downward tones.
+<DD>Upward tones.
 <DT><A HREF="./lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>Behavior</B></A> - Interface in <A HREF="./lejos/subsumption/package-summary.html">lejos.subsumption</A><DD>The Behavior interface represents an object embodying a specific
- behavior belonging to a robot.<DT><A HREF="./java/util/BitSet.html" title="class in java.util"><B>BitSet</B></A> - Class in <A HREF="./java/util/package-summary.html">java.util</A><DD>Represents a long set of bits.<DT><A HREF="./java/util/BitSet.html#BitSet(int)"><B>BitSet(int)</B></A> - 
+ behavior belonging to a robot.<DT><A HREF="./lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>Behavior2</B></A> - Interface in <A HREF="./lejos/subsumption/package-summary.html">lejos.subsumption</A><DD>This interface works with Aribtrator2.<DT><A HREF="./java/util/BitSet.html" title="class in java.util"><B>BitSet</B></A> - Class in <A HREF="./java/util/package-summary.html">java.util</A><DD>Represents a long set of bits.<DT><A HREF="./java/util/BitSet.html#BitSet(int)"><B>BitSet(int)</B></A> - 
 Constructor for class java.util.<A HREF="./java/util/BitSet.html" title="class in java.util">BitSet</A>
 <DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#BLACK"><B>BLACK</B></A> - 
@@ -324,37 +401,77 @@ Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/
 <DT><A HREF="./lejos/nxt/TextMenu.html#blank"><B>blank</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/TextMenu.html" title="class in lejos.nxt">TextMenu</A>
 <DD>a blank line
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm"><B>Bluetooth</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Support for Bluetooth communications.<DT><A HREF="./lejos/nxt/comm/LCP.html#BOOT"><B>BOOT</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm"><B>Bluetooth</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Provides Bluetooth comminications.<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#Bluetooth()"><B>Bluetooth()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#bluetoothAddress"><B>bluetoothAddress</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE"><B>BOOLEANMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#BOOT"><B>BOOT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm"><B>BTConnection</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Represents a Bluetooth Stream Connection.<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btGetCmdMode()"><B>btGetCmdMode()</B></A> - 
-Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>Low-level nethod to get the BC4 chip mode - does not work.
-<DT><A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm"><B>BTInputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Extends InputStream for BlueTooth; implements available()<DT><A HREF="./lejos/nxt/comm/BTInputStream.html#BTInputStream()"><B>BTInputStream()</B></A> - 
-Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm">BTInputStream</A>
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#BOOT"><B>BOOT</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>BTOutputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/comm/BTOutputStream.html#BTOutputStream()"><B>BTOutputStream()</B></A> - 
-Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm">BTOutputStream</A>
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#BRAKE"><B>BRAKE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Use run/brake instead of run/float in PWM
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#BT_PENDING_INPUT"><B>BT_PENDING_INPUT</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#BT_PENDING_OUTPUT"><B>BT_PENDING_OUTPUT</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm"><B>BTConnection</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Provides a Bluetooth connection
+ Supports both packetized and stream based commincation.<DT><A HREF="./lejos/nxt/comm/BTConnection.html#BTConnection(int)"><B>BTConnection(int)</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btGetBC4CmdMode()"><B>btGetBC4CmdMode()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-level method to get the BC4 chip mode
+<DT><A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm"><B>BTInputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Extends InputStream for BlueTooth; implements available()<DT><A HREF="./lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>BTOutputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Implements an OutputStream over Bluetooth.<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btPending()"><B>btPending()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-Level method to access the Bluetooth interface.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btRead(byte[], int, int)"><B>btRead(byte[], int, int)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-level method to read BT data
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btReceive(byte[])"><B>btReceive(byte[])</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Low-level method to receive BT replies or data
-<DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>BTRemoteDevice</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html#BTRemoteDevice(char[], int, byte[], byte[])"><B>BTRemoteDevice(char[], int, byte[], byte[])</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>BTRemoteDevice</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Represents a remote Bluetooth device.<DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html#BTRemoteDevice(char[], int, byte[], byte[])"><B>BTRemoteDevice(char[], int, byte[], byte[])</B></A> - 
 Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm">BTRemoteDevice</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSend(byte[], int)"><B>btSend(byte[], int)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Low-level method to send a BT command or data
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSetCmdMode(int)"><B>btSetCmdMode(int)</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSetArmCmdMode(int)"><B>btSetArmCmdMode(int)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Low-level method to switch BC4 chip between command
  and data (stream) mode.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSetCmdMode(int)"><B>btSetCmdMode(int)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set the BC4 mode, and wait for that mode to be confirmed by the chip.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSetResetHigh()"><B>btSetResetHigh()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-level method to take the BC4 reset line high
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btSetResetLow()"><B>btSetResetLow()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-level method to take the BC4 reset line low
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btStartADConverter()"><B>btStartADConverter()</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>Low-level method to start ADC converter - does not wok.
+<DD>Low-level method to start ADC converter
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#btWrite(byte[], int, int)"><B>btWrite(byte[], int, int)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Low-level method to write BT data
 <DT><A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt"><B>Button</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for an NXT button.<DT><A HREF="./lejos/nxt/Poll.html#BUTTON_MASK_SHIFT"><B>BUTTON_MASK_SHIFT</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util"><B>ButtonCounter</B></A> - Class in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>This is class is for data entry using the NXT keyboard.<DT><A HREF="./lejos/util/ButtonCounter.html#ButtonCounter()"><B>ButtonCounter()</B></A> - 
+Constructor for class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><B>ButtonListener</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for receiver of button events.<DT><A HREF="./lejos/nxt/ButtonListener.html#buttonPressed(lejos.nxt.Button)"><B>buttonPressed(Button)</B></A> - 
 Method in interface lejos.nxt.<A HREF="./lejos/nxt/ButtonListener.html" title="interface in lejos.nxt">ButtonListener</A>
 <DD>&nbsp;
@@ -367,9 +484,12 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="clas
 <DT><A HREF="./lejos/nxt/Sound.html#buzz()"><B>buzz()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>Low buzz
-<DT><A HREF="./java/io/File.html#BYTES_PER_PAGE"><B>BYTES_PER_PAGE</B></A> - 
-Static variable in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>Indicates the # of bytes per page in the Flash class.
+<DT><A HREF="./lejos/nxt/Flash.html#BYTES_PER_PAGE"><B>BYTES_PER_PAGE</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A>
+<DD>Indicates the # of bytes per page in a page of Flash memory.
+<DT><A HREF="./lejos/nxt/RCXLink.html#bytesAvailable()"><B>bytesAvailable()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_C_"><!-- --></A><H2>
@@ -381,15 +501,27 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class
 <DT><A HREF="./lejos/nxt/MotorPort.html#C"><B>C</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>MotorPort C.
+<DT><A HREF="./lejos/nxt/RCXLink.html#C"><B>C</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#C"><B>C</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#C"><B>C</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Sound.html#C2"><B>C2</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
-<DD>Play a system sound - not yet implemented.
+<DD>Play a system sound.
 <DT><A HREF="./lejos/navigation/CompassPilot.html#calibrate()"><B>calibrate()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/navigation/CompassNavigator.html#calibrateCompass()"><B>calibrateCompass()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassNavigator.html" title="class in lejos.navigation">CompassNavigator</A>
 <DD>Robot rotates 360 degrees while calibrating the compass sensor
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#calibratedValue"><B>calibratedValue</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>Currently unused.
 <DT><A HREF="./lejos/nxt/LightSensor.html#calibrateHigh()"><B>calibrateHigh()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>
 <DD>call this method whtn the light sensor is reading the high value - used by reaeValue
@@ -423,6 +555,10 @@ Variable in class java.util.<A HREF="./java/util/ArrayList.html" title="class in
 <DT><A HREF="./java/util/Vector.html#capacityIncrement"><B>capacityIncrement</B></A> - 
 Variable in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#capture()"><B>capture()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Set capture mode
+ Set the sensor into capture mode.
 <DT><A HREF="./java/lang/Math.html#ceil(double)"><B>ceil(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Returns the smallest (closest to negative infinity) double value that is not
@@ -430,6 +566,9 @@ Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in
 <DT><A HREF="./lejos/nxt/LCD.html#CELL_WIDTH"><B>CELL_WIDTH</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE"><B>CELSIUSMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Display.html#CHAR_HEIGHT"><B>CHAR_HEIGHT</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
 <DD>&nbsp;
@@ -492,8 +631,7 @@ Method in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class i
 <DD>Closes this data output stream.
 <DT><A HREF="./java/io/FileOutputStream.html#close()"><B>close()</B></A> - 
 Method in class java.io.<A HREF="./java/io/FileOutputStream.html" title="class in java.io">FileOutputStream</A>
-<DD>write the buffer to flash memory and update the file parameters in flash
- Resets pointers, so file can be writen again from beginning with the same output stream.
+<DD>Write the buffer to flash memory and update the file parameters in flash.
 <DT><A HREF="./java/io/InputStream.html#close()"><B>close()</B></A> - 
 Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
 <DD>Closes this input stream and releases any system resources associated
@@ -507,16 +645,45 @@ Method in interface javax.microedition.io.<A HREF="./javax/microedition/io/Strea
 <DD>Close the stream connection
 <DT><A HREF="./lejos/nxt/comm/BTConnection.html#close()"><B>close()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
-<DD>&nbsp;
+<DD>Close the connection.
 <DT><A HREF="./lejos/nxt/comm/BTInputStream.html#close()"><B>close()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm">BTInputStream</A>
 <DD>the stream is restored to its original state - ready to receive more data.
+<DT><A HREF="./lejos/nxt/comm/Debug.html#close()"><B>close()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#CLOSE"><B>CLOSE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTComm.html#close()"><B>close()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#close()"><B>close()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Call the close() command when your program ends, otherwise you
+ will have to turn the NXT brick off/on before you run another
+ program using iCommand.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#CLOSE"><B>CLOSE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/USBConnection.html#close()"><B>close()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#close()"><B>close()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Close this packet handler and all lower layers.
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#close()"><B>close()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Closes this RCXPort, stopping the Listener thread.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#closeConnection(byte)"><B>closeConnection(byte)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Close an open connection
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#closePort()"><B>closePort()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Closes the  port to disallow incoming connections.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#closeStream()"><B>closeStream()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Close the stream for this connection.
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#cmdListener"><B>cmdListener</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -551,8 +718,7 @@ Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/I
 <DT><A HREF="./lejos/navigation/CompassPilot.html#compass"><B>compass</B></A> - 
 Variable in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/navigation/CompassNavigator.html" title="class in lejos.navigation"><B>CompassNavigator</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>The CompassPilot class, like its superclass, can keep track of the robot position and the direction angle it faces; It uses a compassPpilot bject to control NXT robot movements.<br>
- The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.<DT><A HREF="./lejos/navigation/CompassNavigator.html#CompassNavigator(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor)"><B>CompassNavigator(SensorPort, float, float, Motor, Motor)</B></A> - 
+<DT><A HREF="./lejos/navigation/CompassNavigator.html" title="class in lejos.navigation"><B>CompassNavigator</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>The CompassNavigatort class, like its superclass, can keep track of the robot position and the direction angle it faces.<DT><A HREF="./lejos/navigation/CompassNavigator.html#CompassNavigator(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor)"><B>CompassNavigator(SensorPort, float, float, Motor, Motor)</B></A> - 
 Constructor for class lejos.navigation.<A HREF="./lejos/navigation/CompassNavigator.html" title="class in lejos.navigation">CompassNavigator</A>
 <DD>Allocates a CompassNavigator objects and its  CompassPilot object and initializes it with the proper motors and dimensions.
 <DT><A HREF="./lejos/navigation/CompassNavigator.html#CompassNavigator(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor, boolean)"><B>CompassNavigator(SensorPort, float, float, Motor, Motor, boolean)</B></A> - 
@@ -564,7 +730,7 @@ Constructor for class lejos.navigation.<A HREF="./lejos/navigation/CompassNaviga
 <DT><A HREF="./lejos/navigation/CompassNavigator.html#CompassNavigator(lejos.navigation.CompassPilot)"><B>CompassNavigator(CompassPilot)</B></A> - 
 Constructor for class lejos.navigation.<A HREF="./lejos/navigation/CompassNavigator.html" title="class in lejos.navigation">CompassNavigator</A>
 <DD>To use this constructor, you must first create a compass pilot.
-<DT><A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation"><B>CompassPilot</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>&nbsp;<DT><A HREF="./lejos/navigation/CompassPilot.html#CompassPilot(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor)"><B>CompassPilot(SensorPort, float, float, Motor, Motor)</B></A> - 
+<DT><A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation"><B>CompassPilot</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>A Pilot that keeps track of direction using a CompassSensor.<DT><A HREF="./lejos/navigation/CompassPilot.html#CompassPilot(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor)"><B>CompassPilot(SensorPort, float, float, Motor, Motor)</B></A> - 
 Constructor for class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A>
 <DD>Allocates a CompasPilot object, and sets the physical parameters of the NXT robot.
 <DT><A HREF="./lejos/navigation/CompassPilot.html#CompassPilot(lejos.nxt.SensorPort, float, float, lejos.nxt.Motor, lejos.nxt.Motor, boolean)"><B>CompassPilot(SensorPort, float, float, Motor, Motor, boolean)</B></A> - 
@@ -585,15 +751,46 @@ Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html"
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#connect(byte[])"><B>connect(byte[])</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Connects to a Device by it's Byte-Device-Address Array
+ Uses default pin "1234"
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#connect(byte[], byte[])"><B>connect(byte[], byte[])</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Connects to a Device by it's Byte-Device-Address Array
 <DT><A HREF="./java/util/ArrayList.html#contains(java.lang.Object)"><B>contains(Object)</B></A> - 
 Method in class java.util.<A HREF="./java/util/ArrayList.html" title="class in java.util">ArrayList</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#continuous()"><B>continuous()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Switch to continuous ping mode.
+<DT><A HREF="./lejos/nxt/BasicMotorPort.html#controlMotor(int, int)"><B>controlMotor(int, int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/MotorPort.html#controlMotor(int, int)"><B>controlMotor(int, int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>Low-level method to control a motor.
+<DT><A HREF="./lejos/nxt/RCXPlexedMotorPort.html#controlMotor(int, int)"><B>controlMotor(int, int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXRemoteMotorPort.html#controlMotor(int, int)"><B>controlMotor(int, int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html#controlMotor(int, int)"><B>controlMotor(int, int)</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Math.html#cos(double)"><B>cos(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Cosine function using a Chebyshev-Pade approximation.
+<DT><A HREF="./lejos/util/ButtonCounter.html#count(java.lang.String)"><B>count(String)</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Start counting; parameter string is displayed; use it to identify this  particular call <br>
+returns when ESC or ENTER button is pressed <br>
+Hold Enter and left or right to decrease count,  otherwise it increases <br>
+counters are reset when this method is called.
+<DT><A HREF="./lejos/util/ButtonCounter.html#count()"><B>count()</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>called by count( string)
+<DT><A HREF="./lejos/util/ButtonCounter.html#count(java.lang.String, int, int)"><B>count(String, int, int)</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Initializes values of left count and right count.
 <DT><A HREF="./lejos/util/ArrayRecycler.html#createInstance()"><B>createInstance()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/ArrayRecycler.html" title="class in lejos.util">ArrayRecycler</A>
 <DD>&nbsp;
@@ -610,28 +807,49 @@ Static method in class java.lang.<A HREF="./java/lang/Thread.html" title="class
 <DT><A HREF="./java/lang/System.html#currentTimeMillis()"><B>currentTimeMillis()</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/System.html" title="class in java.lang">System</A>
 <DD>Current time expressed in milliseconds.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#CUSTOM"><B>CUSTOM</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_D_"><!-- --></A><H2>
 <B>D</B></H2>
 <DL>
-<DT><A HREF="./java/io/DataInputStream.html" title="class in java.io"><B>DataInputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>&nbsp;<DT><A HREF="./java/io/DataInputStream.html#DataInputStream(java.io.InputStream)"><B>DataInputStream(InputStream)</B></A> - 
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#D"><B>D</B></A> - 
+Variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
+<DT><A HREF="./java/io/DataInputStream.html" title="class in java.io"><B>DataInputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>Reads java data types transmitted as bytes over an InputStream.<DT><A HREF="./java/io/DataInputStream.html#DataInputStream(java.io.InputStream)"><B>DataInputStream(InputStream)</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>Datalogger</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Datalogger class; stores float values then  then transmits  via bluetooth or usb<br>
- works with DataViewer   in pctools.<DT><A HREF="./lejos/nxt/Datalogger.html#Datalogger()"><B>Datalogger()</B></A> - 
-Constructor for class lejos.nxt.<A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
+<DT><A HREF="./lejos/util/Datalogger.html" title="class in lejos.util"><B>Datalogger</B></A> - Class in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>Datalogger class; stores float values then  then transmits  via bluetooth or usb<br>
+ works with DataViewer   in pctools.<DT><A HREF="./lejos/util/Datalogger.html#Datalogger()"><B>Datalogger()</B></A> - 
+Constructor for class lejos.util.<A HREF="./lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A>
 <DD>&nbsp;
-<DT><A HREF="./java/io/DataOutputStream.html" title="class in java.io"><B>DataOutputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>&nbsp;<DT><A HREF="./java/io/DataOutputStream.html#DataOutputStream(java.io.OutputStream)"><B>DataOutputStream(OutputStream)</B></A> - 
+<DT><A HREF="./java/io/DataOutputStream.html" title="class in java.io"><B>DataOutputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>Transmits java data types as bytes over an OutputStream.<DT><A HREF="./java/io/DataOutputStream.html#DataOutputStream(java.io.OutputStream)"><B>DataOutputStream(OutputStream)</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>Debug</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>This class provides a simple way of sending debug output for viewing on a 
+ PC.<DT><A HREF="./lejos/nxt/comm/Debug.html#Debug()"><B>Debug()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#DECIMAL"><B>DECIMAL</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#defaultPin"><B>defaultPin</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#defineAndRun(byte[], int)"><B>defineAndRun(byte[], int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#defineMacro(int, byte[])"><B>defineMacro(int, byte[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/File.html#defrag()"><B>defrag()</B></A> - 
 Static method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>assumptions: the files[] array has no nulls, and is in increasing order by page_location
-  this scheme moves moves each file down to fill in the empty pages.
+<DD>Defrag the file system.
+<DT><A HREF="./lejos/nxt/RCXLink.html#DELAY"><B>DELAY</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/File.html#delete()"><B>delete()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
 <DD>Deletes the file represented by this File object.
@@ -653,9 +871,15 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 <DT><A HREF="./lejos/nxt/comm/LCP.html#DELETE"><B>DELETE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#DELETE"><B>DELETE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#DELETE_USER_FLASH"><B>DELETE_USER_FLASH</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH"><B>DELETE_USER_FLASH</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Choice.html#deleteAll()"><B>deleteAll()</B></A> - 
 Method in interface javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui">Choice</A>
 <DD>&nbsp;
@@ -668,12 +892,30 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/For
 <DT><A HREF="./javax/microedition/lcdui/List.html#deleteAll()"><B>deleteAll()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui">List</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#deleteFlashMemory()"><B>deleteFlashMemory()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>Deletes all user programs and data in FLASH memory
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#deleteUserFlash()"><B>deleteUserFlash()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Deletes user flash memory (not including system modules).
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>DeviceInfo</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Represents a remote NXT accessed via LCP.<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#DeviceInfo()"><B>DeviceInfo()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#DIRECT_COMMAND_NOREPLY"><B>DIRECT_COMMAND_NOREPLY</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY"><B>DIRECT_COMMAND_NOREPLY</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#DIRECT_COMMAND_REPLY"><B>DIRECT_COMMAND_REPLY</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY"><B>DIRECT_COMMAND_REPLY</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#DIRECTORY_FULL"><B>DIRECTORY_FULL</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui"><B>Display</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/LCD.html#DISPLAY_CHAR_DEPTH"><B>DISPLAY_CHAR_DEPTH</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
 <DD>&nbsp;
@@ -749,6 +991,9 @@ Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in
 <DT><A HREF="./java/lang/Math.html#E"><B>E</B></A> - 
 Static variable in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#EEPROM_BUFFER"><B>EEPROM_BUFFER</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/Vector.html#elementAt(int)"><B>elementAt(int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
@@ -843,16 +1088,19 @@ Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in
 <A NAME="_F_"><!-- --></A><H2>
 <B>F</B></H2>
 <DL>
-<DT><A HREF="./java/io/File.html" title="class in java.io"><B>File</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>&nbsp;<DT><A HREF="./java/io/File.html#File(java.lang.String)"><B>File(String)</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE"><B>FAHRENHEITMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./java/io/File.html" title="class in java.io"><B>File</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>Implements a file system using pages of flash memory.<DT><A HREF="./java/io/File.html#File(java.lang.String)"><B>File(String)</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
 <DD>Creates a new File object.
 <DT><A HREF="./lejos/nxt/comm/LCP.html#FILE_NOT_FOUND"><B>FILE_NOT_FOUND</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
-<DT><A HREF="./java/io/FileInputStream.html" title="class in java.io"><B>FileInputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>&nbsp;<DT><A HREF="./java/io/FileInputStream.html#FileInputStream(java.io.File)"><B>FileInputStream(File)</B></A> - 
+<DT><A HREF="./java/io/FileInputStream.html" title="class in java.io"><B>FileInputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>Reads a stream of bytes from a file.<DT><A HREF="./java/io/FileInputStream.html#FileInputStream(java.io.File)"><B>FileInputStream(File)</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/FileInputStream.html" title="class in java.io">FileInputStream</A>
 <DD>&nbsp;
-<DT><A HREF="./java/io/FileOutputStream.html" title="class in java.io"><B>FileOutputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>&nbsp;<DT><A HREF="./java/io/FileOutputStream.html#FileOutputStream(java.io.File)"><B>FileOutputStream(File)</B></A> - 
+<DT><A HREF="./java/io/FileOutputStream.html" title="class in java.io"><B>FileOutputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>Writes a stream of bytes to a file.<DT><A HREF="./java/io/FileOutputStream.html#FileOutputStream(java.io.File)"><B>FileOutputStream(File)</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/FileOutputStream.html" title="class in java.io">FileOutputStream</A>
 <DD>create a new OutputStream to write to this file, starting  at the beginning of the file.
 <DT><A HREF="./java/io/FileOutputStream.html#FileOutputStream(java.io.File, boolean)"><B>FileOutputStream(File, boolean)</B></A> - 
@@ -867,10 +1115,22 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Gra
 <DT><A HREF="./lejos/nxt/comm/LCP.html#FIND_FIRST"><B>FIND_FIRST</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#FIND_FIRST"><B>FIND_FIRST</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#FIND_NEXT"><B>FIND_NEXT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>&nbsp;<DT><A HREF="./java/lang/Float.html" title="class in java.lang"><B>Float</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>Minimal Float implementation that supports 
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#FIND_NEXT"><B>FIND_NEXT</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>FirmwareInfo</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Firmware information for a remote NXT accessed via LCP.<DT><A HREF="./lejos/nxt/comm/FirmwareInfo.html#FirmwareInfo()"><B>FirmwareInfo()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/FirmwareInfo.html#firmwareVersion"><B>firmwareVersion</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Read and write access to flash memory in pages.<DT><A HREF="./java/lang/Float.html" title="class in java.lang"><B>Float</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>Minimal Float implementation that supports 
  floatToIntBits and intBitsToFloat<DT><A HREF="./java/lang/Float.html#floatToIntBits(float)"><B>floatToIntBits(float)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Float.html" title="class in java.lang">Float</A>
 <DD>Returns the bit represention of a single-float value.
@@ -878,9 +1138,15 @@ Static method in class java.lang.<A HREF="./java/lang/Float.html" title="class i
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Returns the largest (closest to positive infinity) double value that is not
  greater than the argument and is equal to a mathematical integer.
+<DT><A HREF="./lejos/nxt/BasicMotor.html#flt()"><B>flt()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Causes motor to float.
 <DT><A HREF="./lejos/nxt/Motor.html#flt()"><B>flt()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Causes motor to float.
+<DT><A HREF="./lejos/nxt/RCXLink.html#fltMotor(int)"><B>fltMotor(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/DataOutputStream.html#flush()"><B>flush()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A>
 <DD>Flushes this data output stream.
@@ -891,6 +1157,12 @@ Method in class java.io.<A HREF="./java/io/FileOutputStream.html" title="class i
 Method in class java.io.<A HREF="./java/io/OutputStream.html" title="class in java.io">OutputStream</A>
 <DD>Flushes this output stream and forces any buffered output bytes 
  to be written out.
+<DT><A HREF="./lejos/nxt/comm/BTOutputStream.html#flush()"><B>flush()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm">BTOutputStream</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#flush()"><B>flush()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Font.html" title="class in javax.microedition.lcdui"><B>Font</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./javax/microedition/lcdui/Font.html#Font()"><B>Font()</B></A> - 
 Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Font.html" title="class in javax.microedition.lcdui">Font</A>
 <DD>&nbsp;
@@ -922,12 +1194,24 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#forward()"><B>forward()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Moves the NXT robot forward until stop() is called.
+<DT><A HREF="./lejos/nxt/BasicMotor.html#forward()"><B>forward()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Causes motor to rotate forward.
 <DT><A HREF="./lejos/nxt/Motor.html#forward()"><B>forward()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Causes motor to rotate forward.
+<DT><A HREF="./lejos/nxt/RCXLink.html#forward(int)"><B>forward(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#forwardStep(int)"><B>forwardStep(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#freeFlash"><B>freeFlash</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/File.html#freeMemory()"><B>freeMemory()</B></A> - 
 Static method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>&nbsp;
+<DD>Returns to total free memory in the flash file system.
 <DT><A HREF="./java/lang/Runtime.html#freeMemory()"><B>freeMemory()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Runtime.html" title="class in java.lang">Runtime</A>
 <DD>Return the amount of free memory.on the heap
@@ -939,6 +1223,9 @@ Method in class java.lang.<A HREF="./java/lang/Runtime.html" title="class in jav
 <DT><A HREF="./javax/microedition/lcdui/Gauge.html" title="class in javax.microedition.lcdui"><B>Gauge</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./javax/microedition/lcdui/Gauge.html#Gauge(java.lang.String, boolean, int, int)"><B>Gauge(String, boolean, int, int)</B></A> - 
 Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Gauge.html" title="class in javax.microedition.lcdui">Gauge</A>
 <DD>&nbsp;
+<DT><A HREF="./java/lang/System.html#gc()"><B>gc()</B></A> - 
+Static method in class java.lang.<A HREF="./java/lang/System.html" title="class in java.lang">System</A>
+<DD>Collect garbage
 <DT><A HREF="./java/util/ArrayList.html#get(int)"><B>get(int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/ArrayList.html" title="class in java.util">ArrayList</A>
 <DD>&nbsp;
@@ -957,21 +1244,39 @@ Method in class lejos.util.<A HREF="./lejos/util/RecyclableArray.html" title="cl
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_BATTERY_LEVEL"><B>GET_BATTERY_LEVEL</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL"><B>GET_BATTERY_LEVEL</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_CURRENT_PROGRAM_NAME"><B>GET_CURRENT_PROGRAM_NAME</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME"><B>GET_CURRENT_PROGRAM_NAME</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_DEVICE_INFO"><B>GET_DEVICE_INFO</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO"><B>GET_DEVICE_INFO</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_FIRMWARE_VERSION"><B>GET_FIRMWARE_VERSION</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION"><B>GET_FIRMWARE_VERSION</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_INPUT_VALUES"><B>GET_INPUT_VALUES</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES"><B>GET_INPUT_VALUES</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#GET_OUTPUT_STATE"><B>GET_OUTPUT_STATE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE"><B>GET_OUTPUT_STATE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Motor.html#getActualSpeed()"><B>getActualSpeed()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>returns actualSpeed degrees per second,  calculated every 100 ms; negative value means motor is rotating backward
@@ -992,10 +1297,22 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html
 <DD>Returns the current angle the NXT robot is facing, relative to the +X axis direction; the +Y direction is 90 degrees.
 <DT><A HREF="./lejos/nxt/Motor.html#getBasePower()"><B>getBasePower()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
+<DD>for debugging
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#getBatteryLevel()"><B>getBatteryLevel()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/ColorSensor.html#getBlue()"><B>getBlue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>
 <DD>Returns the blue saturation of the color.
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#getBluetoothAddress()"><B>getBluetoothAddress()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>Get the bluetooth address of the remorte device
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#getBrickName()"><B>getBrickName()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>Get the  name of the remote brick
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getCalibrationData(byte[])"><B>getCalibrationData(byte[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Return 3 bytes of calibration data.
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#getCenteredX(java.lang.String)"><B>getCenteredX(String)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
@@ -1023,9 +1340,15 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html"
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#getConfirmation()"><B>getConfirmation()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getConnectionStatus()"><B>getConnectionStatus()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the status of all connections
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#getConstraints()"><B>getConstraints()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getContinuousInterval()"><B>getContinuousInterval()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Return the interval used in continuous mode.
 <DT><A HREF="./javax/microedition/lcdui/Display.html#getCurrent()"><B>getCurrent()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
 <DD>&nbsp;
@@ -1035,6 +1358,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ima
 <DT><A HREF="./lejos/nxt/I2CSensor.html#getData(int, byte[], int)"><B>getData(int, byte[], int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <DD>Executes an I2C read transaction and waits for the result.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getData(int, byte[], int)"><B>getData(int, byte[], int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/NXTSocket.html#getDataInputStream()"><B>getDataInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A>
 <DD>Returns the data input stream of the socket
@@ -1057,14 +1383,45 @@ Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" ti
 <DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html#getDeviceClass()"><B>getDeviceClass()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm">BTRemoteDevice</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#getDeviceInfo()"><B>getDeviceInfo()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/IRSeeker.html#getDirection()"><B>getDirection()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>
+<DD>Returns the direction of the target (1-9)
+ or zero if no target.
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#getDirection(int)"><B>getDirection(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Display.html#getDisplay()"><B>getDisplay()</B></A> - 
 Static method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/LCD.html#getDisplay()"><B>getDisplay()</B></A> - 
+Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getDistance()"><B>getDistance()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
-<DD>Return distance of object.
+<DD>Return distance to an object.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getDistances(int[])"><B>getDistances(int[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Return an array of 8 echo distances.
 <DT><A HREF="./lejos/nxt/Motor.html#getError()"><B>getError()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
+<DD>for degugging
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#getError()"><B>getError()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Get the last error.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getFactoryData(byte[])"><B>getFactoryData(byte[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Return 10 bytes of factory calibration data.
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#getFirmwareVersion()"><B>getFirmwareVersion()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#getFirmwareVersion()"><B>getFirmwareVersion()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>Return Lego firmware vserion
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#getFlashMemory()"><B>getFlashMemory()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getFriendlyName()"><B>getFriendlyName()</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
@@ -1096,6 +1453,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ima
 <DT><A HREF="./lejos/nxt/Button.html#getId()"><B>getId()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <DD>Return the ID of the button.
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#getId()"><B>getId()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#getId()"><B>getId()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Return the ID of the port.
@@ -1110,13 +1470,19 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 <DD>&nbsp;
 <DT><A HREF="./java/io/File.html#getIndex()"><B>getIndex()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>returns location of file in the files[] array
+<DD>Returns location of file in the files[] array
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#getIndicator()"><B>getIndicator()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/NXTSocket.html#getInputStream()"><B>getInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A>
 <DD>Returns the input stream associated with this socket
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#getInputStream()"><B>getInputStream()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Returns an input stream for this RCXPort.
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#getInputValues(int)"><B>getInputValues(int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getKnownDevice(java.lang.String)"><B>getKnownDevice(String)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Gets a Device of the BC4-Chips internal list of known Devices 
@@ -1137,12 +1503,21 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/Pilot.html#getLeftCount()"><B>getLeftCount()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>returns tachoCount of left motor; Positive value means motor has moved the robot forward;
+<DT><A HREF="./lejos/util/ButtonCounter.html#getLeftCount()"><B>getLeftCount()</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Use this method after counting is complete;
 <DT><A HREF="./lejos/util/RecyclableArray.html#getLength()"><B>getLength()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/RecyclableArray.html" title="class in lejos.util">RecyclableArray</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Motor.html#getLimitAngle()"><B>getLimitAngle()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Return the angle that a Motor is rotating to.
+<DT><A HREF="./lejos/rcxcomm/LLC.html#getLink()"><B>getLink()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Return the RCXLink object associated with LLC
+<DT><A HREF="./lejos/rcxcomm/Serial.html#getLink()"><B>getLink()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Get the RCXLink object associated with the Serial class
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getLocalAddress()"><B>getLocalAddress()</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>get the Bluetooth address of the local device
@@ -1164,12 +1539,24 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./javax/microedition/lcdui/Item.html#getMinimumWidth()"><B>getMinimumWidth()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html#getMode()"><B>getMode()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Returns the mode.
+<DT><A HREF="./lejos/nxt/BasicSensorPort.html#getMode()"><B>getMode()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Motor.html#getMode()"><B>getMode()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#getMode()"><B>getMode()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#getMode()"><B>getMode()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Returns mode compatible with Lego firmware.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getMode()"><B>getMode()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Returns the current operating mode of the sensor.
 <DT><A HREF="./java/io/File.html#getName()"><B>getName()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
 <DD>Returns the name of the file.
@@ -1181,12 +1568,24 @@ Method in class lejos.util.<A HREF="./lejos/util/AbstractRecyclable.html" title=
 Method in interface lejos.util.<A HREF="./lejos/util/Recyclable.html" title="interface in lejos.util">Recyclable</A>
 <DD>Must return Recyclable most recently set with
  <code>setNextRecyclable</code>.
+<DT><A HREF="./lejos/nxt/NXTCam.html#getNumberOfObjects()"><B>getNumberOfObjects()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<DD>Get the number of objects being tracked
+<DT><A HREF="./lejos/nxt/NXTCam.html#getObjectColor(int)"><B>getObjectColor(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<DD>Get the color number for a tracked object
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getOperatingMode()"><B>getOperatingMode()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the operating mode (stream breaking or not)
 <DT><A HREF="./lejos/nxt/comm/NXTSocket.html#getOutputStream()"><B>getOutputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A>
 <DD>Returns the output stream associated with this socket
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#getOutputStream()"><B>getOutputStream()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Returns an output stream for this RCXPort.
 <DT><A HREF="./java/io/File.html#getPage()"><B>getPage()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>&nbsp;
+<DD>Internal method used to get the page number of the start of the file.
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#getPaintRequest()"><B>getPaintRequest()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -1196,6 +1595,19 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#getPilot()"><B>getPilot()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getPin()"><B>getPin()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Return the pin to be used for pairing/connecting to the system
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getPortOpen()"><B>getPortOpen()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the port open status, 
+ i.e whether connections are being accepted
+<DT><A HREF="./lejos/nxt/BasicMotor.html#getPower()"><B>getPower()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Returns the current power setting.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getPower()"><B>getPower()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Return the current state of the module power
 <DT><A HREF="./lejos/nxt/Motor.html#getPower()"><B>getPower()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>&nbsp;
@@ -1214,9 +1626,18 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Com
 <DT><A HREF="./lejos/nxt/I2CSensor.html#getProductID()"><B>getProductID()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <DD>Return the sensor product identifier.
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#getProtocolVersion()"><B>getProtocolVersion()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>Return LCP protocol version
+<DT><A HREF="./lejos/nxt/NXTCam.html#getRectangle(int)"><B>getRectangle(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<DD>Get the rectangle containing a tracked object
 <DT><A HREF="./lejos/nxt/ColorSensor.html#getRed()"><B>getRed()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>
 <DD>Returns the red saturation of the color.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getResetCount()"><B>getResetCount()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/navigation/Pilot.html#getRight()"><B>getRight()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>returns right motor
@@ -1226,6 +1647,9 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/Pilot.html#getRightCount()"><B>getRightCount()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>returns tachoCount of the right motor; Positive value means motor has moved the robot forward;
+<DT><A HREF="./lejos/util/ButtonCounter.html#getRightCount()"><B>getRightCount()</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Use this method after counting is complete;
 <DT><A HREF="./java/lang/Runtime.html#getRuntime()"><B>getRuntime()</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Runtime.html" title="class in java.lang">Runtime</A>
 <DD>Get the single instance of us.
@@ -1253,14 +1677,30 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 <DT><A HREF="./lejos/nxt/I2CSensor.html#getSensorType()"><B>getSensorType()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <DD>Return the sensor type.
+<DT><A HREF="./lejos/nxt/IRSeeker.html#getSensorValue(int)"><B>getSensorValue(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>
+<DD>Returns value of sensor 1 - 5.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getSignalStrength(byte)"><B>getSignalStrength(byte)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the Bluetooth signal strength (link quality)
+ Higher values mean stronger signal.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#getSignalStrength()"><B>getSignalStrength()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Get the signal strength of this connection.
 <DT><A HREF="./lejos/navigation/Pilot.html#getSpeed()"><B>getSpeed()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>return current speed setting
 <DT><A HREF="./lejos/nxt/Motor.html#getSpeed()"><B>getSpeed()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Returns the current motor speed in degrees per second
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#getSpeed(int)"><B>getSpeed(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getStatus()"><B>getStatus()</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the persistent status value from the BC4 chip
+<DT><A HREF="./lejos/nxt/RCXLink.html#getStatus()"><B>getStatus()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Motor.html#getStopAngle()"><B>getStopAngle()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
@@ -1280,12 +1720,21 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Tic
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#getStrokeStyle()"><B>getStrokeStyle()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#getTachoCount(int)"><B>getTachoCount(int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Retrieves tacho count.
 <DT><A HREF="./lejos/nxt/Motor.html#getTachoCount()"><B>getTachoCount()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Returns the tachometer count.
 <DT><A HREF="./lejos/nxt/MotorPort.html#getTachoCount()"><B>getTachoCount()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>returns tachometer count
+<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html#getTachoCount()"><B>getTachoCount()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/Tachometer.html#getTachoCount()"><B>getTachoCount()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/MotorPort.html#getTachoCountById(int)"><B>getTachoCountById(int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>&nbsp;
@@ -1304,6 +1753,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Dis
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#getTimeout()"><B>getTimeout()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#getTimeOut()"><B>getTimeOut()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Getter for property timeOut.
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#getTitle()"><B>getTitle()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -1313,24 +1765,42 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/Pilot.html#getTurnRatio()"><B>getTurnRatio()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>return ratatio of Motor revolutions per 360 degree rotation of the robot
+<DT><A HREF="./lejos/nxt/BasicSensorPort.html#getType()"><B>getType()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#getType()"><B>getType()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#getType()"><B>getType()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Returns type compatible with Lego firmware.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#getUnits()"><B>getUnits()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Return a string indicating the type of units in use by the unit.
 <DT><A HREF="./javax/microedition/lcdui/Gauge.html#getValue()"><B>getValue()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Gauge.html" title="class in javax.microedition.lcdui">Gauge</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getVersion()"><B>getVersion()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Get the major and minor version of the BlueCore code
 <DT><A HREF="./lejos/nxt/I2CSensor.html#getVersion()"><B>getVersion()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <DD>Return the sensor version number.
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#getVisibility()"><B>getVisibility()</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>&nbsp;
+<DD>Get the visibility (discoverable) status of the device
 <DT><A HREF="./lejos/nxt/Battery.html#getVoltage()"><B>getVoltage()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Battery.html" title="class in lejos.nxt">Battery</A>
 <DD>Returns the battery voltage in volts.
+<DT><A HREF="./lejos/nxt/remote/RemoteBattery.html#getVoltage()"><B>getVoltage()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A>
+<DD>The NXT uses 6 batteries of 1.5 V each.
 <DT><A HREF="./lejos/nxt/Battery.html#getVoltageMilliVolt()"><B>getVoltageMilliVolt()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Battery.html" title="class in lejos.nxt">Battery</A>
 <DD>Returns the battery voltage in millivolts.
+<DT><A HREF="./lejos/nxt/remote/RemoteBattery.html#getVoltageMilliVolt()"><B>getVoltageMilliVolt()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A>
+<DD>The NXT uses 6 batteries of 1500 mV each.
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#getWidth()"><B>getWidth()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -1349,18 +1819,28 @@ Method in interface lejos.navigation.<A HREF="./lejos/navigation/Navigator.html"
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#getX()"><B>getX()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Returns the current x coordinate of the NXT.
+<DT><A HREF="./lejos/nxt/TiltSensor.html#getXAccel()"><B>getXAccel()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
+<DD>Acceleration along X axis.
 <DT><A HREF="./lejos/nxt/TiltSensor.html#getXTilt()"><B>getXTilt()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
-<DD>Returns X tilt value.
+<DD>Tilt of sensor along X-axis (see top of Mindsensors.com sensor for
+ diagram of axis).
 <DT><A HREF="./lejos/navigation/Navigator.html#getY()"><B>getY()</B></A> - 
 Method in interface lejos.navigation.<A HREF="./lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A>
 <DD>Returns the current y coordinate of the NXT.
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#getY()"><B>getY()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Returns the current y coordinate of the NXT.
+<DT><A HREF="./lejos/nxt/TiltSensor.html#getYAccel()"><B>getYAccel()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
+<DD>Acceleration along Y axis.
 <DT><A HREF="./lejos/nxt/TiltSensor.html#getYTilt()"><B>getYTilt()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
 <DD>Returns Y tilt value.
+<DT><A HREF="./lejos/nxt/TiltSensor.html#getZAccel()"><B>getZAccel()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
+<DD>Acceleration along Z axis.
 <DT><A HREF="./lejos/nxt/TiltSensor.html#getZTilt()"><B>getZTilt()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
 <DD>Returns Z tilt value.
@@ -1382,6 +1862,9 @@ Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/D
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui"><B>Graphics</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>Preliminary Graphics class for LCD Screen<DT><A HREF="./javax/microedition/lcdui/Graphics.html#Graphics()"><B>Graphics()</B></A> - 
 Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>GyroSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Support the HiTechnic Gyro sensor - untested.<DT><A HREF="./lejos/nxt/GyroSensor.html#GyroSensor(lejos.nxt.ADSensorPort)"><B>GyroSensor(ADSensorPort)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_H_"><!-- --></A><H2>
@@ -1393,6 +1876,9 @@ Method in class java.lang.<A HREF="./java/lang/Object.html" title="class in java
 <DT><A HREF="./java/util/Hashtable.html" title="class in java.util"><B>Hashtable</B></A> - Class in <A HREF="./java/util/package-summary.html">java.util</A><DD>Maps keys to objects.<DT><A HREF="./java/util/Hashtable.html#Hashtable()"><B>Hashtable()</B></A> - 
 Constructor for class java.util.<A HREF="./java/util/Hashtable.html" title="class in java.util">Hashtable</A>
 <DD>&nbsp;
+<DT><A HREF="./java/awt/Rectangle.html#height"><B>height</B></A> - 
+Variable in class java.awt.<A HREF="./java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#height"><B>height</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -1405,32 +1891,47 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./javax/microedition/lcdui/Screen.html#hideNotify()"><B>hideNotify()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Screen.html" title="class in javax.microedition.lcdui">Screen</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER"><B>HIGH_SPEED_BUFFER</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_I_"><!-- --></A><H2>
 <B>I</B></H2>
 <DL>
+<DT><A HREF="./lejos/nxt/I2CPort.html#i2cBusy()"><B>i2cBusy()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cBusy()"><B>i2cBusy()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to test if I2C connection is busy.
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cBusyById(int)"><B>i2cBusyById(int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to test if I2C connection is busy.
+<DT><A HREF="./lejos/nxt/I2CPort.html#i2cDisable()"><B>i2cDisable()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cDisable()"><B>i2cDisable()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to disable I2C on the port.
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cDisableById(int)"><B>i2cDisableById(int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to disable I2C on the port.
+<DT><A HREF="./lejos/nxt/I2CPort.html#i2cEnable()"><B>i2cEnable()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cEnable()"><B>i2cEnable()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to enable I2C on the port.
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cEnableById(int)"><B>i2cEnableById(int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to enable I2C on the port.
-<DT><A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstract class that implements common methods for all I2C sensors.<DT><A HREF="./lejos/nxt/I2CSensor.html#I2CSensor(lejos.nxt.I2CPort)"><B>I2CSensor(I2CPort)</B></A> - 
+<DT><A HREF="./lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>I2CPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a port that supports I2C sensors.<DT><A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstract class that implements common methods for all I2C sensors.<DT><A HREF="./lejos/nxt/I2CSensor.html#I2CSensor(lejos.nxt.I2CPort)"><B>I2CSensor(I2CPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/I2CPort.html#i2cStart(int, int, int, byte[], int, int)"><B>i2cStart(int, int, int, byte[], int, int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#i2cStart(int, int, int, byte[], int, int)"><B>i2cStart(int, int, int, byte[], int, int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Low-level method to start an I2C transaction.
@@ -1470,6 +1971,9 @@ Static variable in interface javax.microedition.lcdui.<A HREF="./javax/microedit
 <DT><A HREF="./java/io/DataInputStream.html#in"><B>in</B></A> - 
 Variable in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#inBoxes"><B>inBoxes</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/ArrayList.html#indexOf(java.lang.Object)"><B>indexOf(Object)</B></A> - 
 Method in class java.util.<A HREF="./java/util/ArrayList.html" title="class in java.util">ArrayList</A>
 <DD>&nbsp;
@@ -1479,6 +1983,12 @@ Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java
 <DT><A HREF="./java/util/Vector.html#indexOf(java.lang.Object, int)"><B>indexOf(Object, int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#init(lejos.nxt.SensorPort)"><B>init(SensorPort)</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Initialize LLC and set port
+<DT><A HREF="./lejos/rcxcomm/LLC.html#init()"><B>init()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Initialize LLC an
 <DT><A HREF="./lejos/util/AbstractRecyclable.html#init()"><B>init()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/AbstractRecyclable.html" title="class in lejos.util">AbstractRecyclable</A>
 <DD>Initializes the Recyclable.
@@ -1494,13 +2004,19 @@ Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#INITIAL_CAPS_WORD"><B>INITIAL_CAPS_WORD</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#inputPort"><B>inputPort</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/InputStream.html" title="class in java.io"><B>InputStream</B></A> - Class in <A HREF="./java/io/package-summary.html">java.io</A><DD>This abstract class is the superclass of all classes representing
  an input stream of bytes.<DT><A HREF="./java/io/InputStream.html#InputStream()"><B>InputStream()</B></A> - 
 Constructor for class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>InputValues</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Sensor input values for a remote NXT accessed via LCP.<DT><A HREF="./lejos/nxt/comm/InputValues.html#InputValues()"><B>InputValues()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#inquire(int, int, byte[])"><B>inquire(int, int, byte[])</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>&nbsp;
+<DD>Start a Bluetooth inquiry process
 <DT><A HREF="./javax/microedition/lcdui/Choice.html#insert(int, java.lang.String, javax.microedition.lcdui.Image)"><B>insert(int, String, Image)</B></A> - 
 Method in interface javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui">Choice</A>
 <DD>&nbsp;
@@ -1516,6 +2032,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 <DT><A HREF="./java/util/Vector.html#insertElementAt(java.lang.Object, int)"><B>insertElementAt(Object, int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#INSUFFICIENT_MEMORY"><B>INSUFFICIENT_MEMORY</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Float.html#intBitsToFloat(int)"><B>intBitsToFloat(int)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Float.html" title="class in java.lang">Float</A>
 <DD>Returns the single-float corresponding to a given bit represention.
@@ -1543,9 +2062,24 @@ Constructor for exception java.io.<A HREF="./java/io/IOException.html" title="cl
 Constructor for exception java.io.<A HREF="./java/io/IOException.html" title="class in java.io">IOException</A>
 <DD>Constructs an <code>IOException</code> with the specified detail
  message.
+<DT><A HREF="./lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>IRSeeker</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>HiTechnic IRSeeker sensor - untested.<DT><A HREF="./lejos/nxt/IRSeeker.html#IRSeeker(lejos.nxt.I2CPort)"><B>IRSeeker(I2CPort)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#isAckAvailable()"><B>isAckAvailable()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>Check if an Ack is available
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#isAckAvailable()"><B>isAckAvailable()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Check if an ack is available
 <DT><A HREF="./java/lang/Thread.html#isAlive()"><B>isAlive()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html#isBackward()"><B>isBackward()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Return true if motor is backward.
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#isCalibrated"><B>isCalibrated</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Thread.html#isDaemon()"><B>isDaemon()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>Set the daemon flag.
@@ -1555,6 +2089,12 @@ Method in class java.util.<A HREF="./java/util/ArrayList.html" title="class in j
 <DT><A HREF="./java/util/Vector.html#isEmpty()"><B>isEmpty()</B></A> - 
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html#isFloating()"><B>isFloating()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Returns true iff the motor is in float mode.
+<DT><A HREF="./lejos/nxt/BasicMotor.html#isForward()"><B>isForward()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Return true if motor is forward.
 <DT><A HREF="./javax/microedition/lcdui/Item.html#isInteractive()"><B>isInteractive()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <DD>&nbsp;
@@ -1573,9 +2113,24 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#isMoving()"><B>isMoving()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>returns true iff the robot is moving under power
+<DT><A HREF="./lejos/nxt/BasicMotor.html#isMoving()"><B>isMoving()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Returns true iff the motor is in motion.
 <DT><A HREF="./lejos/nxt/Motor.html#isMoving()"><B>isMoving()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#isPacketAvailable()"><B>isPacketAvailable()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>Check if a packet is available
+<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html#isPacketAvailable()"><B>isPacketAvailable()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<DD>Check if a packet is available.
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#isPacketAvailable()"><B>isPacketAvailable()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Check if a packet is available
+<DT><A HREF="./lejos/rcxcomm/Serial.html#isPacketAvailable()"><B>isPacketAvailable()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Test if a packet is available
 <DT><A HREF="./lejos/nxt/Button.html#isPressed()"><B>isPressed()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <DD>Check if the button is pressed.
@@ -1590,7 +2145,7 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html"
 <DD>returns true if robot is rotating to a specific direction
 <DT><A HREF="./lejos/nxt/Motor.html#isRotating()"><B>isRotating()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
-<DD>returns true when motor is rotating towarad a specified angle
+<DD>returns true when motor rotation task is not yet complete a specified angle
 <DT><A HREF="./javax/microedition/lcdui/Choice.html#isSelected(int)"><B>isSelected(int)</B></A> - 
 Method in interface javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui">Choice</A>
 <DD>&nbsp;
@@ -1600,9 +2155,18 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Cho
 <DT><A HREF="./javax/microedition/lcdui/List.html#isSelected(int)"><B>isSelected(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui">List</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#isSendError()"><B>isSendError()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Return the error status of the last send
+<DT><A HREF="./lejos/rcxcomm/LLC.html#isSending()"><B>isSending()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Indicate whether the last send is still active
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#isShown()"><B>isShown()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html#isStopped()"><B>isStopped()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Return true if motor is stopped.
 <DT><A HREF="./lejos/navigation/CompassPilot.html#isTraveling()"><B>isTraveling()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A>
 <DD>returns returns if the robot is travelling for a specific distance;
@@ -1623,7 +2187,7 @@ Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" ti
 <A NAME="_J_"><!-- --></A><H2>
 <B>J</B></H2>
 <DL>
-<DT><A HREF="./java/io/package-summary.html"><B>java.io</B></A> - package java.io<DD>Input/Output support<DT><A HREF="./java/lang/package-summary.html"><B>java.lang</B></A> - package java.lang<DD>Core Java classes<DT><A HREF="./java/util/package-summary.html"><B>java.util</B></A> - package java.util<DD>Utilities<DT><A HREF="./javax/microedition/io/package-summary.html"><B>javax.microedition.io</B></A> - package javax.microedition.io<DD>J2ME I/O.<DT><A HREF="./javax/microedition/lcdui/package-summary.html"><B>javax.microedition.lcdui</B></A> - package javax.microedition.lcdui<DD>J2ME LCD User Interface classes.<DT><A HREF="./java/lang/Thread.html#join()"><B>join()</B></A> - 
+<DT><A HREF="./java/awt/package-summary.html"><B>java.awt</B></A> - package java.awt<DD>Minimal AWT package for Rectangle class<DT><A HREF="./java/io/package-summary.html"><B>java.io</B></A> - package java.io<DD>Input/Output support<DT><A HREF="./java/lang/package-summary.html"><B>java.lang</B></A> - package java.lang<DD>Core Java classes<DT><A HREF="./java/util/package-summary.html"><B>java.util</B></A> - package java.util<DD>Utilities<DT><A HREF="./javax/microedition/io/package-summary.html"><B>javax.microedition.io</B></A> - package javax.microedition.io<DD>J2ME I/O.<DT><A HREF="./javax/microedition/lcdui/package-summary.html"><B>javax.microedition.lcdui</B></A> - package javax.microedition.lcdui<DD>J2ME LCD User Interface classes.<DT><A HREF="./java/lang/Thread.html#join()"><B>join()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>Join not yet implemented
 <DT><A HREF="./java/lang/Thread.html#join(long)"><B>join(long)</B></A> - 
@@ -1637,6 +2201,9 @@ Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java
 <DT><A HREF="./lejos/nxt/comm/LCP.html#KEEP_ALIVE"><B>KEEP_ALIVE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE"><B>KEEP_ALIVE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#KEY_BACK"><B>KEY_BACK</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -1697,17 +2264,20 @@ Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>delivers the index of the last occurrence of the object
  starting from some index
-<DT><A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt"><B>LCD</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/LCD.html#LCD()"><B>LCD()</B></A> - 
+<DT><A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt"><B>LCD</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Text and graphics output to the LCD display.<DT><A HREF="./lejos/nxt/LCD.html#LCD()"><B>LCD()</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>LCP</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Implements the Lego Communication Protocol,
- with some extensions for lejos NXJ.<DT><A HREF="./lejos/nxt/Button.html#LEFT"><B>LEFT</B></A> - 
+ with some extensions for lejos NXJ.<DT><A HREF="./lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>LCPBTResponder</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Support for LCP commands over Bluetooth in user programs.<DT><A HREF="./lejos/nxt/comm/LCPBTResponder.html#LCPBTResponder()"><B>LCPBTResponder()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm">LCPBTResponder</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/Button.html#LEFT"><B>LEFT</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <DD>The Left button.
 <DT><A HREF="./lejos/nxt/Poll.html#LEFT_MASK"><B>LEFT_MASK</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/navigation/package-summary.html"><B>lejos.navigation</B></A> - package lejos.navigation<DD>Navigation classes.<DT><A HREF="./lejos/nxt/package-summary.html"><B>lejos.nxt</B></A> - package lejos.nxt<DD>Access to NXT sensors, motors, etc.<DT><A HREF="./lejos/nxt/comm/package-summary.html"><B>lejos.nxt.comm</B></A> - package lejos.nxt.comm<DD>NXT communication classes<DT><A HREF="./lejos/subsumption/package-summary.html"><B>lejos.subsumption</B></A> - package lejos.subsumption<DD>Support for subsumption architecture.<DT><A HREF="./lejos/util/package-summary.html"><B>lejos.util</B></A> - package lejos.util<DD>More utility classes<DT><A HREF="./java/io/File.html#length()"><B>length()</B></A> - 
+<DT><A HREF="./lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a port that supports legacy RCX sensors.<DT><A HREF="./lejos/navigation/package-summary.html"><B>lejos.navigation</B></A> - package lejos.navigation<DD>Navigation classes.<DT><A HREF="./lejos/nxt/package-summary.html"><B>lejos.nxt</B></A> - package lejos.nxt<DD>Access to NXT sensors, motors, etc.<DT><A HREF="./lejos/nxt/comm/package-summary.html"><B>lejos.nxt.comm</B></A> - package lejos.nxt.comm<DD>NXT communication classes<DT><A HREF="./lejos/nxt/remote/package-summary.html"><B>lejos.nxt.remote</B></A> - package lejos.nxt.remote<DD>Remote NXT access over Bluetooth<DT><A HREF="./lejos/rcxcomm/package-summary.html"><B>lejos.rcxcomm</B></A> - package lejos.rcxcomm<DD>Emulation of RCX communication classes<DT><A HREF="./lejos/subsumption/package-summary.html"><B>lejos.subsumption</B></A> - package lejos.subsumption<DD>Support for subsumption architecture.<DT><A HREF="./lejos/util/package-summary.html"><B>lejos.util</B></A> - package lejos.util<DD>More utility classes<DT><A HREF="./java/io/File.html#length()"><B>length()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
 <DD>Returns the length of the file denoted by this file name.
 <DT><A HREF="./java/lang/String.html#length()"><B>length()</B></A> - 
@@ -1716,6 +2286,12 @@ Method in class java.lang.<A HREF="./java/lang/String.html" title="class in java
 <DT><A HREF="./java/lang/StringBuffer.html#length()"><B>length()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/StringBuffer.html" title="class in java.lang">StringBuffer</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE"><B>LIGHT_ACTIVE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE"><B>LIGHT_INACTIVE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>LightSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT light sensor.<DT><A HREF="./lejos/nxt/LightSensor.html#LightSensor(lejos.nxt.ADSensorPort)"><B>LightSensor(ADSensorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>
 <DD>Create a light sensor object attached to the specified port.
@@ -1738,31 +2314,56 @@ Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/L
 <DT><A HREF="./javax/microedition/lcdui/List.html#listType"><B>listType</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui">List</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm"><B>LLC</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>Emulates RCX LLC class using the RCXLink class.<DT><A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>LLCHandler</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>Packet handler than implement the LLC packet protocol.<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#LLCHandler(lejos.nxt.SensorPort)"><B>LLCHandler(SensorPort)</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>LLCReliableHandler</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>A Packet handler that guarantees reliable delivery using checksums,
+ acks, and a single bit sequence number.<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html#LLCReliableHandler(lejos.rcxcomm.PacketHandler)"><B>LLCReliableHandler(PacketHandler)</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Math.html#log(double)"><B>log(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Natural log function.
+<DT><A HREF="./lejos/nxt/RCXLink.html#LONG_RANGE_IR"><B>LONG_RANGE_IR</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#lookupName(byte[])"><B>lookupName(byte[])</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Look up the name of a device using its address
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#lowerHandler"><B>lowerHandler</B></A> - 
+Variable in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LOWSPEED"><B>LOWSPEED</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V"><B>LOWSPEED_9V</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#LS_GET_STATUS"><B>LS_GET_STATUS</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS"><B>LS_GET_STATUS</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#LS_READ"><B>LS_READ</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LS_READ"><B>LS_READ</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#LS_WRITE"><B>LS_WRITE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#LS_WRITE"><B>LS_WRITE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_M_"><!-- --></A><H2>
 <B>M</B></H2>
 <DL>
-<DT><A HREF="./lejos/nxt/Datalogger.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
-Static method in class lejos.nxt.<A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
-<DD>to test the DL object
-<DT><A HREF="./StartUpText.html#main(java.lang.String[])"><B>main(String[])</B></A> - 
-Static method in class <A HREF="./StartUpText.html" title="class in &lt;Unnamed&gt;">StartUpText</A>
+<DT><A HREF="./lejos/nxt/comm/LCP.html#MAILBOX_EMPTY"><B>MAILBOX_EMPTY</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
 <DT><A HREF="./java/io/InputStream.html#mark(int)"><B>mark(int)</B></A> - 
 Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
@@ -1783,12 +2384,27 @@ Static variable in class java.io.<A HREF="./java/io/File.html" title="class in j
 <DT><A HREF="./java/lang/Thread.html#MAX_PRIORITY"><B>MAX_PRIORITY</B></A> - 
 Static variable in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>The maximum priority that a thread can have.
+<DT><A HREF="./lejos/nxt/Flash.html#MAX_USER_PAGES"><B>MAX_USER_PAGES</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A>
+<DD>Maximum number of pages available to user flash memory.
 <DT><A HREF="./java/lang/Integer.html#MAX_VALUE"><B>MAX_VALUE</B></A> - 
 Static variable in class java.lang.<A HREF="./java/lang/Integer.html" title="class in java.lang">Integer</A>
 <DD>The largest value of type <code>int</code>.
+<DT><A HREF="./lejos/nxt/comm/LCP.html#MESSAGE_READ"><B>MESSAGE_READ</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ"><B>MESSAGE_READ</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#MESSAGE_WRITE"><B>MESSAGE_WRITE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE"><B>MESSAGE_WRITE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#messageWrite(int, java.lang.String)"><B>messageWrite(int, String)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Math.html#min(int, int)"><B>min(int, int)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Returns the lesser of two integer values.
@@ -1831,21 +2447,60 @@ Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/SensorConstants.html
 <DT><A HREF="./lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT"><B>MODE_TRANSITIONCNT</B></A> - 
 Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MODEMASK"><B>MODEMASK</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/subsumption/ActivityBase.html#monitor"><B>monitor</B></A> - 
 Static variable in class lejos.subsumption.<A HREF="./lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption">ActivityBase</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT motor.<DT><A HREF="./lejos/nxt/Motor.html#Motor(lejos.nxt.MotorPort)"><B>Motor(MotorPort)</B></A> - 
+<DT><A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT motor.<DT><A HREF="./lejos/nxt/Motor.html#Motor(lejos.nxt.TachoMotorPort)"><B>Motor(TachoMotorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_A_FORWARD"><B>MOTOR_A_FORWARD</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_A_REVERSED"><B>MOTOR_A_REVERSED</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_B_FORWARD"><B>MOTOR_B_FORWARD</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_B_REVERSED"><B>MOTOR_B_REVERSED</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_C_FORWARD"><B>MOTOR_C_FORWARD</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#MOTOR_C_REVERSED"><B>MOTOR_C_REVERSED</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE"><B>MOTOR_RUN_STATE_IDLE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Output will be idle
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN"><B>MOTOR_RUN_STATE_RAMPDOWN</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Output will ramp-down
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP"><B>MOTOR_RUN_STATE_RAMPUP</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Output will ramp-up
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING"><B>MOTOR_RUN_STATE_RUNNING</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Output will be running
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#MOTORON"><B>MOTORON</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Turn on the specified motor
 <DT><A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>MotorPort</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT output port.<DT><A HREF="./java/io/File.html#moveToTop()"><B>moveToTop()</B></A> - 
 Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
-<DD>move the file to become the last one in flash memory
+<DD>Move the file to become the last one in flash memory.
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_ACCEPT_CONNECTION"><B>MSG_ACCEPT_CONNECTION</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_ADD_DEVICE"><B>MSG_ADD_DEVICE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_ANY"><B>MSG_ANY</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_BEGIN_INQUIRY"><B>MSG_BEGIN_INQUIRY</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1870,6 +2525,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_CONNECT_RESULT"><B>MSG_CONNECT_RESULT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_CONNECTION_STATUS_RESULT"><B>MSG_CONNECTION_STATUS_RESULT</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_DUMP_LIST"><B>MSG_DUMP_LIST</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1879,6 +2537,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_BRICK_STATUSBYTE_RESULT"><B>MSG_GET_BRICK_STATUSBYTE_RESULT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_CONNECTION_STATUS"><B>MSG_GET_CONNECTION_STATUS</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_DISCOVERABLE"><B>MSG_GET_DISCOVERABLE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1900,6 +2561,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_LOCAL_ADDR_RESULT"><B>MSG_GET_LOCAL_ADDR_RESULT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_OPERATING_MODE"><B>MSG_GET_OPERATING_MODE</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_PORT_OPEN"><B>MSG_GET_PORT_OPEN</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1912,6 +2576,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GET_VERSION_RESULT"><B>MSG_GET_VERSION_RESULT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_GOTO_DFU_MODE"><B>MSG_GOTO_DFU_MODE</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_HEARTBEAT"><B>MSG_HEARTBEAT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1951,6 +2618,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_OPEN_STREAM"><B>MSG_OPEN_STREAM</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_OPERATING_MODE_RESULT"><B>MSG_OPERATING_MODE_RESULT</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_PIN_CODE"><B>MSG_PIN_CODE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -1996,6 +2666,9 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_SET_FRIENDLY_NAME_ACK"><B>MSG_SET_FRIENDLY_NAME_ACK</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_SET_OPERATING_MODE"><B>MSG_SET_OPERATING_MODE</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#MSG_START_HEART"><B>MSG_START_HEART</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>&nbsp;
@@ -2017,6 +2690,12 @@ Method in class java.util.<A HREF="./java/util/Random.html" title="class in java
 <DT><A HREF="./java/util/Random.html#nextInt(int)"><B>nextInt(int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Random.html" title="class in java.util">Random</A>
 <DD>Returns a random integer in the range 0...n-1.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES"><B>NO_OF_SENSOR_TYPES</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#NO_SENSOR"><B>NO_SENSOR</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/NoClassDefFoundError.html" title="class in java.lang"><B>NoClassDefFoundError</B></A> - Error in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/NoClassDefFoundError.html#NoClassDefFoundError(java.lang.String)"><B>NoClassDefFoundError(String)</B></A> - 
 Constructor for error java.lang.<A HREF="./java/lang/NoClassDefFoundError.html" title="class in java.lang">NoClassDefFoundError</A>
 <DD>&nbsp;
@@ -2029,9 +2708,15 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class i
 <DT><A HREF="./java/lang/Thread.html#NORM_PRIORITY"><B>NORM_PRIORITY</B></A> - 
 Static variable in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>The priority that is assigned to the primordial thread.
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#normalizedADValue"><B>normalizedADValue</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>The normalized value from the Analog to Digital (AD) converter.
 <DT><A HREF="./java/lang/NoSuchMethodError.html" title="class in java.lang"><B>NoSuchMethodError</B></A> - Error in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/NoSuchMethodError.html#NoSuchMethodError()"><B>NoSuchMethodError()</B></A> - 
 Constructor for error java.lang.<A HREF="./java/lang/NoSuchMethodError.html" title="class in java.lang">NoSuchMethodError</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#NOT_IMPLEMENTED"><B>NOT_IMPLEMENTED</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Object.html#notify()"><B>notify()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Object.html" title="class in java.lang">Object</A>
 <DD>Wake up one thread blocked on a wait().
@@ -2059,11 +2744,24 @@ Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" titl
 <DT><A HREF="./lejos/nxt/comm/LCP.html#NXJ_FIND_NEXT"><B>NXJ_FIND_NEXT</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
-<DT><A HREF="./NXTServerSocket.html" title="class in &lt;Unnamed&gt;"><B>NXTServerSocket</B></A> - Class in <A HREF="./package-summary.html">&lt;Unnamed&gt;</A><DD>&nbsp;<DT><A HREF="./NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.BTConnection)"><B>NXTServerSocket(int, BTConnection)</B></A> - 
-Constructor for class <A HREF="./NXTServerSocket.html" title="class in &lt;Unnamed&gt;">NXTServerSocket</A>
+<DT><A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>NXTCam</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Mindsensors NXTCam.<DT><A HREF="./lejos/nxt/NXTCam.html#NXTCam(lejos.nxt.I2CPort)"><B>NXTCam(I2CPort)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>NXTComm</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Initiates communication to a remote NXT.<DT><A HREF="./lejos/nxt/comm/NXTComm.html#NXTComm()"><B>NXTComm()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>NXTCommand</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Remote access to a NXT via Bluetooth using LCP.<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#NXTCommand()"><B>NXTCommand()</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#NXTname"><B>NXTname</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>NXTProtocol</B></A> - Interface in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>LCP constants.<DT><A HREF="./lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>NXTServerSocket</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Communicates with a ServerProxy on the PC to provide a
+ ServerSocket interface applications on the NXT.<DT><A HREF="./lejos/nxt/comm/NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.BTConnection)"><B>NXTServerSocket(int, BTConnection)</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm">NXTServerSocket</A>
 <DD>Constructor.
-<DT><A HREF="./NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.USBConnection)"><B>NXTServerSocket(int, USBConnection)</B></A> - 
-Constructor for class <A HREF="./NXTServerSocket.html" title="class in &lt;Unnamed&gt;">NXTServerSocket</A>
+<DT><A HREF="./lejos/nxt/comm/NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.USBConnection)"><B>NXTServerSocket(int, USBConnection)</B></A> - 
+Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm">NXTServerSocket</A>
 <DD>Constructor.
 <DT><A HREF="./lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NXTSocket</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>NXTSocket.<DT><A HREF="./lejos/nxt/comm/NXTSocket.html#NXTSocket(java.lang.String, int, lejos.nxt.comm.BTConnection)"><B>NXTSocket(String, int, BTConnection)</B></A> - 
 Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A>
@@ -2085,33 +2783,378 @@ Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTSocket.html" t
 <DT><A HREF="./java/lang/Object.html" title="class in java.lang"><B>Object</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>All classes extend this one, implicitly.<DT><A HREF="./java/lang/Object.html#Object()"><B>Object()</B></A> - 
 Constructor for class java.lang.<A HREF="./java/lang/Object.html" title="class in java.lang">Object</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#off()"><B>off()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Turn off the sensor.
 <DT><A HREF="./javax/microedition/lcdui/Command.html#OK"><B>OK</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Command.html" title="class in javax.microedition.lcdui">Command</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>Opcode</B></A> - Interface in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>Opcode constants.<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE"><B>OPCODE_ABSOLUTE_VALUE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE_REPLY"><B>OPCODE_ABSOLUTE_VALUE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE"><B>OPCODE_ADD_TO_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE_REPLY"><B>OPCODE_ADD_TO_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ALIVE"><B>OPCODE_ALIVE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_ALIVE_REPLY"><B>OPCODE_ALIVE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE"><B>OPCODE_AND_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE_REPLY"><B>OPCODE_AND_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_FAR"><B>OPCODE_BRANCH_ALWAYS_FAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_NEAR"><B>OPCODE_BRANCH_ALWAYS_NEAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CALL_SUBROUTINE"><B>OPCODE_CALL_SUBROUTINE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_MESSAGE"><B>OPCODE_CLEAR_MESSAGE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE"><B>OPCODE_CLEAR_SENSOR_VALUE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE_REPLY"><B>OPCODE_CLEAR_SENSOR_VALUE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER"><B>OPCODE_CLEAR_TIMER</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER_REPLY"><B>OPCODE_CLEAR_TIMER_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT"><B>OPCODE_DATALOG_NEXT</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT_REPLY"><B>OPCODE_DATALOG_NEXT_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_FAR"><B>OPCODE_DECREMENT_LOOP_COUNTER_FAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_NEAR"><B>OPCODE_DECREMENT_LOOP_COUNTER_NEAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES"><B>OPCODE_DELETE_ALL_SUBROUTINES</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES_REPLY"><B>OPCODE_DELETE_ALL_SUBROUTINES_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS"><B>OPCODE_DELETE_ALL_TASKS</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS_REPLY"><B>OPCODE_DELETE_ALL_TASKS_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE"><B>OPCODE_DELETE_FIRMWARE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE_REPLY"><B>OPCODE_DELETE_FIRMWARE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE"><B>OPCODE_DELETE_SUBROUTINE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE_REPLY"><B>OPCODE_DELETE_SUBROUTINE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK"><B>OPCODE_DELETE_TASK</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK_REPLY"><B>OPCODE_DELETE_TASK_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE"><B>OPCODE_DIVIDE_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE_REPLY"><B>OPCODE_DIVIDE_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER"><B>OPCODE_GET_BATTERY_POWER</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER_REPLY"><B>OPCODE_GET_BATTERY_POWER_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP"><B>OPCODE_GET_MEMORY_MAP</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP_REPLY"><B>OPCODE_GET_MEMORY_MAP_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE"><B>OPCODE_GET_VALUE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE_REPLY"><B>OPCODE_GET_VALUE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS"><B>OPCODE_GET_VERSIONS</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS_REPLY"><B>OPCODE_GET_VERSIONS_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_MASK"><B>OPCODE_MASK</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE"><B>OPCODE_MULTIPLY_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE_REPLY"><B>OPCODE_MULTIPLY_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE"><B>OPCODE_OR_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE_REPLY"><B>OPCODE_OR_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_PLAY_SOUND_REPLY"><B>OPCODE_PLAY_SOUND_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE"><B>OPCODE_PLAY_TONE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE_REPLY"><B>OPCODE_PLAY_TONE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF"><B>OPCODE_POWER_OFF</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF_REPLY"><B>OPCODE_POWER_OFF_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_REMOTE_COMMAND"><B>OPCODE_REMOTE_COMMAND</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SEND_MESSAGE"><B>OPCODE_SEND_MESSAGE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE"><B>OPCODE_SET_DATALOG_SIZE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE_REPLY"><B>OPCODE_SET_DATALOG_SIZE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY"><B>OPCODE_SET_DISPLAY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY_REPLY"><B>OPCODE_SET_DISPLAY_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_LOOP_COUNTER"><B>OPCODE_SET_LOOP_COUNTER</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MESSAGE"><B>OPCODE_SET_MESSAGE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION"><B>OPCODE_SET_MOTOR_DIRECTION</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION_REPLY"><B>OPCODE_SET_MOTOR_DIRECTION_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF"><B>OPCODE_SET_MOTOR_ON_OFF</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF_REPLY"><B>OPCODE_SET_MOTOR_ON_OFF_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER"><B>OPCODE_SET_MOTOR_POWER</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER_REPLY"><B>OPCODE_SET_MOTOR_POWER_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY"><B>OPCODE_SET_POWER_DOWN_DELAY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY_REPLY"><B>OPCODE_SET_POWER_DOWN_DELAY_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER"><B>OPCODE_SET_PROGRAM_NUMBER</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER_REPLY"><B>OPCODE_SET_PROGRAM_NUMBER_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE"><B>OPCODE_SET_SENSOR_MODE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE_REPLY"><B>OPCODE_SET_SENSOR_MODE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE"><B>OPCODE_SET_SENSOR_TYPE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE_REPLY"><B>OPCODE_SET_SENSOR_TYPE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME"><B>OPCODE_SET_TIME</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME_REPLY"><B>OPCODE_SET_TIME_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE"><B>OPCODE_SET_TRANSMITTER_RANGE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE_REPLY"><B>OPCODE_SET_TRANSMITTER_RANGE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE"><B>OPCODE_SET_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE_REPLY"><B>OPCODE_SET_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE"><B>OPCODE_SIGN_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE_REPLY"><B>OPCODE_SIGN_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD"><B>OPCODE_START_FIRMWARE_DOWNLOAD</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD_REPLY"><B>OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD"><B>OPCODE_START_SUBROUTINE_DOWNLOAD</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY"><B>OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_TASK"><B>OPCODE_START_TASK</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD"><B>OPCODE_START_TASK_DOWNLOAD</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD_REPLY"><B>OPCODE_START_TASK_DOWNLOAD_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_REPLY"><B>OPCODE_START_TASK_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS"><B>OPCODE_STOP_ALL_TASKS</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS_REPLY"><B>OPCODE_STOP_ALL_TASKS_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK"><B>OPCODE_STOP_TASK</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK_REPLY"><B>OPCODE_STOP_TASK_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE"><B>OPCODE_SUBTRACT_FROM_VARIABLE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE_REPLY"><B>OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_FAR"><B>OPCODE_TEST_AND_BRANCH_FAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_NEAR"><B>OPCODE_TEST_AND_BRANCH_NEAR</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA"><B>OPCODE_TRANSFER_DATA</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA_REPLY"><B>OPCODE_TRANSFER_DATA_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE"><B>OPCODE_UNLOCK_FIRMWARE</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE_REPLY"><B>OPCODE_UNLOCK_FIRMWARE_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG"><B>OPCODE_UPLOAD_DATALOG</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG_REPLY"><B>OPCODE_UPLOAD_DATALOG_REPLY</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Opcode.html#OPCODE_WAIT"><B>OPCODE_WAIT</B></A> - 
+Static variable in interface lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Debug.html#open(int)"><B>open(int)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Debug.html#open()"><B>open()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTComm.html#open(java.lang.String)"><B>open(String)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#open(java.lang.String)"><B>open(String)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#open(byte, byte)"><B>open(byte, byte)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Set the source and destination for this connection.
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_APPEND_DATA"><B>OPEN_APPEND_DATA</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA"><B>OPEN_APPEND_DATA</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_READ"><B>OPEN_READ</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_READ"><B>OPEN_READ</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_READ_LINEAR"><B>OPEN_READ_LINEAR</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR"><B>OPEN_READ_LINEAR</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_WRITE"><B>OPEN_WRITE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE"><B>OPEN_WRITE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_WRITE_DATA"><B>OPEN_WRITE_DATA</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA"><B>OPEN_WRITE_DATA</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#OPEN_WRITE_LINEAR"><B>OPEN_WRITE_LINEAR</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR"><B>OPEN_WRITE_LINEAR</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/io/StreamConnection.html#openDataInputStream()"><B>openDataInputStream()</B></A> - 
 Method in interface javax.microedition.io.<A HREF="./javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A>
 <DD>Open and return a DataInputStream - not yet implemented.
 <DT><A HREF="./lejos/nxt/comm/BTConnection.html#openDataInputStream()"><B>openDataInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
-<DD>&nbsp;
+<DD>Return the DataInputStream for this connect
 <DT><A HREF="./lejos/nxt/comm/USBConnection.html#openDataInputStream()"><B>openDataInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
@@ -2120,7 +3163,7 @@ Method in interface javax.microedition.io.<A HREF="./javax/microedition/io/Strea
 <DD>Open and return a DataOutputStream - not yet implemented.
 <DT><A HREF="./lejos/nxt/comm/BTConnection.html#openDataOutputStream()"><B>openDataOutputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
-<DD>&nbsp;
+<DD>Return the DataOutputStream for this connection.
 <DT><A HREF="./lejos/nxt/comm/USBConnection.html#openDataOutputStream()"><B>openDataOutputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
@@ -2129,7 +3172,7 @@ Method in interface javax.microedition.io.<A HREF="./javax/microedition/io/Strea
 <DD>Open and return an InputStream - not yet implemented.
 <DT><A HREF="./lejos/nxt/comm/BTConnection.html#openInputStream()"><B>openInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
-<DD>&nbsp;
+<DD>Return the InputStream for this connection.
 <DT><A HREF="./lejos/nxt/comm/USBConnection.html#openInputStream()"><B>openInputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
@@ -2138,13 +3181,22 @@ Method in interface javax.microedition.io.<A HREF="./javax/microedition/io/Strea
 <DD>Open and return an OutputStream - not yet implemented.
 <DT><A HREF="./lejos/nxt/comm/BTConnection.html#openOutputStream()"><B>openOutputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
-<DD>&nbsp;
+<DD>Return the OutputStream for this connection
 <DT><A HREF="./lejos/nxt/comm/USBConnection.html#openOutputStream()"><B>openOutputStream()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#openPort()"><B>openPort()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Opens the  port to allow incoming connections.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#openStream()"><B>openStream()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Open the stream for this connection.
 <DT><A HREF="./java/io/DataOutputStream.html#out"><B>out</B></A> - 
 Variable in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Debug.html#out(java.lang.String)"><B>out(String)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/OutOfMemoryError.html" title="class in java.lang"><B>OutOfMemoryError</B></A> - Error in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/OutOfMemoryError.html#OutOfMemoryError()"><B>OutOfMemoryError()</B></A> - 
 Constructor for error java.lang.<A HREF="./java/lang/OutOfMemoryError.html" title="class in java.lang">OutOfMemoryError</A>
 <DD>&nbsp;
@@ -2157,6 +3209,15 @@ Constructor for class java.io.<A HREF="./java/io/OutputStream.html" title="class
 <A NAME="_P_"><!-- --></A><H2>
 <B>P</B></H2>
 <DL>
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>PacketHandler</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>Abstract packet handler.<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#PacketHandler()"><B>PacketHandler()</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#PacketHandler(lejos.rcxcomm.PacketHandler)"><B>PacketHandler(PacketHandler)</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#packetHandler"><B>packetHandler</B></A> - 
+Variable in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#paint(javax.microedition.lcdui.Graphics)"><B>paint(Graphics)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
@@ -2190,6 +3251,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Tex
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#paint(javax.microedition.lcdui.Graphics, int, int, int, int, boolean)"><B>paint(Graphics, int, int, int, int, boolean)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/LegacySensorPort.html#passivate()"><B>passivate()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/RCXLightSensor.html#passivate()"><B>passivate()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>
 <DD>Passivates an RCX light sensor.
@@ -2208,6 +3272,9 @@ Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" ti
 <DT><A HREF="./lejos/subsumption/Activity.html#pause()"><B>pause()</B></A> - 
 Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" title="class in lejos.subsumption">Activity</A>
 <DD>Wait until we've either been made runnable or someone else has.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE"><B>PCTFULLSCALEMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/Queue.html#peek()"><B>peek()</B></A> - 
 Method in class java.util.<A HREF="./java/util/Queue.html" title="class in java.util">Queue</A>
 <DD>fetches an object from the start of the Queue
@@ -2216,6 +3283,9 @@ Method in class java.util.<A HREF="./java/util/Queue.html" title="class in java.
 Method in class java.util.<A HREF="./java/util/Stack.html" title="class in java.util">Stack</A>
 <DD>fetches an object from the stack
  <br>does not remove it!
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE"><B>PERIODCOUNTERMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#PHONENUMBER"><B>PHONENUMBER</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
@@ -2228,36 +3298,57 @@ Constructor for class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" t
 <DT><A HREF="./lejos/navigation/Pilot.html#Pilot(float, float, lejos.nxt.Motor, lejos.nxt.Motor, boolean)"><B>Pilot(float, float, Motor, Motor, boolean)</B></A> - 
 Constructor for class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>Allocates a Pilot object, and sets the physical parameters of the NXT robot.
-<DT><A HREF="./java/io/File.html#play(int, int)"><B>play(int, int)</B></A> - 
-Method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
+<DT><A HREF="./lejos/nxt/RCXLink.html#ping()"><B>ping()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#ping()"><B>ping()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Send a single ping.
 <DT><A HREF="./lejos/nxt/comm/LCP.html#PLAY_SOUND_FILE"><B>PLAY_SOUND_FILE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE"><B>PLAY_SOUND_FILE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#PLAY_TONE"><B>PLAY_TONE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#PLAY_TONE"><B>PLAY_TONE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Sound.html#playSample(int, int, int, int)"><B>playSample(int, int, int, int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>Internal method used to play sound sample from a file
-<DT><A HREF="./lejos/nxt/Sound.html#playSample(java.io.File, int, int)"><B>playSample(File, int, int)</B></A> - 
+<DT><A HREF="./lejos/nxt/Sound.html#playSample(java.io.File, int)"><B>playSample(File, int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#playTone(int, int)"><B>playTone(int, int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Plays a tone on NXT speaker.
 <DT><A HREF="./lejos/nxt/Sound.html#playTone(int, int)"><B>playTone(int, int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>Plays a tone, given its frequency and duration.
 <DT><A HREF="./lejos/nxt/comm/LCP.html#POLL"><B>POLL</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#POLL"><B>POLL</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt"><B>Poll</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Provides blocking access to events from the NXT.<DT><A HREF="./lejos/nxt/Poll.html#Poll()"><B>Poll()</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>Constructor.
 <DT><A HREF="./lejos/nxt/Poll.html#poll(int, int)"><B>poll(int, int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>Wait for the sensor/button values to change then return.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER"><B>POLL_BUFFER</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#POLL_LENGTH"><B>POLL_LENGTH</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH"><B>POLL_LENGTH</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/Queue.html#pop()"><B>pop()</B></A> - 
 Method in class java.util.<A HREF="./java/util/Queue.html" title="class in java.util">Queue</A>
 <DD>fetches an object from the start of the Queue
@@ -2275,12 +3366,21 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="
 <DT><A HREF="./java/lang/Math.html#pow(double, double)"><B>pow(double, double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Power function.
+<DT><A HREF="./lejos/nxt/RCXLink.html#POWER_OFF_RCX"><B>POWER_OFF_RCX</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#powerOff()"><B>powerOff()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Item.html#prefHeight"><B>prefHeight</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Item.html#prefWidth"><B>prefWidth</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/FirmwareInfo.html#protocolVersion"><B>protocolVersion</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/Queue.html#push(java.lang.Object)"><B>push(Object)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Queue.html" title="class in java.util">Queue</A>
 <DD>pushes an object onto the Queue
@@ -2293,6 +3393,12 @@ Method in class java.util.<A HREF="./java/util/Hashtable.html" title="class in j
 <DT><A HREF="./lejos/util/RecyclableArray.html#put(int, java.lang.Object)"><B>put(int, Object)</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/RecyclableArray.html" title="class in lejos.util">RecyclableArray</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotorPort.html#PWM_BRAKE"><B>PWM_BRAKE</B></A> - 
+Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotorPort.html#PWM_FLOAT"><B>PWM_FLOAT</B></A> - 
+Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>
+<DD>&nbsp;
 </DL>
 <HR>
 <A NAME="_Q_"><!-- --></A><H2>
@@ -2321,12 +3427,41 @@ Constructor for class java.util.<A HREF="./java/util/Random.html" title="class i
 <DT><A HREF="./java/util/Random.html#Random()"><B>Random()</B></A> - 
 Constructor for class java.util.<A HREF="./java/util/Random.html" title="class in java.util">Random</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#rawADValue"><B>rawADValue</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>The raw value from the Analog to Digital (AD) converter.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#RAWMODE"><B>RAWMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>RCXAbstractPort</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>RCXAbstractPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ RCXAbstractPort implements input and output stream handling and input
+ buffering.<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#RCXAbstractPort(lejos.rcxcomm.PacketHandler)"><B>RCXAbstractPort(PacketHandler)</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Constructor for the RCXAbstractPort.
 <DT><A HREF="./lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>RCXLightSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for an RCX light sensor.<DT><A HREF="./lejos/nxt/RCXLightSensor.html#RCXLightSensor(lejos.nxt.LegacySensorPort)"><B>RCXLightSensor(LegacySensorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>
 <DD>Create an RCX light sensor object attached to the specified port.
+<DT><A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>RCXLink</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Supports Mindsensors NRLink RCX IR adapter.<DT><A HREF="./lejos/nxt/RCXLink.html#RCXLink(lejos.nxt.I2CPort)"><B>RCXLink(I2CPort)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>RCXMotor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for an RCX motor.<DT><A HREF="./lejos/nxt/RCXMotor.html#RCXMotor(lejos.nxt.BasicMotorPort)"><B>RCXMotor(BasicMotorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>RCXMotorMultiplexer</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Supports the mindsensors RCX Motor Multiplexer<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#RCXMotorMultiplexer(lejos.nxt.I2CPort)"><B>RCXMotorMultiplexer(I2CPort)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>RCXPlexedMotorPort</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Supports a motor connected to the Mindsensors RCX Motor Multiplexer<DT><A HREF="./lejos/nxt/RCXPlexedMotorPort.html#RCXPlexedMotorPort(lejos.nxt.RCXMotorMultiplexer, int)"><B>RCXPlexedMotorPort(RCXMotorMultiplexer, int)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>RCXPort</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>RCXPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ Uses Reliable low-level comms for communication.<DT><A HREF="./lejos/rcxcomm/RCXPort.html#RCXPort(lejos.nxt.SensorPort)"><B>RCXPort(SensorPort)</B></A> - 
+Constructor for class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm">RCXPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>RCXRemoteMotorPort</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Supports a motor connected to a remote RCX via a mindsensord NRLink adapter<DT><A HREF="./lejos/nxt/RCXRemoteMotorPort.html#RCXRemoteMotorPort(lejos.nxt.RCXLink, int)"><B>RCXRemoteMotorPort(RCXLink, int)</B></A> - 
+Constructor for class lejos.nxt.<A HREF="./lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/DataInputStream.html#read()"><B>read()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>Reads the next byte of data from this input stream.
@@ -2350,18 +3485,36 @@ Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in jav
 Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
 <DD>Reads up to <code>len</code> bytes of data from the input stream into
  an array of bytes.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#read(byte[], int, boolean)"><B>read(byte[], int, boolean)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Attempt to read data from the connection.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#read(byte[], int)"><B>read(byte[], int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/BTInputStream.html#read()"><B>read()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm">BTInputStream</A>
 <DD>Returns one byte as an integer between 0 and 255.
 <DT><A HREF="./lejos/nxt/comm/LCP.html#READ"><B>READ</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#READ"><B>READ</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/USBInputStream.html#read()"><B>read()</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm">USBInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#read()"><B>read()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>read a single byte, if available
 <DT><A HREF="./java/io/DataInputStream.html#readBoolean()"><B>readBoolean()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/ADSensorPort.html#readBooleanValue()"><B>readBooleanValue()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#readBooleanValue()"><B>readBooleanValue()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>Reads the boolean value of the sensor.
 <DT><A HREF="./lejos/nxt/SensorPort.html#readBooleanValue()"><B>readBooleanValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Reads the boolean value of the sensor.
@@ -2371,9 +3524,15 @@ Static method in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class
 <DT><A HREF="./java/io/DataInputStream.html#readByte()"><B>readByte()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#readBytes(byte[])"><B>readBytes(byte[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/DataInputStream.html#readChar()"><B>readChar()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTComm.html#readData()"><B>readData()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<DD>&nbsp;
 <DT><A HREF="./java/io/DataInputStream.html#readFloat()"><B>readFloat()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
@@ -2388,31 +3547,70 @@ Method in class lejos.nxt.<A HREF="./lejos/nxt/LightSensor.html" title="class in
 <DD>Read the current sensor normalized value.
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#readPacket(byte[], int)"><B>readPacket(byte[], int)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>Read a data packet (with 2-byte length header) from a stream connection.
+<DD>Read a packet from the stream.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#readPacket(byte[], int)"><B>readPacket(byte[], int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Read a packet from the stream.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#readPacket(byte[])"><B>readPacket(byte[])</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Read an assembled packet.
 <DT><A HREF="./lejos/nxt/Flash.html#readPage(byte[], int)"><B>readPage(byte[], int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/ADSensorPort.html#readRawValue()"><B>readRawValue()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#readRawValue()"><B>readRawValue()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>Reads the raw value of the sensor.
 <DT><A HREF="./lejos/nxt/SensorPort.html#readRawValue()"><B>readRawValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Reads the raw value of the sensor.
 <DT><A HREF="./java/io/DataInputStream.html#readShort()"><B>readShort()</B></A> - 
 Method in class java.io.<A HREF="./java/io/DataInputStream.html" title="class in java.io">DataInputStream</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/ADSensorPort.html#readValue()"><B>readValue()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/GyroSensor.html#readValue()"><B>readValue()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A>
+<DD>Read the gyro value
 <DT><A HREF="./lejos/nxt/LightSensor.html#readValue()"><B>readValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>
 <DD>Read the current sensor value.
 <DT><A HREF="./lejos/nxt/RCXLightSensor.html#readValue()"><B>readValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>
 <DD>Read the current sensor value.
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#readValue()"><B>readValue()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>Returns value compatible with Lego firmware.
 <DT><A HREF="./lejos/nxt/SensorPort.html#readValue()"><B>readValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Returns value compatible with Lego firmware.
 <DT><A HREF="./lejos/nxt/SoundSensor.html#readValue()"><B>readValue()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SoundSensor.html" title="class in lejos.nxt">SoundSensor</A>
 <DD>Read the current sensor value.
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#receiveReply(byte[], int)"><B>receiveReply(byte[], int)</B></A> - 
-Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>Receive a command or reply from the BC4 chip.
+<DT><A HREF="./lejos/rcxcomm/LLC.html#receive()"><B>receive()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>wait a little while for a byte to become available
+<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#receiveAck(byte[])"><B>receiveAck(byte[])</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>Receive an ack.
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#receiveAck(byte[])"><B>receiveAck(byte[])</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#receivePacket(byte[])"><B>receivePacket(byte[])</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>Receive a packet.
+<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html#receivePacket(byte[])"><B>receivePacket(byte[])</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<DD>Receive a packet.
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#receivePacket(byte[])"><B>receivePacket(byte[])</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Receive a packet.
+<DT><A HREF="./java/awt/Rectangle.html" title="class in java.awt"><B>Rectangle</B></A> - Class in <A HREF="./java/awt/package-summary.html">java.awt</A><DD>Minimal Rectangle implementation.<DT><A HREF="./java/awt/Rectangle.html#Rectangle(int, int, int, int)"><B>Rectangle(int, int, int, int)</B></A> - 
+Constructor for class java.awt.<A HREF="./java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/util/Recyclable.html" title="interface in lejos.util"><B>Recyclable</B></A> - Interface in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>Represents a recyclable object.<DT><A HREF="./lejos/util/RecyclableArray.html" title="class in lejos.util"><B>RecyclableArray</B></A> - Class in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>A recyclable array.<DT><A HREF="./lejos/util/Recycler.html#recycle(lejos.util.Recyclable)"><B>recycle(Recyclable)</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/Recycler.html" title="class in lejos.util">Recycler</A>
 <DD>Reclaims a Recyclable previously allocated
@@ -2420,12 +3618,18 @@ Method in class lejos.util.<A HREF="./lejos/util/Recycler.html" title="class in
 <DT><A HREF="./lejos/util/Recycler.html" title="class in lejos.util"><B>Recycler</B></A> - Class in <A HREF="./lejos/util/package-summary.html">lejos.util</A><DD>An abstract object recycler.<DT><A HREF="./lejos/util/Recycler.html#Recycler()"><B>Recycler()</B></A> - 
 Constructor for class lejos.util.<A HREF="./lejos/util/Recycler.html" title="class in lejos.util">Recycler</A>
 <DD>Constructs a recycler.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REFLECTION"><B>REFLECTION</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#refresh()"><B>refresh()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/LCD.html#refresh()"><B>refresh()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
 <DD>Update the display.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REGULATED"><B>REGULATED</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Turns on the regulation
 <DT><A HREF="./lejos/navigation/Pilot.html#regulateSpeed(boolean)"><B>regulateSpeed(boolean)</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>Sets motor speed regulation   on = true (default) or off = false; <br>
@@ -2435,6 +3639,15 @@ a line tracker or compass navigator so direction control is from sensor inputs
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>turns speed regulation on/off; <br>
  Cumulative speed error is within about 1 degree after initial acceleration.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE"><B>REGULATION_MODE_IDLE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>No regulation will be enabled
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED"><B>REGULATION_MODE_MOTOR_SPEED</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Power control will be enabled on specified output
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC"><B>REGULATION_MODE_MOTOR_SYNC</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>Synchronization will be enabled (Needs enabled on two output)
 <DT><A HREF="./lejos/nxt/Motor.html#regulator"><B>regulator</B></A> - 
 Variable in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>&nbsp;
@@ -2447,6 +3660,19 @@ Method in interface lejos.util.<A HREF="./lejos/util/Recyclable.html" title="int
 <DT><A HREF="./lejos/util/RecyclableArray.html#release()"><B>release()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/RecyclableArray.html" title="class in lejos.util">RecyclableArray</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote"><B>RemoteBattery</B></A> - Class in <A HREF="./lejos/nxt/remote/package-summary.html">lejos.nxt.remote</A><DD>Battery readings from a remote NXT.<DT><A HREF="./lejos/nxt/remote/RemoteBattery.html#RemoteBattery(lejos.nxt.comm.NXTCommand)"><B>RemoteBattery(NXTCommand)</B></A> - 
+Constructor for class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>RemoteMotorPort</B></A> - Class in <A HREF="./lejos/nxt/remote/package-summary.html">lejos.nxt.remote</A><DD>Supports a motor connected to a remote NXT<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html#RemoteMotorPort(lejos.nxt.comm.NXTCommand, int)"><B>RemoteMotorPort(NXTCommand, int)</B></A> - 
+Constructor for class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>RemoteNXT</B></A> - Class in <A HREF="./lejos/nxt/remote/package-summary.html">lejos.nxt.remote</A><DD>Provides an API similar to the leJOS API for accessing
+ motors, sensors etc.<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#RemoteNXT(java.lang.String)"><B>RemoteNXT(String)</B></A> - 
+Constructor for class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote"><B>RemoteSensorPort</B></A> - Class in <A HREF="./lejos/nxt/remote/package-summary.html">lejos.nxt.remote</A><DD>Emulates a Sensor Port using LCP<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#RemoteSensorPort(lejos.nxt.comm.NXTCommand, int)"><B>RemoteSensorPort(NXTCommand, int)</B></A> - 
+Constructor for class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./java/util/ArrayList.html#remove(int)"><B>remove(int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/ArrayList.html" title="class in java.util">ArrayList</A>
 <DD>&nbsp;
@@ -2477,6 +3703,12 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./lejos/nxt/comm/LCP.html#REPLY_COMMAND"><B>REPLY_COMMAND</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND"><B>REPLY_COMMAND</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./java/io/File.html#reset()"><B>reset()</B></A> - 
+Static method in class java.io.<A HREF="./java/io/File.html" title="class in java.io">File</A>
+<DD>Reset the files array after an error.
 <DT><A HREF="./java/io/FileInputStream.html#reset()"><B>reset()</B></A> - 
 Method in class java.io.<A HREF="./java/io/FileInputStream.html" title="class in java.io">FileInputStream</A>
 <DD>resets pointers so next read() is from the start of the file;
@@ -2484,22 +3716,50 @@ Method in class java.io.<A HREF="./java/io/FileInputStream.html" title="class in
 Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in java.io">InputStream</A>
 <DD>Repositions this stream to the position at the time the
  <code>mark</code> method was last called on this input stream.
-<DT><A HREF="./lejos/nxt/Datalogger.html#reset()"><B>reset()</B></A> - 
-Method in class lejos.nxt.<A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#reset()"><B>reset()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Force a reset of the Bluetooth module.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#reset()"><B>reset()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Reset the device
+ Performs a "soft reset" of the device.
+<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html#reset()"><B>reset()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<DD>Reset sequence numbers.
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#reset()"><B>reset()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Reset sequence numbers for this handler
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#reset()"><B>reset()</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Resets sequence numbers for this port
+<DT><A HREF="./lejos/util/Datalogger.html#reset()"><B>reset()</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A>
 <DD>Clears the log; next write is at the beginning;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#RESET_MOTOR_POSITION"><B>RESET_MOTOR_POSITION</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION"><B>RESET_MOTOR_POSITION</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#RESET_SCALED_INPUT_VALUE"><B>RESET_SCALED_INPUT_VALUE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE"><B>RESET_SCALED_INPUT_VALUE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/CompassSensor.html#resetCartesianZero()"><B>resetCartesianZero()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>
 <DD>Changes the current direction the compass is facing into the zero 
  angle.
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#resetMotorPosition(int, boolean)"><B>resetMotorPosition(int, boolean)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Resets the tachometer
 <DT><A HREF="./lejos/subsumption/Activity.html#resetRunnable()"><B>resetRunnable()</B></A> - 
 Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" title="class in lejos.subsumption">Activity</A>
 <DD>Reset the runnable activity.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#resetSerial()"><B>resetSerial()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Reset the link - null
 <DT><A HREF="./lejos/navigation/Pilot.html#resetTachoCount()"><B>resetTachoCount()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>resets tacho count for both motors
@@ -2509,9 +3769,18 @@ Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos
 <DT><A HREF="./lejos/nxt/MotorPort.html#resetTachoCount()"><B>resetTachoCount()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>resets the tachometer count to 0;
+<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html#resetTachoCount()"><B>resetTachoCount()</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/Tachometer.html#resetTachoCount()"><B>resetTachoCount()</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/MotorPort.html#resetTachoCountById(int)"><B>resetTachoCountById(int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicMotor.html#reverseDirection()"><B>reverseDirection()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Reverses direction of the motor.
 <DT><A HREF="./lejos/nxt/Motor.html#reverseDirection()"><B>reverseDirection()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Reverses direction of the motor.
@@ -2609,9 +3878,33 @@ Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in
 <DT><A HREF="./java/lang/Thread.html#run()"><B>run()</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCPBTResponder.html#run()"><B>run()</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm">LCPBTResponder</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/subsumption/Activity.html#run()"><B>run()</B></A> - 
 Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Activity.html" title="class in lejos.subsumption">Activity</A>
 <DD>Thread entry point.
+<DT><A HREF="./lejos/nxt/RCXLink.html#RUN_PROGRAM_1"><B>RUN_PROGRAM_1</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#RUN_PROGRAM_2"><B>RUN_PROGRAM_2</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#RUN_PROGRAM_3"><B>RUN_PROGRAM_3</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#RUN_PROGRAM_4"><B>RUN_PROGRAM_4</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#RUN_PROGRAM_5"><B>RUN_PROGRAM_5</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#runMacro(int)"><B>runMacro(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#runProgram(int)"><B>runProgram(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Runtime.html" title="class in java.lang"><B>Runtime</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>Minimalist version of the standard Java Runtime class.<DT><A HREF="./java/lang/RuntimeException.html" title="class in java.lang"><B>RuntimeException</B></A> - Exception in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>&nbsp;<DT><A HREF="./java/lang/RuntimeException.html#RuntimeException()"><B>RuntimeException()</B></A> - 
 Constructor for exception java.lang.<A HREF="./java/lang/RuntimeException.html" title="class in java.lang">RuntimeException</A>
 <DD>&nbsp;
@@ -2620,18 +3913,33 @@ Constructor for exception java.lang.<A HREF="./java/lang/RuntimeException.html"
 <A NAME="_S_"><!-- --></A><H2>
 <B>S</B></H2>
 <DL>
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#S1"><B>S1</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#S1"><B>S1</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Port labeled 1 on NXT.
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#S2"><B>S2</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#S2"><B>S2</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Port labeled 2 on NXT.
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#S3"><B>S3</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#S3"><B>S3</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Port labeled 3 on NXT.
+<DT><A HREF="./lejos/nxt/remote/RemoteNXT.html#S4"><B>S4</B></A> - 
+Variable in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#S4"><B>S4</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Port labeled 4 on NXT.
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#scaledValue"><B>scaledValue</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>The scaled value starts working after the first call to the sensor.
 <DT><A HREF="./javax/microedition/lcdui/Command.html#SCREEN"><B>SCREEN</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Command.html" title="class in javax.microedition.lcdui">Command</A>
 <DD>&nbsp;
@@ -2663,15 +3971,55 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class i
 Method in class lejos.nxt.<A HREF="./lejos/nxt/TextMenu.html" title="class in lejos.nxt">TextMenu</A>
 <DD>Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
  and returns the index of the selected item.
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#sendCommand(byte[], int)"><B>sendCommand(byte[], int)</B></A> - 
-Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
-<DD>Send a command to the BC4 chip.
+<DT><A HREF="./lejos/nxt/TextMenu.html#select(int)"><B>select(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/TextMenu.html" title="class in lejos.nxt">TextMenu</A>
+<DD>Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
+ and returns the index of the selected item.
+<DT><A HREF="./lejos/nxt/RCXLink.html#sendBytes(byte[], int)"><B>sendBytes(byte[], int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#sendBytes(byte[], int)"><B>sendBytes(byte[], int)</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Send a number of bytes and wait for completion of transmission
+<DT><A HREF="./lejos/nxt/NXTCam.html#sendCommand(char)"><B>sendCommand(char)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>
+<DD>Send a single byte command represented by a letter
+<DT><A HREF="./lejos/nxt/comm/NXTComm.html#sendData(byte[])"><B>sendData(byte[])</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/I2CSensor.html#sendData(int, byte[], int)"><B>sendData(int, byte[], int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
-<DD>Executes an I2C write transaction - not yet working.
+<DD>Executes an I2C write transaction.
+<DT><A HREF="./lejos/nxt/I2CSensor.html#sendData(int, byte)"><B>sendData(int, byte)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
+<DD>Executes an I2C write transaction.
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#sendData(int, byte[], int)"><B>sendData(int, byte[], int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#sendF7(int)"><B>sendF7(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#sendPacket(byte[], int)"><B>sendPacket(byte[], int)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Send a data packet.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#sendPacket(byte[], int)"><B>sendPacket(byte[], int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Send a data packet.
+<DT><A HREF="./lejos/rcxcomm/LLCHandler.html#sendPacket(byte[], int)"><B>sendPacket(byte[], int)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>
+<DD>Send a packet.
+<DT><A HREF="./lejos/rcxcomm/LLCReliableHandler.html#sendPacket(byte[], int)"><B>sendPacket(byte[], int)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A>
+<DD>Send a packet.
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#sendPacket(byte[], int)"><B>sendPacket(byte[], int)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Send a packet.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#sendPacket(byte[], int, int)"><B>sendPacket(byte[], int, int)</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Send a packet
+<DT><A HREF="./lejos/nxt/RCXLink.html#sendRemoteCommand(int)"><B>sendRemoteCommand(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#SENSITIVE"><B>SENSITIVE</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
@@ -2687,9 +4035,15 @@ Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class
 <DT><A HREF="./lejos/nxt/Poll.html#SENSOR4_MASK"><B>SENSOR4_MASK</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Constants used to set Sensor types and modes.<DT><A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT input port.<DT><A HREF="./lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Interface for monitoring changes to the value for an 
+<DT><A HREF="./lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Constants used to set Sensor types and modes.<DT><A HREF="./lejos/nxt/comm/InputValues.html#sensorMode"><B>sensorMode</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT input port.<DT><A HREF="./lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Interface for monitoring changes to the value for an 
  Analogue/Digital sensor (such as a Touch, Light or Sound sensor)
- on a SensorPort.<DT><A HREF="./lejos/nxt/Poll.html#SERIAL_MASK"><B>SERIAL_MASK</B></A> - 
+ on a SensorPort.<DT><A HREF="./lejos/nxt/comm/InputValues.html#sensorType"><B>sensorType</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm"><B>Serial</B></A> - Class in <A HREF="./lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A><DD>Emulation of the RCX Serial class with mindstorms NRLINK adapter.<DT><A HREF="./lejos/nxt/Poll.html#SERIAL_MASK"><B>SERIAL_MASK</B></A> - 
 Static variable in class lejos.nxt.<A HREF="./lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Poll.html#SERIAL_SHIFT"><B>SERIAL_SHIFT</B></A> - 
@@ -2716,18 +4070,51 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Lis
 <DT><A HREF="./lejos/nxt/comm/LCP.html#SET_BRICK_NAME"><B>SET_BRICK_NAME</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME"><B>SET_BRICK_NAME</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#SET_INPUT_MODE"><B>SET_INPUT_MODE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE"><B>SET_INPUT_MODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#SET_OUTPUT_STATE"><B>SET_OUTPUT_STATE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE"><B>SET_OUTPUT_STATE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/I2CSensor.html#setAddress(int)"><B>setAddress(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setAPDAOff()"><B>setAPDAOff()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setAPDAOn()"><B>setAPDAOn()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/subsumption/Behavior2.html#setArbitrator(lejos.subsumption.Arbitrator2)"><B>setArbitrator(Arbitrator2)</B></A> - 
+Method in interface lejos.subsumption.<A HREF="./lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A>
+<DD>call back path so  Behavior2 can call  arbitrator.wantControl(this) when its takeControl state changes to true;
+<DT><A HREF="./lejos/nxt/LCD.html#setAutoRefresh(int)"><B>setAutoRefresh(int)</B></A> - 
+Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#setCalibrationData(byte[])"><B>setCalibrationData(byte[])</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Set 3 bytes of calibration data.
+<DT><A HREF="./javax/microedition/lcdui/Graphics.html#setColor(int)"><B>setColor(int)</B></A> - 
+Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#setCommandListener(javax.microedition.lcdui.CommandListener)"><B>setCommandListener(CommandListener)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/TextBox.html#setConstraints(int)"><B>setConstraints(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextBox.html" title="class in javax.microedition.lcdui">TextBox</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#setContinuousInterval(byte)"><B>setContinuousInterval(byte)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
+<DD>Set the ping inetrval used when in continuous mode.
 <DT><A HREF="./javax/microedition/lcdui/Display.html#setCurrent(javax.microedition.lcdui.Screen)"><B>setCurrent(Screen)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
 <DD>&nbsp;
@@ -2743,6 +4130,9 @@ Method in class lejos.nxt.<A HREF="./lejos/nxt/SoundSensor.html" title="class in
 <DT><A HREF="./javax/microedition/lcdui/Spacer.html#setDefaultCommand(javax.microedition.lcdui.Command)"><B>setDefaultCommand(Command)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Spacer.html" title="class in javax.microedition.lcdui">Spacer</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setDefaultSpeed()"><B>setDefaultSpeed()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/util/Timer.html#setDelay(int)"><B>setDelay(int)</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/Timer.html" title="class in lejos.util">Timer</A>
 <DD>Change the delay between timedOut messages.
@@ -2752,6 +4142,9 @@ Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" ti
 <DT><A HREF="./lejos/nxt/comm/BTRemoteDevice.html#setDeviceClass(byte[])"><B>setDeviceClass(byte[])</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm">BTRemoteDevice</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#setDirection(int, int)"><B>setDirection(int, int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/LCD.html#setDisplay()"><B>setDisplay()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
 <DD>&nbsp;
@@ -2761,6 +4154,9 @@ Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in
 <DT><A HREF="./java/util/Vector.html#setElementAt(java.lang.Object, int)"><B>setElementAt(Object, int)</B></A> - 
 Method in class java.util.<A HREF="./java/util/Vector.html" title="class in java.util">Vector</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setFactorySettings()"><B>setFactorySettings()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Reset the settings of the BC4 chip to the factory defaults.
 <DT><A HREF="./lejos/nxt/LightSensor.html#setFloodlight(boolean)"><B>setFloodlight(boolean)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>
 <DD>Set floodlighting on or off.
@@ -2773,9 +4169,18 @@ Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTRemoteDevice.html" ti
 <DT><A HREF="./lejos/navigation/CompassPilot.html#setHeading(int)"><B>setHeading(int)</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A>
 <DD>sets target direction of robot facing in degrees
+<DT><A HREF="./lejos/nxt/RCXLink.html#setHighSpeed()"><B>setHighSpeed()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#setIndicator(javax.microedition.lcdui.Gauge)"><B>setIndicator(Gauge)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#setInputMode(int, int, int)"><B>setInputMode(int, int, int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>Tells the NXT what type of sensor you are using and the mode to operate in.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#setIOMode(int)"><B>setIOMode(int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Set operating mode.
 <DT><A HREF="./javax/microedition/lcdui/Item.html#setItemCommandListener(javax.microedition.lcdui.ItemCommandListener)"><B>setItemCommandListener(ItemCommandListener)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui">Item</A>
 <DD>&nbsp;
@@ -2788,6 +4193,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/For
 <DT><A HREF="./javax/microedition/lcdui/Spacer.html#setLabel(java.lang.String)"><B>setLabel(String)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Spacer.html" title="class in javax.microedition.lcdui">Spacer</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/PacketHandler.html#setListen(boolean)"><B>setListen(boolean)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>
+<DD>Set or unset the listen flag to keep a PC serial tower alive
 <DT><A HREF="./javax/microedition/lcdui/TextBox.html#setMaxSize(int)"><B>setMaxSize(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextBox.html" title="class in javax.microedition.lcdui">TextBox</A>
 <DD>&nbsp;
@@ -2797,28 +4205,61 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Gau
 <DT><A HREF="./javax/microedition/lcdui/Spacer.html#setMinimumSize(int, int)"><B>setMinimumSize(int, int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Spacer.html" title="class in javax.microedition.lcdui">Spacer</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicSensorPort.html#setMode(int)"><B>setMode(int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#setMode(int)"><B>setMode(int)</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#setMode(int)"><B>setMode(int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Sets mode compatible with Lego firmware.
+<DT><A HREF="./lejos/nxt/RCXLink.html#setMotorPower(int, int)"><B>setMotorPower(int, int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/util/AbstractRecyclable.html#setNextRecyclable(lejos.util.Recyclable)"><B>setNextRecyclable(Recyclable)</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/AbstractRecyclable.html" title="class in lejos.util">AbstractRecyclable</A>
 <DD>Stores a Recyclable object.
 <DT><A HREF="./lejos/util/Recyclable.html#setNextRecyclable(lejos.util.Recyclable)"><B>setNextRecyclable(Recyclable)</B></A> - 
 Method in interface lejos.util.<A HREF="./lejos/util/Recyclable.html" title="interface in lejos.util">Recyclable</A>
 <DD>Stores a Recyclable object.
+<DT><A HREF="./lejos/nxt/GyroSensor.html#setOffset(int)"><B>setOffset(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A>
+<DD>Set the offset
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setOperatingMode(byte)"><B>setOperatingMode(byte)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set the operating mode
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#setOutputState(int, byte, int, int, int, int, int)"><B>setOutputState(int, byte, int, int, int, int, int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setPin(byte[])"><B>setPin(byte[])</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set the pin to be used for pairing/connecting to the system
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#setPixel(int, int, int)"><B>setPixel(int, int, int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>Using rgbColor as argument even though global, because when this
  setPixel() method is used later it will need color argument
 <DT><A HREF="./lejos/nxt/LCD.html#setPixel(int, int, int)"><B>setPixel(int, int, int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A>
-<DD>&nbsp;
+<DD>Method to set a pixel to screen.
+<DT><A HREF="./lejos/rcxcomm/LLC.html#setPort(lejos.nxt.SensorPort)"><B>setPort(SensorPort)</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Set sensor port
+<DT><A HREF="./lejos/rcxcomm/Serial.html#setPort(lejos.nxt.SensorPort)"><B>setPort(SensorPort)</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Set the sensor port
 <DT><A HREF="./lejos/navigation/Navigator.html#setPosition(float, float, float)"><B>setPosition(float, float, float)</B></A> - 
 Method in interface lejos.navigation.<A HREF="./lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A>
 <DD>sets robot location (x,y) and direction angle
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#setPosition(float, float, float)"><B>setPosition(float, float, float)</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>sets robot location (x,y) and direction angle
+<DT><A HREF="./lejos/nxt/BasicMotor.html#setPower(int)"><B>setPower(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Sets power.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setPower(boolean)"><B>setPower(boolean)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set the power to the module
 <DT><A HREF="./lejos/nxt/Motor.html#setPower(int)"><B>setPower(int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>sets motor power.
@@ -2828,6 +4269,48 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./java/lang/Thread.html#setPriority(int)"><B>setPriority(int)</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>Set the priority of this thread.
+<DT><A HREF="./lejos/nxt/BasicMotorPort.html#setPWMMode(int)"><B>setPWMMode(int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/MotorPort.html#setPWMMode(int)"><B>setPWMMode(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXPlexedMotorPort.html#setPWMMode(int)"><B>setPWMMode(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXRemoteMotorPort.html#setPWMMode(int)"><B>setPWMMode(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteMotorPort.html#setPWMMode(int)"><B>setPWMMode(int)</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setRangeLong()"><B>setRangeLong()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#setRangeLong()"><B>setRangeLong()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Sets long range transmision.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#setRangeLong()"><B>setRangeLong()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Set long range
+<DT><A HREF="./lejos/nxt/RCXLink.html#setRangeShort()"><B>setRangeShort()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/LLC.html#setRangeShort()"><B>setRangeShort()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A>
+<DD>Sets short range transmision.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#setRangeShort()"><B>setRangeShort()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Set short range
+<DT><A HREF="./lejos/nxt/RCXLink.html#setRawMode()"><B>setRawMode()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setRCXRangeLong()"><B>setRCXRangeLong()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#setRCXRangeShort()"><B>setRCXRangeShort()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/ChoiceGroup.html#setScrollWrap(boolean)"><B>setScrollWrap(boolean)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/ChoiceGroup.html" title="class in javax.microedition.lcdui">ChoiceGroup</A>
 <DD>&nbsp;
@@ -2867,9 +4350,12 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html
 <DT><A HREF="./lejos/nxt/Motor.html#setSpeed(int)"><B>setSpeed(int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Sets motor speed , in degrees per second; Up to 900 is posssible with 8 volts.
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setStatus(byte)"><B>setStatus(byte)</B></A> - 
-Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DT><A HREF="./lejos/nxt/RCXMotorMultiplexer.html#setSpeed(int, int)"><B>setSpeed(int, int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setStatus(int)"><B>setStatus(int)</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set the persistent status byte for the BC4 chip
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#setString(java.lang.String)"><B>setString(String)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
@@ -2901,6 +4387,9 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Dis
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#setTimeout(int)"><B>setTimeout(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/rcxcomm/RCXAbstractPort.html#setTimeOut(int)"><B>setTimeOut(int)</B></A> - 
+Method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A>
+<DD>Setter for property timeOut.
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#setTitle(java.lang.String)"><B>setTitle(String)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -2910,17 +4399,35 @@ Method in class lejos.nxt.<A HREF="./lejos/nxt/TextMenu.html" title="class in le
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#setType(int)"><B>setType(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/BasicSensorPort.html#setType(int)"><B>setType(int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#setType(int)"><B>setType(int)</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#setType(int)"><B>setType(int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Sets type compatible with Lego firmware.
+<DT><A HREF="./lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)"><B>setTypeAndMode(int, int)</B></A> - 
+Method in interface lejos.nxt.<A HREF="./lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/remote/RemoteSensorPort.html#setTypeAndMode(int, int)"><B>setTypeAndMode(int, int)</B></A> - 
+Method in class lejos.nxt.remote.<A HREF="./lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPort.html#setTypeAndMode(int, int)"><B>setTypeAndMode(int, int)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>
 <DD>Sets type and mode compatible with Lego firmware.
 <DT><A HREF="./javax/microedition/lcdui/Gauge.html#setValue(int)"><B>setValue(int)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Gauge.html" title="class in javax.microedition.lcdui">Gauge</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTCommand.html#setVerify(boolean)"><B>setVerify(boolean)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/Bluetooth.html#setVisibility(byte)"><B>setVisibility(byte)</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>Set Bluetooth visibility (discoverable) on or off for the local device
+<DT><A HREF="./lejos/nxt/RCXLink.html#SHORT_RANGE_IR"><B>SHORT_RANGE_IR</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
 <DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Display.html#show(boolean)"><B>show(boolean)</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui">Display</A>
@@ -2937,9 +4444,15 @@ Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ite
 <DT><A HREF="./javax/microedition/lcdui/Screen.html#showNotify()"><B>showNotify()</B></A> - 
 Method in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Screen.html" title="class in javax.microedition.lcdui">Screen</A>
 <DD>&nbsp;
+<DT><A HREF="./java/lang/System.html#shutDown()"><B>shutDown()</B></A> - 
+Static method in class java.lang.<A HREF="./java/lang/System.html" title="class in java.lang">System</A>
+<DD>Shutdown the brick
 <DT><A HREF="./lejos/nxt/Motor.html#shutdown()"><B>shutdown()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>causes run() to exit
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#signalStrength"><B>signalStrength</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Math.html#sin(double)"><B>sin(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Sine function using a Chebyshev-Pade approximation.
@@ -2975,13 +4488,22 @@ Method in class java.io.<A HREF="./java/io/InputStream.html" title="class in jav
 <DT><A HREF="./java/lang/Thread.html#sleep(long)"><B>sleep(long)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SLOPEMASK"><B>SLOPEMASK</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Motor.html#smoothAcceleration(boolean)"><B>smoothAcceleration(boolean)</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>enables smoother acceleration.
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#SOLID"><B>SOLID</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt"><B>Sound</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>NXT sound routines.<DT><A HREF="./lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>SoundSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT sound sensor.<DT><A HREF="./lejos/nxt/SoundSensor.html#SoundSensor(lejos.nxt.ADSensorPort)"><B>SoundSensor(ADSensorPort)</B></A> - 
+<DT><A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt"><B>Sound</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>NXT sound routines.<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SOUND_DB"><B>SOUND_DB</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SOUND_DBA"><B>SOUND_DBA</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>SoundSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT sound sensor.<DT><A HREF="./lejos/nxt/SoundSensor.html#SoundSensor(lejos.nxt.ADSensorPort)"><B>SoundSensor(ADSensorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/SoundSensor.html" title="class in lejos.nxt">SoundSensor</A>
 <DD>Create a sound sensor object attached to the specified port.
 <DT><A HREF="./lejos/nxt/SoundSensor.html#SoundSensor(lejos.nxt.SensorPort, boolean)"><B>SoundSensor(SensorPort, boolean)</B></A> - 
@@ -3006,6 +4528,10 @@ Method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java
 <DT><A HREF="./lejos/subsumption/Arbitrator.html#start()"><B>start()</B></A> - 
 Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption">Arbitrator</A>
 <DD>This method starts the arbitration of Behaviors.
+<DT><A HREF="./lejos/subsumption/Arbitrator2.html#start()"><B>start()</B></A> - 
+Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>
+<DD>This method starts the arbitration of Behaviors.<br>
+ It iterates over the array of behaviors, highest priority first.
 <DT><A HREF="./lejos/util/Timer.html#start()"><B>start()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/Timer.html" title="class in lejos.util">Timer</A>
 <DD>Starts the timer, telling it to send timeOut() methods
@@ -3013,15 +4539,24 @@ Method in class lejos.util.<A HREF="./lejos/util/Timer.html" title="class in lej
 <DT><A HREF="./lejos/nxt/comm/LCP.html#START_PROGRAM"><B>START_PROGRAM</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#START_PROGRAM"><B>START_PROGRAM</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/CompassSensor.html#startCalibration()"><B>startCalibration()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>
 <DD>Starts calibration for Mindsensors.com compass.
-<DT><A HREF="./StartUpText.html" title="class in &lt;Unnamed&gt;"><B>StartUpText</B></A> - Class in <A HREF="./package-summary.html">&lt;Unnamed&gt;</A><DD>&nbsp;<DT><A HREF="./StartUpText.html#StartUpText()"><B>StartUpText()</B></A> - 
-Constructor for class <A HREF="./StartUpText.html" title="class in &lt;Unnamed&gt;">StartUpText</A>
+<DT><A HREF="./lejos/nxt/RCXLink.html#startMotor(int)"><B>startMotor(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/SensorPortListener.html#stateChanged(lejos.nxt.SensorPort, int, int)"><B>stateChanged(SensorPort, int, int)</B></A> - 
 Method in interface lejos.nxt.<A HREF="./lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt">SensorPortListener</A>
 <DD>Called when the raw value of the sensor attached to the port changes.
+<DT><A HREF="./lejos/nxt/comm/DeviceInfo.html#status"><B>status</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/FirmwareInfo.html#status"><B>status</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/navigation/Pilot.html#steer(int)"><B>steer(int)</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>Moves the NXT robot in a circular path at a specific turn rate.
@@ -3050,6 +4585,10 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#stop()"><B>stop()</B></A> - 
 Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Halts the NXT robot and calculates new x, y coordinates.
+<DT><A HREF="./lejos/nxt/BasicMotor.html#stop()"><B>stop()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A>
+<DD>Causes motor to stop, pretty much
+ instantaneously.
 <DT><A HREF="./lejos/nxt/Motor.html#stop()"><B>stop()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
 <DD>Causes motor to stop, pretty much
@@ -3057,18 +4596,33 @@ Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos
 <DT><A HREF="./lejos/util/Timer.html#stop()"><B>stop()</B></A> - 
 Method in class lejos.util.<A HREF="./lejos/util/Timer.html" title="class in lejos.util">Timer</A>
 <DD>Stops the timer.
+<DT><A HREF="./lejos/nxt/RCXLink.html#STOP_ALL_PROGRAMS"><B>STOP_ALL_PROGRAMS</B></A> - 
+Static variable in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#STOP_PROGRAM"><B>STOP_PROGRAM</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM"><B>STOP_PROGRAM</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#STOP_SOUND_PLAYBACK"><B>STOP_SOUND_PLAYBACK</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK"><B>STOP_SOUND_PLAYBACK</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#stopAllPrograms()"><B>stopAllPrograms()</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/CompassSensor.html#stopCalibration()"><B>stopCalibration()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>
 <DD>Ends calibration sequence.
 <DT><A HREF="./lejos/subsumption/StopException.html" title="class in lejos.subsumption"><B>StopException</B></A> - Exception in <A HREF="./lejos/subsumption/package-summary.html">lejos.subsumption</A><DD>This exception indicates that an activity should stop.<DT><A HREF="./lejos/subsumption/StopException.html#StopException()"><B>StopException()</B></A> - 
 Constructor for exception lejos.subsumption.<A HREF="./lejos/subsumption/StopException.html" title="class in lejos.subsumption">StopException</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/RCXLink.html#stopMotor(int)"><B>stopMotor(int)</B></A> - 
+Method in class lejos.nxt.<A HREF="./lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Alert.html#STR_CONFIRM"><B>STR_CONFIRM</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui">Alert</A>
 <DD>&nbsp;
@@ -3093,12 +4647,21 @@ Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcd
 <DT><A HREF="./java/lang/StringUtils.html" title="class in java.lang"><B>StringUtils</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>Utilities for non-standard String maniplulation.<DT><A HREF="./lejos/subsumption/Behavior.html#suppress()"><B>suppress()</B></A> - 
 Method in interface lejos.subsumption.<A HREF="./lejos/subsumption/Behavior.html" title="interface in lejos.subsumption">Behavior</A>
 <DD>The code in suppress() should stop the current behavior.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SWITCH"><B>SWITCH</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/System.html" title="class in java.lang"><B>System</B></A> - Class in <A HREF="./java/lang/package-summary.html">java.lang</A><DD>System utilities.<DT><A HREF="./lejos/nxt/comm/LCP.html#SYSTEM_COMMAND_NOREPLY"><B>SYSTEM_COMMAND_NOREPLY</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY"><B>SYSTEM_COMMAND_NOREPLY</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#SYSTEM_COMMAND_REPLY"><B>SYSTEM_COMMAND_REPLY</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY"><B>SYSTEM_COMMAND_REPLY</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Sound.html#systemSound(boolean, int)"><B>systemSound(boolean, int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
 <DD>&nbsp;
@@ -3107,7 +4670,7 @@ Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class i
 <A NAME="_T_"><!-- --></A><H2>
 <B>T</B></H2>
 <DL>
-<DT><A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation"><B>TachoNavigator</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>The TachoNavigator class can keep track of the robot position and the direction angle it faces; It uses a _pilot object to control NXT robot movements.<br>
+<DT><A HREF="./lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>Tachometer</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for the tachometer built into NXT motors.<DT><A HREF="./lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>TachoMotorPort</B></A> - Interface in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a motor port that supports NXT motors with tachometers.<DT><A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation"><B>TachoNavigator</B></A> - Class in <A HREF="./lejos/navigation/package-summary.html">lejos.navigation</A><DD>The TachoNavigator class can keep track of the robot position and the direction angle it faces; It uses a _pilot object to control NXT robot movements.<br>
  The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.<DT><A HREF="./lejos/navigation/TachoNavigator.html#TachoNavigator(float, float, lejos.nxt.Motor, lejos.nxt.Motor, boolean)"><B>TachoNavigator(float, float, Motor, Motor, boolean)</B></A> - 
 Constructor for class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>Allocates a Navigator object and initializes it with the proper motors.
@@ -3127,6 +4690,9 @@ Method in interface lejos.subsumption.<A HREF="./lejos/subsumption/Behavior.html
 <DT><A HREF="./java/lang/Math.html#tan(double)"><B>tan(double)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Math.html" title="class in java.lang">Math</A>
 <DD>Tangent function.
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#TEMPERATURE"><B>TEMPERATURE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/util/Assertion.html#test(java.lang.String, boolean)"><B>test(String, boolean)</B></A> - 
 Static method in class lejos.util.<A HREF="./lejos/util/Assertion.html" title="class in lejos.util">Assertion</A>
 <DD>&nbsp;
@@ -3180,13 +4746,10 @@ Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/D
 <DT><A HREF="./javax/microedition/lcdui/Ticker.html" title="class in javax.microedition.lcdui"><B>Ticker</B></A> - Class in <A HREF="./javax/microedition/lcdui/package-summary.html">javax.microedition.lcdui</A><DD>&nbsp;<DT><A HREF="./javax/microedition/lcdui/Ticker.html#Ticker(java.lang.String)"><B>Ticker(String)</B></A> - 
 Constructor for class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Ticker.html" title="class in javax.microedition.lcdui">Ticker</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a Mindsensors (and possibly HiTechnic) 
+<DT><A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a Mindsensors
  acceleration (tilt) sensor.<DT><A HREF="./lejos/nxt/TiltSensor.html#TiltSensor(lejos.nxt.I2CPort)"><B>TiltSensor(I2CPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/Motor.html#timedOut()"><B>timedOut()</B></A> - 
-Method in class lejos.nxt.<A HREF="./lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>
-<DD>requred by TimerListener interface
 <DT><A HREF="./lejos/util/TimerListener.html#timedOut()"><B>timedOut()</B></A> - 
 Method in interface lejos.util.<A HREF="./lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A>
 <DD>Called every time the Timer fires.
@@ -3232,8 +4795,11 @@ Method in class java.lang.<A HREF="./java/lang/Runtime.html" title="class in jav
 <DT><A HREF="./lejos/nxt/TouchSensor.html" title="class in lejos.nxt"><B>TouchSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT touch sensor.<DT><A HREF="./lejos/nxt/TouchSensor.html#TouchSensor(lejos.nxt.ADSensorPort)"><B>TouchSensor(ADSensorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/TouchSensor.html" title="class in lejos.nxt">TouchSensor</A>
 <DD>Create a touch sensor object attached to the specified port.
-<DT><A HREF="./lejos/nxt/Datalogger.html#transmit(boolean)"><B>transmit(boolean)</B></A> - 
-Method in class lejos.nxt.<A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE"><B>TRANSITIONCNTMODE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/util/Datalogger.html#transmit(boolean)"><B>transmit(boolean)</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A>
 <DD>transmit the stored values to the PC via USB or bluetooth;<br>
  Displays "waiting" , so then start the DataViewer.
 <DT><A HREF="./lejos/navigation/CompassNavigator.html#travel(float, boolean)"><B>travel(float, boolean)</B></A> - 
@@ -3279,7 +4845,7 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html
 <DD>Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached.
 <DT><A HREF="./lejos/nxt/Sound.html#twoBeeps()"><B>twoBeeps()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Sound.html" title="class in lejos.nxt">Sound</A>
-<DD>Beeps twice - not yet implemented.
+<DD>Beeps twice.
 <DT><A HREF="./lejos/nxt/SensorConstants.html#TYPE_ANGLE"><B>TYPE_ANGLE</B></A> - 
 Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>
 <DD>&nbsp;
@@ -3321,9 +4887,12 @@ Static variable in interface lejos.nxt.<A HREF="./lejos/nxt/SensorConstants.html
 <A NAME="_U_"><!-- --></A><H2>
 <B>U</B></H2>
 <DL>
-<DT><A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT Ultrasonic Sensor.<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#UltrasonicSensor(lejos.nxt.I2CPort)"><B>UltrasonicSensor(I2CPort)</B></A> - 
+<DT><A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A> - Class in <A HREF="./lejos/nxt/package-summary.html">lejos.nxt</A><DD>Abstraction for a NXT Ultrasonic Sensor.<DT><A HREF="./lejos/nxt/UltrasonicSensor.html#UltrasonicSensor(lejos.nxt.SensorPort)"><B>UltrasonicSensor(SensorPort)</B></A> - 
 Constructor for class lejos.nxt.<A HREF="./lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/LCP.html#UNDEFINED_ERROR"><B>UNDEFINED_ERROR</B></A> - 
+Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#UNEDITABLE"><B>UNEDITABLE</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
@@ -3342,13 +4911,13 @@ Method in class lejos.navigation.<A HREF="./lejos/navigation/CompassNavigator.ht
 <DT><A HREF="./javax/microedition/lcdui/TextField.html#URL"><B>URL</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui">TextField</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm"><B>USB</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm"><B>USBConnection</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Represents a USB Stream Connection.<DT><A HREF="./lejos/nxt/comm/USBConnection.html#USBConnection()"><B>USBConnection()</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm"><B>USB</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Low-level USB access.<DT><A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm"><B>USBConnection</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Represents a USB Stream Connection.<DT><A HREF="./lejos/nxt/comm/USBConnection.html#USBConnection()"><B>USBConnection()</B></A> - 
 Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm"><B>USBInputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/comm/USBInputStream.html#USBInputStream()"><B>USBInputStream()</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm"><B>USBInputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Implements an InputStream over USB.<DT><A HREF="./lejos/nxt/comm/USBInputStream.html#USBInputStream()"><B>USBInputStream()</B></A> - 
 Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm">USBInputStream</A>
 <DD>&nbsp;
-<DT><A HREF="./lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm"><B>USBOutputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>&nbsp;<DT><A HREF="./lejos/nxt/comm/USBOutputStream.html#USBOutputStream()"><B>USBOutputStream()</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm"><B>USBOutputStream</B></A> - Class in <A HREF="./lejos/nxt/comm/package-summary.html">lejos.nxt.comm</A><DD>Implements an OutputStream over USB.<DT><A HREF="./lejos/nxt/comm/USBOutputStream.html#USBOutputStream()"><B>USBOutputStream()</B></A> - 
 Constructor for class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm">USBOutputStream</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/USB.html#usbRead(byte[], int)"><B>usbRead(byte[], int)</B></A> - 
@@ -3365,6 +4934,9 @@ Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USB.html" title=
 <A NAME="_V_"><!-- --></A><H2>
 <B>V</B></H2>
 <DL>
+<DT><A HREF="./lejos/nxt/comm/InputValues.html#valid"><B>valid</B></A> - 
+Variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A>
+<DD>NXT indicates if it thinks the data is valid
 <DT><A HREF="./java/lang/String.html#valueOf(java.lang.Object)"><B>valueOf(Object)</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/String.html" title="class in java.lang">String</A>
 <DD>Converts an Object to a String
@@ -3388,18 +4960,31 @@ Method in class java.lang.<A HREF="./java/lang/Object.html" title="class in java
 <DT><A HREF="./java/lang/Object.html#wait(long)"><B>wait(long)</B></A> - 
 Method in class java.lang.<A HREF="./java/lang/Object.html" title="class in java.lang">Object</A>
 <DD>Wait until notified.
-<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#waitForConnection()"><B>waitForConnection()</B></A> - 
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#waitForConnection(byte[])"><B>waitForConnection(byte[])</B></A> - 
 Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
 <DD>Wait for a remote device to connect.
+<DT><A HREF="./lejos/nxt/comm/Bluetooth.html#waitForConnection()"><B>waitForConnection()</B></A> - 
+Static method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/Button.html#waitForPress()"><B>waitForPress()</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <DD>wait for some button to be pressed
 <DT><A HREF="./lejos/nxt/Button.html#waitForPressAndRelease()"><B>waitForPressAndRelease()</B></A> - 
 Method in class lejos.nxt.<A HREF="./lejos/nxt/Button.html" title="class in lejos.nxt">Button</A>
 <DD>Wait until the button is released.
+<DT><A HREF="./lejos/rcxcomm/Serial.html#waitTillSent()"><B>waitTillSent()</B></A> - 
+Static method in class lejos.rcxcomm.<A HREF="./lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A>
+<DD>Wait until the packet is sent - null
+<DT><A HREF="./lejos/subsumption/Arbitrator2.html#wantControl(lejos.subsumption.Behavior2)"><B>wantControl(Behavior2)</B></A> - 
+Method in class lejos.subsumption.<A HREF="./lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>
+<DD>If the behavior that sent this message has higher priority than the active behavior,
+  the active behavior is suppressed.
 <DT><A HREF="./javax/microedition/lcdui/Graphics.html#WHITE"><B>WHITE</B></A> - 
 Static variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui">Graphics</A>
 <DD>&nbsp;
+<DT><A HREF="./java/awt/Rectangle.html#width"><B>width</B></A> - 
+Variable in class java.awt.<A HREF="./java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<DD>&nbsp;
 <DT><A HREF="./javax/microedition/lcdui/Displayable.html#width"><B>width</B></A> - 
 Variable in class javax.microedition.lcdui.<A HREF="./javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui">Displayable</A>
 <DD>&nbsp;
@@ -3425,12 +5010,21 @@ Method in class java.io.<A HREF="./java/io/OutputStream.html" title="class in ja
 Method in class java.io.<A HREF="./java/io/OutputStream.html" title="class in java.io">OutputStream</A>
 <DD>Writes <code>len</code> bytes from the specified byte array 
  starting at offset <code>off</code> to this output stream.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#write(byte[], int, boolean)"><B>write(byte[], int, boolean)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>Attempt to write bytes to the Bluetooth connection.
+<DT><A HREF="./lejos/nxt/comm/BTConnection.html#write(byte[], int)"><B>write(byte[], int)</B></A> - 
+Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/BTOutputStream.html#write(int)"><B>write(int)</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm">BTOutputStream</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/LCP.html#WRITE"><B>WRITE</B></A> - 
 Static variable in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A>
 <DD>&nbsp;
+<DT><A HREF="./lejos/nxt/comm/NXTProtocol.html#WRITE"><B>WRITE</B></A> - 
+Static variable in interface lejos.nxt.comm.<A HREF="./lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>
+<DD>&nbsp;
 <DT><A HREF="./lejos/nxt/comm/USBOutputStream.html#write(int)"><B>write(int)</B></A> - 
 Method in class lejos.nxt.comm.<A HREF="./lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm">USBOutputStream</A>
 <DD>&nbsp;
@@ -3459,8 +5053,8 @@ Method in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class i
 Method in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A>
 <DD>Writes an <code>int</code> to the underlying output stream as four
  bytes, high byte first.
-<DT><A HREF="./lejos/nxt/Datalogger.html#writeLog(float)"><B>writeLog(float)</B></A> - 
-Method in class lejos.nxt.<A HREF="./lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A>
+<DT><A HREF="./lejos/util/Datalogger.html#writeLog(float)"><B>writeLog(float)</B></A> - 
+Method in class lejos.util.<A HREF="./lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A>
 <DD>write a float  value to the log
 <DT><A HREF="./lejos/nxt/Flash.html#writePage(byte[], int)"><B>writePage(byte[], int)</B></A> - 
 Static method in class lejos.nxt.<A HREF="./lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A>
@@ -3474,9 +5068,20 @@ Variable in class java.io.<A HREF="./java/io/DataOutputStream.html" title="class
 <DD>&nbsp;
 </DL>
 <HR>
+<A NAME="_X_"><!-- --></A><H2>
+<B>X</B></H2>
+<DL>
+<DT><A HREF="./java/awt/Rectangle.html#x"><B>x</B></A> - 
+Variable in class java.awt.<A HREF="./java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<DD>&nbsp;
+</DL>
+<HR>
 <A NAME="_Y_"><!-- --></A><H2>
 <B>Y</B></H2>
 <DL>
+<DT><A HREF="./java/awt/Rectangle.html#y"><B>y</B></A> - 
+Variable in class java.awt.<A HREF="./java/awt/Rectangle.html" title="class in java.awt">Rectangle</A>
+<DD>&nbsp;
 <DT><A HREF="./java/lang/Thread.html#yield()"><B>yield()</B></A> - 
 Static method in class java.lang.<A HREF="./java/lang/Thread.html" title="class in java.lang">Thread</A>
 <DD>&nbsp;
@@ -3494,12 +5099,24 @@ Variable in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.ht
 <DT><A HREF="./lejos/navigation/Pilot.html#_left"><B>_left</B></A> - 
 Variable in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>left motor
+<DT><A HREF="./lejos/navigation/TachoNavigator.html#_left0"><B>_left0</B></A> - 
+Variable in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/util/ButtonCounter.html#_leftCount"><B>_leftCount</B></A> - 
+Variable in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Output only not used in calculations; use after count() returns;
 <DT><A HREF="./lejos/navigation/TachoNavigator.html#_pilot"><B>_pilot</B></A> - 
 Variable in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
 <DD>&nbsp;
 <DT><A HREF="./lejos/navigation/Pilot.html#_right"><B>_right</B></A> - 
 Variable in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>right motor
+<DT><A HREF="./lejos/navigation/TachoNavigator.html#_right0"><B>_right0</B></A> - 
+Variable in class lejos.navigation.<A HREF="./lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A>
+<DD>&nbsp;
+<DT><A HREF="./lejos/util/ButtonCounter.html#_rightCount"><B>_rightCount</B></A> - 
+Variable in class lejos.util.<A HREF="./lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A>
+<DD>Output only not used in calculations ; use this value after count() returns;
 <DT><A HREF="./lejos/navigation/Pilot.html#_speed"><B>_speed</B></A> - 
 Variable in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A>
 <DD>motor speed  degrees per second.
@@ -3511,7 +5128,7 @@ Variable in class lejos.navigation.<A HREF="./lejos/navigation/Pilot.html" title
 <DD>diameter of tires
 </DL>
 <HR>
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> 
+<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_K_">K</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <A HREF="#_X_">X</A> <A HREF="#_Y_">Y</A> <A HREF="#___">_</A> 
 
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
 <A NAME="navbar_bottom"><!-- --></A>
index 40f307d..ea2fd9e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc on Sun Sep 02 23:07:10 BST 2007-->
+<!-- Generated by javadoc on Tue Jan 08 20:46:04 GMT 2008-->
 <TITLE>
 leJOS NXT API documentation
 </TITLE>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/java/awt/Rectangle.html b/nxtOSEK/lejos_nxj/docs/apidocs/java/awt/Rectangle.html
new file mode 100644 (file)
index 0000000..343b45c
--- /dev/null
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Rectangle (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="java.awt.Rectangle class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Rectangle (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?java/awt/Rectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Rectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+java.awt</FONT>
+<BR>
+Class Rectangle</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>java.awt.Rectangle</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Rectangle</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Minimal Rectangle implementation.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/awt/Rectangle.html#height">height</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/awt/Rectangle.html#width">width</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/awt/Rectangle.html#x">x</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/awt/Rectangle.html#y">y</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../java/awt/Rectangle.html#Rectangle(int, int, int, int)">Rectangle</A></B>(int&nbsp;x,
+          int&nbsp;y,
+          int&nbsp;width,
+          int&nbsp;height)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="height"><!-- --></A><H3>
+height</H3>
+<PRE>
+public int <B>height</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="width"><!-- --></A><H3>
+width</H3>
+<PRE>
+public int <B>width</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="x"><!-- --></A><H3>
+x</H3>
+<PRE>
+public int <B>x</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="y"><!-- --></A><H3>
+y</H3>
+<PRE>
+public int <B>y</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Rectangle(int, int, int, int)"><!-- --></A><H3>
+Rectangle</H3>
+<PRE>
+public <B>Rectangle</B>(int&nbsp;x,
+                 int&nbsp;y,
+                 int&nbsp;width,
+                 int&nbsp;height)</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?java/awt/Rectangle.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Rectangle.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/java/awt/package-frame.html b/nxtOSEK/lejos_nxj/docs/apidocs/java/awt/package-frame.html
new file mode 100644 (file)
index 0000000..83f0253
--- /dev/null
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+java.awt (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="java.awt package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../java/awt/package-summary.html" target="classFrame">java.awt</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Rectangle.html" title="class in java.awt" target="classFrame">Rectangle</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
@@ -2,19 +2,19 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
- (leJOS NXT API documentation)
+java.awt (leJOS NXT API documentation)
 </TITLE>
 
-<META NAME="keywords" CONTENT=" package">
+<META NAME="keywords" CONTENT="java.awt package">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
 {
-    parent.document.title=" (leJOS NXT API documentation)";
+    parent.document.title="java.awt (leJOS NXT API documentation)";
 }
 </SCRIPT>
 <NOSCRIPT>
@@ -34,13 +34,13 @@ function windowTitle()
 <A NAME="navbar_top_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -52,19 +52,19 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="java/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+&nbsp;<A HREF="../../java/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?java/awt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
@@ -76,9 +76,9 @@ function windowTitle()
 
 <HR>
 <H2>
-Package &lt;Unnamed&gt;
+Package java.awt
 </H2>
-Access to NXT sensors, motors, etc.
+Minimal AWT package for Rectangle class
 <P>
 <B>See:</B>
 <BR>
@@ -91,23 +91,19 @@ Access to NXT sensors, motors, etc.
 <B>Class Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;">NXTServerSocket</A></B></TD>
-<TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;">StartUpText</A></B></TD>
-<TD>&nbsp;</TD>
+<TD WIDTH="15%"><B><A HREF="../../java/awt/Rectangle.html" title="class in java.awt">Rectangle</A></B></TD>
+<TD>Minimal Rectangle implementation.</TD>
 </TR>
 </TABLE>
 &nbsp;
 
 <P>
 <A NAME="package_description"><!-- --></A><H2>
-Package  Description
+Package java.awt Description
 </H2>
 
 <P>
-Access to NXT sensors, motors, etc.
+Minimal AWT package for Rectangle class
 <P>
 
 <P>
@@ -125,13 +121,13 @@ Access to NXT sensors, motors, etc.
 <A NAME="navbar_bottom_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -143,19 +139,19 @@ Access to NXT sensors, motors, etc.
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;PREV PACKAGE&nbsp;
-&nbsp;<A HREF="java/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+&nbsp;<A HREF="../../java/io/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?java/awt/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
@@ -2,18 +2,18 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
- Class Hierarchy (leJOS NXT API documentation)
+java.awt Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
 
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
 {
-    parent.document.title=" Class Hierarchy (leJOS NXT API documentation)";
+    parent.document.title="java.awt Class Hierarchy (leJOS NXT API documentation)";
 }
 </SCRIPT>
 <NOSCRIPT>
@@ -33,13 +33,13 @@ function windowTitle()
 <A NAME="navbar_top_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -51,19 +51,19 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;PREV&nbsp;
-&nbsp;<A HREF="java/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
+&nbsp;<A HREF="../../java/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?java/awt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
@@ -76,18 +76,18 @@ function windowTitle()
 <HR>
 <CENTER>
 <H2>
-Hierarchy For Package &lt;Unnamed&gt;
+Hierarchy For Package java.awt
 </H2>
 </CENTER>
 <DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="overview-tree.html">All Packages</A></DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
 <HR>
 <H2>
 Class Hierarchy
 </H2>
 <UL>
-<LI TYPE="circle">java.lang.<A HREF="java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
-<LI TYPE="circle"><A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;"><B>NXTServerSocket</B></A><LI TYPE="circle"><A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;"><B>StartUpText</B></A></UL>
+<LI TYPE="circle">java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">java.awt.<A HREF="../../java/awt/Rectangle.html" title="class in java.awt"><B>Rectangle</B></A></UL>
 </UL>
 <HR>
 
@@ -101,13 +101,13 @@ Class Hierarchy
 <A NAME="navbar_bottom_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -119,19 +119,19 @@ Class Hierarchy
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;PREV&nbsp;
-&nbsp;<A HREF="java/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
+&nbsp;<A HREF="../../java/io/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?java/awt/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
index f30c308..b16a160 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 DataInputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,10 @@ Class DataInputStream</H2>
 </PRE>
 
 <P>
+Reads java data types transmitted as bytes over an InputStream.
+<P>
+
+<P>
 <HR>
 
 <P>
index 3577cbf..522c63b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 DataOutputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,10 @@ Class DataOutputStream</H2>
 </PRE>
 
 <P>
+Transmits java data types as bytes over an OutputStream.
+<P>
+
+<P>
 <HR>
 
 <P>
index 69efec8..1cb9e1c 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 File (leJOS NXT API documentation)
 </TITLE>
@@ -97,6 +97,16 @@ Class File</H2>
 </PRE>
 
 <P>
+Implements a file system using pages of flash memory.
+ Currently has limited functionality and only supports
+ one file open at a time.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Brian Bagnall</DD>
+</DL>
 <HR>
 
 <P>
@@ -110,14 +120,6 @@ Class File</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>protected static&nbsp;short</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../java/io/File.html#BYTES_PER_PAGE">BYTES_PER_PAGE</A></B></CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates the # of bytes per page in the Flash class.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../java/io/File.html#MAX_FILES">MAX_FILES</A></B></CODE>
 
@@ -172,8 +174,7 @@ Class File</H2>
 <TD><CODE><B><A HREF="../../java/io/File.html#defrag()">defrag</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assumptions: the files[] array has no nulls, and is in increasing order by page_location
-  this scheme moves moves each file down to fill in the empty pages.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Defrag the file system.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -214,7 +215,7 @@ Class File</H2>
 <TD><CODE><B><A HREF="../../java/io/File.html#freeMemory()">freeMemory</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns to total free memory in the flash file system.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -222,7 +223,7 @@ Class File</H2>
 <TD><CODE><B><A HREF="../../java/io/File.html#getIndex()">getIndex</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns location of file in the files[] array</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns location of file in the files[] array</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -238,7 +239,7 @@ Class File</H2>
 <TD><CODE><B><A HREF="../../java/io/File.html#getPage()">getPage</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method used to get the page number of the start of the file.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -262,16 +263,15 @@ Class File</H2>
 <TD><CODE><B><A HREF="../../java/io/File.html#moveToTop()">moveToTop</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;move the file to become the last one in flash memory</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Move the file to become the last one in flash memory.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../java/io/File.html#play(int, int)">play</A></B>(int&nbsp;freq,
-     int&nbsp;vol)</CODE>
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/io/File.html#reset()">reset</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset the files array after an error.</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -310,21 +310,6 @@ public static final byte <B>MAX_FILES</B></PRE>
 </DL>
 <HR>
 
-<A NAME="BYTES_PER_PAGE"><!-- --></A><H3>
-BYTES_PER_PAGE</H3>
-<PRE>
-protected static short <B>BYTES_PER_PAGE</B></PRE>
-<DL>
-<DD>Indicates the # of bytes per page in the Flash class.
- Lawrie Griffiths determines this. Might want to access this
- directly from Flash in future from a package level constant in case
- we want to alter this number.
-<P>
-<DL>
-</DL>
-</DL>
-<HR>
-
 <A NAME="totalFiles"><!-- --></A><H3>
 totalFiles</H3>
 <PRE>
@@ -480,13 +465,16 @@ public static void <B>format</B>()</PRE>
 <A NAME="createNewFile()"><!-- --></A><H3>
 createNewFile</H3>
 <PRE>
-public boolean <B>createNewFile</B>()</PRE>
+public boolean <B>createNewFile</B>()
+                      throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
 <DD>Creates a new file entry in the flash memory.
 <P>
 <DD><DL>
 
-<DT><B>Returns:</B><DD>True indicates file was created in flash. False means it already existed or the size is 0 or less.</DL>
+<DT><B>Returns:</B><DD>True indicates file was created in flash. False means it already existed or the size is 0 or less.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
 </DL>
 <HR>
@@ -494,12 +482,15 @@ public boolean <B>createNewFile</B>()</PRE>
 <A NAME="moveToTop()"><!-- --></A><H3>
 moveToTop</H3>
 <PRE>
-public void <B>moveToTop</B>()</PRE>
+public void <B>moveToTop</B>()
+               throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
-<DD>move the file to become the last one in flash memory
+<DD>Move the file to become the last one in flash memory.
 <P>
 <DD><DL>
-</DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
 </DL>
 <HR>
@@ -509,6 +500,8 @@ freeMemory</H3>
 <PRE>
 public static int <B>freeMemory</B>()</PRE>
 <DL>
+<DD>Returns to total free memory in the flash file system.
+<P>
 <DD><DL>
 </DL>
 </DD>
@@ -520,7 +513,7 @@ getIndex</H3>
 <PRE>
 public int <B>getIndex</B>()</PRE>
 <DL>
-<DD>returns location of file in the files[] array
+<DD>Returns location of file in the files[] array
 <P>
 <DD><DL>
 
@@ -532,13 +525,22 @@ public int <B>getIndex</B>()</PRE>
 <A NAME="defrag()"><!-- --></A><H3>
 defrag</H3>
 <PRE>
-public static void <B>defrag</B>()</PRE>
+public static void <B>defrag</B>()
+                   throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
-<DD>assumptions: the files[] array has no nulls, and is in increasing order by page_location
-  this scheme moves moves each file down to fill in the empty pages.
+<DD>Defrag the file system.
+ WARNING: should only be called from the startup menu.
+ If called from a user program, can cause the current program to
+ be moved resulting in a data abort of other firmware crash.
+ Assumptions: the files[] array has no nulls, and is in increasing order by page_location.
+ This scheme moves moves each file down to fill in the empty pages.
 <P>
 <DD><DL>
-</DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
 </DL>
 <HR>
@@ -548,18 +550,23 @@ getPage</H3>
 <PRE>
 public int <B>getPage</B>()</PRE>
 <DL>
+<DD>Internal method used to get the page number of the start of the file.
+<P>
 <DD><DL>
-</DL>
+
+<DT><B>Returns:</B><DD>page number</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="play(int, int)"><!-- --></A><H3>
-play</H3>
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
 <PRE>
-public void <B>play</B>(int&nbsp;freq,
-                 int&nbsp;vol)</PRE>
+public static void <B>reset</B>()</PRE>
 <DL>
+<DD>Reset the files array after an error.
+ Forces listFiles to read from the file table.
+<P>
 <DD><DL>
 </DL>
 </DD>
index e776bb6..393befa 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 FileInputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,14 @@ Class FileInputStream</H2>
 </PRE>
 
 <P>
+Reads a stream of bytes from a file.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Brian Bagnall</DD>
+</DL>
 <HR>
 
 <P>
index 660f7cb..09b76e7 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 FileOutputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,14 @@ Class FileOutputStream</H2>
 </PRE>
 
 <P>
+Writes a stream of bytes to a file.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Brian Bagnall</DD>
+</DL>
 <HR>
 
 <P>
@@ -139,8 +147,7 @@ Class FileOutputStream</H2>
 <TD><CODE><B><A HREF="../../java/io/FileOutputStream.html#close()">close</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write the buffer to flash memory and update the file parameters in flash
- Resets pointers, so file can be writen again from beginning with the same output stream.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write the buffer to flash memory and update the file parameters in flash.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -279,7 +286,7 @@ close</H3>
 public void <B>close</B>()
            throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
-<DD>write the buffer to flash memory and update the file parameters in flash
+<DD>Write the buffer to flash memory and update the file parameters in flash.
  Resets pointers, so file can be writen again from beginning with the same output stream.
 <P>
 <DD><DL>
index 945c4f6..010a279 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 IOException (leJOS NXT API documentation)
 </TITLE>
index 00b0504..b04da6d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 InputStream (leJOS NXT API documentation)
 </TITLE>
index 04e4d78..195d884 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 OutputStream (leJOS NXT API documentation)
 </TITLE>
index e041386..4492334 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Serializable (leJOS NXT API documentation)
 </TITLE>
index 1561c33..7d6fef7 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.io (leJOS NXT API documentation)
 </TITLE>
index ca862b8..92cc632 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.io (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../..//package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../java/awt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
 &nbsp;<A HREF="../../java/lang/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?java/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -106,23 +106,23 @@ Input/Output support
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/DataInputStream.html" title="class in java.io">DataInputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Reads java data types transmitted as bytes over an InputStream.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Transmits java data types as bytes over an OutputStream.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/File.html" title="class in java.io">File</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Implements a file system using pages of flash memory.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/FileInputStream.html" title="class in java.io">FileInputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Reads a stream of bytes from a file.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/FileOutputStream.html" title="class in java.io">FileOutputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Writes a stream of bytes to a file.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/io/InputStream.html" title="class in java.io">InputStream</A></B></TD>
@@ -192,7 +192,7 @@ Input/Output support
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../..//package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../java/awt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
 &nbsp;<A HREF="../../java/lang/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?java/io/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 086b215..f71076b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.io Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -50,7 +50,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../..//package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../java/awt/package-tree.html"><B>PREV</B></A>&nbsp;
 &nbsp;<A HREF="../../java/lang/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?java/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -131,7 +131,7 @@ Interface Hierarchy
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../..//package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../java/awt/package-tree.html"><B>PREV</B></A>&nbsp;
 &nbsp;<A HREF="../../java/lang/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?java/io/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 7a10dc3..dbccd3c 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:07 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 ArithmeticException (leJOS NXT API documentation)
 </TITLE>
index 7b49d15..8e6b893 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:07 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 ArrayIndexOutOfBoundsException (leJOS NXT API documentation)
 </TITLE>
index 17e8114..43b0832 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:07 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Class (leJOS NXT API documentation)
 </TITLE>
index e3f14da..7f3e6dc 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 ClassCastException (leJOS NXT API documentation)
 </TITLE>
index f2fc148..9c6c397 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 ClassNotFoundException (leJOS NXT API documentation)
 </TITLE>
index a21e1c1..bd4be37 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Cloneable (leJOS NXT API documentation)
 </TITLE>
index 918da94..193167c 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Error (leJOS NXT API documentation)
 </TITLE>
index 8bf8913..13dcb6b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Exception (leJOS NXT API documentation)
 </TITLE>
index 9306e2e..8db3fe1 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Float (leJOS NXT API documentation)
 </TITLE>
index eaaf590..ce56a2e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 IllegalArgumentException (leJOS NXT API documentation)
 </TITLE>
index 46eb48b..d25ead0 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 IllegalMonitorStateException (leJOS NXT API documentation)
 </TITLE>
index 0f9187a..b3a0e76 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 IllegalStateException (leJOS NXT API documentation)
 </TITLE>
index 0e87649..78cb076 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Integer (leJOS NXT API documentation)
 </TITLE>
index fb0ce08..66f2af8 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 InterruptedException (leJOS NXT API documentation)
 </TITLE>
index e760c3d..a90aef3 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Math (leJOS NXT API documentation)
 </TITLE>
index c4f5ff9..7713c11 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 NoClassDefFoundError (leJOS NXT API documentation)
 </TITLE>
index ee571d5..e480451 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 NoSuchMethodError (leJOS NXT API documentation)
 </TITLE>
index 00adf4e..24e1513 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 NullPointerException (leJOS NXT API documentation)
 </TITLE>
index 0fb4807..83a18e3 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Object (leJOS NXT API documentation)
 </TITLE>
index 9ecc977..35dddb9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 OutOfMemoryError (leJOS NXT API documentation)
 </TITLE>
index 80eccdf..fd4eeaa 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Runtime (leJOS NXT API documentation)
 </TITLE>
index bb2b4c4..bd904ad 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 RuntimeException (leJOS NXT API documentation)
 </TITLE>
index b75c92c..ce578a0 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 StackOverflowError (leJOS NXT API documentation)
 </TITLE>
index eafcf28..d809a87 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 String (leJOS NXT API documentation)
 </TITLE>
index 4c705bf..c770d7d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 StringBuffer (leJOS NXT API documentation)
 </TITLE>
@@ -184,7 +184,7 @@ An expandable string of characters. Actually not very expandable!
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;<A HREF="../../java/lang/StringBuffer.html" title="class in java.lang">StringBuffer</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../java/lang/StringBuffer.html#append(int)">append</A></B>(int&nbsp;aInt)</CODE>
+<TD><CODE><B><A HREF="../../java/lang/StringBuffer.html#append(int)">append</A></B>(int&nbsp;i)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -369,7 +369,7 @@ public <A HREF="../../java/lang/StringBuffer.html" title="class in java.lang">St
 <A NAME="append(int)"><!-- --></A><H3>
 append</H3>
 <PRE>
-public <A HREF="../../java/lang/StringBuffer.html" title="class in java.lang">StringBuffer</A> <B>append</B>(int&nbsp;aInt)</PRE>
+public <A HREF="../../java/lang/StringBuffer.html" title="class in java.lang">StringBuffer</A> <B>append</B>(int&nbsp;i)</PRE>
 <DL>
 <DD><DL>
 </DL>
index 6aeccba..8955aa7 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 StringUtils (leJOS NXT API documentation)
 </TITLE>
index 1dba474..2e48606 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 System (leJOS NXT API documentation)
 </TITLE>
@@ -115,6 +115,18 @@ System utilities.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/lang/System.html#arraycopy(java.lang.Object, int, java.lang.Object, int, int)">arraycopy</A></B>(<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A>&nbsp;src,
+          int&nbsp;srcOffset,
+          <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A>&nbsp;dest,
+          int&nbsp;destOffset,
+          int&nbsp;length)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies one array to another.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;long</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../java/lang/System.html#currentTimeMillis()">currentTimeMillis</A></B>()</CODE>
 
@@ -131,12 +143,28 @@ System utilities.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/lang/System.html#gc()">gc</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collect garbage</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;<A HREF="../../java/lang/Runtime.html" title="class in java.lang">Runtime</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../java/lang/System.html#getRuntime()">getRuntime</A></B>()</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the singleton instance of Runtime.</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../java/lang/System.html#shutDown()">shutDown</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shutdown the brick</TD>
+</TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -160,6 +188,23 @@ System utilities.
 </TR>
 </TABLE>
 
+<A NAME="arraycopy(java.lang.Object, int, java.lang.Object, int, int)"><!-- --></A><H3>
+arraycopy</H3>
+<PRE>
+public static void <B>arraycopy</B>(<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A>&nbsp;src,
+                             int&nbsp;srcOffset,
+                             <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A>&nbsp;dest,
+                             int&nbsp;destOffset,
+                             int&nbsp;length)</PRE>
+<DL>
+<DD>Copies one array to another.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="exit(int)"><!-- --></A><H3>
 exit</H3>
 <PRE>
@@ -199,6 +244,32 @@ public static <A HREF="../../java/lang/Runtime.html" title="class in java.lang">
 </DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="gc()"><!-- --></A><H3>
+gc</H3>
+<PRE>
+public static void <B>gc</B>()</PRE>
+<DL>
+<DD>Collect garbage
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="shutDown()"><!-- --></A><H3>
+shutDown</H3>
+<PRE>
+public static void <B>shutDown</B>()</PRE>
+<DL>
+<DD>Shutdown the brick
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
index 20e44bd..f522c3e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Thread (leJOS NXT API documentation)
 </TITLE>
@@ -92,7 +92,7 @@ Class Thread</H2>
   <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>java.lang.Thread</B>
 </PRE>
 <DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption">ActivityBase</A></DD>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption">ActivityBase</A>, <A HREF="../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm">LCPBTResponder</A></DD>
 </DL>
 <HR>
 <DL>
index dec34e0..b471a19 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 ThreadDeath (leJOS NXT API documentation)
 </TITLE>
index e767dbc..26c9df2 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
 <TITLE>
 Throwable (leJOS NXT API documentation)
 </TITLE>
index dd69da1..0a36dfb 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.lang (leJOS NXT API documentation)
 </TITLE>
index f9fbd2d..69be659 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.lang (leJOS NXT API documentation)
 </TITLE>
index 9694bec..d371f50 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.lang Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
index 7b5b15f..6364439 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 ArrayList (leJOS NXT API documentation)
 </TITLE>
@@ -97,6 +97,10 @@ Class ArrayList</H2>
 </PRE>
 
 <P>
+An expandable array.
+<P>
+
+<P>
 <DL>
 <DT><B>Author:</B></DT>
   <DD>Andre Nijholt</DD>
index a0c1c15..a80aa2a 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 BitSet (leJOS NXT API documentation)
 </TITLE>
index 1f3cf7c..885a84f 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 EmptyQueueException (leJOS NXT API documentation)
 </TITLE>
index d29413e..1edac33 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 EmptyStackException (leJOS NXT API documentation)
 </TITLE>
index a6a08cf..ba7257e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Hashtable (leJOS NXT API documentation)
 </TITLE>
index 7a84d64..1c8f5a9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Queue (leJOS NXT API documentation)
 </TITLE>
index 08dff1f..9b8da7f 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Random (leJOS NXT API documentation)
 </TITLE>
index 045e016..56d8001 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Stack (leJOS NXT API documentation)
 </TITLE>
index 724094c..dd476d1 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Vector (leJOS NXT API documentation)
 </TITLE>
index a03652f..70d5c71 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.util (leJOS NXT API documentation)
 </TITLE>
index 8d5f77b..febaa60 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.util (leJOS NXT API documentation)
 </TITLE>
@@ -92,7 +92,7 @@ Utilities
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/util/ArrayList.html" title="class in java.util">ArrayList</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>An expandable array.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../java/util/BitSet.html" title="class in java.util">BitSet</A></B></TD>
index 87863e4..b56e107 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 java.util Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
index c68e22f..6cd35fd 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 StreamConnection (leJOS NXT API documentation)
 </TITLE>
index 9ac1ae1..aeb8820 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 javax.microedition.io (leJOS NXT API documentation)
 </TITLE>
index 3fa40e1..37a646d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 javax.microedition.io (leJOS NXT API documentation)
 </TITLE>
index 5564c5b..ef97b7e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 javax.microedition.io Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
index b7a50c8..a7413f8 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Alert (leJOS NXT API documentation)
 </TITLE>
index a42b233..011af95 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Choice (leJOS NXT API documentation)
 </TITLE>
index c63db64..72b94c1 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 ChoiceGroup (leJOS NXT API documentation)
 </TITLE>
index de18436..31a93dd 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Command (leJOS NXT API documentation)
 </TITLE>
index c36bd20..34b189d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 CommandListener (leJOS NXT API documentation)
 </TITLE>
index bb845c3..79a07c9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Display (leJOS NXT API documentation)
 </TITLE>
index f8f6d0e..6747609 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Displayable (leJOS NXT API documentation)
 </TITLE>
index 9fc8f21..9751f99 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Font (leJOS NXT API documentation)
 </TITLE>
index dd87991..d9efe11 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Form (leJOS NXT API documentation)
 </TITLE>
index d8fa0e9..6688b7d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Gauge (leJOS NXT API documentation)
 </TITLE>
index 19cf2dd..03b68bf 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Graphics (leJOS NXT API documentation)
 </TITLE>
@@ -177,6 +177,14 @@ Preliminary Graphics class for LCD Screen
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../javax/microedition/lcdui/Graphics.html#autoRefresh(boolean)">autoRefresh</A></B>(boolean&nbsp;on)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../javax/microedition/lcdui/Graphics.html#clear()">clear</A></B>()</CODE>
 
 <BR>
@@ -340,6 +348,14 @@ Preliminary Graphics class for LCD Screen
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../javax/microedition/lcdui/Graphics.html#setColor(int)">setColor</A></B>(int&nbsp;rgb)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../javax/microedition/lcdui/Graphics.html#setPixel(int, int, int)">setPixel</A></B>(int&nbsp;rgbColor,
          int&nbsp;x,
          int&nbsp;y)</CODE>
@@ -478,6 +494,17 @@ public int <B>getCenteredX</B>(<A HREF="../../../java/lang/String.html" title="c
 </DL>
 <HR>
 
+<A NAME="setColor(int)"><!-- --></A><H3>
+setColor</H3>
+<PRE>
+public void <B>setColor</B>(int&nbsp;rgb)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="setPixel(int, int, int)"><!-- --></A><H3>
 setPixel</H3>
 <PRE>
@@ -681,6 +708,17 @@ public void <B>clear</B>()</PRE>
 </DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="autoRefresh(boolean)"><!-- --></A><H3>
+autoRefresh</H3>
+<PRE>
+public void <B>autoRefresh</B>(boolean&nbsp;on)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
index fbc19ac..51939b9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Image (leJOS NXT API documentation)
 </TITLE>
index 7392bc9..3c7d802 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Item (leJOS NXT API documentation)
 </TITLE>
index 7abd1d4..89dbfff 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 ItemCommandListener (leJOS NXT API documentation)
 </TITLE>
index 5102b91..80c0866 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 ItemStateListener (leJOS NXT API documentation)
 </TITLE>
index 1801999..634502b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 List (leJOS NXT API documentation)
 </TITLE>
index ca17205..c3565dc 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Screen (leJOS NXT API documentation)
 </TITLE>
index 0e76731..9ea676f 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Spacer (leJOS NXT API documentation)
 </TITLE>
index e4d2139..e1ccf84 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 StringItem (leJOS NXT API documentation)
 </TITLE>
index e1e5c6c..0db9736 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 TextBox (leJOS NXT API documentation)
 </TITLE>
index 52a401e..c44a77e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 TextField (leJOS NXT API documentation)
 </TITLE>
index 59216c6..0b2f382 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Ticker (leJOS NXT API documentation)
 </TITLE>
index 4f85ddc..ea2a32e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 javax.microedition.lcdui (leJOS NXT API documentation)
 </TITLE>
index 508dc72..d9eddba 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 javax.microedition.lcdui (leJOS NXT API documentation)
 </TITLE>
index 13fa0b6..b8f663c 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 javax.microedition.lcdui Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
index 67252a2..84e76cc 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 CompassNavigator (leJOS NXT API documentation)
 </TITLE>
@@ -101,7 +101,7 @@ Class CompassNavigator</H2>
 </PRE>
 
 <P>
-The CompassPilot class, like its superclass, can keep track of the robot position and the direction angle it faces; It uses a compassPpilot bject to control NXT robot movements.<br>
+The CompassNavigatort class, like its superclass, can keep track of the robot position and the direction angle it faces. It uses a CompassPilot object to control NXT robot movements.<br>
  The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.
  However, some commands optionally return immediately, to permit sensor monitoring in the main thread.  It is then the programmers responsibility to 
  call updateXY() when the robot motion is completed.  All angles are in degrees, distances in the units used to specify robot dimensions.
@@ -128,7 +128,7 @@ The CompassPilot class, like its superclass, can keep track of the robot positio
 <TH ALIGN="left"><B>Fields inherited from class lejos.navigation.<A HREF="../../lejos/navigation/TachoNavigator.html" title="class in lejos.navigation">TachoNavigator</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../lejos/navigation/TachoNavigator.html#_heading">_heading</A>, <A HREF="../../lejos/navigation/TachoNavigator.html#_pilot">_pilot</A></CODE></TD>
+<TD><CODE><A HREF="../../lejos/navigation/TachoNavigator.html#_heading">_heading</A>, <A HREF="../../lejos/navigation/TachoNavigator.html#_left0">_left0</A>, <A HREF="../../lejos/navigation/TachoNavigator.html#_pilot">_pilot</A>, <A HREF="../../lejos/navigation/TachoNavigator.html#_right0">_right0</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;
index 78626b6..f2fcfc7 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 CompassPilot (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,10 @@ Class CompassPilot</H2>
 </PRE>
 
 <P>
+A Pilot that keeps track of direction using a CompassSensor.
+<P>
+
+<P>
 <HR>
 
 <P>
index cb7fb6b..4675321 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Navigator (leJOS NXT API documentation)
 </TITLE>
index ff2bd90..3440906 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Pilot (leJOS NXT API documentation)
 </TITLE>
index 679d8a0..8b41598 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 TachoNavigator (leJOS NXT API documentation)
 </TITLE>
@@ -133,12 +133,28 @@ The TachoNavigator class can keep track of the robot position and the direction
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/navigation/TachoNavigator.html#_left0">_left0</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>protected &nbsp;<A HREF="../../lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A></CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/navigation/TachoNavigator.html#_pilot">_pilot</A></B></CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/navigation/TachoNavigator.html#_right0">_right0</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
 </TABLE>
 &nbsp;
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -446,6 +462,26 @@ protected float <B>_heading</B></PRE>
 </DL>
 <HR>
 
+<A NAME="_left0"><!-- --></A><H3>
+_left0</H3>
+<PRE>
+protected int <B>_left0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="_right0"><!-- --></A><H3>
+_right0</H3>
+<PRE>
+protected int <B>_right0</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
 <A NAME="_pilot"><!-- --></A><H3>
 _pilot</H3>
 <PRE>
@@ -918,7 +954,8 @@ updatePosition</H3>
 public void <B>updatePosition</B>()</PRE>
 <DL>
 <DD>Updates robot location (x,y) and direction angle. Called by stop, and movement commands that terminate when complete.
- Must be called after a command that returns immediatly, but after robot movement stops, and before another movement method is called.
+ If you use a movement command that returns immediately, you MUST call this method when the movement is complete. 
+ It may also be called while movement is on progress.
 <P>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/navigation/Navigator.html#updatePosition()">updatePosition</A></CODE> in interface <CODE><A HREF="../../lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A></CODE></DL>
@@ -975,7 +1012,7 @@ public void <B>turn</B>(float&nbsp;radius,
 <DL>
 <DD>Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached. <br>
  The center of the turning circle is on the right side of the robot iff parameter radius is negative.
- Robot will stop when total rotation equals angle. If angle is negative, robot will move travel backwards.
+ Robot will stop when total rotation equals angle. If angle is negative, robot will travel backwards.
 <P>
 <DD><DL>
 </DL>
index 4dc31ed..4e54cfc 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.navigation (leJOS NXT API documentation)
 </TITLE>
index 54117be..b951c40 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.navigation (leJOS NXT API documentation)
 </TITLE>
@@ -107,12 +107,11 @@ Navigation classes.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/navigation/CompassNavigator.html" title="class in lejos.navigation">CompassNavigator</A></B></TD>
-<TD>The CompassPilot class, like its superclass, can keep track of the robot position and the direction angle it faces; It uses a compassPpilot bject to control NXT robot movements.<br>
- The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.</TD>
+<TD>The CompassNavigatort class, like its superclass, can keep track of the robot position and the direction angle it faces.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/navigation/CompassPilot.html" title="class in lejos.navigation">CompassPilot</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>A Pilot that keeps track of direction using a CompassSensor.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/navigation/Pilot.html" title="class in lejos.navigation">Pilot</A></B></TD>
index a2343a5..624bf36 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.navigation Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ADSensorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/ADSensorPort.html
new file mode 100644 (file)
index 0000000..ea1d52c
--- /dev/null
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+ADSensorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.ADSensorPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ADSensorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/ADSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ADSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface ADSensorPort</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>, <A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ADSensorPort</B><DT>extends <A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></DL>
+</PRE>
+
+<P>
+An abstraction for a port that supports Analog/Digital sensors.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/ADSensorPort.html#readBooleanValue()">readBooleanValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/ADSensorPort.html#readRawValue()">readRawValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/ADSensorPort.html#readValue()">readValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicSensorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#getType()">getType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="readBooleanValue()"><!-- --></A><H3>
+readBooleanValue</H3>
+<PRE>
+boolean <B>readBooleanValue</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readRawValue()"><!-- --></A><H3>
+readRawValue</H3>
+<PRE>
+int <B>readRawValue</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readValue()"><!-- --></A><H3>
+readValue</H3>
+<PRE>
+int <B>readValue</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/ADSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ADSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotor.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotor.html
new file mode 100644 (file)
index 0000000..24c85bb
--- /dev/null
@@ -0,0 +1,526 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+BasicMotor (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.BasicMotor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BasicMotor (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicMotor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicMotor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class BasicMotor</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.BasicMotor</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A>, <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>BasicMotor</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+An abstraction for a motor without a tachometer,
+ such as an RCX motor.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#BasicMotor()">BasicMotor</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#backward()">backward</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to rotate backwards.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#flt()">flt</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to float.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#forward()">forward</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to rotate forward.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#getMode()">getMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#getPower()">getPower</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current power setting.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#isBackward()">isBackward</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is backward.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#isFloating()">isFloating</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true iff the motor is in float mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#isForward()">isForward</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is forward.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#isMoving()">isMoving</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true iff the motor is in motion.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#isStopped()">isStopped</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is stopped.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#reverseDirection()">reverseDirection</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reverses direction of the motor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#setPower(int)">setPower</A></B>(int&nbsp;power)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets power.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotor.html#stop()">stop</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to stop, pretty much
+ instantaneously.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BasicMotor()"><!-- --></A><H3>
+BasicMotor</H3>
+<PRE>
+public <B>BasicMotor</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setPower(int)"><!-- --></A><H3>
+setPower</H3>
+<PRE>
+public void <B>setPower</B>(int&nbsp;power)</PRE>
+<DL>
+<DD>Sets power.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>power</CODE> - power setting: 0 - 100</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPower()"><!-- --></A><H3>
+getPower</H3>
+<PRE>
+public int <B>getPower</B>()</PRE>
+<DL>
+<DD>Returns the current power setting.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>power value 0-100</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="forward()"><!-- --></A><H3>
+forward</H3>
+<PRE>
+public void <B>forward</B>()</PRE>
+<DL>
+<DD>Causes motor to rotate forward.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isForward()"><!-- --></A><H3>
+isForward</H3>
+<PRE>
+public boolean <B>isForward</B>()</PRE>
+<DL>
+<DD>Return true if motor is forward.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="backward()"><!-- --></A><H3>
+backward</H3>
+<PRE>
+public void <B>backward</B>()</PRE>
+<DL>
+<DD>Causes motor to rotate backwards.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isBackward()"><!-- --></A><H3>
+isBackward</H3>
+<PRE>
+public boolean <B>isBackward</B>()</PRE>
+<DL>
+<DD>Return true if motor is backward.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reverseDirection()"><!-- --></A><H3>
+reverseDirection</H3>
+<PRE>
+public void <B>reverseDirection</B>()</PRE>
+<DL>
+<DD>Reverses direction of the motor. It only has
+ effect if the motor is moving.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isMoving()"><!-- --></A><H3>
+isMoving</H3>
+<PRE>
+public boolean <B>isMoving</B>()</PRE>
+<DL>
+<DD>Returns true iff the motor is in motion.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true iff the motor is currently in motion.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flt()"><!-- --></A><H3>
+flt</H3>
+<PRE>
+public void <B>flt</B>()</PRE>
+<DL>
+<DD>Causes motor to float. The motor will lose all power,
+ but this is not the same as stopping. Use this
+ method if you don't want your robot to trip in
+ abrupt turns.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isFloating()"><!-- --></A><H3>
+isFloating</H3>
+<PRE>
+public boolean <B>isFloating</B>()</PRE>
+<DL>
+<DD>Returns true iff the motor is in float mode.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true iff the motor is currently in float mode.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stop()"><!-- --></A><H3>
+stop</H3>
+<PRE>
+public void <B>stop</B>()</PRE>
+<DL>
+<DD>Causes motor to stop, pretty much
+ instantaneously. In other words, the
+ motor doesn't just stop; it will resist
+ any further motion.
+ Cancels any rotate() orders in progress
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isStopped()"><!-- --></A><H3>
+isStopped</H3>
+<PRE>
+public boolean <B>isStopped</B>()</PRE>
+<DL>
+<DD>Return true if motor is stopped.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMode()"><!-- --></A><H3>
+getMode</H3>
+<PRE>
+public int <B>getMode</B>()</PRE>
+<DL>
+<DD>Returns the mode.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>mode 1=forward, 2=backward, 3=stopped, 4=floating</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicMotor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicMotor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicMotorPort.html
new file mode 100644 (file)
index 0000000..6474200
--- /dev/null
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+BasicMotorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.BasicMotorPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BasicMotorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface BasicMotorPort</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>, <A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A>, <A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A>, <A HREF="../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BasicMotorPort</B></DL>
+</PRE>
+
+<P>
+An abstraction for a motor port that supports RCX
+ type motors, but not NXT motors with tachometers.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A></B>(int&nbsp;power,
+             int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="PWM_FLOAT"><!-- --></A><H3>
+PWM_FLOAT</H3>
+<PRE>
+static final int <B>PWM_FLOAT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.BasicMotorPort.PWM_FLOAT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PWM_BRAKE"><!-- --></A><H3>
+PWM_BRAKE</H3>
+<PRE>
+static final int <B>PWM_BRAKE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.BasicMotorPort.PWM_BRAKE">Constant Field Values</A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="controlMotor(int, int)"><!-- --></A><H3>
+controlMotor</H3>
+<PRE>
+void <B>controlMotor</B>(int&nbsp;power,
+                  int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPWMMode(int)"><!-- --></A><H3>
+setPWMMode</H3>
+<PRE>
+void <B>setPWMMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicSensorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/BasicSensorPort.html
new file mode 100644 (file)
index 0000000..7b32abc
--- /dev/null
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+BasicSensorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.BasicSensorPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="BasicSensorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/Battery.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface BasicSensorPort</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, <A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, <A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>, <A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>BasicSensorPort</B><DT>extends <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DL>
+</PRE>
+
+<P>
+An abstraction for a sensor port that supports 
+ setting and retrieving types and modes of sensors.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicSensorPort.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A></B>(int&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></B>(int&nbsp;type,
+               int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getMode()"><!-- --></A><H3>
+getMode</H3>
+<PRE>
+int <B>getMode</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+int <B>getType</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMode(int)"><!-- --></A><H3>
+setMode</H3>
+<PRE>
+void <B>setMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setType(int)"><!-- --></A><H3>
+setType</H3>
+<PRE>
+void <B>setType</B>(int&nbsp;type)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTypeAndMode(int, int)"><!-- --></A><H3>
+setTypeAndMode</H3>
+<PRE>
+void <B>setTypeAndMode</B>(int&nbsp;type,
+                    int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/Battery.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/BasicSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="BasicSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 3ba1b47..d23fc04 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Battery (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/Button.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Battery.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -208,7 +208,7 @@ public static float <B>getVoltage</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/Button.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Battery.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 81165eb..a1263a6 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Button (leJOS NXT API documentation)
 </TITLE>
index ba2e4b1..484c836 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 ButtonListener (leJOS NXT API documentation)
 </TITLE>
index 67a076d..143331c 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 ColorSensor (leJOS NXT API documentation)
 </TITLE>
@@ -137,7 +137,7 @@ HiTechnic color sensor.<br>
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/ColorSensor.html#ColorSensor(lejos.nxt.I2CPort)">ColorSensor</A></B>(lejos.nxt.I2CPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/ColorSensor.html#ColorSensor(lejos.nxt.I2CPort)">ColorSensor</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -191,7 +191,7 @@ HiTechnic color sensor.<br>
 <TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></CODE></TD>
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -219,7 +219,7 @@ HiTechnic color sensor.<br>
 <A NAME="ColorSensor(lejos.nxt.I2CPort)"><!-- --></A><H3>
 ColorSensor</H3>
 <PRE>
-public <B>ColorSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
+public <B>ColorSensor</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
index 2543506..50b22e1 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 CompassSensor (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/CompassSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="CompassSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -136,7 +136,7 @@ Abstraction for a HiTechnic or Mindsensors compass.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/CompassSensor.html#CompassSensor(lejos.nxt.I2CPort)">CompassSensor</A></B>(lejos.nxt.I2CPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/CompassSensor.html#CompassSensor(lejos.nxt.I2CPort)">CompassSensor</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -200,7 +200,7 @@ Abstraction for a HiTechnic or Mindsensors compass.
 <TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></CODE></TD>
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -228,7 +228,7 @@ Abstraction for a HiTechnic or Mindsensors compass.
 <A NAME="CompassSensor(lejos.nxt.I2CPort)"><!-- --></A><H3>
 CompassSensor</H3>
 <PRE>
-public <B>CompassSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
+public <B>CompassSensor</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
@@ -349,7 +349,7 @@ public void <B>stopCalibration</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/CompassSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="CompassSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
index 623a170..de0f47a 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Flash (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Flash.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Flash.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -97,10 +97,43 @@ Class Flash</H2>
 </PRE>
 
 <P>
+Read and write access to flash memory in pages.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
 <HR>
 
 <P>
+<!-- =========== FIELD SUMMARY =========== -->
 
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;short</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/Flash.html#BYTES_PER_PAGE">BYTES_PER_PAGE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates the # of bytes per page in a page of Flash memory.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/Flash.html#MAX_USER_PAGES">MAX_USER_PAGES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum number of pages available to user flash memory.</TD>
+</TR>
+</TABLE>
+&nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -149,6 +182,41 @@ Class Flash</H2>
 &nbsp;
 <P>
 
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="MAX_USER_PAGES"><!-- --></A><H3>
+MAX_USER_PAGES</H3>
+<PRE>
+public static final int <B>MAX_USER_PAGES</B></PRE>
+<DL>
+<DD>Maximum number of pages available to user flash memory.
+ Change this if the start of user flash memory in the
+ firmware changes.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.Flash.MAX_USER_PAGES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BYTES_PER_PAGE"><!-- --></A><H3>
+BYTES_PER_PAGE</H3>
+<PRE>
+public static short <B>BYTES_PER_PAGE</B></PRE>
+<DL>
+<DD>Indicates the # of bytes per page in a page of Flash memory.
+<P>
+<DL>
+</DL>
+</DL>
+
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -223,8 +291,8 @@ public static void <B>exec</B>(int&nbsp;pageNum,
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Flash.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Flash.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -244,9 +312,9 @@ public static void <B>exec</B>(int&nbsp;pageNum,
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/GyroSensor.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/GyroSensor.html
new file mode 100644 (file)
index 0000000..2fedf55
--- /dev/null
@@ -0,0 +1,307 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+GyroSensor (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.GyroSensor class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="GyroSensor (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/GyroSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GyroSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class GyroSensor</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.GyroSensor</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>GyroSensor</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DL>
+</PRE>
+
+<P>
+Support the HiTechnic Gyro sensor - untested.
+ http://www.hitechnic.com/
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/GyroSensor.html#GyroSensor(lejos.nxt.ADSensorPort)">GyroSensor</A></B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/GyroSensor.html#readValue()">readValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read the gyro value</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/GyroSensor.html#setOffset(int)">setOffset</A></B>(int&nbsp;offset)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the offset</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="GyroSensor(lejos.nxt.ADSensorPort)"><!-- --></A><H3>
+GyroSensor</H3>
+<PRE>
+public <B>GyroSensor</B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="readValue()"><!-- --></A><H3>
+readValue</H3>
+<PRE>
+public int <B>readValue</B>()</PRE>
+<DL>
+<DD>Read the gyro value
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>gyro value</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOffset(int)"><!-- --></A><H3>
+setOffset</H3>
+<PRE>
+public void <B>setOffset</B>(int&nbsp;offset)</PRE>
+<DL>
+<DD>Set the offset
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/GyroSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="GyroSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/I2CPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/I2CPort.html
new file mode 100644 (file)
index 0000000..5f477d9
--- /dev/null
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+I2CPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.I2CPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="I2CPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/I2CPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="I2CPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface I2CPort</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>I2CPort</B><DT>extends <A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></DL>
+</PRE>
+
+<P>
+Abstraction for a port that supports I2C sensors.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CPort.html#i2cBusy()">i2cBusy</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CPort.html#i2cDisable()">i2cDisable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CPort.html#i2cEnable()">i2cEnable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CPort.html#i2cStart(int, int, int, byte[], int, int)">i2cStart</A></B>(int&nbsp;address,
+         int&nbsp;internalAddress,
+         int&nbsp;numInternalBytes,
+         byte[]&nbsp;buffer,
+         int&nbsp;numBytes,
+         int&nbsp;transferType)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicSensorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#getType()">getType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="i2cEnable()"><!-- --></A><H3>
+i2cEnable</H3>
+<PRE>
+void <B>i2cEnable</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="i2cDisable()"><!-- --></A><H3>
+i2cDisable</H3>
+<PRE>
+void <B>i2cDisable</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="i2cBusy()"><!-- --></A><H3>
+i2cBusy</H3>
+<PRE>
+int <B>i2cBusy</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="i2cStart(int, int, int, byte[], int, int)"><!-- --></A><H3>
+i2cStart</H3>
+<PRE>
+int <B>i2cStart</B>(int&nbsp;address,
+             int&nbsp;internalAddress,
+             int&nbsp;numInternalBytes,
+             byte[]&nbsp;buffer,
+             int&nbsp;numBytes,
+             int&nbsp;transferType)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/I2CPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="I2CPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 515035e..574376f 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 I2CSensor (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/I2CSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="I2CSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -95,7 +95,7 @@ Class I2CSensor</H2>
 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
 </DL>
 <DL>
-<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>, <A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>, <A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>, <A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A></DD>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>, <A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>, <A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>, <A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>, <A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>, <A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>, <A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>, <A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A></DD>
 </DL>
 <HR>
 <DL>
@@ -144,7 +144,7 @@ Abstract class that implements common methods for all I2C sensors.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/I2CSensor.html#I2CSensor(lejos.nxt.I2CPort)">I2CSensor</A></B>(lejos.nxt.I2CPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CSensor.html#I2CSensor(lejos.nxt.I2CPort)">I2CSensor</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -196,12 +196,29 @@ Abstract class that implements common methods for all I2C sensors.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A></B>(int&nbsp;register,
+         byte&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes an I2C write transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></B>(int&nbsp;register,
          byte[]&nbsp;buf,
          int&nbsp;len)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes an I2C write transaction - not yet working.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes an I2C write transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></B>(int&nbsp;addr)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -229,7 +246,7 @@ Abstract class that implements common methods for all I2C sensors.
 <A NAME="I2CSensor(lejos.nxt.I2CPort)"><!-- --></A><H3>
 I2CSensor</H3>
 <PRE>
-public <B>I2CSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
+public <B>I2CSensor</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
@@ -269,7 +286,7 @@ public int <B>sendData</B>(int&nbsp;register,
                     byte[]&nbsp;buf,
                     int&nbsp;len)</PRE>
 <DL>
-<DD>Executes an I2C write transaction - not yet working.
+<DD>Executes an I2C write transaction.
 <P>
 <DD><DL>
 </DL>
@@ -281,6 +298,24 @@ public int <B>sendData</B>(int&nbsp;register,
 </DL>
 <HR>
 
+<A NAME="sendData(int, byte)"><!-- --></A><H3>
+sendData</H3>
+<PRE>
+public int <B>sendData</B>(int&nbsp;register,
+                    byte&nbsp;value)</PRE>
+<DL>
+<DD>Executes an I2C write transaction.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>register</CODE> - I2C register, e.g 0x42<DD><CODE>value</CODE> - single byte to send
+<DT><B>Returns:</B><DD>status zero=success, non-zero=failure</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="getVersion()"><!-- --></A><H3>
 getVersion</H3>
 <PRE>
@@ -330,6 +365,20 @@ public <A HREF="../../java/lang/String.html" title="class in java.lang">String</
 <DT><B>Returns:</B><DD>8-byte string</DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="setAddress(int)"><!-- --></A><H3>
+setAddress</H3>
+<PRE>
+public void <B>setAddress</B>(int&nbsp;addr)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -360,8 +409,8 @@ public <A HREF="../../java/lang/String.html" title="class in java.lang">String</
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/I2CSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="I2CSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/IRSeeker.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/IRSeeker.html
new file mode 100644 (file)
index 0000000..fa66d2e
--- /dev/null
@@ -0,0 +1,310 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+IRSeeker (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.IRSeeker class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="IRSeeker (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/IRSeeker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IRSeeker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class IRSeeker</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">lejos.nxt.I2CSensor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.IRSeeker</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>IRSeeker</B><DT>extends <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></DL>
+</PRE>
+
+<P>
+HiTechnic IRSeeker sensor - untested.
+ www.hitechnic.com
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/IRSeeker.html#IRSeeker(lejos.nxt.I2CPort)">IRSeeker</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/IRSeeker.html#getDirection()">getDirection</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the direction of the target (1-9)
+ or zero if no target.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/IRSeeker.html#getSensorValue(int)">getSensorValue</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns value of sensor 1 - 5.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.I2CSensor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="IRSeeker(lejos.nxt.I2CPort)"><!-- --></A><H3>
+IRSeeker</H3>
+<PRE>
+public <B>IRSeeker</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getDirection()"><!-- --></A><H3>
+getDirection</H3>
+<PRE>
+public int <B>getDirection</B>()</PRE>
+<DL>
+<DD>Returns the direction of the target (1-9)
+ or zero if no target.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>direction</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSensorValue(int)"><!-- --></A><H3>
+getSensorValue</H3>
+<PRE>
+public int <B>getSensorValue</B>(int&nbsp;id)</PRE>
+<DL>
+<DD>Returns value of sensor 1 - 5.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>sensor value (0 to 255).</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/IRSeeker.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="IRSeeker.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 4567f9f..bb991a8 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 LCD (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/LCD.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="LCD.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -97,9 +97,13 @@ Class LCD</H2>
 </PRE>
 
 <P>
+Text and graphics output to the LCD display.
+<P>
+
+<P>
 <DL>
 <DT><B>Author:</B></DT>
-  <DD>Andre Nijholt</DD>
+  <DD>Andre Nijholt and BB</DD>
 </DL>
 <HR>
 
@@ -301,6 +305,14 @@ Class LCD</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/LCD.html#getDisplay()">getDisplay</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/LCD.html#refresh()">refresh</A></B>()</CODE>
 
@@ -310,6 +322,14 @@ Class LCD</H2>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/LCD.html#setAutoRefresh(int)">setAutoRefresh</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/LCD.html#setDisplay()">setDisplay</A></B>()</CODE>
 
 <BR>
@@ -331,7 +351,7 @@ Class LCD</H2>
          int&nbsp;y)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to set a pixel to screen.</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -482,6 +502,28 @@ public <B>LCD</B>()</PRE>
 </TR>
 </TABLE>
 
+<A NAME="getDisplay()"><!-- --></A><H3>
+getDisplay</H3>
+<PRE>
+public static int[] <B>getDisplay</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAutoRefresh(int)"><!-- --></A><H3>
+setAutoRefresh</H3>
+<PRE>
+public static void <B>setAutoRefresh</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="setPixel(int, int, int)"><!-- --></A><H3>
 setPixel</H3>
 <PRE>
@@ -489,6 +531,8 @@ public static void <B>setPixel</B>(int&nbsp;rgbColor,
                             int&nbsp;x,
                             int&nbsp;y)</PRE>
 <DL>
+<DD>Method to set a pixel to screen.
+<P>
 <DD><DL>
 </DL>
 </DD>
@@ -673,8 +717,8 @@ public static void <B>setDisplay</B>(int[]&nbsp;buff)</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/LCD.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="LCD.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/LegacySensorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/LegacySensorPort.html
new file mode 100644 (file)
index 0000000..fd70e86
--- /dev/null
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+LegacySensorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.LegacySensorPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LegacySensorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/LegacySensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LegacySensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface LegacySensorPort</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>LegacySensorPort</B><DT>extends <A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></DL>
+</PRE>
+
+<P>
+Abstraction for a port that supports legacy RCX sensors.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/LegacySensorPort.html#activate()">activate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/LegacySensorPort.html#passivate()">passivate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.ADSensorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/ADSensorPort.html#readBooleanValue()">readBooleanValue</A>, <A HREF="../../lejos/nxt/ADSensorPort.html#readRawValue()">readRawValue</A>, <A HREF="../../lejos/nxt/ADSensorPort.html#readValue()">readValue</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicSensorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#getType()">getType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="activate()"><!-- --></A><H3>
+activate</H3>
+<PRE>
+void <B>activate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="passivate()"><!-- --></A><H3>
+passivate</H3>
+<PRE>
+void <B>passivate</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/LegacySensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LegacySensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index ce8ccf6..9505de6 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 LightSensor (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/LightSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -136,13 +136,13 @@ Abstraction for a NXT light sensor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/LightSensor.html#LightSensor(lejos.nxt.ADSensorPort)">LightSensor</A></B>(lejos.nxt.ADSensorPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/LightSensor.html#LightSensor(lejos.nxt.ADSensorPort)">LightSensor</A></B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a light sensor object attached to the specified port.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/LightSensor.html#LightSensor(lejos.nxt.ADSensorPort, boolean)">LightSensor</A></B>(lejos.nxt.ADSensorPort&nbsp;port,
+<TD><CODE><B><A HREF="../../lejos/nxt/LightSensor.html#LightSensor(lejos.nxt.ADSensorPort, boolean)">LightSensor</A></B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port,
             boolean&nbsp;floodlight)</CODE>
 
 <BR>
@@ -225,7 +225,7 @@ Abstraction for a NXT light sensor.
 <A NAME="LightSensor(lejos.nxt.ADSensorPort)"><!-- --></A><H3>
 LightSensor</H3>
 <PRE>
-public <B>LightSensor</B>(lejos.nxt.ADSensorPort&nbsp;port)</PRE>
+public <B>LightSensor</B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</PRE>
 <DL>
 <DD>Create a light sensor object attached to the specified port.
  The sensor will be set to floodlit mode, i.e. the LED will be turned on.
@@ -238,7 +238,7 @@ public <B>LightSensor</B>(lejos.nxt.ADSensorPort&nbsp;port)</PRE>
 <A NAME="LightSensor(lejos.nxt.ADSensorPort, boolean)"><!-- --></A><H3>
 LightSensor</H3>
 <PRE>
-public <B>LightSensor</B>(lejos.nxt.ADSensorPort&nbsp;port,
+public <B>LightSensor</B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port,
                    boolean&nbsp;floodlight)</PRE>
 <DL>
 <DD>Create a light sensor object attached to the specified port,
@@ -371,7 +371,7 @@ public void <B>calibrateHigh</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/LightSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 100b549..b7b60ee 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 ListenerCaller (leJOS NXT API documentation)
 </TITLE>
index ca6a457..35b0e94 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Motor (leJOS NXT API documentation)
 </TITLE>
@@ -89,14 +89,12 @@ lejos.nxt</FONT>
 Class Motor</H2>
 <PRE>
 <A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.Motor</B>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">lejos.nxt.BasicMotor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.Motor</B>
 </PRE>
-<DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A></DD>
-</DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>Motor</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A></DL>
+<DT><PRE>public class <B>Motor</B><DT>extends <A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></DL>
 </PRE>
 
 <P>
@@ -133,7 +131,7 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <P>
 <DL>
 <DT><B>Author:</B></DT>
-  <DD>Roger Glassey revised 26 March 2007</DD>
+  <DD>Roger Glassey revised 20 Dec 2007 - uses brake mode for better control</DD>
 </DL>
 <HR>
 
@@ -189,7 +187,7 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#Motor(lejos.nxt.MotorPort)">Motor</A></B>(<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#Motor(lejos.nxt.TachoMotorPort)">Motor</A></B>(<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -242,7 +240,7 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#getBasePower()">getBasePower</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for debugging</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -250,7 +248,7 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#getError()">getError</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for degugging</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -303,30 +301,6 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isBackward()">isBackward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is backward.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isFloating()">isFloating</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true iff the motor is in float mode.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isForward()">isForward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is forward.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isMoving()">isMoving</A></B>()</CODE>
 
 <BR>
@@ -346,15 +320,7 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 <TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isRotating()">isRotating</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns true when motor is rotating towarad a specified angle</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#isStopped()">isStopped</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is stopped.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns true when motor rotation task is not yet complete a specified angle</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -462,13 +428,14 @@ Abstraction for a NXT motor. Three instances of <code>Motor</code>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to stop, pretty much
  instantaneously.</TD>
 </TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicMotor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></B></TH>
+</TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Motor.html#timedOut()">timedOut</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requred by TimerListener interface</TD>
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#isBackward()">isBackward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isFloating()">isFloating</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isForward()">isForward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isStopped()">isStopped</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -548,10 +515,10 @@ public static final <A HREF="../../lejos/nxt/Motor.html" title="class in lejos.n
 </TR>
 </TABLE>
 
-<A NAME="Motor(lejos.nxt.MotorPort)"><!-- --></A><H3>
+<A NAME="Motor(lejos.nxt.TachoMotorPort)"><!-- --></A><H3>
 Motor</H3>
 <PRE>
-public <B>Motor</B>(<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>&nbsp;port)</PRE>
+public <B>Motor</B>(<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
@@ -573,9 +540,6 @@ public int <B>getStopAngle</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -587,7 +551,7 @@ public void <B>forward</B>()</PRE>
 <DD>Causes motor to rotate forward.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#forward()">forward</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -603,7 +567,7 @@ public void <B>backward</B>()</PRE>
 <DD>Causes motor to rotate backwards.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#backward()">backward</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -620,7 +584,7 @@ public void <B>reverseDirection</B>()</PRE>
  effect if the motor is moving.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#reverseDirection()">reverseDirection</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -639,7 +603,7 @@ public void <B>flt</B>()</PRE>
  abrupt turns.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#flt()">flt</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -659,7 +623,7 @@ public void <B>stop</B>()</PRE>
  Cancels any rotate() orders in progress
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#stop()">stop</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -670,12 +634,13 @@ public void <B>stop</B>()</PRE>
 <A NAME="isMoving()"><!-- --></A><H3>
 isMoving</H3>
 <PRE>
-public final boolean <B>isMoving</B>()</PRE>
+public boolean <B>isMoving</B>()</PRE>
 <DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../lejos/nxt/BasicMotor.html#isMoving()">BasicMotor</A></CODE></B></DD>
 <DD>Returns true iff the motor is in motion.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#isMoving()">isMoving</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 
@@ -692,9 +657,6 @@ public void <B>rotate</B>(int&nbsp;angle)</PRE>
 <DD>causes motor to rotate through angle. <br>
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>angle</CODE> - through which the motor will rotate</DL>
 </DD>
 </DL>
@@ -711,9 +673,6 @@ public void <B>rotate</B>(int&nbsp;angle,
  When the angle is reached, the method isRotating() returns false;
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>angle</CODE> - through which the motor will rotate<DD><CODE>immediateReturn</CODE> - iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread.</DL>
 </DD>
 </DL>
@@ -728,9 +687,6 @@ public void <B>rotateTo</B>(int&nbsp;limitAngle)</PRE>
  Then getTachoCount should be within +- 2 degrees of the limit angle when the method returns
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>limitAngle</CODE> - to which the motor will rotate</DL>
 </DD>
 </DL>
@@ -748,9 +704,6 @@ public void <B>rotateTo</B>(int&nbsp;limitAngle,
  When the angle is reached, the method isRotating() returns false;
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>limitAngle</CODE> - to which the motor will rotate, and then stop.<DD><CODE>immediateReturn</CODE> - iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread.</DL>
 </DD>
 </DL>
@@ -766,9 +719,6 @@ public void <B>shutdown</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -781,9 +731,6 @@ public void <B>regulateSpeed</B>(boolean&nbsp;yes)</PRE>
  Cumulative speed error is within about 1 degree after initial acceleration.
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>yes</CODE> - is true for speed regulation on</DL>
 </DD>
 </DL>
@@ -800,23 +747,17 @@ public void <B>smoothAcceleration</B>(boolean&nbsp;yes)</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
 <A NAME="setSpeed(int)"><!-- --></A><H3>
 setSpeed</H3>
 <PRE>
-public final void <B>setSpeed</B>(int&nbsp;speed)</PRE>
+public void <B>setSpeed</B>(int&nbsp;speed)</PRE>
 <DL>
 <DD>Sets motor speed , in degrees per second; Up to 900 is posssible with 8 volts.
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 <DT><B>Parameters:</B><DD><CODE>speed</CODE> - value in degrees/sec</DL>
 </DD>
 </DL>
@@ -833,7 +774,7 @@ field which is used by the Regulator thread.  If the speed regulation is enabled
 unpredictable.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#setPower(int)">setPower</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 <DT><B>Parameters:</B><DD><CODE>power</CODE> - power setting: 0 - 100</DL>
@@ -844,16 +785,13 @@ unpredictable.
 <A NAME="getSpeed()"><!-- --></A><H3>
 getSpeed</H3>
 <PRE>
-public final int <B>getSpeed</B>()</PRE>
+public int <B>getSpeed</B>()</PRE>
 <DL>
 <DD>Returns the current motor speed in degrees per second
 <P>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -862,14 +800,15 @@ getMode</H3>
 <PRE>
 public int <B>getMode</B>()</PRE>
 <DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../lejos/nxt/BasicMotor.html#getMode()">BasicMotor</A></CODE></B></DD>
 <DD>Returns the mode.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#getMode()">getMode</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 
-<DT><B>Returns:</B><DD>mode 1=forward, 2=backward, 3=stopped, 4=floating</DL>
+<DT><B>Returns:</B><DD>: 1 = forwardm, 2= backward, 3 = stop, 4 = float</DL>
 </DD>
 </DL>
 <HR>
@@ -879,10 +818,11 @@ getPower</H3>
 <PRE>
 public int <B>getPower</B>()</PRE>
 <DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../lejos/nxt/BasicMotor.html#getPower()">BasicMotor</A></CODE></B></DD>
 <DD>Returns the current power setting.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#getPower()">getPower</A></CODE> in class <CODE><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></CODE></DL>
 </DD>
 <DD><DL>
 
@@ -899,9 +839,6 @@ public int <B>getLimitAngle</B>()</PRE>
 <DD>Return the angle that a Motor is rotating to.
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 
 <DT><B>Returns:</B><DD>angle in degrees</DL>
 </DD>
@@ -913,14 +850,11 @@ isRotating</H3>
 <PRE>
 public boolean <B>isRotating</B>()</PRE>
 <DL>
-<DD>returns true when motor is rotating towarad a specified angle
+<DD>returns true when motor rotation task is not yet complete a specified angle
 <P>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -932,25 +866,6 @@ public boolean <B>isRegulating</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="timedOut()"><!-- --></A><H3>
-timedOut</H3>
-<PRE>
-public void <B>timedOut</B>()</PRE>
-<DL>
-<DD>requred by TimerListener interface
-<P>
-<DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/util/TimerListener.html#timedOut()">timedOut</A></CODE> in interface <CODE><A HREF="../../lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A></CODE></DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -964,9 +879,6 @@ public int <B>getActualSpeed</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -978,9 +890,6 @@ public int <B>getTachoCount</B>()</PRE>
 <DD>Returns the tachometer count.
 <P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
 
 <DT><B>Returns:</B><DD>tachometer count in degrees</DL>
 </DD>
@@ -997,9 +906,6 @@ public void <B>resetTachoCount</B>()</PRE>
 <DD><DL>
 </DL>
 </DD>
-<DD><DL>
-</DL>
-</DD>
 </DL>
 <HR>
 
@@ -1008,11 +914,11 @@ getError</H3>
 <PRE>
 public float <B>getError</B>()</PRE>
 <DL>
+<DD>for degugging
+<P>
 <DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
+
+<DT><B>Returns:</B><DD>regulator error</DL>
 </DD>
 </DL>
 <HR>
@@ -1022,64 +928,11 @@ getBasePower</H3>
 <PRE>
 public float <B>getBasePower</B>()</PRE>
 <DL>
-<DD><DL>
-</DL>
-</DD>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isForward()"><!-- --></A><H3>
-isForward</H3>
-<PRE>
-public boolean <B>isForward</B>()</PRE>
-<DL>
-<DD>Return true if motor is forward.
+<DD>for debugging
 <P>
 <DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
 
-<A NAME="isBackward()"><!-- --></A><H3>
-isBackward</H3>
-<PRE>
-public boolean <B>isBackward</B>()</PRE>
-<DL>
-<DD>Return true if motor is backward.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isFloating()"><!-- --></A><H3>
-isFloating</H3>
-<PRE>
-public boolean <B>isFloating</B>()</PRE>
-<DL>
-<DD>Returns true iff the motor is in float mode.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true iff the motor is currently in float mode.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isStopped()"><!-- --></A><H3>
-isStopped</H3>
-<PRE>
-public boolean <B>isStopped</B>()</PRE>
-<DL>
-<DD>Return true if motor is stopped.
-<P>
-<DD><DL>
-</DL>
+<DT><B>Returns:</B><DD>base power of regulator</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
index 3341027..2fa120e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 MotorPort (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/MotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="MotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -91,9 +91,12 @@ Class MotorPort</H2>
 <A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
   <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.MotorPort</B>
 </PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>, <A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>, <A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DD>
+</DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>MotorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+<DT><PRE>public class <B>MotorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DL>
 </PRE>
 
 <P>
@@ -137,6 +140,15 @@ Abstraction for a NXT output port.
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MotorPort C.</TD>
 </TR>
 </TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A>, <A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+</TR>
+</TABLE>
 &nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
@@ -187,6 +199,14 @@ Abstraction for a NXT output port.
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/MotorPort.html#setPWMMode(int)">setPWMMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -264,7 +284,7 @@ public void <B>controlMotor</B>(int&nbsp;power,
 <DD>Low-level method to control a motor.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 <DT><B>Parameters:</B><DD><CODE>power</CODE> - power from 0-100<DD><CODE>mode</CODE> - 1=forward, 2=backward, 3=stop, 4=float</DL>
@@ -280,7 +300,7 @@ public int <B>getTachoCount</B>()</PRE>
 <DD>returns tachometer count
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/Tachometer.html#getTachoCount()">getTachoCount</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -310,8 +330,22 @@ public void <B>resetTachoCount</B>()</PRE>
 <DD>resets the tachometer count to 0;
 <P>
 <DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/Tachometer.html#resetTachoCount()">resetTachoCount</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></CODE></DL>
+</DD>
+<DD><DL>
 </DL>
 </DD>
+</DL>
+<HR>
+
+<A NAME="setPWMMode(int)"><!-- --></A><H3>
+setPWMMode</H3>
+<PRE>
+public void <B>setPWMMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
 <DD><DL>
 </DL>
 </DD>
@@ -361,7 +395,7 @@ public static void <B>resetTachoCountById</B>(int&nbsp;aMotor)</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/MotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="MotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/NXTCam.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/NXTCam.html
new file mode 100644 (file)
index 0000000..d876074
--- /dev/null
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+NXTCam (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.NXTCam class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NXTCam (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/NXTCam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTCam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class NXTCam</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">lejos.nxt.I2CSensor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.NXTCam</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>NXTCam</B><DT>extends <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></DL>
+</PRE>
+
+<P>
+Mindsensors NXTCam.
+ www.mindsensors.com
+ Author Lawrie Griffiths
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/NXTCam.html#NXTCam(lejos.nxt.I2CPort)">NXTCam</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/NXTCam.html#getNumberOfObjects()">getNumberOfObjects</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the number of objects being tracked</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/NXTCam.html#getObjectColor(int)">getObjectColor</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the color number for a tracked object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../java/awt/Rectangle.html" title="class in java.awt">Rectangle</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/NXTCam.html#getRectangle(int)">getRectangle</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the rectangle containing a tracked object</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/NXTCam.html#sendCommand(char)">sendCommand</A></B>(char&nbsp;cmd)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a single byte command represented by a letter</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.I2CSensor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NXTCam(lejos.nxt.I2CPort)"><!-- --></A><H3>
+NXTCam</H3>
+<PRE>
+public <B>NXTCam</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getNumberOfObjects()"><!-- --></A><H3>
+getNumberOfObjects</H3>
+<PRE>
+public int <B>getNumberOfObjects</B>()</PRE>
+<DL>
+<DD>Get the number of objects being tracked
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>number of objects (0 - 8)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getObjectColor(int)"><!-- --></A><H3>
+getObjectColor</H3>
+<PRE>
+public int <B>getObjectColor</B>(int&nbsp;id)</PRE>
+<DL>
+<DD>Get the color number for a tracked object
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - the object number (starting at zero)
+<DT><B>Returns:</B><DD>the color of the object (starting at zero)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRectangle(int)"><!-- --></A><H3>
+getRectangle</H3>
+<PRE>
+public <A HREF="../../java/awt/Rectangle.html" title="class in java.awt">Rectangle</A> <B>getRectangle</B>(int&nbsp;id)</PRE>
+<DL>
+<DD>Get the rectangle containing a tracked object
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>id</CODE> - the object number (starting at zero)
+<DT><B>Returns:</B><DD>the rectangle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendCommand(char)"><!-- --></A><H3>
+sendCommand</H3>
+<PRE>
+public void <B>sendCommand</B>(char&nbsp;cmd)</PRE>
+<DL>
+<DD>Send a single byte command represented by a letter
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cmd</CODE> - the letter that identifies the command</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/NXTCam.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTCam.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 0e800e1..81c0706 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Poll (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Poll.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -505,7 +505,7 @@ public final void <B>setThrottle</B>(int&nbsp;throttle)</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/Poll.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 02a71c6..5dd93cf 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 RCXLightSensor (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/RCXLightSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="RCXLightSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -135,7 +135,7 @@ Abstraction for an RCX light sensor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXLightSensor.html#RCXLightSensor(lejos.nxt.LegacySensorPort)">RCXLightSensor</A></B>(lejos.nxt.LegacySensorPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLightSensor.html#RCXLightSensor(lejos.nxt.LegacySensorPort)">RCXLightSensor</A></B>(<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create an RCX light sensor object attached to the specified port.</TD>
@@ -200,7 +200,7 @@ Abstraction for an RCX light sensor.
 <A NAME="RCXLightSensor(lejos.nxt.LegacySensorPort)"><!-- --></A><H3>
 RCXLightSensor</H3>
 <PRE>
-public <B>RCXLightSensor</B>(lejos.nxt.LegacySensorPort&nbsp;port)</PRE>
+public <B>RCXLightSensor</B>(<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>&nbsp;port)</PRE>
 <DL>
 <DD>Create an RCX light sensor object attached to the specified port.
  The sensor will be activated, i.e. the LED will be turned on.
@@ -300,7 +300,7 @@ public int <B>readValue</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/RCXLightSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="RCXLightSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXLink.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXLink.html
new file mode 100644 (file)
index 0000000..a38defc
--- /dev/null
@@ -0,0 +1,1379 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXLink (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.RCXLink class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXLink (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXLink.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXLink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class RCXLink</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">lejos.nxt.I2CSensor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXLink</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>, <A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RCXLink</B><DT>extends <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A><DT>implements <A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A></DL>
+</PRE>
+
+<P>
+Supports Mindsensors NRLink RCX IR adapter.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths <lawrie.griffiths@ntlworld.com></DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#A">A</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#B">B</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#BEEP">BEEP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOTE: The BEEP macro is unreliable.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#C">C</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#DELAY">DELAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#EEPROM_BUFFER">EEPROM_BUFFER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#LONG_RANGE_IR">LONG_RANGE_IR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_A_FORWARD">MOTOR_A_FORWARD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_A_REVERSED">MOTOR_A_REVERSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_B_FORWARD">MOTOR_B_FORWARD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_B_REVERSED">MOTOR_B_REVERSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_C_FORWARD">MOTOR_C_FORWARD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#MOTOR_C_REVERSED">MOTOR_C_REVERSED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#POWER_OFF_RCX">POWER_OFF_RCX</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RUN_PROGRAM_1">RUN_PROGRAM_1</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RUN_PROGRAM_2">RUN_PROGRAM_2</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RUN_PROGRAM_3">RUN_PROGRAM_3</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RUN_PROGRAM_4">RUN_PROGRAM_4</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RUN_PROGRAM_5">RUN_PROGRAM_5</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#SHORT_RANGE_IR">SHORT_RANGE_IR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#STOP_ALL_PROGRAMS">STOP_ALL_PROGRAMS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.rcxcomm.Opcode"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE">OPCODE_ABSOLUTE_VALUE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE_REPLY">OPCODE_ABSOLUTE_VALUE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE">OPCODE_ADD_TO_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE_REPLY">OPCODE_ADD_TO_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ALIVE">OPCODE_ALIVE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ALIVE_REPLY">OPCODE_ALIVE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE">OPCODE_AND_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE_REPLY">OPCODE_AND_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_FAR">OPCODE_BRANCH_ALWAYS_FAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_NEAR">OPCODE_BRANCH_ALWAYS_NEAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CALL_SUBROUTINE">OPCODE_CALL_SUBROUTINE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_MESSAGE">OPCODE_CLEAR_MESSAGE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE">OPCODE_CLEAR_SENSOR_VALUE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE_REPLY">OPCODE_CLEAR_SENSOR_VALUE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER">OPCODE_CLEAR_TIMER</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER_REPLY">OPCODE_CLEAR_TIMER_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT">OPCODE_DATALOG_NEXT</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT_REPLY">OPCODE_DATALOG_NEXT_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_FAR">OPCODE_DECREMENT_LOOP_COUNTER_FAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_NEAR">OPCODE_DECREMENT_LOOP_COUNTER_NEAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES">OPCODE_DELETE_ALL_SUBROUTINES</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES_REPLY">OPCODE_DELETE_ALL_SUBROUTINES_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS">OPCODE_DELETE_ALL_TASKS</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS_REPLY">OPCODE_DELETE_ALL_TASKS_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE">OPCODE_DELETE_FIRMWARE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE_REPLY">OPCODE_DELETE_FIRMWARE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE">OPCODE_DELETE_SUBROUTINE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE_REPLY">OPCODE_DELETE_SUBROUTINE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK">OPCODE_DELETE_TASK</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK_REPLY">OPCODE_DELETE_TASK_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE">OPCODE_DIVIDE_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE_REPLY">OPCODE_DIVIDE_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER">OPCODE_GET_BATTERY_POWER</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER_REPLY">OPCODE_GET_BATTERY_POWER_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP">OPCODE_GET_MEMORY_MAP</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP_REPLY">OPCODE_GET_MEMORY_MAP_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE">OPCODE_GET_VALUE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE_REPLY">OPCODE_GET_VALUE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS">OPCODE_GET_VERSIONS</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS_REPLY">OPCODE_GET_VERSIONS_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MASK">OPCODE_MASK</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE">OPCODE_MULTIPLY_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE_REPLY">OPCODE_MULTIPLY_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE">OPCODE_OR_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE_REPLY">OPCODE_OR_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_SOUND_REPLY">OPCODE_PLAY_SOUND_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE">OPCODE_PLAY_TONE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE_REPLY">OPCODE_PLAY_TONE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF">OPCODE_POWER_OFF</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF_REPLY">OPCODE_POWER_OFF_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_REMOTE_COMMAND">OPCODE_REMOTE_COMMAND</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SEND_MESSAGE">OPCODE_SEND_MESSAGE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE">OPCODE_SET_DATALOG_SIZE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE_REPLY">OPCODE_SET_DATALOG_SIZE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY">OPCODE_SET_DISPLAY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY_REPLY">OPCODE_SET_DISPLAY_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_LOOP_COUNTER">OPCODE_SET_LOOP_COUNTER</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MESSAGE">OPCODE_SET_MESSAGE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION">OPCODE_SET_MOTOR_DIRECTION</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION_REPLY">OPCODE_SET_MOTOR_DIRECTION_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF">OPCODE_SET_MOTOR_ON_OFF</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF_REPLY">OPCODE_SET_MOTOR_ON_OFF_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER">OPCODE_SET_MOTOR_POWER</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER_REPLY">OPCODE_SET_MOTOR_POWER_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY">OPCODE_SET_POWER_DOWN_DELAY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY_REPLY">OPCODE_SET_POWER_DOWN_DELAY_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER">OPCODE_SET_PROGRAM_NUMBER</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER_REPLY">OPCODE_SET_PROGRAM_NUMBER_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE">OPCODE_SET_SENSOR_MODE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE_REPLY">OPCODE_SET_SENSOR_MODE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE">OPCODE_SET_SENSOR_TYPE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE_REPLY">OPCODE_SET_SENSOR_TYPE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME">OPCODE_SET_TIME</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME_REPLY">OPCODE_SET_TIME_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE">OPCODE_SET_TRANSMITTER_RANGE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE_REPLY">OPCODE_SET_TRANSMITTER_RANGE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE">OPCODE_SET_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE_REPLY">OPCODE_SET_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE">OPCODE_SIGN_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE_REPLY">OPCODE_SIGN_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD">OPCODE_START_FIRMWARE_DOWNLOAD</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD_REPLY">OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD">OPCODE_START_SUBROUTINE_DOWNLOAD</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY">OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK">OPCODE_START_TASK</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD">OPCODE_START_TASK_DOWNLOAD</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD_REPLY">OPCODE_START_TASK_DOWNLOAD_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_REPLY">OPCODE_START_TASK_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS">OPCODE_STOP_ALL_TASKS</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS_REPLY">OPCODE_STOP_ALL_TASKS_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK">OPCODE_STOP_TASK</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK_REPLY">OPCODE_STOP_TASK_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE">OPCODE_SUBTRACT_FROM_VARIABLE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE_REPLY">OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_FAR">OPCODE_TEST_AND_BRANCH_FAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_NEAR">OPCODE_TEST_AND_BRANCH_NEAR</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA">OPCODE_TRANSFER_DATA</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA_REPLY">OPCODE_TRANSFER_DATA_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE">OPCODE_UNLOCK_FIRMWARE</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE_REPLY">OPCODE_UNLOCK_FIRMWARE_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG">OPCODE_UPLOAD_DATALOG</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG_REPLY">OPCODE_UPLOAD_DATALOG_REPLY</A>, <A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_WAIT">OPCODE_WAIT</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#RCXLink(lejos.nxt.I2CPort)">RCXLink</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#backward(int)">backward</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#backwardStep(int)">backwardStep</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#beep()">beep</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#bytesAvailable()">bytesAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#defineAndRun(byte[], int)">defineAndRun</A></B>(byte[]&nbsp;macro,
+             int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#defineMacro(int, byte[])">defineMacro</A></B>(int&nbsp;addr,
+            byte[]&nbsp;macro)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#fltMotor(int)">fltMotor</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#flush()">flush</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#forward(int)">forward</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#forwardStep(int)">forwardStep</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#ping()">ping</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#powerOff()">powerOff</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#readBytes(byte[])">readBytes</A></B>(byte[]&nbsp;data)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#runMacro(int)">runMacro</A></B>(int&nbsp;addr)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#runProgram(int)">runProgram</A></B>(int&nbsp;programNumber)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#sendBytes(byte[], int)">sendBytes</A></B>(byte[]&nbsp;data,
+          int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#sendF7(int)">sendF7</A></B>(int&nbsp;msg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#sendRemoteCommand(int)">sendRemoteCommand</A></B>(int&nbsp;msg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setAPDAOff()">setAPDAOff</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setAPDAOn()">setAPDAOn</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setDefaultSpeed()">setDefaultSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setHighSpeed()">setHighSpeed</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setMotorPower(int, int)">setMotorPower</A></B>(int&nbsp;id,
+              int&nbsp;power)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setRangeLong()">setRangeLong</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setRangeShort()">setRangeShort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setRawMode()">setRawMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setRCXRangeLong()">setRCXRangeLong</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#setRCXRangeShort()">setRCXRangeShort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#startMotor(int)">startMotor</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#stopAllPrograms()">stopAllPrograms</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXLink.html#stopMotor(int)">stopMotor</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.I2CSensor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="A"><!-- --></A><H3>
+A</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>A</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="B"><!-- --></A><H3>
+B</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>B</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="C"><!-- --></A><H3>
+C</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>C</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="SHORT_RANGE_IR"><!-- --></A><H3>
+SHORT_RANGE_IR</H3>
+<PRE>
+public static final byte <B>SHORT_RANGE_IR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.SHORT_RANGE_IR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LONG_RANGE_IR"><!-- --></A><H3>
+LONG_RANGE_IR</H3>
+<PRE>
+public static final byte <B>LONG_RANGE_IR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.LONG_RANGE_IR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="POWER_OFF_RCX"><!-- --></A><H3>
+POWER_OFF_RCX</H3>
+<PRE>
+public static final byte <B>POWER_OFF_RCX</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.POWER_OFF_RCX">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RUN_PROGRAM_1"><!-- --></A><H3>
+RUN_PROGRAM_1</H3>
+<PRE>
+public static final byte <B>RUN_PROGRAM_1</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.RUN_PROGRAM_1">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RUN_PROGRAM_2"><!-- --></A><H3>
+RUN_PROGRAM_2</H3>
+<PRE>
+public static final byte <B>RUN_PROGRAM_2</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.RUN_PROGRAM_2">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RUN_PROGRAM_3"><!-- --></A><H3>
+RUN_PROGRAM_3</H3>
+<PRE>
+public static final byte <B>RUN_PROGRAM_3</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.RUN_PROGRAM_3">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RUN_PROGRAM_4"><!-- --></A><H3>
+RUN_PROGRAM_4</H3>
+<PRE>
+public static final byte <B>RUN_PROGRAM_4</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.RUN_PROGRAM_4">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RUN_PROGRAM_5"><!-- --></A><H3>
+RUN_PROGRAM_5</H3>
+<PRE>
+public static final byte <B>RUN_PROGRAM_5</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.RUN_PROGRAM_5">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STOP_ALL_PROGRAMS"><!-- --></A><H3>
+STOP_ALL_PROGRAMS</H3>
+<PRE>
+public static final byte <B>STOP_ALL_PROGRAMS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.STOP_ALL_PROGRAMS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_A_FORWARD"><!-- --></A><H3>
+MOTOR_A_FORWARD</H3>
+<PRE>
+public static final byte <B>MOTOR_A_FORWARD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_A_FORWARD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_A_REVERSED"><!-- --></A><H3>
+MOTOR_A_REVERSED</H3>
+<PRE>
+public static final byte <B>MOTOR_A_REVERSED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_A_REVERSED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_B_FORWARD"><!-- --></A><H3>
+MOTOR_B_FORWARD</H3>
+<PRE>
+public static final byte <B>MOTOR_B_FORWARD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_B_FORWARD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_B_REVERSED"><!-- --></A><H3>
+MOTOR_B_REVERSED</H3>
+<PRE>
+public static final byte <B>MOTOR_B_REVERSED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_B_REVERSED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_C_FORWARD"><!-- --></A><H3>
+MOTOR_C_FORWARD</H3>
+<PRE>
+public static final byte <B>MOTOR_C_FORWARD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_C_FORWARD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_C_REVERSED"><!-- --></A><H3>
+MOTOR_C_REVERSED</H3>
+<PRE>
+public static final byte <B>MOTOR_C_REVERSED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.MOTOR_C_REVERSED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BEEP"><!-- --></A><H3>
+BEEP</H3>
+<PRE>
+public static final byte <B>BEEP</B></PRE>
+<DL>
+<DD>NOTE: The BEEP macro is unreliable. 
+ It works once, and then needs another command executed
+ before it works again.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.BEEP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="EEPROM_BUFFER"><!-- --></A><H3>
+EEPROM_BUFFER</H3>
+<PRE>
+public static final int <B>EEPROM_BUFFER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.EEPROM_BUFFER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DELAY"><!-- --></A><H3>
+DELAY</H3>
+<PRE>
+public static final int <B>DELAY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.nxt.RCXLink.DELAY">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXLink(lejos.nxt.I2CPort)"><!-- --></A><H3>
+RCXLink</H3>
+<PRE>
+public <B>RCXLink</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="runMacro(int)"><!-- --></A><H3>
+runMacro</H3>
+<PRE>
+public void <B>runMacro</B>(int&nbsp;addr)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="beep()"><!-- --></A><H3>
+beep</H3>
+<PRE>
+public void <B>beep</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="runProgram(int)"><!-- --></A><H3>
+runProgram</H3>
+<PRE>
+public void <B>runProgram</B>(int&nbsp;programNumber)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="forwardStep(int)"><!-- --></A><H3>
+forwardStep</H3>
+<PRE>
+public void <B>forwardStep</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="backwardStep(int)"><!-- --></A><H3>
+backwardStep</H3>
+<PRE>
+public void <B>backwardStep</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRCXRangeShort()"><!-- --></A><H3>
+setRCXRangeShort</H3>
+<PRE>
+public void <B>setRCXRangeShort</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRCXRangeLong()"><!-- --></A><H3>
+setRCXRangeLong</H3>
+<PRE>
+public void <B>setRCXRangeLong</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="powerOff()"><!-- --></A><H3>
+powerOff</H3>
+<PRE>
+public void <B>powerOff</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stopAllPrograms()"><!-- --></A><H3>
+stopAllPrograms</H3>
+<PRE>
+public void <B>stopAllPrograms</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flush()"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public void <B>flush</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDefaultSpeed()"><!-- --></A><H3>
+setDefaultSpeed</H3>
+<PRE>
+public void <B>setDefaultSpeed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setHighSpeed()"><!-- --></A><H3>
+setHighSpeed</H3>
+<PRE>
+public void <B>setHighSpeed</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeLong()"><!-- --></A><H3>
+setRangeLong</H3>
+<PRE>
+public void <B>setRangeLong</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeShort()"><!-- --></A><H3>
+setRangeShort</H3>
+<PRE>
+public void <B>setRangeShort</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAPDAOn()"><!-- --></A><H3>
+setAPDAOn</H3>
+<PRE>
+public void <B>setAPDAOn</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAPDAOff()"><!-- --></A><H3>
+setAPDAOff</H3>
+<PRE>
+public void <B>setAPDAOff</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="defineMacro(int, byte[])"><!-- --></A><H3>
+defineMacro</H3>
+<PRE>
+public void <B>defineMacro</B>(int&nbsp;addr,
+                        byte[]&nbsp;macro)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getStatus()"><!-- --></A><H3>
+getStatus</H3>
+<PRE>
+public int <B>getStatus</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="bytesAvailable()"><!-- --></A><H3>
+bytesAvailable</H3>
+<PRE>
+public int <B>bytesAvailable</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="ping()"><!-- --></A><H3>
+ping</H3>
+<PRE>
+public void <B>ping</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendF7(int)"><!-- --></A><H3>
+sendF7</H3>
+<PRE>
+public void <B>sendF7</B>(int&nbsp;msg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendRemoteCommand(int)"><!-- --></A><H3>
+sendRemoteCommand</H3>
+<PRE>
+public void <B>sendRemoteCommand</B>(int&nbsp;msg)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMotorPower(int, int)"><!-- --></A><H3>
+setMotorPower</H3>
+<PRE>
+public void <B>setMotorPower</B>(int&nbsp;id,
+                          int&nbsp;power)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="stopMotor(int)"><!-- --></A><H3>
+stopMotor</H3>
+<PRE>
+public void <B>stopMotor</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="startMotor(int)"><!-- --></A><H3>
+startMotor</H3>
+<PRE>
+public void <B>startMotor</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="fltMotor(int)"><!-- --></A><H3>
+fltMotor</H3>
+<PRE>
+public void <B>fltMotor</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="forward(int)"><!-- --></A><H3>
+forward</H3>
+<PRE>
+public void <B>forward</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="backward(int)"><!-- --></A><H3>
+backward</H3>
+<PRE>
+public void <B>backward</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRawMode()"><!-- --></A><H3>
+setRawMode</H3>
+<PRE>
+public void <B>setRawMode</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendBytes(byte[], int)"><!-- --></A><H3>
+sendBytes</H3>
+<PRE>
+public void <B>sendBytes</B>(byte[]&nbsp;data,
+                      int&nbsp;len)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readBytes(byte[])"><!-- --></A><H3>
+readBytes</H3>
+<PRE>
+public int <B>readBytes</B>(byte[]&nbsp;data)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="defineAndRun(byte[], int)"><!-- --></A><H3>
+defineAndRun</H3>
+<PRE>
+public void <B>defineAndRun</B>(byte[]&nbsp;macro,
+                         int&nbsp;len)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXLink.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXLink.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index aedb072..36fe242 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 RCXMotor (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/RCXMotor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="RCXMotor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_lejos.nxt.BasicMotor">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -89,11 +89,12 @@ lejos.nxt</FONT>
 Class RCXMotor</H2>
 <PRE>
 <A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXMotor</B>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">lejos.nxt.BasicMotor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXMotor</B>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>RCXMotor</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+<DT><PRE>public class <B>RCXMotor</B><DT>extends <A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></DL>
 </PRE>
 
 <P>
@@ -114,7 +115,7 @@ Abstraction for an RCX motor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#RCXMotor(lejos.nxt.BasicMotorPort)">RCXMotor</A></B>(lejos.nxt.BasicMotorPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#RCXMotor(lejos.nxt.BasicMotorPort)">RCXMotor</A></B>(<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -129,110 +130,14 @@ Abstraction for an RCX motor.
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
 <B>Method Summary</B></FONT></TH>
 </TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#backward()">backward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to rotate backwards.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#flt()">flt</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to float.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#forward()">forward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to rotate forward.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#getMode()">getMode</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the mode.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#getPower()">getPower</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current power setting.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#isBackward()">isBackward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is backward.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#isFloating()">isFloating</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true iff the motor is in float mode.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#isForward()">isForward</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is forward.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#isMoving()">isMoving</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true iff the motor is in motion.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#isStopped()">isStopped</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if motor is stopped.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#reverseDirection()">reverseDirection</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reverses direction of the motor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#setPower(int)">setPower</A></B>(int&nbsp;power)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets power.</TD>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicMotor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotor.html#stop()">stop</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Causes motor to stop, pretty much
- instantaneously.</TD>
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotor.html#backward()">backward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#flt()">flt</A>, <A HREF="../../lejos/nxt/BasicMotor.html#forward()">forward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#getMode()">getMode</A>, <A HREF="../../lejos/nxt/BasicMotor.html#getPower()">getPower</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isBackward()">isBackward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isFloating()">isFloating</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isForward()">isForward</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isMoving()">isMoving</A>, <A HREF="../../lejos/nxt/BasicMotor.html#isStopped()">isStopped</A>, <A HREF="../../lejos/nxt/BasicMotor.html#reverseDirection()">reverseDirection</A>, <A HREF="../../lejos/nxt/BasicMotor.html#setPower(int)">setPower</A>, <A HREF="../../lejos/nxt/BasicMotor.html#stop()">stop</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -260,198 +165,8 @@ Abstraction for an RCX motor.
 <A NAME="RCXMotor(lejos.nxt.BasicMotorPort)"><!-- --></A><H3>
 RCXMotor</H3>
 <PRE>
-public <B>RCXMotor</B>(lejos.nxt.BasicMotorPort&nbsp;port)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="setPower(int)"><!-- --></A><H3>
-setPower</H3>
-<PRE>
-public void <B>setPower</B>(int&nbsp;power)</PRE>
-<DL>
-<DD>Sets power.
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>power</CODE> - power setting: 0 - 100</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getPower()"><!-- --></A><H3>
-getPower</H3>
-<PRE>
-public int <B>getPower</B>()</PRE>
-<DL>
-<DD>Returns the current power setting.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>power value 0-100</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="forward()"><!-- --></A><H3>
-forward</H3>
-<PRE>
-public void <B>forward</B>()</PRE>
-<DL>
-<DD>Causes motor to rotate forward.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isForward()"><!-- --></A><H3>
-isForward</H3>
-<PRE>
-public boolean <B>isForward</B>()</PRE>
-<DL>
-<DD>Return true if motor is forward.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="backward()"><!-- --></A><H3>
-backward</H3>
-<PRE>
-public void <B>backward</B>()</PRE>
-<DL>
-<DD>Causes motor to rotate backwards.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isBackward()"><!-- --></A><H3>
-isBackward</H3>
-<PRE>
-public boolean <B>isBackward</B>()</PRE>
-<DL>
-<DD>Return true if motor is backward.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="reverseDirection()"><!-- --></A><H3>
-reverseDirection</H3>
-<PRE>
-public void <B>reverseDirection</B>()</PRE>
-<DL>
-<DD>Reverses direction of the motor. It only has
- effect if the motor is moving.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isMoving()"><!-- --></A><H3>
-isMoving</H3>
-<PRE>
-public boolean <B>isMoving</B>()</PRE>
+public <B>RCXMotor</B>(<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>&nbsp;port)</PRE>
 <DL>
-<DD>Returns true iff the motor is in motion.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true iff the motor is currently in motion.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="flt()"><!-- --></A><H3>
-flt</H3>
-<PRE>
-public void <B>flt</B>()</PRE>
-<DL>
-<DD>Causes motor to float. The motor will lose all power,
- but this is not the same as stopping. Use this
- method if you don't want your robot to trip in
- abrupt turns.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isFloating()"><!-- --></A><H3>
-isFloating</H3>
-<PRE>
-public boolean <B>isFloating</B>()</PRE>
-<DL>
-<DD>Returns true iff the motor is in float mode.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>true iff the motor is currently in float mode.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="stop()"><!-- --></A><H3>
-stop</H3>
-<PRE>
-public void <B>stop</B>()</PRE>
-<DL>
-<DD>Causes motor to stop, pretty much
- instantaneously. In other words, the
- motor doesn't just stop; it will resist
- any further motion.
- Cancels any rotate() orders in progress
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="isStopped()"><!-- --></A><H3>
-isStopped</H3>
-<PRE>
-public boolean <B>isStopped</B>()</PRE>
-<DL>
-<DD>Return true if motor is stopped.
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getMode()"><!-- --></A><H3>
-getMode</H3>
-<PRE>
-public int <B>getMode</B>()</PRE>
-<DL>
-<DD>Returns the mode.
-<P>
-<DD><DL>
-
-<DT><B>Returns:</B><DD>mode 1=forward, 2=backward, 3=stopped, 4=floating</DL>
-</DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
@@ -483,8 +198,8 @@ public int <B>getMode</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/RCXMotor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="RCXMotor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -504,9 +219,9 @@ public int <B>getMode</B>()</PRE>
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_lejos.nxt.BasicMotor">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXMotorMultiplexer.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXMotorMultiplexer.html
new file mode 100644 (file)
index 0000000..e60f859
--- /dev/null
@@ -0,0 +1,428 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXMotorMultiplexer (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.RCXMotorMultiplexer class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXMotorMultiplexer (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXMotorMultiplexer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXMotorMultiplexer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class RCXMotorMultiplexer</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">lejos.nxt.I2CSensor</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXMotorMultiplexer</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RCXMotorMultiplexer</B><DT>extends <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></DL>
+</PRE>
+
+<P>
+Supports the mindsensors RCX Motor Multiplexer
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#A">A</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#B">B</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#C">C</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#D">D</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#RCXMotorMultiplexer(lejos.nxt.I2CPort)">RCXMotorMultiplexer</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#getDirection(int)">getDirection</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#getSpeed(int)">getSpeed</A></B>(int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#setDirection(int, int)">setDirection</A></B>(int&nbsp;direction,
+             int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html#setSpeed(int, int)">setSpeed</A></B>(int&nbsp;speed,
+         int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.I2CSensor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="A"><!-- --></A><H3>
+A</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>A</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="B"><!-- --></A><H3>
+B</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>B</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="C"><!-- --></A><H3>
+C</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>C</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="D"><!-- --></A><H3>
+D</H3>
+<PRE>
+public <A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A> <B>D</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXMotorMultiplexer(lejos.nxt.I2CPort)"><!-- --></A><H3>
+RCXMotorMultiplexer</H3>
+<PRE>
+public <B>RCXMotorMultiplexer</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setSpeed(int, int)"><!-- --></A><H3>
+setSpeed</H3>
+<PRE>
+public void <B>setSpeed</B>(int&nbsp;speed,
+                     int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSpeed(int)"><!-- --></A><H3>
+getSpeed</H3>
+<PRE>
+public int <B>getSpeed</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDirection(int, int)"><!-- --></A><H3>
+setDirection</H3>
+<PRE>
+public void <B>setDirection</B>(int&nbsp;direction,
+                         int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDirection(int)"><!-- --></A><H3>
+getDirection</H3>
+<PRE>
+public int <B>getDirection</B>(int&nbsp;id)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXMotorMultiplexer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXMotorMultiplexer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXPlexedMotorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXPlexedMotorPort.html
new file mode 100644 (file)
index 0000000..1ab40d9
--- /dev/null
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXPlexedMotorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.RCXPlexedMotorPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXPlexedMotorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXPlexedMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXPlexedMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class RCXPlexedMotorPort</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXPlexedMotorPort</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RCXPlexedMotorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></DL>
+</PRE>
+
+<P>
+Supports a motor connected to the Mindsensors RCX Motor Multiplexer
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A>, <A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXPlexedMotorPort.html#RCXPlexedMotorPort(lejos.nxt.RCXMotorMultiplexer, int)">RCXPlexedMotorPort</A></B>(<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>&nbsp;plex,
+                   int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXPlexedMotorPort.html#controlMotor(int, int)">controlMotor</A></B>(int&nbsp;power,
+             int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXPlexedMotorPort.html#setPWMMode(int)">setPWMMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXPlexedMotorPort(lejos.nxt.RCXMotorMultiplexer, int)"><!-- --></A><H3>
+RCXPlexedMotorPort</H3>
+<PRE>
+public <B>RCXPlexedMotorPort</B>(<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>&nbsp;plex,
+                          int&nbsp;id)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="controlMotor(int, int)"><!-- --></A><H3>
+controlMotor</H3>
+<PRE>
+public void <B>controlMotor</B>(int&nbsp;power,
+                         int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPWMMode(int)"><!-- --></A><H3>
+setPWMMode</H3>
+<PRE>
+public void <B>setPWMMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXPlexedMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXPlexedMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXRemoteMotorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/RCXRemoteMotorPort.html
new file mode 100644 (file)
index 0000000..6b3fd16
--- /dev/null
@@ -0,0 +1,305 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXRemoteMotorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.RCXRemoteMotorPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXRemoteMotorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXRemoteMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXRemoteMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Class RCXRemoteMotorPort</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.RCXRemoteMotorPort</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RCXRemoteMotorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></DL>
+</PRE>
+
+<P>
+Supports a motor connected to a remote RCX via a mindsensord NRLink adapter
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A>, <A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXRemoteMotorPort.html#RCXRemoteMotorPort(lejos.nxt.RCXLink, int)">RCXRemoteMotorPort</A></B>(<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>&nbsp;link,
+                   int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXRemoteMotorPort.html#controlMotor(int, int)">controlMotor</A></B>(int&nbsp;power,
+             int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/RCXRemoteMotorPort.html#setPWMMode(int)">setPWMMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXRemoteMotorPort(lejos.nxt.RCXLink, int)"><!-- --></A><H3>
+RCXRemoteMotorPort</H3>
+<PRE>
+public <B>RCXRemoteMotorPort</B>(<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>&nbsp;link,
+                          int&nbsp;id)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="controlMotor(int, int)"><!-- --></A><H3>
+controlMotor</H3>
+<PRE>
+public void <B>controlMotor</B>(int&nbsp;power,
+                         int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPWMMode(int)"><!-- --></A><H3>
+setPWMMode</H3>
+<PRE>
+public void <B>setPWMMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/RCXRemoteMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXRemoteMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 588eab4..4069c25 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 SensorConstants (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/SensorConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -88,7 +88,10 @@ lejos.nxt</FONT>
 <BR>
 Interface SensorConstants</H2>
 <DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>, <A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>, <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>, <A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>, <A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>, <A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt">SoundSensor</A>, <A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>, <A HREF="../../lejos/nxt/TouchSensor.html" title="class in lejos.nxt">TouchSensor</A>, <A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A></DD>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, <A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt">ColorSensor</A>, <A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt">CompassSensor</A>, <A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A>, <A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A>, <A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A>, <A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A>, <A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A>, <A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt">RCXLightSensor</A>, <A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A>, <A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A>, <A HREF="../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A>, <A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>, <A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt">SoundSensor</A>, <A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A>, <A HREF="../../lejos/nxt/TouchSensor.html" title="class in lejos.nxt">TouchSensor</A>, <A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt">UltrasonicSensor</A></DD>
 </DL>
 <HR>
 <DL>
@@ -513,7 +516,7 @@ static final int <B>MODE_ANGLESTEP</B></PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/SensorConstants.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index d2ac2c0..cd3a230 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 SensorPort (leJOS NXT API documentation)
 </TITLE>
@@ -92,11 +92,11 @@ Class SensorPort</H2>
   <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.SensorPort</B>
 </PRE>
 <DL>
-<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A></DD>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, <A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, <A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>, <A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>, <A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
 </DL>
 <HR>
 <DL>
-<DT><PRE>public class <B>SensorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A></DL>
+<DT><PRE>public class <B>SensorPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>, <A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, <A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A></DL>
 </PRE>
 
 <P>
@@ -454,7 +454,7 @@ public final int <B>readRawValue</B>()</PRE>
 <DD>Reads the raw value of the sensor.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/ADSensorPort.html#readRawValue()">readRawValue</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -471,7 +471,7 @@ public final boolean <B>readBooleanValue</B>()</PRE>
  Do not use - currently returns the raw value.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/ADSensorPort.html#readBooleanValue()">readBooleanValue</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -528,7 +528,7 @@ public final void <B>activate</B>()</PRE>
  the LED go on when you call this method.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/LegacySensorPort.html#activate()">activate</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -544,7 +544,7 @@ public final void <B>passivate</B>()</PRE>
 <DD>Passivates an RCX sensor sensor.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/LegacySensorPort.html#passivate()">passivate</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -560,7 +560,7 @@ public int <B>getMode</B>()</PRE>
 <DD>Returns mode compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -576,7 +576,7 @@ public int <B>getType</B>()</PRE>
 <DD>Returns type compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#getType()">getType</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -593,7 +593,7 @@ public void <B>setTypeAndMode</B>(int&nbsp;type,
 <DD>Sets type and mode compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -609,7 +609,7 @@ public void <B>setType</B>(int&nbsp;type)</PRE>
 <DD>Sets type compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -625,7 +625,7 @@ public void <B>setMode</B>(int&nbsp;mode)</PRE>
 <DD>Sets mode compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -641,7 +641,7 @@ public int <B>readValue</B>()</PRE>
 <DD>Returns value compatible with Lego firmware.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/ADSensorPort.html#readValue()">readValue</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -743,7 +743,7 @@ public void <B>i2cEnable</B>()</PRE>
 <DD>Low-level method to enable I2C on the port.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/I2CPort.html#i2cEnable()">i2cEnable</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -759,7 +759,7 @@ public void <B>i2cDisable</B>()</PRE>
 <DD>Low-level method to disable I2C on the port.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/I2CPort.html#i2cDisable()">i2cDisable</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -775,7 +775,7 @@ public int <B>i2cBusy</B>()</PRE>
 <DD>Low-level method to test if I2C connection is busy.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/I2CPort.html#i2cBusy()">i2cBusy</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
@@ -796,7 +796,7 @@ public int <B>i2cStart</B>(int&nbsp;address,
 <DD>Low-level method to start an I2C transaction.
 <P>
 <DD><DL>
-</DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/nxt/I2CPort.html#i2cStart(int, int, int, byte[], int, int)">i2cStart</A></CODE> in interface <CODE><A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A></CODE></DL>
 </DD>
 <DD><DL>
 </DL>
index e0d3faf..bdd628d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 SensorPortListener (leJOS NXT API documentation)
 </TITLE>
index 39e4694..5447293 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Sound (leJOS NXT API documentation)
 </TITLE>
@@ -118,7 +118,7 @@ NXT sound routines.
 <TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#C2">C2</A></B></CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Play a system sound - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Play a system sound.</TD>
 </TR>
 </TABLE>
 &nbsp;
@@ -136,7 +136,7 @@ NXT sound routines.
 <TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#beep()">beep</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beeps once - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beeps once.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -152,7 +152,7 @@ NXT sound routines.
 <TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#beepSequenceUp()">beepSequenceUp</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Downward tones.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Upward tones.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -173,8 +173,7 @@ NXT sound routines.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#playSample(java.io.File, int, int)">playSample</A></B>(<A HREF="../../java/io/File.html" title="class in java.io">File</A>&nbsp;file,
-           int&nbsp;freq,
+<TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#playSample(java.io.File, int)">playSample</A></B>(<A HREF="../../java/io/File.html" title="class in java.io">File</A>&nbsp;file,
            int&nbsp;vol)</CODE>
 
 <BR>
@@ -215,7 +214,7 @@ NXT sound routines.
 <TD><CODE><B><A HREF="../../lejos/nxt/Sound.html#twoBeeps()">twoBeeps</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beeps twice - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beeps twice.</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -245,15 +244,14 @@ C2</H3>
 <PRE>
 public static int <B>C2</B></PRE>
 <DL>
-<DD>Play a system sound - not yet implemented.
+<DD>Play a system sound.
  <TABLE BORDER=1>
  <TR><TH>aCode</TH><TH>Resulting Sound</TH></TR>
  <TR><TD>0</TD><TD>short beep</TD></TR>
  <TR><TD>1</TD><TD>double beep</TD></TR>
  <TR><TD>2</TD><TD>descending arpeggio</TD></TR>
  <TR><TD>3</TD><TD>ascending  arpeggio</TD></TR>
- <TR><TD>4</TD><TD>long, low beep</TD></TR>
- <TR><TD>5</TD><TD>quick ascending arpeggio</TD></TR>
+ <TR><TD>4</TD><TD>long, low buzz</TD></TR>
  </TABLE>
 <P>
 <DL>
@@ -287,7 +285,7 @@ beep</H3>
 <PRE>
 public static void <B>beep</B>()</PRE>
 <DL>
-<DD>Beeps once - not yet implemented.
+<DD>Beeps once.
 <P>
 <DD><DL>
 </DL>
@@ -300,7 +298,7 @@ twoBeeps</H3>
 <PRE>
 public static void <B>twoBeeps</B>()</PRE>
 <DL>
-<DD>Beeps twice - not yet implemented.
+<DD>Beeps twice.
 <P>
 <DD><DL>
 </DL>
@@ -326,7 +324,7 @@ beepSequenceUp</H3>
 <PRE>
 public static void <B>beepSequenceUp</B>()</PRE>
 <DL>
-<DD>Downward tones.
+<DD>Upward tones.
 <P>
 <DD><DL>
 </DL>
@@ -385,20 +383,19 @@ public static void <B>playSample</B>(int&nbsp;page,
 <DD>Internal method used to play sound sample from a file
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>page</CODE> - the start page of the file<DD><CODE>len</CODE> - the length of the file<DD><CODE>freq</CODE> - the frequency<DD><CODE>vol</CODE> - the volume</DL>
+<DT><B>Parameters:</B><DD><CODE>page</CODE> - the start page of the file<DD><CODE>len</CODE> - the length of the file<DD><CODE>freq</CODE> - the frequency<DD><CODE>vol</CODE> - the volume 1000 corresponds to 100%, 100 to 10%, 2500 to 250%</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="playSample(java.io.File, int, int)"><!-- --></A><H3>
+<A NAME="playSample(java.io.File, int)"><!-- --></A><H3>
 playSample</H3>
 <PRE>
 public static void <B>playSample</B>(<A HREF="../../java/io/File.html" title="class in java.io">File</A>&nbsp;file,
-                              int&nbsp;freq,
                               int&nbsp;vol)</PRE>
 <DL>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>file</CODE> - the 8-bit PWM (WAV) sample file<DD><CODE>freq</CODE> - the average frequency to play the sample at<DD><CODE>vol</CODE> - the sound volume</DL>
+<DT><B>Parameters:</B><DD><CODE>file</CODE> - the 8-bit PWM (WAV) sample file<DD><CODE>vol</CODE> - the volume percentage 0 - 100</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
index 7d7fb9c..ccabc1b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 SoundSensor (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Sound.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/SoundSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="SoundSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -135,7 +135,7 @@ Abstraction for a NXT sound sensor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/SoundSensor.html#SoundSensor(lejos.nxt.ADSensorPort)">SoundSensor</A></B>(lejos.nxt.ADSensorPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/SoundSensor.html#SoundSensor(lejos.nxt.ADSensorPort)">SoundSensor</A></B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a sound sensor object attached to the specified port.</TD>
@@ -200,7 +200,7 @@ Abstraction for a NXT sound sensor.
 <A NAME="SoundSensor(lejos.nxt.ADSensorPort)"><!-- --></A><H3>
 SoundSensor</H3>
 <PRE>
-public <B>SoundSensor</B>(lejos.nxt.ADSensorPort&nbsp;port)</PRE>
+public <B>SoundSensor</B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</PRE>
 <DL>
 <DD>Create a sound sensor object attached to the specified port.
  The sensor will be set to DB mode.
@@ -295,7 +295,7 @@ public int <B>readValue</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/nxt/Sound.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/SoundSensor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="SoundSensor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TachoMotorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/TachoMotorPort.html
new file mode 100644 (file)
index 0000000..133c8cd
--- /dev/null
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+TachoMotorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.TachoMotorPort interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="TachoMotorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/TachoMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TachoMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface TachoMotorPort</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>, <A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>, <A HREF="../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>TachoMotorPort</B><DT>extends <A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>, <A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></DL>
+</PRE>
+
+<P>
+Abstraction for a motor port that supports NXT motors with tachometers.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A>, <A HREF="../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A>, <A HREF="../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.Tachometer"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.nxt.<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/nxt/Tachometer.html#getTachoCount()">getTachoCount</A>, <A HREF="../../lejos/nxt/Tachometer.html#resetTachoCount()">resetTachoCount</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/TachoMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="TachoMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Tachometer.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/Tachometer.html
new file mode 100644 (file)
index 0000000..9d7e151
--- /dev/null
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Tachometer (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.Tachometer interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Tachometer (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/Tachometer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tachometer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt</FONT>
+<BR>
+Interface Tachometer</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DD>
+</DL>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt">MotorPort</A>, <A HREF="../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Tachometer</B></DL>
+</PRE>
+
+<P>
+Abstraction for the tachometer built into NXT motors.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/Tachometer.html#getTachoCount()">getTachoCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/Tachometer.html#resetTachoCount()">resetTachoCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getTachoCount()"><!-- --></A><H3>
+getTachoCount</H3>
+<PRE>
+int <B>getTachoCount</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetTachoCount()"><!-- --></A><H3>
+resetTachoCount</H3>
+<PRE>
+void <B>resetTachoCount</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/nxt/Tachometer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Tachometer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index dcd0c1d..a0ac218 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 TextMenu (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/TextMenu.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -186,6 +186,15 @@ Displays a list of items.  The select() method allows the user to scroll the lis
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/TextMenu.html#select(int)">select</A></B>(int&nbsp;selectedIndex)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
+ and returns the index of the selected item.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/TextMenu.html#setItems(java.lang.String[])">setItems</A></B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>[]&nbsp;items)</CODE>
 
@@ -323,6 +332,8 @@ public int <B>select</B>()</PRE>
 <DD>Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
  and returns the index of the selected item. <br>
  The menu display wraps items that scroll off the top will reappear on the bottom and vice versa.
+ The selectedIndex is set to the first menu item.
 <P>
 <DD><DL>
 
@@ -331,6 +342,24 @@ public int <B>select</B>()</PRE>
 </DL>
 <HR>
 
+<A NAME="select(int)"><!-- --></A><H3>
+select</H3>
+<PRE>
+public int <B>select</B>(int&nbsp;selectedIndex)</PRE>
+<DL>
+<DD>Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
+ and returns the index of the selected item. <br>
+ The menu display wraps items that scroll off the top will reappear on the bottom and vice versa.
+ This version of select allows the selected index to be set when the menu is first displayed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>selectedIndex</CODE> - the idex to start the menu on
+<DT><B>Returns:</B><DD>the index of the selected item</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="quit()"><!-- --></A><H3>
 quit</H3>
 <PRE>
@@ -372,7 +401,7 @@ public void <B>quit</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/nxt/TextMenu.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 2b54e93..25b7b22 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 TiltSensor (leJOS NXT API documentation)
 </TITLE>
@@ -101,7 +101,7 @@ Class TiltSensor</H2>
 </PRE>
 
 <P>
-Abstraction for a Mindsensors (and possibly HiTechnic) 
+Abstraction for a Mindsensors
  acceleration (tilt) sensor.
 <P>
 
@@ -137,7 +137,7 @@ Abstraction for a Mindsensors (and possibly HiTechnic)
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#TiltSensor(lejos.nxt.I2CPort)">TiltSensor</A></B>(lejos.nxt.I2CPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#TiltSensor(lejos.nxt.I2CPort)">TiltSensor</A></B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -155,10 +155,27 @@ Abstraction for a Mindsensors (and possibly HiTechnic)
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#getXAccel()">getXAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Acceleration along X axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#getXTilt()">getXTilt</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns X tilt value.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tilt of sensor along X-axis (see top of Mindsensors.com sensor for
+ diagram of axis).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#getYAccel()">getYAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Acceleration along Y axis.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -171,6 +188,14 @@ Abstraction for a Mindsensors (and possibly HiTechnic)
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#getZAccel()">getZAccel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Acceleration along Z axis.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/TiltSensor.html#getZTilt()">getZTilt</A></B>()</CODE>
 
 <BR>
@@ -183,7 +208,7 @@ Abstraction for a Mindsensors (and possibly HiTechnic)
 <TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></CODE></TD>
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -211,7 +236,7 @@ Abstraction for a Mindsensors (and possibly HiTechnic)
 <A NAME="TiltSensor(lejos.nxt.I2CPort)"><!-- --></A><H3>
 TiltSensor</H3>
 <PRE>
-public <B>TiltSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
+public <B>TiltSensor</B>(<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
@@ -230,10 +255,12 @@ getXTilt</H3>
 <PRE>
 public int <B>getXTilt</B>()</PRE>
 <DL>
-<DD>Returns X tilt value.
+<DD>Tilt of sensor along X-axis (see top of Mindsensors.com sensor for
+ diagram of axis).  128 is level.
 <P>
 <DD><DL>
-</DL>
+
+<DT><B>Returns:</B><DD>X tilt value, or -1 if call failed</DL>
 </DD>
 </DL>
 <HR>
@@ -246,7 +273,8 @@ public int <B>getYTilt</B>()</PRE>
 <DD>Returns Y tilt value.
 <P>
 <DD><DL>
-</DL>
+
+<DT><B>Returns:</B><DD>Y tilt value, or -1 if call failed</DL>
 </DD>
 </DL>
 <HR>
@@ -259,7 +287,53 @@ public int <B>getZTilt</B>()</PRE>
 <DD>Returns Z tilt value.
 <P>
 <DD><DL>
+
+<DT><B>Returns:</B><DD>Z tilt value, or -1 if call failed</DL>
+</DD>
 </DL>
+<HR>
+
+<A NAME="getXAccel()"><!-- --></A><H3>
+getXAccel</H3>
+<PRE>
+public int <B>getXAccel</B>()</PRE>
+<DL>
+<DD>Acceleration along X axis. Positive or negative values in mg.
+ (g = acceleration due to gravity = 9.81 m/s^2)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Acceleration e.g. 9810 mg (falling on earth)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getYAccel()"><!-- --></A><H3>
+getYAccel</H3>
+<PRE>
+public int <B>getYAccel</B>()</PRE>
+<DL>
+<DD>Acceleration along Y axis. Positive or negative values in mg.
+ (g = acceleration due to gravity = 9.81 m/s^2)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Acceleration e.g. 9810 mg (falling on earth)</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getZAccel()"><!-- --></A><H3>
+getZAccel</H3>
+<PRE>
+public int <B>getZAccel</B>()</PRE>
+<DL>
+<DD>Acceleration along Z axis. Positive or negative values in mg.
+ (g = acceleration due to gravity = 9.81 m/s^2)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Acceleration e.g. 9810 mg (falling on earth)</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
index fabc342..867ffe2 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 TouchSensor (leJOS NXT API documentation)
 </TITLE>
@@ -136,7 +136,7 @@ Abstraction for a NXT touch sensor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/TouchSensor.html#TouchSensor(lejos.nxt.ADSensorPort)">TouchSensor</A></B>(lejos.nxt.ADSensorPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/TouchSensor.html#TouchSensor(lejos.nxt.ADSensorPort)">TouchSensor</A></B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a touch sensor object attached to the specified port.</TD>
@@ -185,7 +185,7 @@ Abstraction for a NXT touch sensor.
 <A NAME="TouchSensor(lejos.nxt.ADSensorPort)"><!-- --></A><H3>
 TouchSensor</H3>
 <PRE>
-public <B>TouchSensor</B>(lejos.nxt.ADSensorPort&nbsp;port)</PRE>
+public <B>TouchSensor</B>(<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>&nbsp;port)</PRE>
 <DL>
 <DD>Create a touch sensor object attached to the specified port.
 <P>
index 92f59b9..13a3731 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 UltrasonicSensor (leJOS NXT API documentation)
 </TITLE>
@@ -136,7 +136,7 @@ Abstraction for a NXT Ultrasonic Sensor.
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#UltrasonicSensor(lejos.nxt.I2CPort)">UltrasonicSensor</A></B>(lejos.nxt.I2CPort&nbsp;port)</CODE>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#UltrasonicSensor(lejos.nxt.SensorPort)">UltrasonicSensor</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -154,10 +154,136 @@ Abstraction for a NXT Ultrasonic Sensor.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#capture()">capture</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set capture mode
+ Set the sensor into capture mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#continuous()">continuous</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Switch to continuous ping mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getCalibrationData(byte[])">getCalibrationData</A></B>(byte[]&nbsp;data)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return 3 bytes of calibration data.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getContinuousInterval()">getContinuousInterval</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the interval used in continuous mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getData(int, byte[], int)">getData</A></B>(int&nbsp;register,
+        byte[]&nbsp;buf,
+        int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes an I2C read transaction and waits for the result.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getDistance()">getDistance</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return distance of object.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return distance to an object.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getDistances(int[])">getDistances</A></B>(int[]&nbsp;dist)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return an array of 8 echo distances.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getFactoryData(byte[])">getFactoryData</A></B>(byte[]&nbsp;data)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return 10 bytes of factory calibration data.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getMode()">getMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current operating mode of the sensor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#getUnits()">getUnits</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a string indicating the type of units in use by the unit.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#off()">off</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turn off the sensor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#ping()">ping</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a single ping.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset the device
+ Performs a "soft reset" of the device.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#sendData(int, byte[], int)">sendData</A></B>(int&nbsp;register,
+         byte[]&nbsp;buf,
+         int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes an I2C write transaction.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#setCalibrationData(byte[])">setCalibrationData</A></B>(byte[]&nbsp;data)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set 3 bytes of calibration data.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/nxt/UltrasonicSensor.html#setContinuousInterval(byte)">setContinuousInterval</A></B>(byte&nbsp;interval)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the ping inetrval used when in continuous mode.</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_lejos.nxt.I2CSensor"><!-- --></A>
@@ -166,7 +292,7 @@ Abstraction for a NXT Ultrasonic Sensor.
 <TH ALIGN="left"><B>Methods inherited from class lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></CODE></TD>
+<TD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getProductID()">getProductID</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getSensorType()">getSensorType</A>, <A HREF="../../lejos/nxt/I2CSensor.html#getVersion()">getVersion</A>, <A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte)">sendData</A>, <A HREF="../../lejos/nxt/I2CSensor.html#setAddress(int)">setAddress</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -191,10 +317,10 @@ Abstraction for a NXT Ultrasonic Sensor.
 </TR>
 </TABLE>
 
-<A NAME="UltrasonicSensor(lejos.nxt.I2CPort)"><!-- --></A><H3>
+<A NAME="UltrasonicSensor(lejos.nxt.SensorPort)"><!-- --></A><H3>
 UltrasonicSensor</H3>
 <PRE>
-public <B>UltrasonicSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
+public <B>UltrasonicSensor</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</PRE>
 <DL>
 </DL>
 
@@ -208,18 +334,292 @@ public <B>UltrasonicSensor</B>(lejos.nxt.I2CPort&nbsp;port)</PRE>
 </TR>
 </TABLE>
 
+<A NAME="getData(int, byte[], int)"><!-- --></A><H3>
+getData</H3>
+<PRE>
+public int <B>getData</B>(int&nbsp;register,
+                   byte[]&nbsp;buf,
+                   int&nbsp;len)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">I2CSensor</A></CODE></B></DD>
+<DD>Executes an I2C read transaction and waits for the result.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#getData(int, byte[], int)">getData</A></CODE> in class <CODE><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>register</CODE> - I2C register, e.g 0x41<DD><CODE>buf</CODE> - Buffer to return data<DD><CODE>len</CODE> - Length of the return data
+<DT><B>Returns:</B><DD>status zero=success, non-zero=failure</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendData(int, byte[], int)"><!-- --></A><H3>
+sendData</H3>
+<PRE>
+public int <B>sendData</B>(int&nbsp;register,
+                    byte[]&nbsp;buf,
+                    int&nbsp;len)</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">I2CSensor</A></CODE></B></DD>
+<DD>Executes an I2C write transaction.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/nxt/I2CSensor.html#sendData(int, byte[], int)">sendData</A></CODE> in class <CODE><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>register</CODE> - I2C register, e.g 0x42<DD><CODE>buf</CODE> - Buffer containing data to send<DD><CODE>len</CODE> - Length of data to send
+<DT><B>Returns:</B><DD>status zero=success, non-zero=failure</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="getDistance()"><!-- --></A><H3>
 getDistance</H3>
 <PRE>
 public int <B>getDistance</B>()</PRE>
 <DL>
-<DD>Return distance of object.
+<DD>Return distance to an object. To ensure that the data returned is valid
+ this method may have to wait a short while for the distance data to
+ become available.
 <P>
 <DD><DL>
 
 <DT><B>Returns:</B><DD>distance or 255 if no object in range</DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="getDistances(int[])"><!-- --></A><H3>
+getDistances</H3>
+<PRE>
+public int <B>getDistances</B>(int[]&nbsp;dist)</PRE>
+<DL>
+<DD>Return an array of 8 echo distances. These are generated when using ping
+ mode. A value of 255 indicates that no echo was obtained. The array must
+ contain at least 8 elements, if not -1 is returned. If the distnace data
+ is not yet available the method will wait until it is.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="ping()"><!-- --></A><H3>
+ping</H3>
+<PRE>
+public int <B>ping</B>()</PRE>
+<DL>
+<DD>Send a single ping.
+ The sensor operates in two modes, continuous and ping. When in continuous
+ mode the sensor sends out pings as often as it can and the most recently
+ obtained result is available via a call to getDistance. When in ping mode
+ a ping is only transmitted when a call is made to ping. This sends a
+ single ping and up to 8 echoes are captured. These may be read by making
+ a call to getDistance and passing a suitable array. A delay of
+ approximately 20ms is required between the call to ping and getDistance.
+ This delay is not included in the method. Calls to getDistance before
+ this period may result in an error or no data being returned. The normal
+ getDistance call may also be used with ping, returning information for
+ the first echo. Calling this method will disable teh default continuous
+ mode, to switch back to continuous mode call continuous.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="continuous()"><!-- --></A><H3>
+continuous</H3>
+<PRE>
+public int <B>continuous</B>()</PRE>
+<DL>
+<DD>Switch to continuous ping mode.
+ This method enables continuous ping and capture mode. This is the default
+ operating mode of the sensor. Please the notes for ping for more details.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="off()"><!-- --></A><H3>
+off</H3>
+<PRE>
+public int <B>off</B>()</PRE>
+<DL>
+<DD>Turn off the sensor.
+ This call disables the sensor. No pings will be issued after this call,
+ until either ping, continuous or reset is called.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="capture()"><!-- --></A><H3>
+capture</H3>
+<PRE>
+public int <B>capture</B>()</PRE>
+<DL>
+<DD>Set capture mode
+ Set the sensor into capture mode. The Lego documentation states:
+ "Within this mode the sensor will measure whether any other ultrasonic
+ sensors are within the vicinity. With this information a program can
+ evaluate when it is best to make a new measurement which will not
+ conflict with other ultrasonic sensors."
+ I have no way of testing this. Perhaps someone with a second NXT could
+ check it out!
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public int <B>reset</B>()</PRE>
+<DL>
+<DD>Reset the device
+ Performs a "soft reset" of the device. Restores things to the default
+ state. Following this call the sensor will be operating in continuous
+ mode.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFactoryData(byte[])"><!-- --></A><H3>
+getFactoryData</H3>
+<PRE>
+public int <B>getFactoryData</B>(byte[]&nbsp;data)</PRE>
+<DL>
+<DD>Return 10 bytes of factory calibration data. The bytes are as follows
+ data[0] : Factory zero (cal1)
+ data[1] : Factory scale factor (cal2)
+ data[2] : Factory scale divisor.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUnits()"><!-- --></A><H3>
+getUnits</H3>
+<PRE>
+public <A HREF="../../java/lang/String.html" title="class in java.lang">String</A> <B>getUnits</B>()</PRE>
+<DL>
+<DD>Return a string indicating the type of units in use by the unit.
+ The default response is 10E-2m indicating centimetres in use.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>7 byte string</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCalibrationData(byte[])"><!-- --></A><H3>
+getCalibrationData</H3>
+<PRE>
+public int <B>getCalibrationData</B>(byte[]&nbsp;data)</PRE>
+<DL>
+<DD>Return 3 bytes of calibration data. The bytes are as follows
+ data[0] : zero (cal1)
+ data[1] : scale factor (cal2)
+ data[2] : scale divisor.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setCalibrationData(byte[])"><!-- --></A><H3>
+setCalibrationData</H3>
+<PRE>
+public int <B>setCalibrationData</B>(byte[]&nbsp;data)</PRE>
+<DL>
+<DD>Set 3 bytes of calibration data. The bytes are as follows
+ data[0] : zero (cal1)
+ data[1] : scale factor (cal2)
+ data[2] : scale divisor.
+
+ This does not currently seem to work.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if ok <> 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getContinuousInterval()"><!-- --></A><H3>
+getContinuousInterval</H3>
+<PRE>
+public byte <B>getContinuousInterval</B>()</PRE>
+<DL>
+<DD>Return the interval used in continuous mode.
+ This seems to be in the range 1-15. It can be read and set. However tests
+ seem to show it has no effect. Others have reported that this does vary
+ the ping interval (when used in other implementations). Please report
+ any new results.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 if error otherwise the interval</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setContinuousInterval(byte)"><!-- --></A><H3>
+setContinuousInterval</H3>
+<PRE>
+public int <B>setContinuousInterval</B>(byte&nbsp;interval)</PRE>
+<DL>
+<DD>Set the ping inetrval used when in continuous mode.
+ See getContinuousInterval for more details.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 if 0k <> 0 otherwise.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMode()"><!-- --></A><H3>
+getMode</H3>
+<PRE>
+public byte <B>getMode</B>()</PRE>
+<DL>
+<DD>Returns the current operating mode of the sensor.
+ 0 : sensor is off
+ 1 : Single shot ping mode
+ 2 : continuous ping mode (default)
+ 3 : Event capture mode
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>-1 if error otherwise the operating mode</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
index 221af4e..8339a63 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 BTConnection (leJOS NXT API documentation)
 </TITLE>
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -100,14 +100,81 @@ Class BTConnection</H2>
 </PRE>
 
 <P>
-Represents a Bluetooth Stream Connection.
+Provides a Bluetooth connection
+ Supports both packetized and stream based commincation.
+ Blocking and non-blocking I/O.
+ Notes:
+ Because of the limited buffer space and the way that several connections
+ have to share the interface to the Bluetooth device data may be lost. This
+ will happen if a switch into command mode is required when there is data
+ arriving from the remote connection that can not be placed into the input
+ buffer. Every attempt is made to avoid this but it can happen. Application
+ programs can help avoid this problem by:
+ 1) Using just a single Bluetooth connection
+ 2) Using Bluetooth commands while data transfers are in progress.
+ 3) Performing application level flow control to avoid more then 256 bytes
+    of data being sent from the remote side at any one time.
+ 4) Reading any pending data as soon as possible.
+ If data is lost then calls to read and write will return -2 to indicate the
+ problem. If using packet mode then the input stream can be re-synchronized
+ by issuing a read to discard the partial packet which may be in the input
+ buffer.
 <P>
 
 <P>
 <HR>
 
 <P>
+<!-- =========== FIELD SUMMARY =========== -->
 
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#AM_ALWAYS">AM_ALWAYS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#AM_DISABLE">AM_DISABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#AM_OUTPUT">AM_OUTPUT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#BTConnection(int)">BTConnection</A></B>(int&nbsp;chan)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -118,11 +185,43 @@ Represents a Bluetooth Stream Connection.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#available()">available</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#available(int)">available</A></B>(int&nbsp;what)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicate the number of bytes available to be read.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#close()">close</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the stream connection</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#closeStream()">closeStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close the stream for this connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#getSignalStrength()">getSignalStrength</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the signal strength of this connection.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -130,7 +229,7 @@ Represents a Bluetooth Stream Connection.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#openDataInputStream()">openDataInputStream</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and return a DataInputStream - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the DataInputStream for this connect</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -138,7 +237,7 @@ Represents a Bluetooth Stream Connection.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#openDataOutputStream()">openDataOutputStream</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and return a DataOutputStream - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the DataOutputStream for this connection.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -146,7 +245,7 @@ Represents a Bluetooth Stream Connection.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#openInputStream()">openInputStream</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and return an InputStream - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the InputStream for this connection.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -154,7 +253,79 @@ Represents a Bluetooth Stream Connection.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#openOutputStream()">openOutputStream</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open and return an OutputStream - not yet implemented.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the OutputStream for this connection</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#openStream()">openStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Open the stream for this connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#read(byte[], int)">read</A></B>(byte[]&nbsp;data,
+     int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#read(byte[], int, boolean)">read</A></B>(byte[]&nbsp;data,
+     int&nbsp;outLen,
+     boolean&nbsp;wait)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attempt to read data from the connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#readPacket(byte[], int)">readPacket</A></B>(byte[]&nbsp;buf,
+           int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read a packet from the stream.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#sendPacket(byte[], int)">sendPacket</A></B>(byte[]&nbsp;buf,
+           int&nbsp;bufLen)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a data packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#setIOMode(int)">setIOMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set operating mode.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#write(byte[], int)">write</A></B>(byte[]&nbsp;data,
+      int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTConnection.html#write(byte[], int, boolean)">write</A></B>(byte[]&nbsp;data,
+      int&nbsp;len,
+      boolean&nbsp;wait)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Attempt to write bytes to the Bluetooth connection.</TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -169,6 +340,62 @@ Represents a Bluetooth Stream Connection.
 &nbsp;
 <P>
 
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="AM_DISABLE"><!-- --></A><H3>
+AM_DISABLE</H3>
+<PRE>
+public static final int <B>AM_DISABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.BTConnection.AM_DISABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="AM_ALWAYS"><!-- --></A><H3>
+AM_ALWAYS</H3>
+<PRE>
+public static final int <B>AM_ALWAYS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.BTConnection.AM_ALWAYS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="AM_OUTPUT"><!-- --></A><H3>
+AM_OUTPUT</H3>
+<PRE>
+public static final int <B>AM_OUTPUT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.BTConnection.AM_OUTPUT">Constant Field Values</A></DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="BTConnection(int)"><!-- --></A><H3>
+BTConnection</H3>
+<PRE>
+public <B>BTConnection</B>(int&nbsp;chan)</PRE>
+<DL>
+</DL>
+
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -182,17 +409,229 @@ Represents a Bluetooth Stream Connection.
 <A NAME="close()"><!-- --></A><H3>
 close</H3>
 <PRE>
-public void <B>close</B>()
-           throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+public void <B>close</B>()</PRE>
 <DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#close()">StreamConnection</A></CODE></B></DD>
-<DD>Close the stream connection
+<DD>Close the connection. Flush any pending output. Inform the remote side
+ that the connection is now closed. Free resources.
 <P>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
 </DD>
 <DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(byte[], int, boolean)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public int <B>write</B>(byte[]&nbsp;data,
+                 int&nbsp;len,
+                 boolean&nbsp;wait)</PRE>
+<DL>
+<DD>Attempt to write bytes to the Bluetooth connection. Optionally wait if it
+ is not possible to write at the moment. Supports both packet and stream
+ write opperations. If in packet mode a set of header bytes indicating
+ the size of the packet will be sent ahead of the data.
+ NOTE: If in packet mode and writing large packets (> 254 bytes), then
+ the blocking mode (wait = true), should be used to ensure that the packet
+ is sent correctly.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>data</CODE> - The data to be written.<DD><CODE>len</CODE> - The number of bytes to write.<DD><CODE>wait</CODE> - True if the call should block until all of the data has
+                                        been sent.
+<DT><B>Returns:</B><DD>> 0 number of bytes written.
+                                        0 Request would have blocked (and wait was false).
+                                        -1 An error occurred
+                                        -2 Data has been lost (See notes above).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="write(byte[], int)"><!-- --></A><H3>
+write</H3>
+<PRE>
+public int <B>write</B>(byte[]&nbsp;data,
+                 int&nbsp;len)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(byte[], int, boolean)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public int <B>read</B>(byte[]&nbsp;data,
+                int&nbsp;outLen,
+                boolean&nbsp;wait)</PRE>
+<DL>
+<DD>Attempt to read data from the connection. Optionally wait for data to
+ become available. Supports both packet and stream mode operations. When
+ in packet mode the packet length bytes are automatically processed. The
+ read will return just a single packet. If the packet is larger then the
+ requested length then the rest of the packet will be returned in the
+ following reads. If wait is true then in packet mode the call will wait
+ until either the entire packet can be read or outLen bytes are available.
+ In stream mode the call will return if at least 1 byte has been read.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>data</CODE> - Location to return the data. If null the data is discarded.<DD><CODE>outLen</CODE> - Max number of bytes to read.<DD><CODE>wait</CODE> - Should the call block waiting for data.
+<DT><B>Returns:</B><DD>> 0 number of bytes read.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read(byte[], int)"><!-- --></A><H3>
+read</H3>
+<PRE>
+public int <B>read</B>(byte[]&nbsp;data,
+                int&nbsp;len)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="available(int)"><!-- --></A><H3>
+available</H3>
+<PRE>
+public int <B>available</B>(int&nbsp;what)</PRE>
+<DL>
+<DD>Indicate the number of bytes available to be read. Supports both packet
+ mode and stream connections.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>what</CODE> - 0 (all modes) return the number of bytes that can be
+                                        read without blocking.
+                                        1 (packet mode) return the number of bytes still to be
+                                        read from the current packet.
+                                        2 (packet mode) return the length of the current packet.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="available()"><!-- --></A><H3>
+available</H3>
+<PRE>
+public int <B>available</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setIOMode(int)"><!-- --></A><H3>
+setIOMode</H3>
+<PRE>
+public void <B>setIOMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD>Set operating mode. Controls the packet/stream mode of this channel.
+ For packet mode it defines the header size to be used.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>mode</CODE> - Size of header, 0 indicates stream mode.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readPacket(byte[], int)"><!-- --></A><H3>
+readPacket</H3>
+<PRE>
+public int <B>readPacket</B>(byte[]&nbsp;buf,
+                      int&nbsp;len)</PRE>
+<DL>
+<DD>Read a packet from the stream. Do not block and for small packets
+ (< 254 bytes), do not return a partial packet.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - Buffer to read data into.<DD><CODE>len</CODE> - Number of bytes to read.
+<DT><B>Returns:</B><DD>> 0 number of bytes read.
+                                        other values see read.</DL>
+</DD>
+</DL>
+<HR>
 
+<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public void <B>sendPacket</B>(byte[]&nbsp;buf,
+                       int&nbsp;bufLen)</PRE>
+<DL>
+<DD>Send a data packet.
+ Must be in data mode.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the data to send<DD><CODE>bufLen</CODE> - the number of bytes to send</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="openInputStream()"><!-- --></A><H3>
+openInputStream</H3>
+<PRE>
+public <A HREF="../../../java/io/InputStream.html" title="class in java.io">InputStream</A> <B>openInputStream</B>()
+                            throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Return the InputStream for this connection.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openInputStream()">openInputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the input stream
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="openOutputStream()"><!-- --></A><H3>
+openOutputStream</H3>
+<PRE>
+public <A HREF="../../../java/io/OutputStream.html" title="class in java.io">OutputStream</A> <B>openOutputStream</B>()
+                              throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Return the OutputStream for this connection
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openOutputStream()">openOutputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the output stream
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
@@ -205,14 +644,14 @@ openDataInputStream</H3>
 public <A HREF="../../../java/io/DataInputStream.html" title="class in java.io">DataInputStream</A> <B>openDataInputStream</B>()
                                     throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openDataInputStream()">StreamConnection</A></CODE></B></DD>
-<DD>Open and return a DataInputStream - not yet implemented.
+<DD>Return the DataInputStream for this connect
 <P>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openDataInputStream()">openDataInputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
 </DD>
 <DD><DL>
 
+<DT><B>Returns:</B><DD>the data input stream
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
@@ -225,56 +664,68 @@ openDataOutputStream</H3>
 public <A HREF="../../../java/io/DataOutputStream.html" title="class in java.io">DataOutputStream</A> <B>openDataOutputStream</B>()
                                       throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openDataOutputStream()">StreamConnection</A></CODE></B></DD>
-<DD>Open and return a DataOutputStream - not yet implemented.
+<DD>Return the DataOutputStream for this connection.
 <P>
 <DD><DL>
 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openDataOutputStream()">openDataOutputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
 </DD>
 <DD><DL>
 
+<DT><B>Returns:</B><DD>the data output stream
 <DT><B>Throws:</B>
 <DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="openInputStream()"><!-- --></A><H3>
-openInputStream</H3>
+<A NAME="closeStream()"><!-- --></A><H3>
+closeStream</H3>
 <PRE>
-public <A HREF="../../../java/io/InputStream.html" title="class in java.io">InputStream</A> <B>openInputStream</B>()
-                            throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+public void <B>closeStream</B>()</PRE>
 <DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openInputStream()">StreamConnection</A></CODE></B></DD>
-<DD>Open and return an InputStream - not yet implemented.
+<DD>Close the stream for this connection.
+ This suspends the connection and switch the BC4 chip to command mode.
 <P>
 <DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openInputStream()">openInputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
+</DL>
 </DD>
 <DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
 
-<DT><B>Throws:</B>
-<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+<A NAME="openStream()"><!-- --></A><H3>
+openStream</H3>
+<PRE>
+public void <B>openStream</B>()</PRE>
+<DL>
+<DD>Open the stream for this connection.
+ This resumes the connection and switches the BC4 chip to data mode.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="openOutputStream()"><!-- --></A><H3>
-openOutputStream</H3>
+<A NAME="getSignalStrength()"><!-- --></A><H3>
+getSignalStrength</H3>
 <PRE>
-public <A HREF="../../../java/io/OutputStream.html" title="class in java.io">OutputStream</A> <B>openOutputStream</B>()
-                              throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+public int <B>getSignalStrength</B>()</PRE>
 <DL>
-<DD><B>Description copied from interface: <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openOutputStream()">StreamConnection</A></CODE></B></DD>
-<DD>Open and return an OutputStream - not yet implemented.
+<DD>Get the signal strength of this connection.
+ This necessitates closing and reopening the data stream.
 <P>
 <DD><DL>
-<DT><B>Specified by:</B><DD><CODE><A HREF="../../../javax/microedition/io/StreamConnection.html#openOutputStream()">openOutputStream</A></CODE> in interface <CODE><A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A></CODE></DL>
+</DL>
 </DD>
 <DD><DL>
 
-<DT><B>Throws:</B>
-<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+<DT><B>Returns:</B><DD>a value from 0 to 255</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -328,9 +779,9 @@ public <A HREF="../../../java/io/OutputStream.html" title="class in java.io">Out
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
index 022a521..5762f22 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 BTInputStream (leJOS NXT API documentation)
 </TITLE>
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -104,28 +104,12 @@ Extends InputStream for BlueTooth; implements available()
 <P>
 <DL>
 <DT><B>Author:</B></DT>
-  <DD>Roger Glassey revised on june 23, 2007</DD>
+  <DD>Roger Glassey revised on june 23, 2007, modified for Bluetooth2</DD>
 </DL>
 <HR>
 
 <P>
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTInputStream.html#BTInputStream()">BTInputStream</A></B>()</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -180,23 +164,6 @@ Extends InputStream for BlueTooth; implements available()
 &nbsp;
 <P>
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="BTInputStream()"><!-- --></A><H3>
-BTInputStream</H3>
-<PRE>
-public <B>BTInputStream</B>()</PRE>
-<DL>
-</DL>
-
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -310,9 +277,9 @@ public void <B>close</B>()</PRE>
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
index 3af27fb..6a08384 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 BTOutputStream (leJOS NXT API documentation)
 </TITLE>
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -98,33 +98,30 @@ Class BTOutputStream</H2>
 </PRE>
 
 <P>
+Implements an OutputStream over Bluetooth.
+<P>
+
+<P>
 <HR>
 
 <P>
 
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<!-- ========== METHOD SUMMARY =========== -->
 
-<A NAME="constructor_summary"><!-- --></A>
+<A NAME="method_summary"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TH>
+<B>Method Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTOutputStream.html#BTOutputStream()">BTOutputStream</A></B>()</CODE>
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/BTOutputStream.html#flush()">flush</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
-</TR>
-</TABLE>
-&nbsp;
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TH>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flushes this output stream and forces any buffered output bytes 
+ to be written out.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -141,7 +138,7 @@ Class BTOutputStream</H2>
 <TH ALIGN="left"><B>Methods inherited from class java.io.<A HREF="../../../java/io/OutputStream.html" title="class in java.io">OutputStream</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="../../../java/io/OutputStream.html#close()">close</A>, <A HREF="../../../java/io/OutputStream.html#flush()">flush</A>, <A HREF="../../../java/io/OutputStream.html#write(byte[])">write</A>, <A HREF="../../../java/io/OutputStream.html#write(byte[], int, int)">write</A></CODE></TD>
+<TD><CODE><A HREF="../../../java/io/OutputStream.html#close()">close</A>, <A HREF="../../../java/io/OutputStream.html#write(byte[])">write</A>, <A HREF="../../../java/io/OutputStream.html#write(byte[], int, int)">write</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -156,23 +153,6 @@ Class BTOutputStream</H2>
 &nbsp;
 <P>
 
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="BTOutputStream()"><!-- --></A><H3>
-BTOutputStream</H3>
-<PRE>
-public <B>BTOutputStream</B>()</PRE>
-<DL>
-</DL>
-
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -205,6 +185,30 @@ public void <B>write</B>(int&nbsp;b)</PRE>
 <DT><B>Parameters:</B><DD><CODE>b</CODE> - the <code>byte</code>.</DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="flush()"><!-- --></A><H3>
+flush</H3>
+<PRE>
+public void <B>flush</B>()</PRE>
+<DL>
+<DD><B>Description copied from class: <CODE><A HREF="../../../java/io/OutputStream.html#flush()">OutputStream</A></CODE></B></DD>
+<DD>Flushes this output stream and forces any buffered output bytes 
+ to be written out. The general contract of <code>flush</code> is 
+ that calling it is an indication that, if any bytes previously 
+ written have been buffered by the implementation of the output 
+ stream, such bytes should immediately be written to their 
+ intended destination.
+ <p>
+ The <code>flush</code> method of <code>OutputStream</code> does nothing.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../../java/io/OutputStream.html#flush()">flush</A></CODE> in class <CODE><A HREF="../../../java/io/OutputStream.html" title="class in java.io">OutputStream</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -256,9 +260,9 @@ public void <B>write</B>(int&nbsp;b)</PRE>
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
index 3a66c06..b6618d5 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 BTRemoteDevice (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/BTRemoteDevice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="BTRemoteDevice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -97,6 +97,14 @@ Class BTRemoteDevice</H2>
 </PRE>
 
 <P>
+Represents a remote Bluetooth device.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
 <HR>
 
 <P>
@@ -354,7 +362,7 @@ public byte[] <B>getDeviceClass</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/BTRemoteDevice.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="BTRemoteDevice.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
index 2653849..afd6ae6 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Bluetooth (leJOS NXT API documentation)
 </TITLE>
@@ -72,9 +72,9 @@ function windowTitle()
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -97,7 +97,9 @@ Class Bluetooth</H2>
 </PRE>
 
 <P>
-Support for Bluetooth communications.
+Provides Bluetooth comminications.
+ Allows inbound and outbound connections.
+ Provides access to to device registration.
 <P>
 
 <P>
@@ -115,6 +117,30 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#BT_PENDING_INPUT">BT_PENDING_INPUT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#BT_PENDING_OUTPUT">BT_PENDING_OUTPUT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#defaultPin">defaultPin</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_ACCEPT_CONNECTION">MSG_ACCEPT_CONNECTION</A></B></CODE>
 
 <BR>
@@ -131,6 +157,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_ANY">MSG_ANY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_BEGIN_INQUIRY">MSG_BEGIN_INQUIRY</A></B></CODE>
 
 <BR>
@@ -195,6 +229,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_CONNECTION_STATUS_RESULT">MSG_CONNECTION_STATUS_RESULT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_DUMP_LIST">MSG_DUMP_LIST</A></B></CODE>
 
 <BR>
@@ -219,6 +261,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_GET_CONNECTION_STATUS">MSG_GET_CONNECTION_STATUS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_GET_DISCOVERABLE">MSG_GET_DISCOVERABLE</A></B></CODE>
 
 <BR>
@@ -275,6 +325,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_GET_OPERATING_MODE">MSG_GET_OPERATING_MODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_GET_PORT_OPEN">MSG_GET_PORT_OPEN</A></B></CODE>
 
 <BR>
@@ -307,6 +365,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_GOTO_DFU_MODE">MSG_GOTO_DFU_MODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_HEARTBEAT">MSG_HEARTBEAT</A></B></CODE>
 
 <BR>
@@ -411,6 +477,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_OPERATING_MODE_RESULT">MSG_OPERATING_MODE_RESULT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_PIN_CODE">MSG_PIN_CODE</A></B></CODE>
 
 <BR>
@@ -531,6 +605,14 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_SET_OPERATING_MODE">MSG_SET_OPERATING_MODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#MSG_START_HEART">MSG_START_HEART</A></B></CODE>
 
 <BR>
@@ -538,6 +620,22 @@ Support for Bluetooth communications.
 </TR>
 </TABLE>
 &nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#Bluetooth()">Bluetooth</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -557,10 +655,28 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btGetCmdMode()">btGetCmdMode</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btGetBC4CmdMode()">btGetBC4CmdMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to get the BC4 chip mode</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btPending()">btPending</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level nethod to get the BC4 chip mode - does not work.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-Level method to access the Bluetooth interface.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btRead(byte[], int, int)">btRead</A></B>(byte[]&nbsp;buf,
+       int&nbsp;off,
+       int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to read BT data</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -582,7 +698,7 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btSetCmdMode(int)">btSetCmdMode</A></B>(int&nbsp;mode)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btSetArmCmdMode(int)">btSetArmCmdMode</A></B>(int&nbsp;mode)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to switch BC4 chip between command
@@ -591,10 +707,60 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btSetCmdMode(int)">btSetCmdMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the BC4 mode, and wait for that mode to be confirmed by the chip.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btSetResetHigh()">btSetResetHigh</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to take the BC4 reset line high</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btSetResetLow()">btSetResetLow</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to take the BC4 reset line low</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btStartADConverter()">btStartADConverter</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to start ADC converter - does not wok.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to start ADC converter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#btWrite(byte[], int, int)">btWrite</A></B>(byte[]&nbsp;buf,
+        int&nbsp;off,
+        int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level method to write BT data</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#closeConnection(byte)">closeConnection</A></B>(byte&nbsp;handle)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close an open connection</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#closePort()">closePort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes the  port to disallow incoming connections.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -610,11 +776,29 @@ Support for Bluetooth communications.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#connect(byte[])">connect</A></B>(byte[]&nbsp;device_addr)</CODE>
 
 <BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects to a Device by it's Byte-Device-Address Array
+ Uses default pin "1234"</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#connect(byte[], byte[])">connect</A></B>(byte[]&nbsp;device_addr,
+        byte[]&nbsp;pin)</CODE>
+
+<BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connects to a Device by it's Byte-Device-Address Array</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getConnectionStatus()">getConnectionStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the status of all connections</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getFriendlyName()">getFriendlyName</A></B>()</CODE>
 
 <BR>
@@ -648,7 +832,40 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getStatus()">getStatus</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getOperatingMode()">getOperatingMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the operating mode (stream breaking or not)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getPin()">getPin</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the pin to be used for pairing/connecting to the system</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getPortOpen()">getPortOpen</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the port open status, 
+ i.e whether connections are being accepted</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getPower()">getPower</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the current state of the module power</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getResetCount()">getResetCount</A></B>()</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -656,10 +873,35 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getSignalStrength(byte)">getSignalStrength</A></B>(byte&nbsp;handle)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the Bluetooth signal strength (link quality)
+ Higher values mean stronger signal.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getStatus()">getStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the persistent status value from the BC4 chip</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getVersion()">getVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the major and minor version of the BlueCore code</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#getVisibility()">getVisibility</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the visibility (discoverable) status of the device</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -669,33 +911,32 @@ Support for Bluetooth communications.
         byte[]&nbsp;cod)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start a Bluetooth inquiry process</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#lookupName(byte[])">lookupName</A></B>(byte[]&nbsp;deviceAddr)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#lookupName(byte[])">lookupName</A></B>(byte[]&nbsp;addr)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Look up the name of a device using its address</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#readPacket(byte[], int)">readPacket</A></B>(byte[]&nbsp;buf,
-           int&nbsp;bufLen)</CODE>
+<CODE>static&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#openPort()">openPort</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read a data packet (with 2-byte length header) from a stream connection.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens the  port to allow incoming connections.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#receiveReply(byte[], int)">receiveReply</A></B>(byte[]&nbsp;buf,
-             int&nbsp;bufLen)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#readPacket(byte[], int)">readPacket</A></B>(byte[]&nbsp;buf,
+           int&nbsp;len)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receive a command or reply from the BC4 chip.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read a packet from the stream.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -708,11 +949,10 @@ Support for Bluetooth communications.
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#sendCommand(byte[], int)">sendCommand</A></B>(byte[]&nbsp;cmd,
-            int&nbsp;len)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#reset()">reset</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a command to the BC4 chip.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force a reset of the Bluetooth module.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -725,7 +965,15 @@ Support for Bluetooth communications.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setFactorySettings()">setFactorySettings</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset the settings of the BC4 chip to the factory defaults.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setFriendlyName(byte[])">setFriendlyName</A></B>(byte[]&nbsp;name)</CODE>
 
 <BR>
@@ -733,19 +981,43 @@ Support for Bluetooth communications.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setOperatingMode(byte)">setOperatingMode</A></B>(byte&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the operating mode</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setStatus(byte)">setStatus</A></B>(byte&nbsp;status)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setPin(byte[])">setPin</A></B>(byte[]&nbsp;newPin)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the pin to be used for pairing/connecting to the system</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setPower(boolean)">setPower</A></B>(boolean&nbsp;on)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the power to the module</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setStatus(int)">setStatus</A></B>(int&nbsp;status)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the persistent status byte for the BC4 chip</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#setVisibility(byte)">setVisibility</A></B>(byte&nbsp;visible)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Bluetooth visibility (discoverable) on or off for the local device</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -753,6 +1025,14 @@ Support for Bluetooth communications.
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#waitForConnection()">waitForConnection</A></B>()</CODE>
 
 <BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html#waitForConnection(byte[])">waitForConnection</A></B>(byte[]&nbsp;pin)</CODE>
+
+<BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait for a remote device to connect.</TD>
 </TR>
 </TABLE>
@@ -1306,48 +1586,186 @@ public static final int <B>MSG_SET_BRICK_STATUSBYTE</B></PRE>
 <DL>
 <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_SET_BRICK_STATUSBYTE">Constant Field Values</A></DL>
 </DL>
+<HR>
 
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TH>
-</TR>
-</TABLE>
-
-<A NAME="btSend(byte[], int)"><!-- --></A><H3>
-btSend</H3>
+<A NAME="MSG_GET_OPERATING_MODE"><!-- --></A><H3>
+MSG_GET_OPERATING_MODE</H3>
 <PRE>
-public static void <B>btSend</B>(byte[]&nbsp;buf,
-                          int&nbsp;len)</PRE>
+public static final int <B>MSG_GET_OPERATING_MODE</B></PRE>
 <DL>
-<DD>Low-level method to send a BT command or data
-<P>
-<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to send<DD><CODE>len</CODE> - the number of bytes to send</DL>
-</DD>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_GET_OPERATING_MODE">Constant Field Values</A></DL>
 </DL>
 <HR>
 
-<A NAME="btReceive(byte[])"><!-- --></A><H3>
-btReceive</H3>
+<A NAME="MSG_SET_OPERATING_MODE"><!-- --></A><H3>
+MSG_SET_OPERATING_MODE</H3>
 <PRE>
-public static void <B>btReceive</B>(byte[]&nbsp;buf)</PRE>
+public static final int <B>MSG_SET_OPERATING_MODE</B></PRE>
 <DL>
-<DD>Low-level method to receive BT replies or data
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_SET_OPERATING_MODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MSG_OPERATING_MODE_RESULT"><!-- --></A><H3>
+MSG_OPERATING_MODE_RESULT</H3>
+<PRE>
+public static final int <B>MSG_OPERATING_MODE_RESULT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_OPERATING_MODE_RESULT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MSG_GET_CONNECTION_STATUS"><!-- --></A><H3>
+MSG_GET_CONNECTION_STATUS</H3>
+<PRE>
+public static final int <B>MSG_GET_CONNECTION_STATUS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_GET_CONNECTION_STATUS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MSG_CONNECTION_STATUS_RESULT"><!-- --></A><H3>
+MSG_CONNECTION_STATUS_RESULT</H3>
+<PRE>
+public static final int <B>MSG_CONNECTION_STATUS_RESULT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_CONNECTION_STATUS_RESULT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MSG_GOTO_DFU_MODE"><!-- --></A><H3>
+MSG_GOTO_DFU_MODE</H3>
+<PRE>
+public static final int <B>MSG_GOTO_DFU_MODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_GOTO_DFU_MODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MSG_ANY"><!-- --></A><H3>
+MSG_ANY</H3>
+<PRE>
+public static final int <B>MSG_ANY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.MSG_ANY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BT_PENDING_INPUT"><!-- --></A><H3>
+BT_PENDING_INPUT</H3>
+<PRE>
+public static final int <B>BT_PENDING_INPUT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.BT_PENDING_INPUT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BT_PENDING_OUTPUT"><!-- --></A><H3>
+BT_PENDING_OUTPUT</H3>
+<PRE>
+public static final int <B>BT_PENDING_OUTPUT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.Bluetooth.BT_PENDING_OUTPUT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="defaultPin"><!-- --></A><H3>
+defaultPin</H3>
+<PRE>
+public static final byte[] <B>defaultPin</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Bluetooth()"><!-- --></A><H3>
+Bluetooth</H3>
+<PRE>
+public <B>Bluetooth</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="btWrite(byte[], int, int)"><!-- --></A><H3>
+btWrite</H3>
+<PRE>
+public static int <B>btWrite</B>(byte[]&nbsp;buf,
+                          int&nbsp;off,
+                          int&nbsp;len)</PRE>
+<DL>
+<DD>Low-level method to write BT data
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive data in</DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to send<DD><CODE>off</CODE> - the offset to start the write from.<DD><CODE>len</CODE> - the number of bytes to send
+<DT><B>Returns:</B><DD>number of bytes actually written</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="btSetCmdMode(int)"><!-- --></A><H3>
-btSetCmdMode</H3>
+<A NAME="btRead(byte[], int, int)"><!-- --></A><H3>
+btRead</H3>
 <PRE>
-public static void <B>btSetCmdMode</B>(int&nbsp;mode)</PRE>
+public static int <B>btRead</B>(byte[]&nbsp;buf,
+                         int&nbsp;off,
+                         int&nbsp;len)</PRE>
+<DL>
+<DD>Low-level method to read BT data
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to read data into<DD><CODE>off</CODE> - the offset at which to start the transfer<DD><CODE>len</CODE> - the number of bytes to read
+<DT><B>Returns:</B><DD>number of bytes actually read</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="btPending()"><!-- --></A><H3>
+btPending</H3>
+<PRE>
+public static int <B>btPending</B>()</PRE>
+<DL>
+<DD>Low-Level method to access the Bluetooth interface. Bitwise values returned.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 No data pending
+                                0x1 input pending
+                                0x2 output pending</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="btSetArmCmdMode(int)"><!-- --></A><H3>
+btSetArmCmdMode</H3>
+<PRE>
+public static void <B>btSetArmCmdMode</B>(int&nbsp;mode)</PRE>
 <DL>
 <DD>Low-level method to switch BC4 chip between command
  and data (stream) mode.
@@ -1358,12 +1776,12 @@ public static void <B>btSetCmdMode</B>(int&nbsp;mode)</PRE>
 </DL>
 <HR>
 
-<A NAME="btGetCmdMode()"><!-- --></A><H3>
-btGetCmdMode</H3>
+<A NAME="btGetBC4CmdMode()"><!-- --></A><H3>
+btGetBC4CmdMode</H3>
 <PRE>
-public static int <B>btGetCmdMode</B>()</PRE>
+public static int <B>btGetBC4CmdMode</B>()</PRE>
 <DL>
-<DD>Low-level nethod to get the BC4 chip mode - does not work.
+<DD>Low-level method to get the BC4 chip mode
 <P>
 <DD><DL>
 </DL>
@@ -1376,7 +1794,7 @@ btStartADConverter</H3>
 <PRE>
 public static void <B>btStartADConverter</B>()</PRE>
 <DL>
-<DD>Low-level method to start ADC converter - does not wok.
+<DD>Low-level method to start ADC converter
 <P>
 <DD><DL>
 </DL>
@@ -1384,119 +1802,149 @@ public static void <B>btStartADConverter</B>()</PRE>
 </DL>
 <HR>
 
-<A NAME="sendCommand(byte[], int)"><!-- --></A><H3>
-sendCommand</H3>
+<A NAME="btSetResetLow()"><!-- --></A><H3>
+btSetResetLow</H3>
 <PRE>
-public static void <B>sendCommand</B>(byte[]&nbsp;cmd,
-                               int&nbsp;len)</PRE>
+public static void <B>btSetResetLow</B>()</PRE>
 <DL>
-<DD>Send a command to the BC4 chip. Must be in command mode.
+<DD>Low-level method to take the BC4 reset line low
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>cmd</CODE> - the command<DD><CODE>len</CODE> - the number of bytes</DL>
+</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="receiveReply(byte[], int)"><!-- --></A><H3>
-receiveReply</H3>
+<A NAME="btSetResetHigh()"><!-- --></A><H3>
+btSetResetHigh</H3>
 <PRE>
-public static int <B>receiveReply</B>(byte[]&nbsp;buf,
-                               int&nbsp;bufLen)</PRE>
+public static void <B>btSetResetHigh</B>()</PRE>
 <DL>
-<DD>Receive a command or reply from the BC4 chip. 
- Must be in command mode.
+<DD>Low-level method to take the BC4 reset line high
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive the reply<DD><CODE>bufLen</CODE> - the length of the buffer
-<DT><B>Returns:</B><DD>the number of bytes received</DL>
+</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="readPacket(byte[], int)"><!-- --></A><H3>
-readPacket</H3>
+<A NAME="btSend(byte[], int)"><!-- --></A><H3>
+btSend</H3>
 <PRE>
-public static int <B>readPacket</B>(byte[]&nbsp;buf,
-                             int&nbsp;bufLen)</PRE>
+public static void <B>btSend</B>(byte[]&nbsp;buf,
+                          int&nbsp;len)</PRE>
 <DL>
-<DD>Read a data packet (with 2-byte length header) from a stream connection.
- Must be in data mode.
+<DD>Low-level method to send a BT command or data
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive the data in<DD><CODE>bufLen</CODE> - the length of the buffer
-<DT><B>Returns:</B><DD>the number of bytes received</DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to send<DD><CODE>len</CODE> - the number of bytes to send</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
-sendPacket</H3>
+<A NAME="btReceive(byte[])"><!-- --></A><H3>
+btReceive</H3>
 <PRE>
-public static void <B>sendPacket</B>(byte[]&nbsp;buf,
-                              int&nbsp;bufLen)</PRE>
+public static void <B>btReceive</B>(byte[]&nbsp;buf)</PRE>
 <DL>
-<DD>Send a data packet.
- Must be in data mode.
+<DD>Low-level method to receive BT replies or data
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the data to send<DD><CODE>bufLen</CODE> - the number of bytes to send</DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the buffer to receive data in</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="waitForConnection()"><!-- --></A><H3>
-waitForConnection</H3>
+<A NAME="setPin(byte[])"><!-- --></A><H3>
+setPin</H3>
 <PRE>
-public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A> <B>waitForConnection</B>()</PRE>
+public static void <B>setPin</B>(byte[]&nbsp;newPin)</PRE>
 <DL>
-<DD>Wait for a remote device to connect.
- Pin currently must be 1234.
+<DD>Set the pin to be used for pairing/connecting to the system
 <P>
 <DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newPin</CODE> - the new pin code</DL>
+</DD>
+</DL>
+<HR>
 
-<DT><B>Returns:</B><DD>a BTConnection</DL>
+<A NAME="getPin()"><!-- --></A><H3>
+getPin</H3>
+<PRE>
+public static byte[] <B>getPin</B>()</PRE>
+<DL>
+<DD>Return the pin to be used for pairing/connecting to the system
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>The current pin code</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="getFriendlyName()"><!-- --></A><H3>
-getFriendlyName</H3>
+<A NAME="closeConnection(byte)"><!-- --></A><H3>
+closeConnection</H3>
 <PRE>
-public static byte[] <B>getFriendlyName</B>()</PRE>
+public static int <B>closeConnection</B>(byte&nbsp;handle)</PRE>
 <DL>
-<DD>Get the friendly name of the local device
+<DD>Close an open connection
 <P>
 <DD><DL>
+<DT><B>Parameters:</B><DD><CODE>handle</CODE> - the handle for the connection
+<DT><B>Returns:</B><DD>the status 0 = success</DL>
+</DD>
+</DL>
+<HR>
 
-<DT><B>Returns:</B><DD>the friendly name</DL>
+<A NAME="openPort()"><!-- --></A><H3>
+openPort</H3>
+<PRE>
+public static byte[] <B>openPort</B>()</PRE>
+<DL>
+<DD>Opens the  port to allow incoming connections.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of three bytes: success, handle, ps_success</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="setFriendlyName(byte[])"><!-- --></A><H3>
-setFriendlyName</H3>
+<A NAME="closePort()"><!-- --></A><H3>
+closePort</H3>
 <PRE>
-public static void <B>setFriendlyName</B>(byte[]&nbsp;name)</PRE>
+public static byte[] <B>closePort</B>()</PRE>
 <DL>
-<DD>Set the name of the local device
+<DD>Closes the  port to disallow incoming connections.
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>name</CODE> - the friendly name for the device</DL>
+
+<DT><B>Returns:</B><DD>an array of two bytes: success, ps_success</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="getLocalAddress()"><!-- --></A><H3>
-getLocalAddress</H3>
+<A NAME="waitForConnection(byte[])"><!-- --></A><H3>
+waitForConnection</H3>
 <PRE>
-public static byte[] <B>getLocalAddress</B>()</PRE>
+public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A> <B>waitForConnection</B>(byte[]&nbsp;pin)</PRE>
 <DL>
-<DD>get the Bluetooth address of the local device
+<DD>Wait for a remote device to connect.
 <P>
 <DD><DL>
+<DT><B>Parameters:</B><DD><CODE>pin</CODE> - the pin to use
+<DT><B>Returns:</B><DD>a BTConnection</DL>
+</DD>
+</DL>
+<HR>
 
-<DT><B>Returns:</B><DD>the local address</DL>
+<A NAME="waitForConnection()"><!-- --></A><H3>
+waitForConnection</H3>
+<PRE>
+public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A> <B>waitForConnection</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
 </DD>
 </DL>
 <HR>
@@ -1521,6 +1969,7 @@ connect</H3>
 public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A> <B>connect</B>(byte[]&nbsp;device_addr)</PRE>
 <DL>
 <DD>Connects to a Device by it's Byte-Device-Address Array
+ Uses default pin "1234"
 <P>
 <DD><DL>
 <DT><B>Parameters:</B><DD><CODE>device_addr</CODE> - byte-Array with device-Address
@@ -1529,6 +1978,77 @@ public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class i
 </DL>
 <HR>
 
+<A NAME="connect(byte[], byte[])"><!-- --></A><H3>
+connect</H3>
+<PRE>
+public static <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A> <B>connect</B>(byte[]&nbsp;device_addr,
+                                   byte[]&nbsp;pin)</PRE>
+<DL>
+<DD>Connects to a Device by it's Byte-Device-Address Array
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>device_addr</CODE> - byte-Array with device-Address<DD><CODE>pin</CODE> - the pin to use
+<DT><B>Returns:</B><DD>BTConnection Object or null</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getSignalStrength(byte)"><!-- --></A><H3>
+getSignalStrength</H3>
+<PRE>
+public static int <B>getSignalStrength</B>(byte&nbsp;handle)</PRE>
+<DL>
+<DD>Get the Bluetooth signal strength (link quality)
+ Higher values mean stronger signal.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>link quality value 0 to 255.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFriendlyName()"><!-- --></A><H3>
+getFriendlyName</H3>
+<PRE>
+public static byte[] <B>getFriendlyName</B>()</PRE>
+<DL>
+<DD>Get the friendly name of the local device
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the friendly name</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setFriendlyName(byte[])"><!-- --></A><H3>
+setFriendlyName</H3>
+<PRE>
+public static boolean <B>setFriendlyName</B>(byte[]&nbsp;name)</PRE>
+<DL>
+<DD>Set the name of the local device
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the friendly name for the device</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLocalAddress()"><!-- --></A><H3>
+getLocalAddress</H3>
+<PRE>
+public static byte[] <B>getLocalAddress</B>()</PRE>
+<DL>
+<DD>get the Bluetooth address of the local device
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the local address</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="getKnownDevicesList()"><!-- --></A><H3>
 getKnownDevicesList</H3>
 <PRE>
@@ -1536,7 +2056,7 @@ public static <A HREF="../../../java/util/Vector.html" title="class in java.util
 <DL>
 <DD>The internal Chip has a list of already paired Devices. This Method returns a 
  Vector-List which contains all the known Devices on the List. These need not be reachable. 
- To connect to a "not-known"-Device, you should use the Inquiry-Prozess. 
+ To connect to a "not-known"-Device, you should use the Inquiry-Process. 
  The pairing-Process can also be done with the original Lego-Firmware. The List of known 
  devices will not get lost, when installing the LeJOS Firmware.
 <P>
@@ -1597,8 +2117,11 @@ public static <A HREF="../../../java/util/Vector.html" title="class in java.util
                              int&nbsp;timeout,
                              byte[]&nbsp;cod)</PRE>
 <DL>
+<DD>Start a Bluetooth inquiry process
+<P>
 <DD><DL>
-</DL>
+<DT><B>Parameters:</B><DD><CODE>maxDevices</CODE> - the maximum number of devices to discover<DD><CODE>timeout</CODE> - the timeout value in units of 1.28 econds<DD><CODE>cod</CODE> - the class of device to look for
+<DT><B>Returns:</B><DD>a vector of all the devices found</DL>
 </DD>
 </DL>
 <HR>
@@ -1606,35 +2129,69 @@ public static <A HREF="../../../java/util/Vector.html" title="class in java.util
 <A NAME="lookupName(byte[])"><!-- --></A><H3>
 lookupName</H3>
 <PRE>
-public static <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>lookupName</B>(byte[]&nbsp;deviceAddr)</PRE>
+public static <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>lookupName</B>(byte[]&nbsp;addr)</PRE>
 <DL>
 <DD>Look up the name of a device using its address
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>deviceAddr</CODE> - 
+<DT><B>Parameters:</B><DD><CODE>addr</CODE> - device address
 <DT><B>Returns:</B><DD>friendly name of device</DL>
 </DD>
 </DL>
 <HR>
 
+<A NAME="getConnectionStatus()"><!-- --></A><H3>
+getConnectionStatus</H3>
+<PRE>
+public static byte[] <B>getConnectionStatus</B>()</PRE>
+<DL>
+<DD>Get the status of all connections
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>byte array of status for each handle</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVersion()"><!-- --></A><H3>
+getVersion</H3>
+<PRE>
+public static byte[] <B>getVersion</B>()</PRE>
+<DL>
+<DD>Get the major and minor version of the BlueCore code
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of two bytes: major version, minor version</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="getStatus()"><!-- --></A><H3>
 getStatus</H3>
 <PRE>
 public static int <B>getStatus</B>()</PRE>
 <DL>
+<DD>Get the persistent status value from the BC4 chip
+<P>
 <DD><DL>
-</DL>
+
+<DT><B>Returns:</B><DD>the byte value</DL>
 </DD>
 </DL>
 <HR>
 
-<A NAME="setStatus(byte)"><!-- --></A><H3>
+<A NAME="setStatus(int)"><!-- --></A><H3>
 setStatus</H3>
 <PRE>
-public static void <B>setStatus</B>(byte&nbsp;status)</PRE>
+public static int <B>setStatus</B>(int&nbsp;status)</PRE>
 <DL>
+<DD>Set the persistent status byte for the BC4 chip
+<P>
 <DD><DL>
-</DL>
+<DT><B>Parameters:</B><DD><CODE>status</CODE> - the byte status value
+<DT><B>Returns:</B><DD>< 0 Error</DL>
 </DD>
 </DL>
 <HR>
@@ -1644,8 +2201,41 @@ getVisibility</H3>
 <PRE>
 public static int <B>getVisibility</B>()</PRE>
 <DL>
+<DD>Get the visibility (discoverable) status of the device
+<P>
 <DD><DL>
+
+<DT><B>Returns:</B><DD>1 = visible, 0 = invisible</DL>
+</DD>
 </DL>
+<HR>
+
+<A NAME="getPortOpen()"><!-- --></A><H3>
+getPortOpen</H3>
+<PRE>
+public static int <B>getPortOpen</B>()</PRE>
+<DL>
+<DD>Get the port open status, 
+ i.e whether connections are being accepted
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>1 if the port is open, 0 otherwise</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOperatingMode()"><!-- --></A><H3>
+getOperatingMode</H3>
+<PRE>
+public static int <B>getOperatingMode</B>()</PRE>
+<DL>
+<DD>Get the operating mode (stream breaking or not)
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 = stream breaking mode, 1 = don't break stream mode
+                   < 0 Error</DL>
 </DD>
 </DL>
 <HR>
@@ -1653,12 +2243,143 @@ public static int <B>getVisibility</B>()</PRE>
 <A NAME="setVisibility(byte)"><!-- --></A><H3>
 setVisibility</H3>
 <PRE>
-public static void <B>setVisibility</B>(byte&nbsp;visible)</PRE>
+public static int <B>setVisibility</B>(byte&nbsp;visible)</PRE>
+<DL>
+<DD>Set Bluetooth visibility (discoverable) on or off for the local device
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>visible</CODE> - true to set visibility on, false to set it off
+<DT><B>Returns:</B><DD>< 0 error</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setFactorySettings()"><!-- --></A><H3>
+setFactorySettings</H3>
+<PRE>
+public static int <B>setFactorySettings</B>()</PRE>
+<DL>
+<DD>Reset the settings of the BC4 chip to the factory defaults.
+ The NXT should be restarted after this.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOperatingMode(byte)"><!-- --></A><H3>
+setOperatingMode</H3>
+<PRE>
+public static int <B>setOperatingMode</B>(byte&nbsp;mode)</PRE>
+<DL>
+<DD>Set the operating mode
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>mode</CODE> - 0 = Stream breaking, 1 don't break stream
+<DT><B>Returns:</B><DD>< 0 error</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public static void <B>reset</B>()</PRE>
+<DL>
+<DD>Force a reset of the Bluetooth module.
+ Notes:
+ After this call power will be on.
+ Any existing connections will be closed
+ Any listening threads will be aborted
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPower(boolean)"><!-- --></A><H3>
+setPower</H3>
+<PRE>
+public static void <B>setPower</B>(boolean&nbsp;on)</PRE>
+<DL>
+<DD>Set the power to the module
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>on</CODE> - power on or off</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPower()"><!-- --></A><H3>
+getPower</H3>
+<PRE>
+public static boolean <B>getPower</B>()</PRE>
+<DL>
+<DD>Return the current state of the module power
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>power on or off</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getResetCount()"><!-- --></A><H3>
+getResetCount</H3>
+<PRE>
+public static int <B>getResetCount</B>()</PRE>
 <DL>
 <DD><DL>
 </DL>
 </DD>
 </DL>
+<HR>
+
+<A NAME="readPacket(byte[], int)"><!-- --></A><H3>
+readPacket</H3>
+<PRE>
+public static int <B>readPacket</B>(byte[]&nbsp;buf,
+                             int&nbsp;len)</PRE>
+<DL>
+<DD>Read a packet from the stream. Do not block and for small packets
+ (< 254 bytes), do not return a partial packet.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - Buffer to read data into.<DD><CODE>len</CODE> - Number of bytes to read.
+<DT><B>Returns:</B><DD>> 0 number of bytes read.
+                                        other values see read.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public static void <B>sendPacket</B>(byte[]&nbsp;buf,
+                              int&nbsp;bufLen)</PRE>
+<DL>
+<DD>Send a data packet.
+ Must be in data mode.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the data to send<DD><CODE>bufLen</CODE> - the number of bytes to send</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="btSetCmdMode(int)"><!-- --></A><H3>
+btSetCmdMode</H3>
+<PRE>
+public static void <B>btSetCmdMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD>Set the BC4 mode, and wait for that mode to be confirmed by the chip.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>mode</CODE> - the requested mode 1 == Command mode 0 == Stream mode</DL>
+</DD>
+</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -1710,9 +2431,9 @@ public static void <B>setVisibility</B>(byte&nbsp;visible)</PRE>
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/Debug.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/Debug.html
new file mode 100644 (file)
index 0000000..61fca18
--- /dev/null
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Debug (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.Debug class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Debug (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/Debug.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Debug.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class Debug</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.Debug</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Debug</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+This class provides a simple way of sending debug output for viewing on a 
+ PC. The output is transmitted via the nxt USB connection. If open is not
+ called or if the connection to the PC is timed out, then the debug output
+ is dicarded.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Debug.html#Debug()">Debug</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Debug.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Debug.html#open()">open</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Debug.html#open(int)">open</A></B>(int&nbsp;timeout)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/Debug.html#out(java.lang.String)">out</A></B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Debug()"><!-- --></A><H3>
+Debug</H3>
+<PRE>
+public <B>Debug</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="open(int)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public static void <B>open</B>(int&nbsp;timeout)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="open()"><!-- --></A><H3>
+open</H3>
+<PRE>
+public static void <B>open</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="out(java.lang.String)"><!-- --></A><H3>
+out</H3>
+<PRE>
+public static void <B>out</B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public static void <B>close</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/Debug.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Debug.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/DeviceInfo.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/DeviceInfo.html
new file mode 100644 (file)
index 0000000..f6848c7
--- /dev/null
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+DeviceInfo (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.DeviceInfo class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="DeviceInfo (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/DeviceInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DeviceInfo.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class DeviceInfo</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.DeviceInfo</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>DeviceInfo</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Represents a remote NXT accessed via LCP.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#bluetoothAddress">bluetoothAddress</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#freeFlash">freeFlash</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#NXTname">NXTname</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#signalStrength">signalStrength</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#status">status</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html#DeviceInfo()">DeviceInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="status"><!-- --></A><H3>
+status</H3>
+<PRE>
+public byte <B>status</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="NXTname"><!-- --></A><H3>
+NXTname</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>NXTname</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="bluetoothAddress"><!-- --></A><H3>
+bluetoothAddress</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>bluetoothAddress</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="signalStrength"><!-- --></A><H3>
+signalStrength</H3>
+<PRE>
+public int <B>signalStrength</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="freeFlash"><!-- --></A><H3>
+freeFlash</H3>
+<PRE>
+public int <B>freeFlash</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DeviceInfo()"><!-- --></A><H3>
+DeviceInfo</H3>
+<PRE>
+public <B>DeviceInfo</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/DeviceInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="DeviceInfo.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/FirmwareInfo.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/FirmwareInfo.html
new file mode 100644 (file)
index 0000000..5a97eb1
--- /dev/null
@@ -0,0 +1,295 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+FirmwareInfo (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.FirmwareInfo class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="FirmwareInfo (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/FirmwareInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="FirmwareInfo.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class FirmwareInfo</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.FirmwareInfo</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>FirmwareInfo</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Firmware information for a remote NXT accessed via LCP.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/FirmwareInfo.html#firmwareVersion">firmwareVersion</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/FirmwareInfo.html#protocolVersion">protocolVersion</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/FirmwareInfo.html#status">status</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/FirmwareInfo.html#FirmwareInfo()">FirmwareInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="status"><!-- --></A><H3>
+status</H3>
+<PRE>
+public byte <B>status</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="protocolVersion"><!-- --></A><H3>
+protocolVersion</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>protocolVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="firmwareVersion"><!-- --></A><H3>
+firmwareVersion</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>firmwareVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="FirmwareInfo()"><!-- --></A><H3>
+FirmwareInfo</H3>
+<PRE>
+public <B>FirmwareInfo</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/FirmwareInfo.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="FirmwareInfo.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/InputValues.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/InputValues.html
new file mode 100644 (file)
index 0000000..ed3a1e6
--- /dev/null
@@ -0,0 +1,421 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+InputValues (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.InputValues class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="InputValues (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/InputValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class InputValues</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.InputValues</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>InputValues</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Sensor input values for a remote NXT accessed via LCP.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD><a href="mailto:bbagnall@mts.net">Brian Bagnall</a></DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;short</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#calibratedValue">calibratedValue</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Currently unused.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#inputPort">inputPort</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#isCalibrated">isCalibrated</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#normalizedADValue">normalizedADValue</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The normalized value from the Analog to Digital (AD) converter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#rawADValue">rawADValue</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The raw value from the Analog to Digital (AD) converter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;short</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#scaledValue">scaledValue</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The scaled value starts working after the first call to the sensor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#sensorMode">sensorMode</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#sensorType">sensorType</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#valid">valid</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NXT indicates if it thinks the data is valid</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/InputValues.html#InputValues()">InputValues</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="inputPort"><!-- --></A><H3>
+inputPort</H3>
+<PRE>
+public int <B>inputPort</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="valid"><!-- --></A><H3>
+valid</H3>
+<PRE>
+public boolean <B>valid</B></PRE>
+<DL>
+<DD>NXT indicates if it thinks the data is valid
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="isCalibrated"><!-- --></A><H3>
+isCalibrated</H3>
+<PRE>
+public boolean <B>isCalibrated</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="sensorType"><!-- --></A><H3>
+sensorType</H3>
+<PRE>
+public int <B>sensorType</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="sensorMode"><!-- --></A><H3>
+sensorMode</H3>
+<PRE>
+public int <B>sensorMode</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="rawADValue"><!-- --></A><H3>
+rawADValue</H3>
+<PRE>
+public int <B>rawADValue</B></PRE>
+<DL>
+<DD>The raw value from the Analog to Digital (AD) converter.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="normalizedADValue"><!-- --></A><H3>
+normalizedADValue</H3>
+<PRE>
+public int <B>normalizedADValue</B></PRE>
+<DL>
+<DD>The normalized value from the Analog to Digital (AD) converter. I really don't
+ know for sure which values are normalized yet.
+ 0 to 1023
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="scaledValue"><!-- --></A><H3>
+scaledValue</H3>
+<PRE>
+public short <B>scaledValue</B></PRE>
+<DL>
+<DD>The scaled value starts working after the first call to the sensor.
+ The first value will be the raw value, but after that it produces scaled values.
+ With the touch sensor, off scales to 0 and on scales to 1.
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="calibratedValue"><!-- --></A><H3>
+calibratedValue</H3>
+<PRE>
+public short <B>calibratedValue</B></PRE>
+<DL>
+<DD>Currently unused.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="InputValues()"><!-- --></A><H3>
+InputValues</H3>
+<PRE>
+public <B>InputValues</B>()</PRE>
+<DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/InputValues.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="InputValues.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index d0b62c4..67ad5d1 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 LCP (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/LCP.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="LCP.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -164,6 +164,14 @@ Implements the Lego Communication Protocol,
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#DIRECTORY_FULL">DIRECTORY_FULL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#FILE_NOT_FOUND">FILE_NOT_FOUND</A></B></CODE>
 
 <BR>
@@ -235,6 +243,22 @@ Implements the Lego Communication Protocol,
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../../java/util/Queue.html" title="class in java.util">Queue</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#inBoxes">inBoxes</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#INSUFFICIENT_MEMORY">INSUFFICIENT_MEMORY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#KEEP_ALIVE">KEEP_ALIVE</A></B></CODE>
 
@@ -268,6 +292,22 @@ Implements the Lego Communication Protocol,
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#MAILBOX_EMPTY">MAILBOX_EMPTY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#MESSAGE_READ">MESSAGE_READ</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#MESSAGE_WRITE">MESSAGE_WRITE</A></B></CODE>
 
 <BR>
@@ -276,6 +316,14 @@ Implements the Lego Communication Protocol,
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#NOT_IMPLEMENTED">NOT_IMPLEMENTED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#NXJ_DEFRAG">NXJ_DEFRAG</A></B></CODE>
 
 <BR>
@@ -484,6 +532,14 @@ Implements the Lego Communication Protocol,
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#UNDEFINED_ERROR">UNDEFINED_ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#WRITE">WRITE</A></B></CODE>
 
 <BR>
@@ -509,6 +565,15 @@ Implements the Lego Communication Protocol,
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Emulates a Lego firmware Direct or System command</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCP.html#messageWrite(int, java.lang.String)">messageWrite</A></B>(int&nbsp;mailbox,
+             <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;msg)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
 </TABLE>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
@@ -532,6 +597,16 @@ Implements the Lego Communication Protocol,
 </TR>
 </TABLE>
 
+<A NAME="inBoxes"><!-- --></A><H3>
+inBoxes</H3>
+<PRE>
+public static <A HREF="../../../java/util/Queue.html" title="class in java.util">Queue</A>[] <B>inBoxes</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
 <A NAME="DIRECT_COMMAND_REPLY"><!-- --></A><H3>
 DIRECT_COMMAND_REPLY</H3>
 <PRE>
@@ -762,6 +837,16 @@ public static final byte <B>GET_CURRENT_PROGRAM_NAME</B></PRE>
 </DL>
 <HR>
 
+<A NAME="MESSAGE_READ"><!-- --></A><H3>
+MESSAGE_READ</H3>
+<PRE>
+public static final byte <B>MESSAGE_READ</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.MESSAGE_READ">Constant Field Values</A></DL>
+</DL>
+<HR>
+
 <A NAME="NXJ_DISCONNECT"><!-- --></A><H3>
 NXJ_DISCONNECT</H3>
 <PRE>
@@ -992,6 +1077,16 @@ public static final byte <B>NXJ_FIND_NEXT</B></PRE>
 </DL>
 <HR>
 
+<A NAME="MAILBOX_EMPTY"><!-- --></A><H3>
+MAILBOX_EMPTY</H3>
+<PRE>
+public static final byte <B>MAILBOX_EMPTY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.MAILBOX_EMPTY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
 <A NAME="FILE_NOT_FOUND"><!-- --></A><H3>
 FILE_NOT_FOUND</H3>
 <PRE>
@@ -1000,6 +1095,46 @@ public static final byte <B>FILE_NOT_FOUND</B></PRE>
 <DL>
 <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.FILE_NOT_FOUND">Constant Field Values</A></DL>
 </DL>
+<HR>
+
+<A NAME="INSUFFICIENT_MEMORY"><!-- --></A><H3>
+INSUFFICIENT_MEMORY</H3>
+<PRE>
+public static final byte <B>INSUFFICIENT_MEMORY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.INSUFFICIENT_MEMORY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DIRECTORY_FULL"><!-- --></A><H3>
+DIRECTORY_FULL</H3>
+<PRE>
+public static final byte <B>DIRECTORY_FULL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.DIRECTORY_FULL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="UNDEFINED_ERROR"><!-- --></A><H3>
+UNDEFINED_ERROR</H3>
+<PRE>
+public static final byte <B>UNDEFINED_ERROR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.UNDEFINED_ERROR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NOT_IMPLEMENTED"><!-- --></A><H3>
+NOT_IMPLEMENTED</H3>
+<PRE>
+public static final byte <B>NOT_IMPLEMENTED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.LCP.NOT_IMPLEMENTED">Constant Field Values</A></DL>
+</DL>
 
 <!-- ============ METHOD DETAIL ========== -->
 
@@ -1021,7 +1156,19 @@ public static int <B>emulateCommand</B>(byte[]&nbsp;cmd,
 <DD>Emulates a Lego firmware Direct or System command
 <P>
 <DD><DL>
-<DT><B>Parameters:</B><DD><CODE>cmd</CODE> - the buffer containing the command<DD><CODE>cmdLen</CODE> - the legth of the command</DL>
+<DT><B>Parameters:</B><DD><CODE>cmd</CODE> - the buffer containing the command<DD><CODE>cmdLen</CODE> - the length of the command</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="messageWrite(int, java.lang.String)"><!-- --></A><H3>
+messageWrite</H3>
+<PRE>
+public static void <B>messageWrite</B>(int&nbsp;mailbox,
+                                <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;msg)</PRE>
+<DL>
+<DD><DL>
+</DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -1054,8 +1201,8 @@ public static int <B>emulateCommand</B>(byte[]&nbsp;cmd,
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/LCP.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="LCP.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/LCPBTResponder.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/LCPBTResponder.html
new file mode 100644 (file)
index 0000000..66572ca
--- /dev/null
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+LCPBTResponder (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.LCPBTResponder class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LCPBTResponder (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/LCPBTResponder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LCPBTResponder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.lang.Thread">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class LCPBTResponder</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../java/lang/Thread.html" title="class in java.lang">java.lang.Thread</A>
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.LCPBTResponder</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LCPBTResponder</B><DT>extends <A HREF="../../../java/lang/Thread.html" title="class in java.lang">Thread</A></DL>
+</PRE>
+
+<P>
+Support for LCP commands over Bluetooth in user programs.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_java.lang.Thread"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class java.lang.<A HREF="../../../java/lang/Thread.html" title="class in java.lang">Thread</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Thread.html#MAX_PRIORITY">MAX_PRIORITY</A>, <A HREF="../../../java/lang/Thread.html#MIN_PRIORITY">MIN_PRIORITY</A>, <A HREF="../../../java/lang/Thread.html#NORM_PRIORITY">NORM_PRIORITY</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCPBTResponder.html#LCPBTResponder()">LCPBTResponder</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/LCPBTResponder.html#run()">run</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Thread"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Thread.html" title="class in java.lang">Thread</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Thread.html#currentThread()">currentThread</A>, <A HREF="../../../java/lang/Thread.html#getPriority()">getPriority</A>, <A HREF="../../../java/lang/Thread.html#interrupt()">interrupt</A>, <A HREF="../../../java/lang/Thread.html#interrupted()">interrupted</A>, <A HREF="../../../java/lang/Thread.html#isAlive()">isAlive</A>, <A HREF="../../../java/lang/Thread.html#isDaemon()">isDaemon</A>, <A HREF="../../../java/lang/Thread.html#isInterrupted()">isInterrupted</A>, <A HREF="../../../java/lang/Thread.html#join()">join</A>, <A HREF="../../../java/lang/Thread.html#join(long)">join</A>, <A HREF="../../../java/lang/Thread.html#setDaemon(boolean)">setDaemon</A>, <A HREF="../../../java/lang/Thread.html#setPriority(int)">setPriority</A>, <A HREF="../../../java/lang/Thread.html#sleep(long)">sleep</A>, <A HREF="../../../java/lang/Thread.html#start()">start</A>, <A HREF="../../../java/lang/Thread.html#yield()">yield</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="LCPBTResponder()"><!-- --></A><H3>
+LCPBTResponder</H3>
+<PRE>
+public <B>LCPBTResponder</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="run()"><!-- --></A><H3>
+run</H3>
+<PRE>
+public void <B>run</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../java/lang/Thread.html#run()">run</A></CODE> in class <CODE><A HREF="../../../java/lang/Thread.html" title="class in java.lang">Thread</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/LCPBTResponder.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LCPBTResponder.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_java.lang.Thread">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTComm.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTComm.html
new file mode 100644 (file)
index 0000000..fbe2801
--- /dev/null
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+NXTComm (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.NXTComm class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NXTComm (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTComm.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTComm.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class NXTComm</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.NXTComm</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>NXTComm</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Initiates communication to a remote NXT. Used by NXTCommand
+ to implement the Lego Communications Protocol (LCP).
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTComm.html#NXTComm()">NXTComm</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTComm.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTComm.html#open(java.lang.String)">open</A></B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTComm.html#readData()">readData</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTComm.html#sendData(byte[])">sendData</A></B>(byte[]&nbsp;data)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NXTComm()"><!-- --></A><H3>
+NXTComm</H3>
+<PRE>
+public <B>NXTComm</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="open(java.lang.String)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public boolean <B>open</B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)
+             throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendData(byte[])"><!-- --></A><H3>
+sendData</H3>
+<PRE>
+public void <B>sendData</B>(byte[]&nbsp;data)
+              throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readData()"><!-- --></A><H3>
+readData</H3>
+<PRE>
+public byte[] <B>readData</B>()
+                throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()
+           throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTComm.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTComm.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTCommand.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTCommand.html
new file mode 100644 (file)
index 0000000..7788268
--- /dev/null
@@ -0,0 +1,615 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+NXTCommand (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.NXTCommand class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NXTCommand (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Class NXTCommand</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.NXTCommand</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>NXTCommand</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></DL>
+</PRE>
+
+<P>
+Remote access to a NXT via Bluetooth using LCP.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.comm.NXTProtocol"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#READ">READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#NXTCommand()">NXTCommand</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call the close() command when your program ends, otherwise you
+ will have to turn the NXT brick off/on before you run another
+ program using iCommand.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#deleteUserFlash()">deleteUserFlash</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes user flash memory (not including system modules).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#getBatteryLevel()">getBatteryLevel</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#getDeviceInfo()">getDeviceInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#getFirmwareVersion()">getFirmwareVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#getInputValues(int)">getInputValues</A></B>(int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#getTachoCount(int)">getTachoCount</A></B>(int&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves tacho count.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#open(java.lang.String)">open</A></B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#playTone(int, int)">playTone</A></B>(int&nbsp;frequency,
+         int&nbsp;duration)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Plays a tone on NXT speaker.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#resetMotorPosition(int, boolean)">resetMotorPosition</A></B>(int&nbsp;port,
+                   boolean&nbsp;relative)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets the tachometer</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#setInputMode(int, int, int)">setInputMode</A></B>(int&nbsp;port,
+             int&nbsp;sensorType,
+             int&nbsp;sensorMode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tells the NXT what type of sensor you are using and the mode to operate in.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#setOutputState(int, byte, int, int, int, int, int)">setOutputState</A></B>(int&nbsp;port,
+               byte&nbsp;power,
+               int&nbsp;mode,
+               int&nbsp;regulationMode,
+               int&nbsp;turnRatio,
+               int&nbsp;runState,
+               int&nbsp;tachoLimit)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html#setVerify(boolean)">setVerify</A></B>(boolean&nbsp;verify)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="NXTCommand()"><!-- --></A><H3>
+NXTCommand</H3>
+<PRE>
+public <B>NXTCommand</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="open(java.lang.String)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public void <B>open</B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)
+          throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setOutputState(int, byte, int, int, int, int, int)"><!-- --></A><H3>
+setOutputState</H3>
+<PRE>
+public byte <B>setOutputState</B>(int&nbsp;port,
+                           byte&nbsp;power,
+                           int&nbsp;mode,
+                           int&nbsp;regulationMode,
+                           int&nbsp;turnRatio,
+                           int&nbsp;runState,
+                           int&nbsp;tachoLimit)
+                    throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - - Output port (0 - 2 or 0xFF for all three)<DD><CODE>power</CODE> - - Setpoint for power. (-100 to 100)<DD><CODE>mode</CODE> - - Setting the modes MOTORON, BRAKE, and/or REGULATED. This parameter is a bitfield, so to put it in brake mode and regulated, use BRAKEMODE + REGULATED<DD><CODE>regulationMode</CODE> - - see NXTProtocol for enumerations<DD><CODE>turnRatio</CODE> - - Need two motors? (-100 to 100)<DD><CODE>runState</CODE> - - see NXTProtocol for enumerations<DD><CODE>tachoLimit</CODE> - - Number of degrees(?) to rotate before stopping.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTachoCount(int)"><!-- --></A><H3>
+getTachoCount</H3>
+<PRE>
+public int <B>getTachoCount</B>(int&nbsp;port)
+                  throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Retrieves tacho count.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - - 0 to 3
+<DT><B>Returns:</B><DD>tacho count
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetMotorPosition(int, boolean)"><!-- --></A><H3>
+resetMotorPosition</H3>
+<PRE>
+public byte <B>resetMotorPosition</B>(int&nbsp;port,
+                               boolean&nbsp;relative)
+                        throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Resets the tachometer
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - Output port (0-2)<DD><CODE>relative</CODE> - TRUE: position relative to last movement, FALSE: absolute position
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setVerify(boolean)"><!-- --></A><H3>
+setVerify</H3>
+<PRE>
+public void <B>setVerify</B>(boolean&nbsp;verify)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()
+           throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Call the close() command when your program ends, otherwise you
+ will have to turn the NXT brick off/on before you run another
+ program using iCommand.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBatteryLevel()"><!-- --></A><H3>
+getBatteryLevel</H3>
+<PRE>
+public int <B>getBatteryLevel</B>()
+                    throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInputValues(int)"><!-- --></A><H3>
+getInputValues</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A> <B>getInputValues</B>(int&nbsp;port)
+                           throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setInputMode(int, int, int)"><!-- --></A><H3>
+setInputMode</H3>
+<PRE>
+public byte <B>setInputMode</B>(int&nbsp;port,
+                         int&nbsp;sensorType,
+                         int&nbsp;sensorMode)
+                  throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Tells the NXT what type of sensor you are using and the mode to operate in.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - - 0 to 3<DD><CODE>sensorType</CODE> - - Enumeration for sensor type (see NXTProtocol)<DD><CODE>sensorMode</CODE> - - Enumeration for sensor mode (see NXTProtocol)
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="playTone(int, int)"><!-- --></A><H3>
+playTone</H3>
+<PRE>
+public byte <B>playTone</B>(int&nbsp;frequency,
+                     int&nbsp;duration)
+              throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Plays a tone on NXT speaker. If a new tone is sent while the previous tone is playing,
+ the new tone command will stop the old tone command.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>frequency</CODE> - <DD><CODE>duration</CODE> - - In milliseconds.
+<DT><B>Returns:</B><DD>- Returns true if command worked, false if it failed.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDeviceInfo()"><!-- --></A><H3>
+getDeviceInfo</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A> <B>getDeviceInfo</B>()
+                         throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFirmwareVersion()"><!-- --></A><H3>
+getFirmwareVersion</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A> <B>getFirmwareVersion</B>()
+                                throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deleteUserFlash()"><!-- --></A><H3>
+deleteUserFlash</H3>
+<PRE>
+public byte <B>deleteUserFlash</B>()
+                     throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Deletes user flash memory (not including system modules).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>0 for success
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTCommand.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTCommand.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTProtocol.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/comm/NXTProtocol.html
new file mode 100644 (file)
index 0000000..b8449b4
--- /dev/null
@@ -0,0 +1,1612 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+NXTProtocol (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.comm.NXTProtocol interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="NXTProtocol (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTProtocol.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTProtocol.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
+Interface NXTProtocol</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>, <A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A>, <A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A>, <A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>NXTProtocol</B></DL>
+</PRE>
+
+<P>
+LCP constants.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use run/brake instead of run/float in PWM</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output will be idle</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output will ramp-down</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output will ramp-up</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output will be running</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turn on the specified motor</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#READ">READ</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Turns on the regulation</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No regulation will be enabled</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Power control will be enabled on specified output</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Synchronization will be enabled (Needs enabled on two output)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DIRECT_COMMAND_REPLY"><!-- --></A><H3>
+DIRECT_COMMAND_REPLY</H3>
+<PRE>
+static final byte <B>DIRECT_COMMAND_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.DIRECT_COMMAND_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SYSTEM_COMMAND_REPLY"><!-- --></A><H3>
+SYSTEM_COMMAND_REPLY</H3>
+<PRE>
+static final byte <B>SYSTEM_COMMAND_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SYSTEM_COMMAND_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REPLY_COMMAND"><!-- --></A><H3>
+REPLY_COMMAND</H3>
+<PRE>
+static final byte <B>REPLY_COMMAND</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REPLY_COMMAND">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DIRECT_COMMAND_NOREPLY"><!-- --></A><H3>
+DIRECT_COMMAND_NOREPLY</H3>
+<PRE>
+static final byte <B>DIRECT_COMMAND_NOREPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.DIRECT_COMMAND_NOREPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SYSTEM_COMMAND_NOREPLY"><!-- --></A><H3>
+SYSTEM_COMMAND_NOREPLY</H3>
+<PRE>
+static final byte <B>SYSTEM_COMMAND_NOREPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SYSTEM_COMMAND_NOREPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_READ"><!-- --></A><H3>
+OPEN_READ</H3>
+<PRE>
+static final byte <B>OPEN_READ</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_READ">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_WRITE"><!-- --></A><H3>
+OPEN_WRITE</H3>
+<PRE>
+static final byte <B>OPEN_WRITE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_WRITE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="READ"><!-- --></A><H3>
+READ</H3>
+<PRE>
+static final byte <B>READ</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.READ">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="WRITE"><!-- --></A><H3>
+WRITE</H3>
+<PRE>
+static final byte <B>WRITE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.WRITE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CLOSE"><!-- --></A><H3>
+CLOSE</H3>
+<PRE>
+static final byte <B>CLOSE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.CLOSE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DELETE"><!-- --></A><H3>
+DELETE</H3>
+<PRE>
+static final byte <B>DELETE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.DELETE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FIND_FIRST"><!-- --></A><H3>
+FIND_FIRST</H3>
+<PRE>
+static final byte <B>FIND_FIRST</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.FIND_FIRST">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FIND_NEXT"><!-- --></A><H3>
+FIND_NEXT</H3>
+<PRE>
+static final byte <B>FIND_NEXT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.FIND_NEXT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_FIRMWARE_VERSION"><!-- --></A><H3>
+GET_FIRMWARE_VERSION</H3>
+<PRE>
+static final byte <B>GET_FIRMWARE_VERSION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_FIRMWARE_VERSION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_WRITE_LINEAR"><!-- --></A><H3>
+OPEN_WRITE_LINEAR</H3>
+<PRE>
+static final byte <B>OPEN_WRITE_LINEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_WRITE_LINEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_READ_LINEAR"><!-- --></A><H3>
+OPEN_READ_LINEAR</H3>
+<PRE>
+static final byte <B>OPEN_READ_LINEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_READ_LINEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_WRITE_DATA"><!-- --></A><H3>
+OPEN_WRITE_DATA</H3>
+<PRE>
+static final byte <B>OPEN_WRITE_DATA</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_WRITE_DATA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPEN_APPEND_DATA"><!-- --></A><H3>
+OPEN_APPEND_DATA</H3>
+<PRE>
+static final byte <B>OPEN_APPEND_DATA</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.OPEN_APPEND_DATA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BOOT"><!-- --></A><H3>
+BOOT</H3>
+<PRE>
+static final byte <B>BOOT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.BOOT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SET_BRICK_NAME"><!-- --></A><H3>
+SET_BRICK_NAME</H3>
+<PRE>
+static final byte <B>SET_BRICK_NAME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SET_BRICK_NAME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_DEVICE_INFO"><!-- --></A><H3>
+GET_DEVICE_INFO</H3>
+<PRE>
+static final byte <B>GET_DEVICE_INFO</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_DEVICE_INFO">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="DELETE_USER_FLASH"><!-- --></A><H3>
+DELETE_USER_FLASH</H3>
+<PRE>
+static final byte <B>DELETE_USER_FLASH</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.DELETE_USER_FLASH">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="POLL_LENGTH"><!-- --></A><H3>
+POLL_LENGTH</H3>
+<PRE>
+static final byte <B>POLL_LENGTH</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.POLL_LENGTH">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="POLL"><!-- --></A><H3>
+POLL</H3>
+<PRE>
+static final byte <B>POLL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.POLL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="POLL_BUFFER"><!-- --></A><H3>
+POLL_BUFFER</H3>
+<PRE>
+static final byte <B>POLL_BUFFER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.POLL_BUFFER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="HIGH_SPEED_BUFFER"><!-- --></A><H3>
+HIGH_SPEED_BUFFER</H3>
+<PRE>
+static final byte <B>HIGH_SPEED_BUFFER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.HIGH_SPEED_BUFFER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="START_PROGRAM"><!-- --></A><H3>
+START_PROGRAM</H3>
+<PRE>
+static final byte <B>START_PROGRAM</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.START_PROGRAM">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STOP_PROGRAM"><!-- --></A><H3>
+STOP_PROGRAM</H3>
+<PRE>
+static final byte <B>STOP_PROGRAM</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.STOP_PROGRAM">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PLAY_SOUND_FILE"><!-- --></A><H3>
+PLAY_SOUND_FILE</H3>
+<PRE>
+static final byte <B>PLAY_SOUND_FILE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.PLAY_SOUND_FILE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PLAY_TONE"><!-- --></A><H3>
+PLAY_TONE</H3>
+<PRE>
+static final byte <B>PLAY_TONE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.PLAY_TONE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SET_OUTPUT_STATE"><!-- --></A><H3>
+SET_OUTPUT_STATE</H3>
+<PRE>
+static final byte <B>SET_OUTPUT_STATE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SET_OUTPUT_STATE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SET_INPUT_MODE"><!-- --></A><H3>
+SET_INPUT_MODE</H3>
+<PRE>
+static final byte <B>SET_INPUT_MODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SET_INPUT_MODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_OUTPUT_STATE"><!-- --></A><H3>
+GET_OUTPUT_STATE</H3>
+<PRE>
+static final byte <B>GET_OUTPUT_STATE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_OUTPUT_STATE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_INPUT_VALUES"><!-- --></A><H3>
+GET_INPUT_VALUES</H3>
+<PRE>
+static final byte <B>GET_INPUT_VALUES</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_INPUT_VALUES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RESET_SCALED_INPUT_VALUE"><!-- --></A><H3>
+RESET_SCALED_INPUT_VALUE</H3>
+<PRE>
+static final byte <B>RESET_SCALED_INPUT_VALUE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.RESET_SCALED_INPUT_VALUE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MESSAGE_WRITE"><!-- --></A><H3>
+MESSAGE_WRITE</H3>
+<PRE>
+static final byte <B>MESSAGE_WRITE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MESSAGE_WRITE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RESET_MOTOR_POSITION"><!-- --></A><H3>
+RESET_MOTOR_POSITION</H3>
+<PRE>
+static final byte <B>RESET_MOTOR_POSITION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.RESET_MOTOR_POSITION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_BATTERY_LEVEL"><!-- --></A><H3>
+GET_BATTERY_LEVEL</H3>
+<PRE>
+static final byte <B>GET_BATTERY_LEVEL</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_BATTERY_LEVEL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="STOP_SOUND_PLAYBACK"><!-- --></A><H3>
+STOP_SOUND_PLAYBACK</H3>
+<PRE>
+static final byte <B>STOP_SOUND_PLAYBACK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.STOP_SOUND_PLAYBACK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="KEEP_ALIVE"><!-- --></A><H3>
+KEEP_ALIVE</H3>
+<PRE>
+static final byte <B>KEEP_ALIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.KEEP_ALIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LS_GET_STATUS"><!-- --></A><H3>
+LS_GET_STATUS</H3>
+<PRE>
+static final byte <B>LS_GET_STATUS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LS_GET_STATUS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LS_WRITE"><!-- --></A><H3>
+LS_WRITE</H3>
+<PRE>
+static final byte <B>LS_WRITE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LS_WRITE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LS_READ"><!-- --></A><H3>
+LS_READ</H3>
+<PRE>
+static final byte <B>LS_READ</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LS_READ">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GET_CURRENT_PROGRAM_NAME"><!-- --></A><H3>
+GET_CURRENT_PROGRAM_NAME</H3>
+<PRE>
+static final byte <B>GET_CURRENT_PROGRAM_NAME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.GET_CURRENT_PROGRAM_NAME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MESSAGE_READ"><!-- --></A><H3>
+MESSAGE_READ</H3>
+<PRE>
+static final byte <B>MESSAGE_READ</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MESSAGE_READ">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTORON"><!-- --></A><H3>
+MOTORON</H3>
+<PRE>
+static final byte <B>MOTORON</B></PRE>
+<DL>
+<DD>Turn on the specified motor
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MOTORON">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BRAKE"><!-- --></A><H3>
+BRAKE</H3>
+<PRE>
+static final byte <B>BRAKE</B></PRE>
+<DL>
+<DD>Use run/brake instead of run/float in PWM
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.BRAKE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REGULATED"><!-- --></A><H3>
+REGULATED</H3>
+<PRE>
+static final byte <B>REGULATED</B></PRE>
+<DL>
+<DD>Turns on the regulation
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REGULATED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REGULATION_MODE_IDLE"><!-- --></A><H3>
+REGULATION_MODE_IDLE</H3>
+<PRE>
+static final byte <B>REGULATION_MODE_IDLE</B></PRE>
+<DL>
+<DD>No regulation will be enabled
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REGULATION_MODE_IDLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REGULATION_MODE_MOTOR_SPEED"><!-- --></A><H3>
+REGULATION_MODE_MOTOR_SPEED</H3>
+<PRE>
+static final byte <B>REGULATION_MODE_MOTOR_SPEED</B></PRE>
+<DL>
+<DD>Power control will be enabled on specified output
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REGULATION_MODE_MOTOR_SPEED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REGULATION_MODE_MOTOR_SYNC"><!-- --></A><H3>
+REGULATION_MODE_MOTOR_SYNC</H3>
+<PRE>
+static final byte <B>REGULATION_MODE_MOTOR_SYNC</B></PRE>
+<DL>
+<DD>Synchronization will be enabled (Needs enabled on two output)
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REGULATION_MODE_MOTOR_SYNC">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_RUN_STATE_IDLE"><!-- --></A><H3>
+MOTOR_RUN_STATE_IDLE</H3>
+<PRE>
+static final byte <B>MOTOR_RUN_STATE_IDLE</B></PRE>
+<DL>
+<DD>Output will be idle
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_IDLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_RUN_STATE_RAMPUP"><!-- --></A><H3>
+MOTOR_RUN_STATE_RAMPUP</H3>
+<PRE>
+static final byte <B>MOTOR_RUN_STATE_RAMPUP</B></PRE>
+<DL>
+<DD>Output will ramp-up
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RAMPUP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_RUN_STATE_RUNNING"><!-- --></A><H3>
+MOTOR_RUN_STATE_RUNNING</H3>
+<PRE>
+static final byte <B>MOTOR_RUN_STATE_RUNNING</B></PRE>
+<DL>
+<DD>Output will be running
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RUNNING">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MOTOR_RUN_STATE_RAMPDOWN"><!-- --></A><H3>
+MOTOR_RUN_STATE_RAMPDOWN</H3>
+<PRE>
+static final byte <B>MOTOR_RUN_STATE_RAMPDOWN</B></PRE>
+<DL>
+<DD>Output will ramp-down
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MOTOR_RUN_STATE_RAMPDOWN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_SENSOR"><!-- --></A><H3>
+NO_SENSOR</H3>
+<PRE>
+static final byte <B>NO_SENSOR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.NO_SENSOR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SWITCH"><!-- --></A><H3>
+SWITCH</H3>
+<PRE>
+static final byte <B>SWITCH</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SWITCH">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TEMPERATURE"><!-- --></A><H3>
+TEMPERATURE</H3>
+<PRE>
+static final byte <B>TEMPERATURE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.TEMPERATURE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REFLECTION"><!-- --></A><H3>
+REFLECTION</H3>
+<PRE>
+static final byte <B>REFLECTION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.REFLECTION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ANGLE"><!-- --></A><H3>
+ANGLE</H3>
+<PRE>
+static final byte <B>ANGLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.ANGLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LIGHT_ACTIVE"><!-- --></A><H3>
+LIGHT_ACTIVE</H3>
+<PRE>
+static final byte <B>LIGHT_ACTIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LIGHT_ACTIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LIGHT_INACTIVE"><!-- --></A><H3>
+LIGHT_INACTIVE</H3>
+<PRE>
+static final byte <B>LIGHT_INACTIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LIGHT_INACTIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SOUND_DB"><!-- --></A><H3>
+SOUND_DB</H3>
+<PRE>
+static final byte <B>SOUND_DB</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SOUND_DB">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SOUND_DBA"><!-- --></A><H3>
+SOUND_DBA</H3>
+<PRE>
+static final byte <B>SOUND_DBA</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SOUND_DBA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CUSTOM"><!-- --></A><H3>
+CUSTOM</H3>
+<PRE>
+static final byte <B>CUSTOM</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.CUSTOM">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LOWSPEED"><!-- --></A><H3>
+LOWSPEED</H3>
+<PRE>
+static final byte <B>LOWSPEED</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LOWSPEED">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="LOWSPEED_9V"><!-- --></A><H3>
+LOWSPEED_9V</H3>
+<PRE>
+static final byte <B>LOWSPEED_9V</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.LOWSPEED_9V">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_OF_SENSOR_TYPES"><!-- --></A><H3>
+NO_OF_SENSOR_TYPES</H3>
+<PRE>
+static final byte <B>NO_OF_SENSOR_TYPES</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.NO_OF_SENSOR_TYPES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="RAWMODE"><!-- --></A><H3>
+RAWMODE</H3>
+<PRE>
+static final byte <B>RAWMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.RAWMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="BOOLEANMODE"><!-- --></A><H3>
+BOOLEANMODE</H3>
+<PRE>
+static final byte <B>BOOLEANMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.BOOLEANMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="TRANSITIONCNTMODE"><!-- --></A><H3>
+TRANSITIONCNTMODE</H3>
+<PRE>
+static final byte <B>TRANSITIONCNTMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.TRANSITIONCNTMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PERIODCOUNTERMODE"><!-- --></A><H3>
+PERIODCOUNTERMODE</H3>
+<PRE>
+static final byte <B>PERIODCOUNTERMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.PERIODCOUNTERMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="PCTFULLSCALEMODE"><!-- --></A><H3>
+PCTFULLSCALEMODE</H3>
+<PRE>
+static final byte <B>PCTFULLSCALEMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.PCTFULLSCALEMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CELSIUSMODE"><!-- --></A><H3>
+CELSIUSMODE</H3>
+<PRE>
+static final byte <B>CELSIUSMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.CELSIUSMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="FAHRENHEITMODE"><!-- --></A><H3>
+FAHRENHEITMODE</H3>
+<PRE>
+static final byte <B>FAHRENHEITMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.FAHRENHEITMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ANGLESTEPSMODE"><!-- --></A><H3>
+ANGLESTEPSMODE</H3>
+<PRE>
+static final byte <B>ANGLESTEPSMODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.ANGLESTEPSMODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="SLOPEMASK"><!-- --></A><H3>
+SLOPEMASK</H3>
+<PRE>
+static final byte <B>SLOPEMASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.SLOPEMASK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="MODEMASK"><!-- --></A><H3>
+MODEMASK</H3>
+<PRE>
+static final byte <B>MODEMASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#lejos.nxt.comm.NXTProtocol.MODEMASK">Constant Field Values</A></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTProtocol.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="NXTProtocol.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 NXTServerSocket (leJOS NXT API documentation)
 </TITLE>
 
-<META NAME="keywords" CONTENT="NXTServerSocket class">
+<META NAME="keywords" CONTENT="lejos.nxt.comm.NXTServerSocket class">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -34,13 +34,13 @@ function windowTitle()
 <A NAME="navbar_top_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -51,20 +51,20 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?NXTServerSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTServerSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="NXTServerSocket.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
@@ -83,17 +83,25 @@ DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&n
 <HR>
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
+<FONT SIZE="-1">
+lejos.nxt.comm</FONT>
+<BR>
 Class NXTServerSocket</H2>
 <PRE>
-<A HREF="java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
-  <IMG SRC="./resources/inherit.gif" ALT="extended by "><B>NXTServerSocket</B>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.comm.NXTServerSocket</B>
 </PRE>
 <HR>
 <DL>
-<DT><PRE>public class <B>NXTServerSocket</B><DT>extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A></DL>
+<DT><PRE>public class <B>NXTServerSocket</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
 </PRE>
 
 <P>
+Communicates with a ServerProxy on the PC to provide a
+ ServerSocket interface applications on the NXT.
+<P>
+
+<P>
 <HR>
 
 <P>
@@ -107,15 +115,15 @@ Class NXTServerSocket</H2>
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.BTConnection)">NXTServerSocket</A></B>(int&nbsp;port,
-                <A HREF="lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>&nbsp;btc)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.BTConnection)">NXTServerSocket</A></B>(int&nbsp;port,
+                <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>&nbsp;btc)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.USBConnection)">NXTServerSocket</A></B>(int&nbsp;port,
-                <A HREF="lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>&nbsp;usbc)</CODE>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTServerSocket.html#NXTServerSocket(int, lejos.nxt.comm.USBConnection)">NXTServerSocket</A></B>(int&nbsp;port,
+                <A HREF="../../../lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>&nbsp;usbc)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
@@ -132,8 +140,8 @@ Class NXTServerSocket</H2>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>&nbsp;<A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="NXTServerSocket.html#accept()">accept</A></B>()</CODE>
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/comm/NXTServerSocket.html#accept()">accept</A></B>()</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waits untill there is a socket connection available.</TD>
@@ -142,10 +150,10 @@ Class NXTServerSocket</H2>
 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><A HREF="java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="java/lang/Object.html#getClass()">getClass</A>, <A HREF="java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="java/lang/Object.html#notify()">notify</A>, <A HREF="java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="java/lang/Object.html#toString()">toString</A>, <A HREF="java/lang/Object.html#wait()">wait</A>, <A HREF="java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
 </TR>
 </TABLE>
 &nbsp;
@@ -165,15 +173,15 @@ Class NXTServerSocket</H2>
 NXTServerSocket</H3>
 <PRE>
 public <B>NXTServerSocket</B>(int&nbsp;port,
-                       <A HREF="lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>&nbsp;btc)
-                throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+                       <A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A>&nbsp;btc)
+                throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
 <DD>Constructor. Creates a new Server Socket over an open bluetooth connection
 <P>
 <DL>
 <DT><B>Parameters:</B><DD><CODE>port</CODE> - The port to listen on<DD><CODE>btc</CODE> - The bluetooth connection to open
 <DT><B>Throws:</B>
-<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DL>
 <HR>
 
@@ -181,15 +189,15 @@ public <B>NXTServerSocket</B>(int&nbsp;port,
 NXTServerSocket</H3>
 <PRE>
 public <B>NXTServerSocket</B>(int&nbsp;port,
-                       <A HREF="lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>&nbsp;usbc)
-                throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+                       <A HREF="../../../lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A>&nbsp;usbc)
+                throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
 <DD>Constructor. Creates a new Server Socket over an open usb connection
 <P>
 <DL>
 <DT><B>Parameters:</B><DD><CODE>port</CODE> - The port to listen on<DD><CODE>usbc</CODE> - The usb connection to open
 <DT><B>Throws:</B>
-<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DL>
 
 <!-- ============ METHOD DETAIL ========== -->
@@ -205,8 +213,8 @@ public <B>NXTServerSocket</B>(int&nbsp;port,
 <A NAME="accept()"><!-- --></A><H3>
 accept</H3>
 <PRE>
-public <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A> <B>accept</B>()
-                 throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+public <A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A> <B>accept</B>()
+                 throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
 <DL>
 <DD>Waits untill there is a socket connection available. When this becomes true
  a new NXTSocket is returned
@@ -215,7 +223,7 @@ public <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">N
 
 <DT><B>Returns:</B><DD>NXTSocket
 <DT><B>Throws:</B>
-<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
 </DD>
 </DL>
 <!-- ========= END OF CLASS DATA ========= -->
@@ -231,13 +239,13 @@ public <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">N
 <A NAME="navbar_bottom_firstrow"><!-- --></A>
 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
   <TR ALIGN="center" VALIGN="top">
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
-  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
   </TR>
 </TABLE>
 </TD>
@@ -248,20 +256,20 @@ public <A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">N
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;PREV CLASS&nbsp;
-&nbsp;<A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="index.html?NXTServerSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../../index.html?lejos/nxt/comm/NXTServerSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="NXTServerSocket.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
   if(window==top) {
-    document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
   }
   //-->
 </SCRIPT>
 <NOSCRIPT>
-  <A HREF="allclasses-noframe.html"><B>All Classes</B></A>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
 </NOSCRIPT>
 
 
index 65e4194..4392df0 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 NXTSocket (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../../lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/NXTSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -378,7 +378,7 @@ public <A HREF="../../../java/io/InputStream.html" title="class in java.io">Inpu
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../../lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/NXTSocket.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 4a61b9c..78a2bc4 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 USB (leJOS NXT API documentation)
 </TITLE>
@@ -97,6 +97,14 @@ Class USB</H2>
 </PRE>
 
 <P>
+Low-level USB access.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
 <HR>
 
 <P>
index d563b0d..a94d465 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 USBConnection (leJOS NXT API documentation)
 </TITLE>
index e9ab693..b97ee76 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 USBInputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,14 @@ Class USBInputStream</H2>
 </PRE>
 
 <P>
+Implements an InputStream over USB.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
 <HR>
 
 <P>
index b3bb43a..31acbc9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 USBOutputStream (leJOS NXT API documentation)
 </TITLE>
@@ -98,6 +98,14 @@ Class USBOutputStream</H2>
 </PRE>
 
 <P>
+Implements an OutputStream over USB.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
 <HR>
 
 <P>
index e0dd4bb..e5b117d 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt.comm (leJOS NXT API documentation)
 </TITLE>
@@ -20,6 +20,17 @@ lejos.nxt.comm (leJOS NXT API documentation)
 <TABLE BORDER="0" WIDTH="100%" SUMMARY="">
 <TR>
 <TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="NXTProtocol.html" title="interface in lejos.nxt.comm" target="classFrame"><I>NXTProtocol</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
 Classes</FONT>&nbsp;
 <FONT CLASS="FrameItemFont">
 <BR>
@@ -33,8 +44,24 @@ Classes</FONT>&nbsp;
 <BR>
 <A HREF="BTRemoteDevice.html" title="class in lejos.nxt.comm" target="classFrame">BTRemoteDevice</A>
 <BR>
+<A HREF="Debug.html" title="class in lejos.nxt.comm" target="classFrame">Debug</A>
+<BR>
+<A HREF="DeviceInfo.html" title="class in lejos.nxt.comm" target="classFrame">DeviceInfo</A>
+<BR>
+<A HREF="FirmwareInfo.html" title="class in lejos.nxt.comm" target="classFrame">FirmwareInfo</A>
+<BR>
+<A HREF="InputValues.html" title="class in lejos.nxt.comm" target="classFrame">InputValues</A>
+<BR>
 <A HREF="LCP.html" title="class in lejos.nxt.comm" target="classFrame">LCP</A>
 <BR>
+<A HREF="LCPBTResponder.html" title="class in lejos.nxt.comm" target="classFrame">LCPBTResponder</A>
+<BR>
+<A HREF="NXTComm.html" title="class in lejos.nxt.comm" target="classFrame">NXTComm</A>
+<BR>
+<A HREF="NXTCommand.html" title="class in lejos.nxt.comm" target="classFrame">NXTCommand</A>
+<BR>
+<A HREF="NXTServerSocket.html" title="class in lejos.nxt.comm" target="classFrame">NXTServerSocket</A>
+<BR>
 <A HREF="NXTSocket.html" title="class in lejos.nxt.comm" target="classFrame">NXTSocket</A>
 <BR>
 <A HREF="USB.html" title="class in lejos.nxt.comm" target="classFrame">USB</A>
index 6555734..94f134f 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt.comm (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/subsumption/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/remote/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -88,15 +88,30 @@ NXT communication classes
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></B></TD>
+<TD>LCP constants.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
 <B>Class Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm">Bluetooth</A></B></TD>
-<TD>Support for Bluetooth communications.</TD>
+<TD>Provides Bluetooth comminications.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm">BTConnection</A></B></TD>
-<TD>Represents a Bluetooth Stream Connection.</TD>
+<TD>Provides a Bluetooth connection
+ Supports both packetized and stream based commincation.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm">BTInputStream</A></B></TD>
@@ -104,11 +119,28 @@ NXT communication classes
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm">BTOutputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Implements an OutputStream over Bluetooth.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm">BTRemoteDevice</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Represents a remote Bluetooth device.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm">Debug</A></B></TD>
+<TD>This class provides a simple way of sending debug output for viewing on a 
+ PC.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm">DeviceInfo</A></B></TD>
+<TD>Represents a remote NXT accessed via LCP.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm">FirmwareInfo</A></B></TD>
+<TD>Firmware information for a remote NXT accessed via LCP.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm">InputValues</A></B></TD>
+<TD>Sensor input values for a remote NXT accessed via LCP.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm">LCP</A></B></TD>
@@ -116,12 +148,29 @@ NXT communication classes
  with some extensions for lejos NXJ.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm">LCPBTResponder</A></B></TD>
+<TD>Support for LCP commands over Bluetooth in user programs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm">NXTComm</A></B></TD>
+<TD>Initiates communication to a remote NXT.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A></B></TD>
+<TD>Remote access to a NXT via Bluetooth using LCP.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm">NXTServerSocket</A></B></TD>
+<TD>Communicates with a ServerProxy on the PC to provide a
+ ServerSocket interface applications on the NXT.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm">NXTSocket</A></B></TD>
 <TD>NXTSocket.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm">USB</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Low-level USB access.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm">USBConnection</A></B></TD>
@@ -129,11 +178,11 @@ NXT communication classes
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm">USBInputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Implements an InputStream over USB.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm">USBOutputStream</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Implements an OutputStream over USB.</TD>
 </TR>
 </TABLE>
 &nbsp;
@@ -180,7 +229,7 @@ NXT communication classes
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/subsumption/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/remote/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
index a14f937..248a57b 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt.comm Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/subsumption/package-tree.html"><B>NEXT</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/remote/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -88,13 +88,21 @@ Class Hierarchy
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm"><B>Bluetooth</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm"><B>BTConnection</B></A> (implements javax.microedition.io.<A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A>)
-<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>BTRemoteDevice</B></A><LI TYPE="circle">java.io.<A HREF="../../../java/io/InputStream.html" title="class in java.io"><B>InputStream</B></A><UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>BTRemoteDevice</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>Debug</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>DeviceInfo</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>FirmwareInfo</B></A><LI TYPE="circle">java.io.<A HREF="../../../java/io/InputStream.html" title="class in java.io"><B>InputStream</B></A><UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm"><B>BTInputStream</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm"><B>USBInputStream</B></A></UL>
-<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>LCP</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NXTSocket</B></A><LI TYPE="circle">java.io.<A HREF="../../../java/io/OutputStream.html" title="class in java.io"><B>OutputStream</B></A><UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>InputValues</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>LCP</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>NXTComm</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>NXTCommand</B></A> (implements lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>NXTServerSocket</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NXTSocket</B></A><LI TYPE="circle">java.io.<A HREF="../../../java/io/OutputStream.html" title="class in java.io"><B>OutputStream</B></A><UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>BTOutputStream</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm"><B>USBOutputStream</B></A></UL>
+<LI TYPE="circle">java.lang.<A HREF="../../../java/lang/Thread.html" title="class in java.lang"><B>Thread</B></A><UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>LCPBTResponder</B></A></UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/USB.html" title="class in lejos.nxt.comm"><B>USB</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/USBConnection.html" title="class in lejos.nxt.comm"><B>USBConnection</B></A> (implements javax.microedition.io.<A HREF="../../../javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A>)
 </UL>
 </UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>NXTProtocol</B></A></UL>
 <HR>
 
 
@@ -125,7 +133,7 @@ Class Hierarchy
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../../lejos/nxt/package-tree.html"><B>PREV</B></A>&nbsp;
-&nbsp;<A HREF="../../../lejos/subsumption/package-tree.html"><B>NEXT</B></A></FONT></TD>
+&nbsp;<A HREF="../../../lejos/nxt/remote/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../../index.html?lejos/nxt/comm/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
index 35da8df..536e055 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt (leJOS NXT API documentation)
 </TITLE>
@@ -23,13 +23,27 @@ lejos.nxt (leJOS NXT API documentation)
 Interfaces</FONT>&nbsp;
 <FONT CLASS="FrameItemFont">
 <BR>
+<A HREF="ADSensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>ADSensorPort</I></A>
+<BR>
+<A HREF="BasicMotorPort.html" title="interface in lejos.nxt" target="classFrame"><I>BasicMotorPort</I></A>
+<BR>
+<A HREF="BasicSensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>BasicSensorPort</I></A>
+<BR>
 <A HREF="ButtonListener.html" title="interface in lejos.nxt" target="classFrame"><I>ButtonListener</I></A>
 <BR>
+<A HREF="I2CPort.html" title="interface in lejos.nxt" target="classFrame"><I>I2CPort</I></A>
+<BR>
+<A HREF="LegacySensorPort.html" title="interface in lejos.nxt" target="classFrame"><I>LegacySensorPort</I></A>
+<BR>
 <A HREF="ListenerCaller.html" title="interface in lejos.nxt" target="classFrame"><I>ListenerCaller</I></A>
 <BR>
 <A HREF="SensorConstants.html" title="interface in lejos.nxt" target="classFrame"><I>SensorConstants</I></A>
 <BR>
-<A HREF="SensorPortListener.html" title="interface in lejos.nxt" target="classFrame"><I>SensorPortListener</I></A></FONT></TD>
+<A HREF="SensorPortListener.html" title="interface in lejos.nxt" target="classFrame"><I>SensorPortListener</I></A>
+<BR>
+<A HREF="Tachometer.html" title="interface in lejos.nxt" target="classFrame"><I>Tachometer</I></A>
+<BR>
+<A HREF="TachoMotorPort.html" title="interface in lejos.nxt" target="classFrame"><I>TachoMotorPort</I></A></FONT></TD>
 </TR>
 </TABLE>
 
@@ -40,6 +54,8 @@ Interfaces</FONT>&nbsp;
 Classes</FONT>&nbsp;
 <FONT CLASS="FrameItemFont">
 <BR>
+<A HREF="BasicMotor.html" title="class in lejos.nxt" target="classFrame">BasicMotor</A>
+<BR>
 <A HREF="Battery.html" title="class in lejos.nxt" target="classFrame">Battery</A>
 <BR>
 <A HREF="Button.html" title="class in lejos.nxt" target="classFrame">Button</A>
@@ -48,12 +64,14 @@ Classes</FONT>&nbsp;
 <BR>
 <A HREF="CompassSensor.html" title="class in lejos.nxt" target="classFrame">CompassSensor</A>
 <BR>
-<A HREF="Datalogger.html" title="class in lejos.nxt" target="classFrame">Datalogger</A>
-<BR>
 <A HREF="Flash.html" title="class in lejos.nxt" target="classFrame">Flash</A>
 <BR>
+<A HREF="GyroSensor.html" title="class in lejos.nxt" target="classFrame">GyroSensor</A>
+<BR>
 <A HREF="I2CSensor.html" title="class in lejos.nxt" target="classFrame">I2CSensor</A>
 <BR>
+<A HREF="IRSeeker.html" title="class in lejos.nxt" target="classFrame">IRSeeker</A>
+<BR>
 <A HREF="LCD.html" title="class in lejos.nxt" target="classFrame">LCD</A>
 <BR>
 <A HREF="LightSensor.html" title="class in lejos.nxt" target="classFrame">LightSensor</A>
@@ -62,12 +80,22 @@ Classes</FONT>&nbsp;
 <BR>
 <A HREF="MotorPort.html" title="class in lejos.nxt" target="classFrame">MotorPort</A>
 <BR>
+<A HREF="NXTCam.html" title="class in lejos.nxt" target="classFrame">NXTCam</A>
+<BR>
 <A HREF="Poll.html" title="class in lejos.nxt" target="classFrame">Poll</A>
 <BR>
 <A HREF="RCXLightSensor.html" title="class in lejos.nxt" target="classFrame">RCXLightSensor</A>
 <BR>
+<A HREF="RCXLink.html" title="class in lejos.nxt" target="classFrame">RCXLink</A>
+<BR>
 <A HREF="RCXMotor.html" title="class in lejos.nxt" target="classFrame">RCXMotor</A>
 <BR>
+<A HREF="RCXMotorMultiplexer.html" title="class in lejos.nxt" target="classFrame">RCXMotorMultiplexer</A>
+<BR>
+<A HREF="RCXPlexedMotorPort.html" title="class in lejos.nxt" target="classFrame">RCXPlexedMotorPort</A>
+<BR>
+<A HREF="RCXRemoteMotorPort.html" title="class in lejos.nxt" target="classFrame">RCXRemoteMotorPort</A>
+<BR>
 <A HREF="SensorPort.html" title="class in lejos.nxt" target="classFrame">SensorPort</A>
 <BR>
 <A HREF="Sound.html" title="class in lejos.nxt" target="classFrame">Sound</A>
index 31f1774..ff766a6 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt (leJOS NXT API documentation)
 </TITLE>
@@ -91,10 +91,32 @@ Access to NXT sensors, motors, etc.
 <B>Interface Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></B></TD>
+<TD>An abstraction for a port that supports Analog/Digital sensors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TD>
+<TD>An abstraction for a motor port that supports RCX
+ type motors, but not NXT motors with tachometers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></B></TD>
+<TD>An abstraction for a sensor port that supports 
+ setting and retrieving types and modes of sensors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/ButtonListener.html" title="interface in lejos.nxt">ButtonListener</A></B></TD>
 <TD>Abstraction for receiver of button events.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A></B></TD>
+<TD>Abstraction for a port that supports I2C sensors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A></B></TD>
+<TD>Abstraction for a port that supports legacy RCX sensors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A></B></TD>
 <TD>Interface for calling calling lejos listeners.</TD>
 </TR>
@@ -108,6 +130,14 @@ Access to NXT sensors, motors, etc.
  Analogue/Digital sensor (such as a Touch, Light or Sound sensor)
  on a SensorPort.</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></B></TD>
+<TD>Abstraction for the tachometer built into NXT motors.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></B></TD>
+<TD>Abstraction for a motor port that supports NXT motors with tachometers.</TD>
+</TR>
 </TABLE>
 &nbsp;
 
@@ -119,6 +149,11 @@ Access to NXT sensors, motors, etc.
 <B>Class Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt">BasicMotor</A></B></TD>
+<TD>An abstraction for a motor without a tachometer,
+ such as an RCX motor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Battery.html" title="class in lejos.nxt">Battery</A></B></TD>
 <TD>Provides access to Battery.</TD>
 </TR>
@@ -136,21 +171,24 @@ Access to NXT sensors, motors, etc.
 <TD>Abstraction for a HiTechnic or Mindsensors compass.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt">Datalogger</A></B></TD>
-<TD>Datalogger class; stores float values then  then transmits  via bluetooth or usb<br>
- works with DataViewer   in pctools.</TD>
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A></B></TD>
+<TD>Read and write access to flash memory in pages.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt">Flash</A></B></TD>
-<TD>&nbsp;</TD>
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt">GyroSensor</A></B></TD>
+<TD>Support the HiTechnic Gyro sensor - untested.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt">I2CSensor</A></B></TD>
 <TD>Abstract class that implements common methods for all I2C sensors.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt">IRSeeker</A></B></TD>
+<TD>HiTechnic IRSeeker sensor - untested.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt">LCD</A></B></TD>
-<TD>&nbsp;</TD>
+<TD>Text and graphics output to the LCD display.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt">LightSensor</A></B></TD>
@@ -165,6 +203,10 @@ Access to NXT sensors, motors, etc.
 <TD>Abstraction for a NXT output port.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt">NXTCam</A></B></TD>
+<TD>Mindsensors NXTCam.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt">Poll</A></B></TD>
 <TD>Provides blocking access to events from the NXT.</TD>
 </TR>
@@ -173,10 +215,26 @@ Access to NXT sensors, motors, etc.
 <TD>Abstraction for an RCX light sensor.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A></B></TD>
+<TD>Supports Mindsensors NRLink RCX IR adapter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt">RCXMotor</A></B></TD>
 <TD>Abstraction for an RCX motor.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt">RCXMotorMultiplexer</A></B></TD>
+<TD>Supports the mindsensors RCX Motor Multiplexer</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt">RCXPlexedMotorPort</A></B></TD>
+<TD>Supports a motor connected to the Mindsensors RCX Motor Multiplexer</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt">RCXRemoteMotorPort</A></B></TD>
+<TD>Supports a motor connected to a remote RCX via a mindsensord NRLink adapter</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A></B></TD>
 <TD>Abstraction for a NXT input port.</TD>
 </TR>
@@ -194,7 +252,7 @@ Access to NXT sensors, motors, etc.
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt">TiltSensor</A></B></TD>
-<TD>Abstraction for a Mindsensors (and possibly HiTechnic) 
+<TD>Abstraction for a Mindsensors
  acceleration (tilt) sensor.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
index 82d6aa3..72538c6 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.nxt Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -87,14 +87,20 @@ Class Hierarchy
 </H2>
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>BasicMotor</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>RCXMotor</B></A></UL>
 <LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Battery.html" title="class in lejos.nxt"><B>Battery</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Button.html" title="class in lejos.nxt"><B>Button</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>Datalogger</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>GyroSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
 <UL>
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>ColorSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>CompassSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>ColorSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>CompassSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>IRSeeker</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>NXTCam</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>RCXLink</B></A> (implements lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>RCXMotorMultiplexer</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A></UL>
 <LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/LCD.html" title="class in lejos.nxt"><B>LCD</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>LightSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A> (implements lejos.util.<A HREF="../../lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>MotorPort</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>Poll</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>RCXLightSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>RCXMotor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>MotorPort</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Poll.html" title="class in lejos.nxt"><B>Poll</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>RCXLightSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>RCXPlexedMotorPort</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>RCXRemoteMotorPort</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, lejos.nxt.<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>, lejos.nxt.<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
 <LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Sound.html" title="class in lejos.nxt"><B>Sound</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>SoundSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
 <LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>TextMenu</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TouchSensor.html" title="class in lejos.nxt"><B>TouchSensor</B></A> (implements lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
 </UL>
@@ -103,7 +109,19 @@ Class Hierarchy
 Interface Hierarchy
 </H2>
 <UL>
-<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><B>ButtonListener</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>ListenerCaller</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>BasicMotorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>TachoMotorPort</B></A> (also extends lejos.nxt.<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>)
+</UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><B>ButtonListener</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>ListenerCaller</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>BasicSensorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>ADSensorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>I2CPort</B></A></UL>
+</UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A><LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>Tachometer</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>TachoMotorPort</B></A> (also extends lejos.nxt.<A HREF="../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+</UL>
+</UL>
 <HR>
 
 
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteBattery.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteBattery.html
new file mode 100644 (file)
index 0000000..ab86609
--- /dev/null
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RemoteBattery (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote.RemoteBattery class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RemoteBattery (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteBattery.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteBattery.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.remote</FONT>
+<BR>
+Class RemoteBattery</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.remote.RemoteBattery</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RemoteBattery</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></DL>
+</PRE>
+
+<P>
+Battery readings from a remote NXT.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.comm.NXTProtocol"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#READ">READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteBattery.html#RemoteBattery(lejos.nxt.comm.NXTCommand)">RemoteBattery</A></B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;float</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteBattery.html#getVoltage()">getVoltage</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The NXT uses 6 batteries of 1.5 V each.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteBattery.html#getVoltageMilliVolt()">getVoltageMilliVolt</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The NXT uses 6 batteries of 1500 mV each.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RemoteBattery(lejos.nxt.comm.NXTCommand)"><!-- --></A><H3>
+RemoteBattery</H3>
+<PRE>
+public <B>RemoteBattery</B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getVoltageMilliVolt()"><!-- --></A><H3>
+getVoltageMilliVolt</H3>
+<PRE>
+public int <B>getVoltageMilliVolt</B>()</PRE>
+<DL>
+<DD>The NXT uses 6 batteries of 1500 mV each.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Battery voltage in mV. ~9000 = full.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getVoltage()"><!-- --></A><H3>
+getVoltage</H3>
+<PRE>
+public float <B>getVoltage</B>()</PRE>
+<DL>
+<DD>The NXT uses 6 batteries of 1.5 V each.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Battery voltage in Volt. ~9V = full.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteBattery.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteBattery.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteMotorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteMotorPort.html
new file mode 100644 (file)
index 0000000..6088dc9
--- /dev/null
@@ -0,0 +1,358 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RemoteMotorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote.RemoteMotorPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RemoteMotorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.remote</FONT>
+<BR>
+Class RemoteMotorPort</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.remote.RemoteMotorPort</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, <A HREF="../../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>, <A HREF="../../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RemoteMotorPort</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, <A HREF="../../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A></DL>
+</PRE>
+
+<P>
+Supports a motor connected to a remote NXT
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.comm.NXTProtocol"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#READ">READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.BasicMotorPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/BasicMotorPort.html#PWM_BRAKE">PWM_BRAKE</A>, <A HREF="../../../lejos/nxt/BasicMotorPort.html#PWM_FLOAT">PWM_FLOAT</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html#RemoteMotorPort(lejos.nxt.comm.NXTCommand, int)">RemoteMotorPort</A></B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand,
+                int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html#controlMotor(int, int)">controlMotor</A></B>(int&nbsp;power,
+             int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html#getTachoCount()">getTachoCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html#resetTachoCount()">resetTachoCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html#setPWMMode(int)">setPWMMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RemoteMotorPort(lejos.nxt.comm.NXTCommand, int)"><!-- --></A><H3>
+RemoteMotorPort</H3>
+<PRE>
+public <B>RemoteMotorPort</B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand,
+                       int&nbsp;id)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="controlMotor(int, int)"><!-- --></A><H3>
+controlMotor</H3>
+<PRE>
+public void <B>controlMotor</B>(int&nbsp;power,
+                         int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicMotorPort.html#controlMotor(int, int)">controlMotor</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTachoCount()"><!-- --></A><H3>
+getTachoCount</H3>
+<PRE>
+public int <B>getTachoCount</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/Tachometer.html#getTachoCount()">getTachoCount</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetTachoCount()"><!-- --></A><H3>
+resetTachoCount</H3>
+<PRE>
+public void <B>resetTachoCount</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/Tachometer.html#resetTachoCount()">resetTachoCount</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPWMMode(int)"><!-- --></A><H3>
+setPWMMode</H3>
+<PRE>
+public void <B>setPWMMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicMotorPort.html#setPWMMode(int)">setPWMMode</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteMotorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteMotorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteNXT.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteNXT.html
new file mode 100644 (file)
index 0000000..277b651
--- /dev/null
@@ -0,0 +1,531 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RemoteNXT (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote.RemoteNXT class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RemoteNXT (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteNXT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteNXT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.remote</FONT>
+<BR>
+Class RemoteNXT</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.remote.RemoteNXT</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>RemoteNXT</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Provides an API similar to the leJOS API for accessing
+ motors, sensors etc. on a remote NXT accessed over
+ Bluetooth using LCP.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#A">A</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#B">B</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#Battery">Battery</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#C">C</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#S1">S1</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#S2">S2</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#S3">S3</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#S4">S4</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#RemoteNXT(java.lang.String)">RemoteNXT</A></B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#deleteFlashMemory()">deleteFlashMemory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes all user programs and data in FLASH memory</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#getBluetoothAddress()">getBluetoothAddress</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the bluetooth address of the remorte device</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#getBrickName()">getBrickName</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the  name of the remote brick</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#getFirmwareVersion()">getFirmwareVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return Lego firmware vserion</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#getFlashMemory()">getFlashMemory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html#getProtocolVersion()">getProtocolVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return LCP protocol version</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="A"><!-- --></A><H3>
+A</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A> <B>A</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="B"><!-- --></A><H3>
+B</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A> <B>B</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="C"><!-- --></A><H3>
+C</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A> <B>C</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="Battery"><!-- --></A><H3>
+Battery</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A> <B>Battery</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="S1"><!-- --></A><H3>
+S1</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A> <B>S1</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="S2"><!-- --></A><H3>
+S2</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A> <B>S2</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="S3"><!-- --></A><H3>
+S3</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A> <B>S3</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="S4"><!-- --></A><H3>
+S4</H3>
+<PRE>
+public <A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A> <B>S4</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RemoteNXT(java.lang.String)"><!-- --></A><H3>
+RemoteNXT</H3>
+<PRE>
+public <B>RemoteNXT</B>(<A HREF="../../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;name)
+          throws <A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getBrickName()"><!-- --></A><H3>
+getBrickName</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>getBrickName</B>()</PRE>
+<DL>
+<DD>Get the  name of the remote brick
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>name of remote brick</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getBluetoothAddress()"><!-- --></A><H3>
+getBluetoothAddress</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>getBluetoothAddress</B>()</PRE>
+<DL>
+<DD>Get the bluetooth address of the remorte device
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>address with hex pairs separated by colons</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFlashMemory()"><!-- --></A><H3>
+getFlashMemory</H3>
+<PRE>
+public int <B>getFlashMemory</B>()</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Free memory remaining in FLASH</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFirmwareVersion()"><!-- --></A><H3>
+getFirmwareVersion</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>getFirmwareVersion</B>()</PRE>
+<DL>
+<DD>Return Lego firmware vserion
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><major>.<minor></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getProtocolVersion()"><!-- --></A><H3>
+getProtocolVersion</H3>
+<PRE>
+public <A HREF="../../../java/lang/String.html" title="class in java.lang">String</A> <B>getProtocolVersion</B>()</PRE>
+<DL>
+<DD>Return LCP protocol version
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD><major>.<minor></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="deleteFlashMemory()"><!-- --></A><H3>
+deleteFlashMemory</H3>
+<PRE>
+public byte <B>deleteFlashMemory</B>()</PRE>
+<DL>
+<DD>Deletes all user programs and data in FLASH memory
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>zero for success</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteNXT.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteNXT.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteSensorPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/RemoteSensorPort.html
new file mode 100644 (file)
index 0000000..1433a82
--- /dev/null
@@ -0,0 +1,472 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RemoteSensorPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote.RemoteSensorPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RemoteSensorPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.nxt.remote</FONT>
+<BR>
+Class RemoteSensorPort</H2>
+<PRE>
+<A HREF="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.remote.RemoteSensorPort</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, <A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, <A HREF="../../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>RemoteSensorPort</B><DT>extends <A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A><DT>implements <A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, <A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></DL>
+</PRE>
+
+<P>
+Emulates a Sensor Port using LCP
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.comm.NXTProtocol"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLE">ANGLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#ANGLESTEPSMODE">ANGLESTEPSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOLEANMODE">BOOLEANMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BOOT">BOOT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#BRAKE">BRAKE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CELSIUSMODE">CELSIUSMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CLOSE">CLOSE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#CUSTOM">CUSTOM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE">DELETE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DELETE_USER_FLASH">DELETE_USER_FLASH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_NOREPLY">DIRECT_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#DIRECT_COMMAND_REPLY">DIRECT_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FAHRENHEITMODE">FAHRENHEITMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_FIRST">FIND_FIRST</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#FIND_NEXT">FIND_NEXT</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_BATTERY_LEVEL">GET_BATTERY_LEVEL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_CURRENT_PROGRAM_NAME">GET_CURRENT_PROGRAM_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_DEVICE_INFO">GET_DEVICE_INFO</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_FIRMWARE_VERSION">GET_FIRMWARE_VERSION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_INPUT_VALUES">GET_INPUT_VALUES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#GET_OUTPUT_STATE">GET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#HIGH_SPEED_BUFFER">HIGH_SPEED_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#KEEP_ALIVE">KEEP_ALIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_ACTIVE">LIGHT_ACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LIGHT_INACTIVE">LIGHT_INACTIVE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED">LOWSPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LOWSPEED_9V">LOWSPEED_9V</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_GET_STATUS">LS_GET_STATUS</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_READ">LS_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#LS_WRITE">LS_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_READ">MESSAGE_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MESSAGE_WRITE">MESSAGE_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MODEMASK">MODEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_IDLE">MOTOR_RUN_STATE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPDOWN">MOTOR_RUN_STATE_RAMPDOWN</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RAMPUP">MOTOR_RUN_STATE_RAMPUP</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTOR_RUN_STATE_RUNNING">MOTOR_RUN_STATE_RUNNING</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#MOTORON">MOTORON</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_OF_SENSOR_TYPES">NO_OF_SENSOR_TYPES</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#NO_SENSOR">NO_SENSOR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_APPEND_DATA">OPEN_APPEND_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ">OPEN_READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_READ_LINEAR">OPEN_READ_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE">OPEN_WRITE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_DATA">OPEN_WRITE_DATA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#OPEN_WRITE_LINEAR">OPEN_WRITE_LINEAR</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PCTFULLSCALEMODE">PCTFULLSCALEMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PERIODCOUNTERMODE">PERIODCOUNTERMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_SOUND_FILE">PLAY_SOUND_FILE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#PLAY_TONE">PLAY_TONE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL">POLL</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_BUFFER">POLL_BUFFER</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#POLL_LENGTH">POLL_LENGTH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RAWMODE">RAWMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#READ">READ</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REFLECTION">REFLECTION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATED">REGULATED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_IDLE">REGULATION_MODE_IDLE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SPEED">REGULATION_MODE_MOTOR_SPEED</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REGULATION_MODE_MOTOR_SYNC">REGULATION_MODE_MOTOR_SYNC</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#REPLY_COMMAND">REPLY_COMMAND</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_MOTOR_POSITION">RESET_MOTOR_POSITION</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#RESET_SCALED_INPUT_VALUE">RESET_SCALED_INPUT_VALUE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_BRICK_NAME">SET_BRICK_NAME</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_INPUT_MODE">SET_INPUT_MODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SET_OUTPUT_STATE">SET_OUTPUT_STATE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SLOPEMASK">SLOPEMASK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DB">SOUND_DB</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SOUND_DBA">SOUND_DBA</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#START_PROGRAM">START_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_PROGRAM">STOP_PROGRAM</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#STOP_SOUND_PLAYBACK">STOP_SOUND_PLAYBACK</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SWITCH">SWITCH</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_NOREPLY">SYSTEM_COMMAND_NOREPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#SYSTEM_COMMAND_REPLY">SYSTEM_COMMAND_REPLY</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TEMPERATURE">TEMPERATURE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#TRANSITIONCNTMODE">TRANSITIONCNTMODE</A>, <A HREF="../../../lejos/nxt/comm/NXTProtocol.html#WRITE">WRITE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.nxt.SensorConstants"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from interface lejos.nxt.<A HREF="../../../lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../lejos/nxt/SensorConstants.html#MODE_ANGLESTEP">MODE_ANGLESTEP</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_BOOLEAN">MODE_BOOLEAN</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_CELSIUS">MODE_CELSIUS</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_FARENHEIT">MODE_FARENHEIT</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_PCTFULLSCALE">MODE_PCTFULLSCALE</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_PERIODCOUNTER">MODE_PERIODCOUNTER</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_RAW">MODE_RAW</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#MODE_TRANSITIONCNT">MODE_TRANSITIONCNT</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_ANGLE">TYPE_ANGLE</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_CUSTOM">TYPE_CUSTOM</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_ACTIVE">TYPE_LIGHT_ACTIVE</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_LIGHT_INACTIVE">TYPE_LIGHT_INACTIVE</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED">TYPE_LOWSPEED</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_LOWSPEED_9V">TYPE_LOWSPEED_9V</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_NO_SENSOR">TYPE_NO_SENSOR</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_REFLECTION">TYPE_REFLECTION</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DB">TYPE_SOUND_DB</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_SOUND_DBA">TYPE_SOUND_DBA</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_SWITCH">TYPE_SWITCH</A>, <A HREF="../../../lejos/nxt/SensorConstants.html#TYPE_TEMPERATURE">TYPE_TEMPERATURE</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#RemoteSensorPort(lejos.nxt.comm.NXTCommand, int)">RemoteSensorPort</A></B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand,
+                 int&nbsp;id)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#getId()">getId</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#getMode()">getMode</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#readBooleanValue()">readBooleanValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the boolean value of the sensor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#readRawValue()">readRawValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the raw value of the sensor.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#readValue()">readValue</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns value compatible with Lego firmware.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#setMode(int)">setMode</A></B>(int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#setType(int)">setType</A></B>(int&nbsp;type)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></B>(int&nbsp;type,
+               int&nbsp;mode)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RemoteSensorPort(lejos.nxt.comm.NXTCommand, int)"><!-- --></A><H3>
+RemoteSensorPort</H3>
+<PRE>
+public <B>RemoteSensorPort</B>(<A HREF="../../../lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm">NXTCommand</A>&nbsp;nxtCommand,
+                        int&nbsp;id)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getId()"><!-- --></A><H3>
+getId</H3>
+<PRE>
+public int <B>getId</B>()</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+public int <B>getType</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html#getType()">getType</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMode()"><!-- --></A><H3>
+getMode</H3>
+<PRE>
+public int <B>getMode</B>()</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html#getMode()">getMode</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTypeAndMode(int, int)"><!-- --></A><H3>
+setTypeAndMode</H3>
+<PRE>
+public void <B>setTypeAndMode</B>(int&nbsp;type,
+                           int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html#setTypeAndMode(int, int)">setTypeAndMode</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setType(int)"><!-- --></A><H3>
+setType</H3>
+<PRE>
+public void <B>setType</B>(int&nbsp;type)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html#setType(int)">setType</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMode(int)"><!-- --></A><H3>
+setMode</H3>
+<PRE>
+public void <B>setMode</B>(int&nbsp;mode)</PRE>
+<DL>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html#setMode(int)">setMode</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt">BasicSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readBooleanValue()"><!-- --></A><H3>
+readBooleanValue</H3>
+<PRE>
+public boolean <B>readBooleanValue</B>()</PRE>
+<DL>
+<DD>Reads the boolean value of the sensor.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/ADSensorPort.html#readBooleanValue()">readBooleanValue</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Boolean value of sensor.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readRawValue()"><!-- --></A><H3>
+readRawValue</H3>
+<PRE>
+public int <B>readRawValue</B>()</PRE>
+<DL>
+<DD>Reads the raw value of the sensor.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/ADSensorPort.html#readRawValue()">readRawValue</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Raw sensor value. Range is device dependent.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readValue()"><!-- --></A><H3>
+readValue</H3>
+<PRE>
+public int <B>readValue</B>()</PRE>
+<DL>
+<DD>Returns value compatible with Lego firmware.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../lejos/nxt/ADSensorPort.html#readValue()">readValue</A></CODE> in interface <CODE><A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/RemoteSensorPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RemoteSensorPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-frame.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-frame.html
new file mode 100644 (file)
index 0000000..502f354
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.nxt.remote (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../lejos/nxt/remote/package-summary.html" target="classFrame">lejos.nxt.remote</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="RemoteBattery.html" title="class in lejos.nxt.remote" target="classFrame">RemoteBattery</A>
+<BR>
+<A HREF="RemoteMotorPort.html" title="class in lejos.nxt.remote" target="classFrame">RemoteMotorPort</A>
+<BR>
+<A HREF="RemoteNXT.html" title="class in lejos.nxt.remote" target="classFrame">RemoteNXT</A>
+<BR>
+<A HREF="RemoteSensorPort.html" title="class in lejos.nxt.remote" target="classFrame">RemoteSensorPort</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-summary.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-summary.html
new file mode 100644 (file)
index 0000000..63e6b87
--- /dev/null
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.nxt.remote (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.nxt.remote package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="lejos.nxt.remote (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/rcxcomm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package lejos.nxt.remote
+</H2>
+Remote NXT access over Bluetooth
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote">RemoteBattery</A></B></TD>
+<TD>Battery readings from a remote NXT.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote">RemoteMotorPort</A></B></TD>
+<TD>Supports a motor connected to a remote NXT</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote">RemoteNXT</A></B></TD>
+<TD>Provides an API similar to the leJOS API for accessing
+ motors, sensors etc.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote">RemoteSensorPort</A></B></TD>
+<TD>Emulates a Sensor Port using LCP</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package lejos.nxt.remote Description
+</H2>
+
+<P>
+Remote NXT access over Bluetooth
+<P>
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/rcxcomm/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-tree.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/nxt/remote/package-tree.html
new file mode 100644 (file)
index 0000000..d81d365
--- /dev/null
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.nxt.remote Class Hierarchy (leJOS NXT API documentation)
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="lejos.nxt.remote Class Hierarchy (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/rcxcomm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package lejos.nxt.remote
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="../../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="../../../lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote"><B>RemoteBattery</B></A> (implements lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="../../../lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>RemoteMotorPort</B></A> (implements lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, lejos.nxt.<A HREF="../../../lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="../../../lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>RemoteNXT</B></A><LI TYPE="circle">lejos.nxt.remote.<A HREF="../../../lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote"><B>RemoteSensorPort</B></A> (implements lejos.nxt.<A HREF="../../../lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, lejos.nxt.comm.<A HREF="../../../lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+</UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../lejos/nxt/comm/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../lejos/rcxcomm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?lejos/nxt/remote/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLC.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLC.html
new file mode 100644 (file)
index 0000000..efd8c26
--- /dev/null
@@ -0,0 +1,438 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
+<TITLE>
+LLC (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.LLC class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LLC (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLC.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLC.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class LLC</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.LLC</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LLC</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Emulates RCX LLC class using the RCXLink class.
+<P>
+
+<P>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#getLink()">getLink</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the RCXLink object associated with LLC</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#init()">init</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize LLC an</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#init(lejos.nxt.SensorPort)">init</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize LLC and set port</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#isSendError()">isSendError</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the error status of the last send</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#isSending()">isSending</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicate whether the last send is still active</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#read()">read</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read a single byte, if available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#receive()">receive</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait a little while for a byte to become available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#sendBytes(byte[], int)">sendBytes</A></B>(byte[]&nbsp;buf,
+          int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a number of bytes and wait for completion of transmission</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#setPort(lejos.nxt.SensorPort)">setPort</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set sensor port</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#setRangeLong()">setRangeLong</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets long range transmision.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLC.html#setRangeShort()">setRangeShort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets short range transmision.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="init(lejos.nxt.SensorPort)"><!-- --></A><H3>
+init</H3>
+<PRE>
+public static void <B>init</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</PRE>
+<DL>
+<DD>Initialize LLC and set port
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="init()"><!-- --></A><H3>
+init</H3>
+<PRE>
+public static void <B>init</B>()</PRE>
+<DL>
+<DD>Initialize LLC an
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPort(lejos.nxt.SensorPort)"><!-- --></A><H3>
+setPort</H3>
+<PRE>
+public static void <B>setPort</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</PRE>
+<DL>
+<DD>Set sensor port
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="read()"><!-- --></A><H3>
+read</H3>
+<PRE>
+public static int <B>read</B>()</PRE>
+<DL>
+<DD>read a single byte, if available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the byte read, or -1 if no byte is available</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSending()"><!-- --></A><H3>
+isSending</H3>
+<PRE>
+public static boolean <B>isSending</B>()</PRE>
+<DL>
+<DD>Indicate whether the last send is still active
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if still sending, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isSendError()"><!-- --></A><H3>
+isSendError</H3>
+<PRE>
+public static boolean <B>isSendError</B>()</PRE>
+<DL>
+<DD>Return the error status of the last send
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if still sending, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendBytes(byte[], int)"><!-- --></A><H3>
+sendBytes</H3>
+<PRE>
+public static boolean <B>sendBytes</B>(byte[]&nbsp;buf,
+                                int&nbsp;len)</PRE>
+<DL>
+<DD>Send a number of bytes and wait for completion of transmission
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buf</CODE> - the array of bytes to send<DD><CODE>len</CODE> - the number of bytes to send
+<DT><B>Returns:</B><DD>true if the send is successful, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receive()"><!-- --></A><H3>
+receive</H3>
+<PRE>
+public static int <B>receive</B>()</PRE>
+<DL>
+<DD>wait a little while for a byte to become available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the byte received, or -1 if no byte available</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeLong()"><!-- --></A><H3>
+setRangeLong</H3>
+<PRE>
+public static void <B>setRangeLong</B>()</PRE>
+<DL>
+<DD>Sets long range transmision.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeShort()"><!-- --></A><H3>
+setRangeShort</H3>
+<PRE>
+public static void <B>setRangeShort</B>()</PRE>
+<DL>
+<DD>Sets short range transmision.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLink()"><!-- --></A><H3>
+getLink</H3>
+<PRE>
+public static <A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A> <B>getLink</B>()</PRE>
+<DL>
+<DD>Return the RCXLink object associated with LLC
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the RCXLink used</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLC.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLC.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCHandler.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCHandler.html
new file mode 100644 (file)
index 0000000..f1f4646
--- /dev/null
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
+<TITLE>
+LLCHandler (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.LLCHandler class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LLCHandler (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLCHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLCHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.PacketHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class LLCHandler</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">lejos.rcxcomm.PacketHandler</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.LLCHandler</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LLCHandler</B><DT>extends <A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></DL>
+</PRE>
+
+<P>
+Packet handler than implement the LLC packet protocol.
+ Deals with packets and acks. 
+ Supports independent streams of data in both directions.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.rcxcomm.PacketHandler"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#lowerHandler">lowerHandler</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#LLCHandler(lejos.nxt.SensorPort)">LLCHandler</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#isAckAvailable()">isAckAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if an Ack is available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#isPacketAvailable()">isPacketAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if a packet is available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#receiveAck(byte[])">receiveAck</A></B>(byte[]&nbsp;buffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receive an ack.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#receivePacket(byte[])">receivePacket</A></B>(byte[]&nbsp;buffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receive a packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCHandler.html#sendPacket(byte[], int)">sendPacket</A></B>(byte[]&nbsp;packet,
+           int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a packet.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.rcxcomm.PacketHandler"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#close()">close</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#getError()">getError</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#open(byte, byte)">open</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#reset()">reset</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#setListen(boolean)">setListen</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="LLCHandler(lejos.nxt.SensorPort)"><!-- --></A><H3>
+LLCHandler</H3>
+<PRE>
+public <B>LLCHandler</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public boolean <B>sendPacket</B>(byte[]&nbsp;packet,
+                          int&nbsp;len)</PRE>
+<DL>
+<DD>Send a packet.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#sendPacket(byte[], int)">sendPacket</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>packet</CODE> - the bytes to send<DD><CODE>len</CODE> - the number of bytes to send
+<DT><B>Returns:</B><DD>true if the send was successful, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receivePacket(byte[])"><!-- --></A><H3>
+receivePacket</H3>
+<PRE>
+public int <B>receivePacket</B>(byte[]&nbsp;buffer)</PRE>
+<DL>
+<DD>Receive a packet.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#receivePacket(byte[])">receivePacket</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - the buffer to receive the packet into
+<DT><B>Returns:</B><DD>the number of bytes received</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receiveAck(byte[])"><!-- --></A><H3>
+receiveAck</H3>
+<PRE>
+public int <B>receiveAck</B>(byte[]&nbsp;buffer)</PRE>
+<DL>
+<DD>Receive an ack.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#receiveAck(byte[])">receiveAck</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - the buffer to receive the ack into
+<DT><B>Returns:</B><DD>the number of bytes received</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPacketAvailable()"><!-- --></A><H3>
+isPacketAvailable</H3>
+<PRE>
+public boolean <B>isPacketAvailable</B>()</PRE>
+<DL>
+<DD>Check if a packet is available
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#isPacketAvailable()">isPacketAvailable</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if a Packet is available, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAckAvailable()"><!-- --></A><H3>
+isAckAvailable</H3>
+<PRE>
+public boolean <B>isAckAvailable</B>()</PRE>
+<DL>
+<DD>Check if an Ack is available
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#isAckAvailable()">isAckAvailable</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if ack is available, else false</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLCHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLCHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.PacketHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCReliableHandler.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/LLCReliableHandler.html
new file mode 100644 (file)
index 0000000..bb4aea0
--- /dev/null
@@ -0,0 +1,362 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
+<TITLE>
+LLCReliableHandler (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.LLCReliableHandler class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LLCReliableHandler (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLCReliableHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLCReliableHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.PacketHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class LLCReliableHandler</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">lejos.rcxcomm.PacketHandler</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.LLCReliableHandler</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LLCReliableHandler</B><DT>extends <A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></DL>
+</PRE>
+
+<P>
+A Packet handler that guarantees reliable delivery using checksums,
+ acks, and a single bit sequence number.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.rcxcomm.PacketHandler"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#lowerHandler">lowerHandler</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html#LLCReliableHandler(lejos.rcxcomm.PacketHandler)">LLCReliableHandler</A></B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html#isPacketAvailable()">isPacketAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if a packet is available.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html#receivePacket(byte[])">receivePacket</A></B>(byte[]&nbsp;buffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receive a packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset sequence numbers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html#sendPacket(byte[], int)">sendPacket</A></B>(byte[]&nbsp;packet,
+           int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a packet.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.rcxcomm.PacketHandler"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#close()">close</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#getError()">getError</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#isAckAvailable()">isAckAvailable</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#open(byte, byte)">open</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#receiveAck(byte[])">receiveAck</A>, <A HREF="../../lejos/rcxcomm/PacketHandler.html#setListen(boolean)">setListen</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="LLCReliableHandler(lejos.rcxcomm.PacketHandler)"><!-- --></A><H3>
+LLCReliableHandler</H3>
+<PRE>
+public <B>LLCReliableHandler</B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public void <B>reset</B>()</PRE>
+<DL>
+<DD>Reset sequence numbers.
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#reset()">reset</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public boolean <B>sendPacket</B>(byte[]&nbsp;packet,
+                          int&nbsp;len)</PRE>
+<DL>
+<DD>Send a packet.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#sendPacket(byte[], int)">sendPacket</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>packet</CODE> - the bytes to send<DD><CODE>len</CODE> - the number of bytes to send
+<DT><B>Returns:</B><DD>true if send successful, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receivePacket(byte[])"><!-- --></A><H3>
+receivePacket</H3>
+<PRE>
+public int <B>receivePacket</B>(byte[]&nbsp;buffer)</PRE>
+<DL>
+<DD>Receive a packet.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#receivePacket(byte[])">receivePacket</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - the buffer to receive the packet into
+<DT><B>Returns:</B><DD>the number of bytes received</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPacketAvailable()"><!-- --></A><H3>
+isPacketAvailable</H3>
+<PRE>
+public boolean <B>isPacketAvailable</B>()</PRE>
+<DL>
+<DD>Check if a packet is available.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html#isPacketAvailable()">isPacketAvailable</A></CODE> in class <CODE><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if a packet is available, else false</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/LLCReliableHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LLCReliableHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.PacketHandler">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Opcode.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Opcode.html
new file mode 100644 (file)
index 0000000..85df444
--- /dev/null
@@ -0,0 +1,2042 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:00 GMT 2008 -->
+<TITLE>
+Opcode (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.Opcode interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Opcode (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/Opcode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Opcode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Interface Opcode</H2>
+<DL>
+<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Opcode</B></DL>
+</PRE>
+
+<P>
+Opcode constants.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE">OPCODE_ABSOLUTE_VALUE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ABSOLUTE_VALUE_REPLY">OPCODE_ABSOLUTE_VALUE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE">OPCODE_ADD_TO_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ADD_TO_VARIABLE_REPLY">OPCODE_ADD_TO_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ALIVE">OPCODE_ALIVE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_ALIVE_REPLY">OPCODE_ALIVE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE">OPCODE_AND_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_AND_VARIABLE_REPLY">OPCODE_AND_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_FAR">OPCODE_BRANCH_ALWAYS_FAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_BRANCH_ALWAYS_NEAR">OPCODE_BRANCH_ALWAYS_NEAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CALL_SUBROUTINE">OPCODE_CALL_SUBROUTINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_MESSAGE">OPCODE_CLEAR_MESSAGE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE">OPCODE_CLEAR_SENSOR_VALUE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_SENSOR_VALUE_REPLY">OPCODE_CLEAR_SENSOR_VALUE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER">OPCODE_CLEAR_TIMER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_CLEAR_TIMER_REPLY">OPCODE_CLEAR_TIMER_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT">OPCODE_DATALOG_NEXT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DATALOG_NEXT_REPLY">OPCODE_DATALOG_NEXT_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_FAR">OPCODE_DECREMENT_LOOP_COUNTER_FAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DECREMENT_LOOP_COUNTER_NEAR">OPCODE_DECREMENT_LOOP_COUNTER_NEAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES">OPCODE_DELETE_ALL_SUBROUTINES</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_SUBROUTINES_REPLY">OPCODE_DELETE_ALL_SUBROUTINES_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS">OPCODE_DELETE_ALL_TASKS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_ALL_TASKS_REPLY">OPCODE_DELETE_ALL_TASKS_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE">OPCODE_DELETE_FIRMWARE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_FIRMWARE_REPLY">OPCODE_DELETE_FIRMWARE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE">OPCODE_DELETE_SUBROUTINE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_SUBROUTINE_REPLY">OPCODE_DELETE_SUBROUTINE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK">OPCODE_DELETE_TASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DELETE_TASK_REPLY">OPCODE_DELETE_TASK_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE">OPCODE_DIVIDE_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_DIVIDE_VARIABLE_REPLY">OPCODE_DIVIDE_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER">OPCODE_GET_BATTERY_POWER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_BATTERY_POWER_REPLY">OPCODE_GET_BATTERY_POWER_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP">OPCODE_GET_MEMORY_MAP</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_MEMORY_MAP_REPLY">OPCODE_GET_MEMORY_MAP_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE">OPCODE_GET_VALUE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VALUE_REPLY">OPCODE_GET_VALUE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS">OPCODE_GET_VERSIONS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_GET_VERSIONS_REPLY">OPCODE_GET_VERSIONS_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MASK">OPCODE_MASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE">OPCODE_MULTIPLY_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_MULTIPLY_VARIABLE_REPLY">OPCODE_MULTIPLY_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE">OPCODE_OR_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_OR_VARIABLE_REPLY">OPCODE_OR_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_SOUND_REPLY">OPCODE_PLAY_SOUND_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE">OPCODE_PLAY_TONE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_PLAY_TONE_REPLY">OPCODE_PLAY_TONE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF">OPCODE_POWER_OFF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_POWER_OFF_REPLY">OPCODE_POWER_OFF_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_REMOTE_COMMAND">OPCODE_REMOTE_COMMAND</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SEND_MESSAGE">OPCODE_SEND_MESSAGE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE">OPCODE_SET_DATALOG_SIZE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DATALOG_SIZE_REPLY">OPCODE_SET_DATALOG_SIZE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY">OPCODE_SET_DISPLAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_DISPLAY_REPLY">OPCODE_SET_DISPLAY_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_LOOP_COUNTER">OPCODE_SET_LOOP_COUNTER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MESSAGE">OPCODE_SET_MESSAGE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION">OPCODE_SET_MOTOR_DIRECTION</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_DIRECTION_REPLY">OPCODE_SET_MOTOR_DIRECTION_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF">OPCODE_SET_MOTOR_ON_OFF</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_ON_OFF_REPLY">OPCODE_SET_MOTOR_ON_OFF_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER">OPCODE_SET_MOTOR_POWER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_MOTOR_POWER_REPLY">OPCODE_SET_MOTOR_POWER_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY">OPCODE_SET_POWER_DOWN_DELAY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_POWER_DOWN_DELAY_REPLY">OPCODE_SET_POWER_DOWN_DELAY_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER">OPCODE_SET_PROGRAM_NUMBER</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_PROGRAM_NUMBER_REPLY">OPCODE_SET_PROGRAM_NUMBER_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE">OPCODE_SET_SENSOR_MODE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_MODE_REPLY">OPCODE_SET_SENSOR_MODE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE">OPCODE_SET_SENSOR_TYPE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_SENSOR_TYPE_REPLY">OPCODE_SET_SENSOR_TYPE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME">OPCODE_SET_TIME</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TIME_REPLY">OPCODE_SET_TIME_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE">OPCODE_SET_TRANSMITTER_RANGE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_TRANSMITTER_RANGE_REPLY">OPCODE_SET_TRANSMITTER_RANGE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE">OPCODE_SET_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SET_VARIABLE_REPLY">OPCODE_SET_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE">OPCODE_SIGN_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SIGN_VARIABLE_REPLY">OPCODE_SIGN_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD">OPCODE_START_FIRMWARE_DOWNLOAD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_FIRMWARE_DOWNLOAD_REPLY">OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD">OPCODE_START_SUBROUTINE_DOWNLOAD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY">OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK">OPCODE_START_TASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD">OPCODE_START_TASK_DOWNLOAD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_DOWNLOAD_REPLY">OPCODE_START_TASK_DOWNLOAD_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_START_TASK_REPLY">OPCODE_START_TASK_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS">OPCODE_STOP_ALL_TASKS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_ALL_TASKS_REPLY">OPCODE_STOP_ALL_TASKS_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK">OPCODE_STOP_TASK</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_STOP_TASK_REPLY">OPCODE_STOP_TASK_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE">OPCODE_SUBTRACT_FROM_VARIABLE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_SUBTRACT_FROM_VARIABLE_REPLY">OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_FAR">OPCODE_TEST_AND_BRANCH_FAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TEST_AND_BRANCH_NEAR">OPCODE_TEST_AND_BRANCH_NEAR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA">OPCODE_TRANSFER_DATA</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_TRANSFER_DATA_REPLY">OPCODE_TRANSFER_DATA_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE">OPCODE_UNLOCK_FIRMWARE</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UNLOCK_FIRMWARE_REPLY">OPCODE_UNLOCK_FIRMWARE_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG">OPCODE_UPLOAD_DATALOG</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_UPLOAD_DATALOG_REPLY">OPCODE_UPLOAD_DATALOG_REPLY</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;byte</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Opcode.html#OPCODE_WAIT">OPCODE_WAIT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="OPCODE_MASK"><!-- --></A><H3>
+OPCODE_MASK</H3>
+<PRE>
+static final byte <B>OPCODE_MASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_MASK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ALIVE"><!-- --></A><H3>
+OPCODE_ALIVE</H3>
+<PRE>
+static final byte <B>OPCODE_ALIVE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ALIVE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_VALUE"><!-- --></A><H3>
+OPCODE_GET_VALUE</H3>
+<PRE>
+static final byte <B>OPCODE_GET_VALUE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_VALUE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_POWER"><!-- --></A><H3>
+OPCODE_SET_MOTOR_POWER</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_POWER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_POWER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_VARIABLE"><!-- --></A><H3>
+OPCODE_SET_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_VERSIONS"><!-- --></A><H3>
+OPCODE_GET_VERSIONS</H3>
+<PRE>
+static final byte <B>OPCODE_GET_VERSIONS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_VERSIONS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_DIRECTION_REPLY"><!-- --></A><H3>
+OPCODE_SET_MOTOR_DIRECTION_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_DIRECTION_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_DIRECTION_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CALL_SUBROUTINE"><!-- --></A><H3>
+OPCODE_CALL_SUBROUTINE</H3>
+<PRE>
+static final byte <B>OPCODE_CALL_SUBROUTINE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CALL_SUBROUTINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_MEMORY_MAP"><!-- --></A><H3>
+OPCODE_GET_MEMORY_MAP</H3>
+<PRE>
+static final byte <B>OPCODE_GET_MEMORY_MAP</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_MEMORY_MAP">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_ON_OFF"><!-- --></A><H3>
+OPCODE_SET_MOTOR_ON_OFF</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_ON_OFF</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_ON_OFF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_TIME"><!-- --></A><H3>
+OPCODE_SET_TIME</H3>
+<PRE>
+static final byte <B>OPCODE_SET_TIME</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_TIME">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_PLAY_TONE"><!-- --></A><H3>
+OPCODE_PLAY_TONE</H3>
+<PRE>
+static final byte <B>OPCODE_PLAY_TONE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_PLAY_TONE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ADD_TO_VARIABLE"><!-- --></A><H3>
+OPCODE_ADD_TO_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_ADD_TO_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ADD_TO_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_TASK_DOWNLOAD"><!-- --></A><H3>
+OPCODE_START_TASK_DOWNLOAD</H3>
+<PRE>
+static final byte <B>OPCODE_START_TASK_DOWNLOAD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_TASK_DOWNLOAD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CLEAR_SENSOR_VALUE_REPLY"><!-- --></A><H3>
+OPCODE_CLEAR_SENSOR_VALUE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_CLEAR_SENSOR_VALUE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CLEAR_SENSOR_VALUE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_BRANCH_ALWAYS_NEAR"><!-- --></A><H3>
+OPCODE_BRANCH_ALWAYS_NEAR</H3>
+<PRE>
+static final byte <B>OPCODE_BRANCH_ALWAYS_NEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_BRANCH_ALWAYS_NEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_BATTERY_POWER"><!-- --></A><H3>
+OPCODE_GET_BATTERY_POWER</H3>
+<PRE>
+static final byte <B>OPCODE_GET_BATTERY_POWER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_BATTERY_POWER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_TRANSMITTER_RANGE"><!-- --></A><H3>
+OPCODE_SET_TRANSMITTER_RANGE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_TRANSMITTER_RANGE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_TRANSMITTER_RANGE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_SENSOR_TYPE"><!-- --></A><H3>
+OPCODE_SET_SENSOR_TYPE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_SENSOR_TYPE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_TYPE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_DISPLAY"><!-- --></A><H3>
+OPCODE_SET_DISPLAY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_DISPLAY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_DISPLAY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SUBTRACT_FROM_VARIABLE"><!-- --></A><H3>
+OPCODE_SUBTRACT_FROM_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_SUBTRACT_FROM_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SUBTRACT_FROM_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_SUBROUTINE_DOWNLOAD"><!-- --></A><H3>
+OPCODE_START_SUBROUTINE_DOWNLOAD</H3>
+<PRE>
+static final byte <B>OPCODE_START_SUBROUTINE_DOWNLOAD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_SUBROUTINE_DOWNLOAD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_SUBROUTINE_REPLY"><!-- --></A><H3>
+OPCODE_DELETE_SUBROUTINE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_SUBROUTINE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_SUBROUTINE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DECREMENT_LOOP_COUNTER_NEAR"><!-- --></A><H3>
+OPCODE_DECREMENT_LOOP_COUNTER_NEAR</H3>
+<PRE>
+static final byte <B>OPCODE_DECREMENT_LOOP_COUNTER_NEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DECREMENT_LOOP_COUNTER_NEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_ALL_TASKS"><!-- --></A><H3>
+OPCODE_DELETE_ALL_TASKS</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_ALL_TASKS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_TASKS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_SENSOR_MODE"><!-- --></A><H3>
+OPCODE_SET_SENSOR_MODE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_SENSOR_MODE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_MODE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_WAIT"><!-- --></A><H3>
+OPCODE_WAIT</H3>
+<PRE>
+static final byte <B>OPCODE_WAIT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_WAIT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DIVIDE_VARIABLE"><!-- --></A><H3>
+OPCODE_DIVIDE_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_DIVIDE_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DIVIDE_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_TRANSFER_DATA"><!-- --></A><H3>
+OPCODE_TRANSFER_DATA</H3>
+<PRE>
+static final byte <B>OPCODE_TRANSFER_DATA</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_TRANSFER_DATA">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_POWER_DOWN_DELAY_REPLY"><!-- --></A><H3>
+OPCODE_SET_POWER_DOWN_DELAY_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_POWER_DOWN_DELAY_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_POWER_DOWN_DELAY_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_STOP_ALL_TASKS"><!-- --></A><H3>
+OPCODE_STOP_ALL_TASKS</H3>
+<PRE>
+static final byte <B>OPCODE_STOP_ALL_TASKS</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_STOP_ALL_TASKS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_DATALOG_SIZE"><!-- --></A><H3>
+OPCODE_SET_DATALOG_SIZE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_DATALOG_SIZE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_DATALOG_SIZE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_UNLOCK_FIRMWARE_REPLY"><!-- --></A><H3>
+OPCODE_UNLOCK_FIRMWARE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_UNLOCK_FIRMWARE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_UNLOCK_FIRMWARE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_UPLOAD_DATALOG_REPLY"><!-- --></A><H3>
+OPCODE_UPLOAD_DATALOG_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_UPLOAD_DATALOG_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_UPLOAD_DATALOG_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_MULTIPLY_VARIABLE"><!-- --></A><H3>
+OPCODE_MULTIPLY_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_MULTIPLY_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_MULTIPLY_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CLEAR_TIMER_REPLY"><!-- --></A><H3>
+OPCODE_CLEAR_TIMER_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_CLEAR_TIMER_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CLEAR_TIMER_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_POWER_OFF"><!-- --></A><H3>
+OPCODE_POWER_OFF</H3>
+<PRE>
+static final byte <B>OPCODE_POWER_OFF</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_POWER_OFF">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_TASK"><!-- --></A><H3>
+OPCODE_DELETE_TASK</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_TASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_TASK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DATALOG_NEXT"><!-- --></A><H3>
+OPCODE_DATALOG_NEXT</H3>
+<PRE>
+static final byte <B>OPCODE_DATALOG_NEXT</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DATALOG_NEXT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_OR_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_OR_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_OR_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_OR_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SIGN_VARIABLE"><!-- --></A><H3>
+OPCODE_SIGN_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_SIGN_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SIGN_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_FIRMWARE"><!-- --></A><H3>
+OPCODE_DELETE_FIRMWARE</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_FIRMWARE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_FIRMWARE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_PROGRAM_NUMBER_REPLY"><!-- --></A><H3>
+OPCODE_SET_PROGRAM_NUMBER_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_PROGRAM_NUMBER_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_PROGRAM_NUMBER_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_ALL_SUBROUTINES"><!-- --></A><H3>
+OPCODE_DELETE_ALL_SUBROUTINES</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_ALL_SUBROUTINES</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_SUBROUTINES">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_TASK"><!-- --></A><H3>
+OPCODE_START_TASK</H3>
+<PRE>
+static final byte <B>OPCODE_START_TASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_TASK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_BRANCH_ALWAYS_FAR"><!-- --></A><H3>
+OPCODE_BRANCH_ALWAYS_FAR</H3>
+<PRE>
+static final byte <B>OPCODE_BRANCH_ALWAYS_FAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_BRANCH_ALWAYS_FAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_AND_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_AND_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_AND_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_AND_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ABSOLUTE_VALUE"><!-- --></A><H3>
+OPCODE_ABSOLUTE_VALUE</H3>
+<PRE>
+static final byte <B>OPCODE_ABSOLUTE_VALUE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ABSOLUTE_VALUE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_FIRMWARE_DOWNLOAD"><!-- --></A><H3>
+OPCODE_START_FIRMWARE_DOWNLOAD</H3>
+<PRE>
+static final byte <B>OPCODE_START_FIRMWARE_DOWNLOAD</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_FIRMWARE_DOWNLOAD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_STOP_TASK_REPLY"><!-- --></A><H3>
+OPCODE_STOP_TASK_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_STOP_TASK_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_STOP_TASK_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_STOP_TASK"><!-- --></A><H3>
+OPCODE_STOP_TASK</H3>
+<PRE>
+static final byte <B>OPCODE_STOP_TASK</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_STOP_TASK">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_FIRMWARE_DOWNLOAD_REPLY"><!-- --></A><H3>
+OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_START_FIRMWARE_DOWNLOAD_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_FIRMWARE_DOWNLOAD_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_LOOP_COUNTER"><!-- --></A><H3>
+OPCODE_SET_LOOP_COUNTER</H3>
+<PRE>
+static final byte <B>OPCODE_SET_LOOP_COUNTER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_LOOP_COUNTER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ABSOLUTE_VALUE_REPLY"><!-- --></A><H3>
+OPCODE_ABSOLUTE_VALUE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_ABSOLUTE_VALUE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ABSOLUTE_VALUE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_AND_VARIABLE"><!-- --></A><H3>
+OPCODE_AND_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_AND_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_AND_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_TEST_AND_BRANCH_NEAR"><!-- --></A><H3>
+OPCODE_TEST_AND_BRANCH_NEAR</H3>
+<PRE>
+static final byte <B>OPCODE_TEST_AND_BRANCH_NEAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_TEST_AND_BRANCH_NEAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_TASK_REPLY"><!-- --></A><H3>
+OPCODE_START_TASK_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_START_TASK_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_TASK_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_ALL_SUBROUTINES_REPLY"><!-- --></A><H3>
+OPCODE_DELETE_ALL_SUBROUTINES_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_ALL_SUBROUTINES_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_SUBROUTINES_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CLEAR_MESSAGE"><!-- --></A><H3>
+OPCODE_CLEAR_MESSAGE</H3>
+<PRE>
+static final byte <B>OPCODE_CLEAR_MESSAGE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CLEAR_MESSAGE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_PROGRAM_NUMBER"><!-- --></A><H3>
+OPCODE_SET_PROGRAM_NUMBER</H3>
+<PRE>
+static final byte <B>OPCODE_SET_PROGRAM_NUMBER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_PROGRAM_NUMBER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_FIRMWARE_REPLY"><!-- --></A><H3>
+OPCODE_DELETE_FIRMWARE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_FIRMWARE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_FIRMWARE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DECREMENT_LOOP_COUNTER_FAR"><!-- --></A><H3>
+OPCODE_DECREMENT_LOOP_COUNTER_FAR</H3>
+<PRE>
+static final byte <B>OPCODE_DECREMENT_LOOP_COUNTER_FAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DECREMENT_LOOP_COUNTER_FAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SIGN_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_SIGN_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SIGN_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SIGN_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_OR_VARIABLE"><!-- --></A><H3>
+OPCODE_OR_VARIABLE</H3>
+<PRE>
+static final byte <B>OPCODE_OR_VARIABLE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_OR_VARIABLE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DATALOG_NEXT_REPLY"><!-- --></A><H3>
+OPCODE_DATALOG_NEXT_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DATALOG_NEXT_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DATALOG_NEXT_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_TEST_AND_BRANCH_FAR"><!-- --></A><H3>
+OPCODE_TEST_AND_BRANCH_FAR</H3>
+<PRE>
+static final byte <B>OPCODE_TEST_AND_BRANCH_FAR</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_TEST_AND_BRANCH_FAR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_TASK_REPLY"><!-- --></A><H3>
+OPCODE_DELETE_TASK_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_TASK_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_TASK_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_POWER_OFF_REPLY"><!-- --></A><H3>
+OPCODE_POWER_OFF_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_POWER_OFF_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_POWER_OFF_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CLEAR_TIMER"><!-- --></A><H3>
+OPCODE_CLEAR_TIMER</H3>
+<PRE>
+static final byte <B>OPCODE_CLEAR_TIMER</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CLEAR_TIMER">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_MULTIPLY_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_MULTIPLY_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_MULTIPLY_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_MULTIPLY_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_UPLOAD_DATALOG"><!-- --></A><H3>
+OPCODE_UPLOAD_DATALOG</H3>
+<PRE>
+static final byte <B>OPCODE_UPLOAD_DATALOG</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_UPLOAD_DATALOG">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_UNLOCK_FIRMWARE"><!-- --></A><H3>
+OPCODE_UNLOCK_FIRMWARE</H3>
+<PRE>
+static final byte <B>OPCODE_UNLOCK_FIRMWARE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_UNLOCK_FIRMWARE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_DATALOG_SIZE_REPLY"><!-- --></A><H3>
+OPCODE_SET_DATALOG_SIZE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_DATALOG_SIZE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_DATALOG_SIZE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_PLAY_SOUND_REPLY"><!-- --></A><H3>
+OPCODE_PLAY_SOUND_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_PLAY_SOUND_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_PLAY_SOUND_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_STOP_ALL_TASKS_REPLY"><!-- --></A><H3>
+OPCODE_STOP_ALL_TASKS_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_STOP_ALL_TASKS_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_STOP_ALL_TASKS_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_POWER_DOWN_DELAY"><!-- --></A><H3>
+OPCODE_SET_POWER_DOWN_DELAY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_POWER_DOWN_DELAY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_POWER_DOWN_DELAY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_TRANSFER_DATA_REPLY"><!-- --></A><H3>
+OPCODE_TRANSFER_DATA_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_TRANSFER_DATA_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_TRANSFER_DATA_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SEND_MESSAGE"><!-- --></A><H3>
+OPCODE_SEND_MESSAGE</H3>
+<PRE>
+static final byte <B>OPCODE_SEND_MESSAGE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SEND_MESSAGE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DIVIDE_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_DIVIDE_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DIVIDE_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DIVIDE_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_SENSOR_MODE_REPLY"><!-- --></A><H3>
+OPCODE_SET_SENSOR_MODE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_SENSOR_MODE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_MODE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_ALL_TASKS_REPLY"><!-- --></A><H3>
+OPCODE_DELETE_ALL_TASKS_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_ALL_TASKS_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_ALL_TASKS_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_DELETE_SUBROUTINE"><!-- --></A><H3>
+OPCODE_DELETE_SUBROUTINE</H3>
+<PRE>
+static final byte <B>OPCODE_DELETE_SUBROUTINE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_DELETE_SUBROUTINE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY"><!-- --></A><H3>
+OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SUBTRACT_FROM_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SUBTRACT_FROM_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SUBTRACT_FROM_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_DISPLAY_REPLY"><!-- --></A><H3>
+OPCODE_SET_DISPLAY_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_DISPLAY_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_DISPLAY_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_SENSOR_TYPE_REPLY"><!-- --></A><H3>
+OPCODE_SET_SENSOR_TYPE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_SENSOR_TYPE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_SENSOR_TYPE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_TRANSMITTER_RANGE_REPLY"><!-- --></A><H3>
+OPCODE_SET_TRANSMITTER_RANGE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_TRANSMITTER_RANGE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_TRANSMITTER_RANGE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_BATTERY_POWER_REPLY"><!-- --></A><H3>
+OPCODE_GET_BATTERY_POWER_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_GET_BATTERY_POWER_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_BATTERY_POWER_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_CLEAR_SENSOR_VALUE"><!-- --></A><H3>
+OPCODE_CLEAR_SENSOR_VALUE</H3>
+<PRE>
+static final byte <B>OPCODE_CLEAR_SENSOR_VALUE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_CLEAR_SENSOR_VALUE">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_START_TASK_DOWNLOAD_REPLY"><!-- --></A><H3>
+OPCODE_START_TASK_DOWNLOAD_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_START_TASK_DOWNLOAD_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_START_TASK_DOWNLOAD_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_REMOTE_COMMAND"><!-- --></A><H3>
+OPCODE_REMOTE_COMMAND</H3>
+<PRE>
+static final byte <B>OPCODE_REMOTE_COMMAND</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_REMOTE_COMMAND">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ADD_TO_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_ADD_TO_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_ADD_TO_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ADD_TO_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_PLAY_TONE_REPLY"><!-- --></A><H3>
+OPCODE_PLAY_TONE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_PLAY_TONE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_PLAY_TONE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_TIME_REPLY"><!-- --></A><H3>
+OPCODE_SET_TIME_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_TIME_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_TIME_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_ON_OFF_REPLY"><!-- --></A><H3>
+OPCODE_SET_MOTOR_ON_OFF_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_ON_OFF_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_ON_OFF_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_MEMORY_MAP_REPLY"><!-- --></A><H3>
+OPCODE_GET_MEMORY_MAP_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_GET_MEMORY_MAP_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_MEMORY_MAP_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_DIRECTION"><!-- --></A><H3>
+OPCODE_SET_MOTOR_DIRECTION</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_DIRECTION</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_DIRECTION">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_VERSIONS_REPLY"><!-- --></A><H3>
+OPCODE_GET_VERSIONS_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_GET_VERSIONS_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_VERSIONS_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_VARIABLE_REPLY"><!-- --></A><H3>
+OPCODE_SET_VARIABLE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_VARIABLE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_VARIABLE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MOTOR_POWER_REPLY"><!-- --></A><H3>
+OPCODE_SET_MOTOR_POWER_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MOTOR_POWER_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MOTOR_POWER_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_GET_VALUE_REPLY"><!-- --></A><H3>
+OPCODE_GET_VALUE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_GET_VALUE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_GET_VALUE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_ALIVE_REPLY"><!-- --></A><H3>
+OPCODE_ALIVE_REPLY</H3>
+<PRE>
+static final byte <B>OPCODE_ALIVE_REPLY</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_ALIVE_REPLY">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="OPCODE_SET_MESSAGE"><!-- --></A><H3>
+OPCODE_SET_MESSAGE</H3>
+<PRE>
+static final byte <B>OPCODE_SET_MESSAGE</B></PRE>
+<DL>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#lejos.rcxcomm.Opcode.OPCODE_SET_MESSAGE">Constant Field Values</A></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/Opcode.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Opcode.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/PacketHandler.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/PacketHandler.html
new file mode 100644 (file)
index 0000000..5ffb669
--- /dev/null
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+PacketHandler (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.PacketHandler class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="PacketHandler (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/PacketHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PacketHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class PacketHandler</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.PacketHandler</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A>, <A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>PacketHandler</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Abstract packet handler. 
+ Implementations must include sendPacket, receivePacket and
+ isPacketAvailable(). The other methods are optional.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#lowerHandler">lowerHandler</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#PacketHandler()">PacketHandler</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#PacketHandler(lejos.rcxcomm.PacketHandler)">PacketHandler</A></B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Close this packet handler and all lower layers.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#getError()">getError</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the last error.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#isAckAvailable()">isAckAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if an ack is available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#isPacketAvailable()">isPacketAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Check if a packet is available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#open(byte, byte)">open</A></B>(byte&nbsp;source,
+     byte&nbsp;destination)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the source and destination for this connection.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#receiveAck(byte[])">receiveAck</A></B>(byte[]&nbsp;buffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#receivePacket(byte[])">receivePacket</A></B>(byte[]&nbsp;buffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Receive a packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset sequence numbers for this handler</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>abstract &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#sendPacket(byte[], int)">sendPacket</A></B>(byte[]&nbsp;packet,
+           int&nbsp;len)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/PacketHandler.html#setListen(boolean)">setListen</A></B>(boolean&nbsp;listen)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set or unset the listen flag to keep a PC serial tower alive</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="lowerHandler"><!-- --></A><H3>
+lowerHandler</H3>
+<PRE>
+protected <A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A> <B>lowerHandler</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="PacketHandler()"><!-- --></A><H3>
+PacketHandler</H3>
+<PRE>
+public <B>PacketHandler</B>()</PRE>
+<DL>
+</DL>
+<HR>
+
+<A NAME="PacketHandler(lejos.rcxcomm.PacketHandler)"><!-- --></A><H3>
+PacketHandler</H3>
+<PRE>
+public <B>PacketHandler</B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="open(byte, byte)"><!-- --></A><H3>
+open</H3>
+<PRE>
+public void <B>open</B>(byte&nbsp;source,
+                 byte&nbsp;destination)</PRE>
+<DL>
+<DD>Set the source and destination for this connection.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public void <B>reset</B>()</PRE>
+<DL>
+<DD>Reset sequence numbers for this handler
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setListen(boolean)"><!-- --></A><H3>
+setListen</H3>
+<PRE>
+public void <B>setListen</B>(boolean&nbsp;listen)</PRE>
+<DL>
+<DD>Set or unset the listen flag to keep a PC serial tower alive
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listen</CODE> - true to set listen mode, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendPacket(byte[], int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public abstract boolean <B>sendPacket</B>(byte[]&nbsp;packet,
+                                   int&nbsp;len)</PRE>
+<DL>
+<DD>Send a packet.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>packet</CODE> - the bytes to send<DD><CODE>len</CODE> - the number of bytes to send
+<DT><B>Returns:</B><DD>true if the send was successful, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receivePacket(byte[])"><!-- --></A><H3>
+receivePacket</H3>
+<PRE>
+public abstract int <B>receivePacket</B>(byte[]&nbsp;buffer)</PRE>
+<DL>
+<DD>Receive a packet.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>buffer</CODE> - the buffer to receive the packet into
+<DT><B>Returns:</B><DD>the number of bytes received</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="receiveAck(byte[])"><!-- --></A><H3>
+receiveAck</H3>
+<PRE>
+public int <B>receiveAck</B>(byte[]&nbsp;buffer)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPacketAvailable()"><!-- --></A><H3>
+isPacketAvailable</H3>
+<PRE>
+public abstract boolean <B>isPacketAvailable</B>()</PRE>
+<DL>
+<DD>Check if a packet is available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if a Packet is available, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAckAvailable()"><!-- --></A><H3>
+isAckAvailable</H3>
+<PRE>
+public boolean <B>isAckAvailable</B>()</PRE>
+<DL>
+<DD>Check if an ack is available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true if a ack is available, else false</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()</PRE>
+<DL>
+<DD>Close this packet handler and all lower layers.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getError()"><!-- --></A><H3>
+getError</H3>
+<PRE>
+public int <B>getError</B>()</PRE>
+<DL>
+<DD>Get the last error.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the error number, or zero for success</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/PacketHandler.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="PacketHandler.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXAbstractPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXAbstractPort.html
new file mode 100644 (file)
index 0000000..0c60c46
--- /dev/null
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXAbstractPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.RCXAbstractPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXAbstractPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/RCXAbstractPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXAbstractPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class RCXAbstractPort</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.RCXAbstractPort</B>
+</PRE>
+<DL>
+<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm">RCXPort</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public abstract class <B>RCXAbstractPort</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+RCXAbstractPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ RCXAbstractPort implements input and output stream handling and input
+ buffering. It uses a packet handler for sending and receivng packets.
+ This version is abstract because it has no packet handler defined.
+ Specific versions of RCXAbstractPort override the constructor and
+ set up the packet handler to use a specific protocol stack.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Brian Bagnall, Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#packetHandler">packetHandler</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#RCXAbstractPort(lejos.rcxcomm.PacketHandler)">RCXAbstractPort</A></B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for the RCXAbstractPort.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#close()">close</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Closes this RCXPort, stopping the Listener thread.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../java/io/InputStream.html" title="class in java.io">InputStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getInputStream()">getInputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an input stream for this RCXPort.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../java/io/OutputStream.html" title="class in java.io">OutputStream</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getOutputStream()">getOutputStream</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an output stream for this RCXPort.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getTimeOut()">getTimeOut</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Getter for property timeOut.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#reset()">reset</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resets sequence numbers for this port</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#setTimeOut(int)">setTimeOut</A></B>(int&nbsp;timeOut)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Setter for property timeOut.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="packetHandler"><!-- --></A><H3>
+packetHandler</H3>
+<PRE>
+protected <A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A> <B>packetHandler</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXAbstractPort(lejos.rcxcomm.PacketHandler)"><!-- --></A><H3>
+RCXAbstractPort</H3>
+<PRE>
+public <B>RCXAbstractPort</B>(<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A>&nbsp;handler)
+                throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD>Constructor for the RCXAbstractPort.
+ Opens the port, and sets the protocol packet handler.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>handler</CODE> - the packet handler
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getInputStream()"><!-- --></A><H3>
+getInputStream</H3>
+<PRE>
+public <A HREF="../../java/io/InputStream.html" title="class in java.io">InputStream</A> <B>getInputStream</B>()</PRE>
+<DL>
+<DD>Returns an input stream for this RCXPort.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an input stream for reading bytes from this RCXPort.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOutputStream()"><!-- --></A><H3>
+getOutputStream</H3>
+<PRE>
+public <A HREF="../../java/io/OutputStream.html" title="class in java.io">OutputStream</A> <B>getOutputStream</B>()</PRE>
+<DL>
+<DD>Returns an output stream for this RCXPort.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an output stream for writing bytes to this RCXPort.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reset()"><!-- --></A><H3>
+reset</H3>
+<PRE>
+public void <B>reset</B>()</PRE>
+<DL>
+<DD>Resets sequence numbers for this port
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="close()"><!-- --></A><H3>
+close</H3>
+<PRE>
+public void <B>close</B>()</PRE>
+<DL>
+<DD>Closes this RCXPort, stopping the Listener thread.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getTimeOut()"><!-- --></A><H3>
+getTimeOut</H3>
+<PRE>
+public int <B>getTimeOut</B>()</PRE>
+<DL>
+<DD>Getter for property timeOut.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>Value of property timeOut.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setTimeOut(int)"><!-- --></A><H3>
+setTimeOut</H3>
+<PRE>
+public void <B>setTimeOut</B>(int&nbsp;timeOut)</PRE>
+<DL>
+<DD>Setter for property timeOut.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>timeOut</CODE> - New value of property timeOut.</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/RCXAbstractPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXAbstractPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXPort.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/RCXPort.html
new file mode 100644 (file)
index 0000000..c916ec9
--- /dev/null
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+RCXPort (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.RCXPort class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="RCXPort (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/RCXPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.RCXAbstractPort">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_lejos.rcxcomm.RCXAbstractPort">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class RCXPort</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">lejos.rcxcomm.RCXAbstractPort</A>
+      <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.RCXPort</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>RCXPort</B><DT>extends <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A></DL>
+</PRE>
+
+<P>
+RCXPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ Uses Reliable low-level comms for communication.
+ This is a two-layer comms stack consisting of LLCReliableHandler
+ and LLCHandler. It ensures that all packets get through.
+ Communication will stop when the IR tower is not in view or in range,
+ and will resume when it comes back into view.
+ RCXPort does not support addressing - it broadcasts messages to all devices.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Brian Bagnall, Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_lejos.rcxcomm.RCXAbstractPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#packetHandler">packetHandler</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/RCXPort.html#RCXPort(lejos.nxt.SensorPort)">RCXPort</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.rcxcomm.RCXAbstractPort"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#close()">close</A>, <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getInputStream()">getInputStream</A>, <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getOutputStream()">getOutputStream</A>, <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#getTimeOut()">getTimeOut</A>, <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#reset()">reset</A>, <A HREF="../../lejos/rcxcomm/RCXAbstractPort.html#setTimeOut(int)">setTimeOut</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="RCXPort(lejos.nxt.SensorPort)"><!-- --></A><H3>
+RCXPort</H3>
+<PRE>
+public <B>RCXPort</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)
+        throws <A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../java/io/IOException.html" title="class in java.io">IOException</A></CODE></DL>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/RCXPort.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="RCXPort.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_lejos.rcxcomm.RCXAbstractPort">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#methods_inherited_from_class_lejos.rcxcomm.RCXAbstractPort">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;METHOD</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Serial.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/Serial.html
new file mode 100644 (file)
index 0000000..7732dc7
--- /dev/null
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Serial (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm.Serial class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Serial (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/Serial.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Serial.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.rcxcomm</FONT>
+<BR>
+Class Serial</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.rcxcomm.Serial</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Serial</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Emulation of the RCX Serial class with mindstorms NRLINK adapter.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Lawrie Griffiths</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#getLink()">getLink</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the RCXLink object associated with the Serial class</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#isPacketAvailable()">isPacketAvailable</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test if a packet is available</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#readPacket(byte[])">readPacket</A></B>(byte[]&nbsp;aBuffer)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Read an assembled packet.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#resetSerial()">resetSerial</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reset the link - null</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#sendPacket(byte[], int, int)">sendPacket</A></B>(byte[]&nbsp;aBuffer,
+           int&nbsp;aOffset,
+           int&nbsp;aLen)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Send a packet</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#setPort(lejos.nxt.SensorPort)">setPort</A></B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the sensor port</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#setRangeLong()">setRangeLong</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set long range</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#setRangeShort()">setRangeShort</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set short range</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/rcxcomm/Serial.html#waitTillSent()">waitTillSent</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait until the packet is sent - null</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setPort(lejos.nxt.SensorPort)"><!-- --></A><H3>
+setPort</H3>
+<PRE>
+public static void <B>setPort</B>(<A HREF="../../lejos/nxt/SensorPort.html" title="class in lejos.nxt">SensorPort</A>&nbsp;port)</PRE>
+<DL>
+<DD>Set the sensor port
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>port</CODE> - the sensor port the link is connected to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="readPacket(byte[])"><!-- --></A><H3>
+readPacket</H3>
+<PRE>
+public static int <B>readPacket</B>(byte[]&nbsp;aBuffer)</PRE>
+<DL>
+<DD>Read an assembled packet. NRLink only seems to read
+ one byte at a time reliably, and does not
+ return zero bytes.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>aBuffer</CODE> - the buffer to return the packet into
+<DT><B>Returns:</B><DD>the number of bytes in the packet</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPacketAvailable()"><!-- --></A><H3>
+isPacketAvailable</H3>
+<PRE>
+public static boolean <B>isPacketAvailable</B>()</PRE>
+<DL>
+<DD>Test if a packet is available
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>true iff a packiet is available</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="sendPacket(byte[], int, int)"><!-- --></A><H3>
+sendPacket</H3>
+<PRE>
+public static boolean <B>sendPacket</B>(byte[]&nbsp;aBuffer,
+                                 int&nbsp;aOffset,
+                                 int&nbsp;aLen)</PRE>
+<DL>
+<DD>Send a packet
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>aBuffer</CODE> - the buffer containing the packet<DD><CODE>aOffset</CODE> - the offset in the buffer - must be zero<DD><CODE>aLen</CODE> - the length of the packet
+<DT><B>Returns:</B><DD>true iff the packet was successfully sent</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeLong()"><!-- --></A><H3>
+setRangeLong</H3>
+<PRE>
+public static void <B>setRangeLong</B>()</PRE>
+<DL>
+<DD>Set long range
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRangeShort()"><!-- --></A><H3>
+setRangeShort</H3>
+<PRE>
+public static void <B>setRangeShort</B>()</PRE>
+<DL>
+<DD>Set short range
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="resetSerial()"><!-- --></A><H3>
+resetSerial</H3>
+<PRE>
+public static void <B>resetSerial</B>()</PRE>
+<DL>
+<DD>Reset the link - null
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="waitTillSent()"><!-- --></A><H3>
+waitTillSent</H3>
+<PRE>
+public static void <B>waitTillSent</B>()</PRE>
+<DL>
+<DD>Wait until the packet is sent - null
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLink()"><!-- --></A><H3>
+getLink</H3>
+<PRE>
+public static <A HREF="../../lejos/nxt/RCXLink.html" title="class in lejos.nxt">RCXLink</A> <B>getLink</B>()</PRE>
+<DL>
+<DD>Get the RCXLink object associated with the Serial class
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the link</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/Serial.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Serial.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-frame.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-frame.html
new file mode 100644 (file)
index 0000000..7a6a9e6
--- /dev/null
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.rcxcomm (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../lejos/rcxcomm/package-summary.html" target="classFrame">lejos.rcxcomm</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="Opcode.html" title="interface in lejos.rcxcomm" target="classFrame"><I>Opcode</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="LLC.html" title="class in lejos.rcxcomm" target="classFrame">LLC</A>
+<BR>
+<A HREF="LLCHandler.html" title="class in lejos.rcxcomm" target="classFrame">LLCHandler</A>
+<BR>
+<A HREF="LLCReliableHandler.html" title="class in lejos.rcxcomm" target="classFrame">LLCReliableHandler</A>
+<BR>
+<A HREF="PacketHandler.html" title="class in lejos.rcxcomm" target="classFrame">PacketHandler</A>
+<BR>
+<A HREF="RCXAbstractPort.html" title="class in lejos.rcxcomm" target="classFrame">RCXAbstractPort</A>
+<BR>
+<A HREF="RCXPort.html" title="class in lejos.rcxcomm" target="classFrame">RCXPort</A>
+<BR>
+<A HREF="Serial.html" title="class in lejos.rcxcomm" target="classFrame">Serial</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-summary.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-summary.html
new file mode 100644 (file)
index 0000000..f2b5d45
--- /dev/null
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.rcxcomm (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.rcxcomm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="lejos.rcxcomm (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/remote/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package lejos.rcxcomm
+</H2>
+Emulation of RCX communication classes
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A></B></TD>
+<TD>Opcode constants.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm">LLC</A></B></TD>
+<TD>Emulates RCX LLC class using the RCXLink class.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm">LLCHandler</A></B></TD>
+<TD>Packet handler than implement the LLC packet protocol.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm">LLCReliableHandler</A></B></TD>
+<TD>A Packet handler that guarantees reliable delivery using checksums,
+ acks, and a single bit sequence number.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm">PacketHandler</A></B></TD>
+<TD>Abstract packet handler.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm">RCXAbstractPort</A></B></TD>
+<TD>RCXAbstractPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ RCXAbstractPort implements input and output stream handling and input
+ buffering.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm">RCXPort</A></B></TD>
+<TD>RCXPort provides an interface similar to java.net.Socket
+ Adapted from original code created by the LEGO3 Team at DTU-IAU
+ Uses Reliable low-level comms for communication.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm">Serial</A></B></TD>
+<TD>Emulation of the RCX Serial class with mindstorms NRLINK adapter.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package lejos.rcxcomm Description
+</H2>
+
+<P>
+Emulation of RCX communication classes
+<P>
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/remote/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-tree.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/rcxcomm/package-tree.html
new file mode 100644 (file)
index 0000000..7297c92
--- /dev/null
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
+<TITLE>
+lejos.rcxcomm Class Hierarchy (leJOS NXT API documentation)
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="lejos.rcxcomm Class Hierarchy (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/remote/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package lejos.rcxcomm
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm"><B>LLC</B></A><LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>PacketHandler</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>LLCHandler</B></A><LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>LLCReliableHandler</B></A></UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>RCXAbstractPort</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>RCXPort</B></A></UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm"><B>Serial</B></A></UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="../../lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>Opcode</B></A></UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/nxt/remote/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/rcxcomm/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 13a30e6..4eb3247 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Activity (leJOS NXT API documentation)
 </TITLE>
index 4962995..5da1cbe 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 ActivityBase (leJOS NXT API documentation)
 </TITLE>
index 9b2b348..4bf3941 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Arbitrator (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/Arbitrator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Arbitrator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -241,7 +241,7 @@ public void <B>start</B>()</PRE>
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/Arbitrator.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Arbitrator.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Arbitrator2.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Arbitrator2.html
new file mode 100644 (file)
index 0000000..3714d1b
--- /dev/null
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Arbitrator2 (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.subsumption.Arbitrator2 class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Arbitrator2 (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/subsumption/Arbitrator2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Arbitrator2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.subsumption</FONT>
+<BR>
+Class Arbitrator2</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.subsumption.Arbitrator2</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>Arbitrator2</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Arbitrator2 controls which behavior should currently be active in 
+ a behavior control system.  This implementation is simpler than the original, but the behaviors it uses must implement 
+ the Behavior2 interface. In this architecture, when a behavior wants control, it must call  arbitrator.wantControl();
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>1  27-sept 2007</DD>
+<DT><B>Author:</B></DT>
+  <DD>Roger Glassey  (after Brian Bagnall)</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/subsumption/Arbitrator2.html#Arbitrator2(lejos.subsumption.Behavior2[])">Arbitrator2</A></B>(<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A>[]&nbsp;behaviors)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allocates an Arbitrator2 object and initializes it with an array of
+ Behavior2 objects.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/subsumption/Arbitrator2.html#start()">start</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method starts the arbitration of Behaviors.<br>
+ It iterates over the array of behaviors, highest priority first.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/subsumption/Arbitrator2.html#wantControl(lejos.subsumption.Behavior2)">wantControl</A></B>(<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A>&nbsp;theBehavior)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If the behavior that sent this message has higher priority than the active behavior,
+  the active behavior is suppressed.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="Arbitrator2(lejos.subsumption.Behavior2[])"><!-- --></A><H3>
+Arbitrator2</H3>
+<PRE>
+public <B>Arbitrator2</B>(<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A>[]&nbsp;behaviors)</PRE>
+<DL>
+<DD>Allocates an Arbitrator2 object and initializes it with an array of
+ Behavior2 objects.  
+  The largest  index in the Behavior array will have the
+ highest priority level, and hence will suppress all lower priority
+ behaviors if it calls  wantContorol on this. 
+ The new arbitrator  calls setArbitrator() on each Behavior to 
+ establish the call back link.  The Behaviors in an Arbitrator can not
+ be changed once the arbitrator is initialized.<br>
+ <b>NOTE:</b> Once the Arbitrator is initialized, the method go() must be
+ called to begin the arbitration.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>behaviors</CODE> - An array of Behavior objects. The behavior of largest index has the highest proiroty.</DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="start()"><!-- --></A><H3>
+start</H3>
+<PRE>
+public void <B>start</B>()</PRE>
+<DL>
+<DD>This method starts the arbitration of Behaviors.<br>
+ It iterates over the array of behaviors, highest priority first. and calls the takeControl() method. If  true  is 
+ returned, it calls action() on that behavior. When  the action() method returns (either because it was completed or it was suppressed) the search starts again.
+If no behavior returns true, this method exits.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="wantControl(lejos.subsumption.Behavior2)"><!-- --></A><H3>
+wantControl</H3>
+<PRE>
+public void <B>wantControl</B>(<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A>&nbsp;theBehavior)</PRE>
+<DL>
+<DD>If the behavior that sent this message has higher priority than the active behavior,
+  the active behavior is suppressed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theBehavior</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/subsumption/Arbitrator2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Arbitrator2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index efe9866..8d1d670 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 Behavior (leJOS NXT API documentation)
 </TITLE>
@@ -51,8 +51,8 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/subsumption/StopException.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/Behavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Behavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -87,6 +87,9 @@ DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHO
 lejos.subsumption</FONT>
 <BR>
 Interface Behavior</H2>
+<DL>
+<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A></DD>
+</DL>
 <HR>
 <DL>
 <DT><PRE>public interface <B>Behavior</B></DL>
@@ -253,8 +256,8 @@ void <B>suppress</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/subsumption/StopException.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/Behavior.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Behavior.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Behavior2.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/subsumption/Behavior2.html
new file mode 100644 (file)
index 0000000..dd85ccb
--- /dev/null
@@ -0,0 +1,244 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
+<TITLE>
+Behavior2 (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.subsumption.Behavior2 interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="Behavior2 (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/StopException.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/subsumption/Behavior2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Behavior2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.subsumption</FONT>
+<BR>
+Interface Behavior2</H2>
+<DL>
+<DT><B>All Superinterfaces:</B> <DD><A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption">Behavior</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public interface <B>Behavior2</B><DT>extends <A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption">Behavior</A></DL>
+</PRE>
+
+<P>
+This interface works with Aribtrator2. 
+ The Behavior2 interface represents an object embodying a specific
+ behavior belonging to a robot. Each behavior must define three things: <BR>
+ 1) The circumstances to make this behavior seize control of the robot.
+ e.g. When the touch sensor determines the robot has collided with an object.<br>
+ When this happens, the Behavior must inform the Arbitrator that is ready to take control.
+ It does this by calling  arbitrator.wantControl(this) and also by returning  true when the
+  arbitrator calls takeControl(); <br>
+ 2) The action to exhibit when this behavior takes control. 
+ e.g. Back up and turn.  The  action() method does this. <br>
+ 3) The actions to perform when another behavior has seized control from this
+ behavior. 
+ e.g. Stop the current movement and update coordinates.   The method suprews() does this. <BR>
+ 4)establish a call back path the arbitrator by implementing the setArbitrator() method. <BR> 
+ A behavior control system has one or more Behavior objects. When you have defined
+ these objects, create an array of them and use that array to initialize an
+ Arbitrator object.
+<P>
+
+<P>
+<DL>
+<DT><B>Version:</B></DT>
+  <DD>2  3-Dec - 2007</DD>
+<DT><B>Author:</B></DT>
+  <DD>Roger Glassey</DD>
+<DT><B>See Also:</B><DD><A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><CODE>Arbitrator2</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/subsumption/Behavior2.html#setArbitrator(lejos.subsumption.Arbitrator2)">setArbitrator</A></B>(<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>&nbsp;theArbitrator)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call back path so  Behavior2 can call  arbitrator.wantControl(this) when its takeControl state changes to true;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_lejos.subsumption.Behavior"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from interface lejos.subsumption.<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption">Behavior</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../lejos/subsumption/Behavior.html#action()">action</A>, <A HREF="../../lejos/subsumption/Behavior.html#suppress()">suppress</A>, <A HREF="../../lejos/subsumption/Behavior.html#takeControl()">takeControl</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="setArbitrator(lejos.subsumption.Arbitrator2)"><!-- --></A><H3>
+setArbitrator</H3>
+<PRE>
+void <B>setArbitrator</B>(<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A>&nbsp;theArbitrator)</PRE>
+<DL>
+<DD>call back path so  Behavior2 can call  arbitrator.wantControl(this) when its takeControl state changes to true;
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>theArbitrator</CODE> - </DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/StopException.html" title="class in lejos.subsumption"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/subsumption/Behavior2.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="Behavior2.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
index 9f75cd2..7870e3e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:01 GMT 2008 -->
 <TITLE>
 StopException (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;NEXT CLASS</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/StopException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -203,7 +203,7 @@ public <B>StopException</B>()</PRE>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;NEXT CLASS</FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/StopException.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 6595172..1da1474 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.subsumption (leJOS NXT API documentation)
 </TITLE>
@@ -23,7 +23,9 @@ lejos.subsumption (leJOS NXT API documentation)
 Interfaces</FONT>&nbsp;
 <FONT CLASS="FrameItemFont">
 <BR>
-<A HREF="Behavior.html" title="interface in lejos.subsumption" target="classFrame"><I>Behavior</I></A></FONT></TD>
+<A HREF="Behavior.html" title="interface in lejos.subsumption" target="classFrame"><I>Behavior</I></A>
+<BR>
+<A HREF="Behavior2.html" title="interface in lejos.subsumption" target="classFrame"><I>Behavior2</I></A></FONT></TD>
 </TR>
 </TABLE>
 
@@ -38,7 +40,9 @@ Classes</FONT>&nbsp;
 <BR>
 <A HREF="ActivityBase.html" title="class in lejos.subsumption" target="classFrame">ActivityBase</A>
 <BR>
-<A HREF="Arbitrator.html" title="class in lejos.subsumption" target="classFrame">Arbitrator</A></FONT></TD>
+<A HREF="Arbitrator.html" title="class in lejos.subsumption" target="classFrame">Arbitrator</A>
+<BR>
+<A HREF="Arbitrator2.html" title="class in lejos.subsumption" target="classFrame">Arbitrator2</A></FONT></TD>
 </TR>
 </TABLE>
 
index 2500b9d..6e2b58e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.subsumption (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/comm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -95,6 +95,10 @@ Support for subsumption architecture.
 <TD>The Behavior interface represents an object embodying a specific
  behavior belonging to a robot.</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption">Behavior2</A></B></TD>
+<TD>This interface works with Aribtrator2.</TD>
+</TR>
 </TABLE>
 &nbsp;
 
@@ -118,6 +122,11 @@ Support for subsumption architecture.
 <TD>Arbitrator controls which behavior should currently be active in 
  a behavior control system.</TD>
 </TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption">Arbitrator2</A></B></TD>
+<TD>Arbitrator2 controls which behavior should currently be active in 
+ a behavior control system.</TD>
+</TR>
 </TABLE>
 &nbsp;
 
@@ -181,7 +190,7 @@ Two different methods of supporting subsumption are available:<br/>
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/comm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 24972ec..e9ff0b9 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.subsumption Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -50,7 +50,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/comm/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/package-tree.html"><B>PREV</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -87,7 +87,7 @@ Class Hierarchy
 </H2>
 <UL>
 <LI TYPE="circle">java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang"><B>Object</B></A><UL>
-<LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>Arbitrator</B></A><LI TYPE="circle">java.lang.<A HREF="../../java/lang/Thread.html" title="class in java.lang"><B>Thread</B></A><UL>
+<LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>Arbitrator</B></A><LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>Arbitrator2</B></A><LI TYPE="circle">java.lang.<A HREF="../../java/lang/Thread.html" title="class in java.lang"><B>Thread</B></A><UL>
 <LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption"><B>ActivityBase</B></A><UL>
 <LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Activity.html" title="class in lejos.subsumption"><B>Activity</B></A></UL>
 </UL>
@@ -101,7 +101,9 @@ Class Hierarchy
 Interface Hierarchy
 </H2>
 <UL>
-<LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>Behavior</B></A></UL>
+<LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>Behavior</B></A><UL>
+<LI TYPE="circle">lejos.subsumption.<A HREF="../../lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>Behavior2</B></A></UL>
+</UL>
 <HR>
 
 
@@ -131,7 +133,7 @@ Interface Hierarchy
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/comm/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/rcxcomm/package-tree.html"><B>PREV</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/package-tree.html"><B>NEXT</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/subsumption/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index b744317..e5c4f63 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 AbstractRecyclable (leJOS NXT API documentation)
 </TITLE>
index a8b0792..dc3ce91 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 ArrayRecycler (leJOS NXT API documentation)
 </TITLE>
index bd4407e..822c8e8 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Assertion (leJOS NXT API documentation)
 </TITLE>
@@ -52,7 +52,7 @@ function windowTitle()
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/util/ArrayRecycler.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/util/Recyclable.html" title="interface in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/util/Assertion.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Assertion.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
@@ -258,7 +258,7 @@ public static void <B>testEQ</B>(<A HREF="../../java/lang/String.html" title="cl
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
 &nbsp;<A HREF="../../lejos/util/ArrayRecycler.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/util/Recyclable.html" title="interface in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/util/Assertion.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Assertion.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/ButtonCounter.html b/nxtOSEK/lejos_nxj/docs/apidocs/lejos/util/ButtonCounter.html
new file mode 100644 (file)
index 0000000..dd88dc0
--- /dev/null
@@ -0,0 +1,417 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
+<TITLE>
+ButtonCounter (leJOS NXT API documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="lejos.util.ButtonCounter class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ButtonCounter (leJOS NXT API documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/util/ButtonCounter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ButtonCounter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+lejos.util</FONT>
+<BR>
+Class ButtonCounter</H2>
+<PRE>
+<A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.util.ButtonCounter</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>ButtonCounter</B><DT>extends <A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+This is class is for data entry using the NXT keyboard.
+Counts number of presses of left and right buttons <br>
+Press ENTER together with together with LEFT  or RIGHT to decrease the count. 
+Press ESCAPE or ENTER alone to end counting. 
+Displays the count as it is entered, and makes a sound with each button press.
+Stores the count in public fields
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Roger Glassey 8/20/07</DD>
+</DL>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#_leftCount">_leftCount</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output only not used in calculations; use after count() returns;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#_rightCount">_rightCount</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output only not used in calculations ; use this value after count() returns;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#ButtonCounter()">ButtonCounter</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#count()">count</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;called by count( string)</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#count(java.lang.String)">count</A></B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Start counting; parameter string is displayed; use it to identify this  particular call <br>
+returns when ESC or ENTER button is pressed <br>
+Hold Enter and left or right to decrease count,  otherwise it increases <br>
+counters are reset when this method is called.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#count(java.lang.String, int, int)">count</A></B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s,
+      int&nbsp;left,
+      int&nbsp;right)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes values of left count and right count.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#getLeftCount()">getLeftCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use this method after counting is complete;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../lejos/util/ButtonCounter.html#getRightCount()">getRightCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use this method after counting is complete;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html" title="class in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="_rightCount"><!-- --></A><H3>
+_rightCount</H3>
+<PRE>
+public int <B>_rightCount</B></PRE>
+<DL>
+<DD>Output only not used in calculations ; use this value after count() returns;
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="_leftCount"><!-- --></A><H3>
+_leftCount</H3>
+<PRE>
+public int <B>_leftCount</B></PRE>
+<DL>
+<DD>Output only not used in calculations; use after count() returns;
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="ButtonCounter()"><!-- --></A><H3>
+ButtonCounter</H3>
+<PRE>
+public <B>ButtonCounter</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="getRightCount()"><!-- --></A><H3>
+getRightCount</H3>
+<PRE>
+public int <B>getRightCount</B>()</PRE>
+<DL>
+<DD>Use this method after counting is complete;
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>value of right count.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLeftCount()"><!-- --></A><H3>
+getLeftCount</H3>
+<PRE>
+public int <B>getLeftCount</B>()</PRE>
+<DL>
+<DD>Use this method after counting is complete;
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>value of left count.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="count(java.lang.String)"><!-- --></A><H3>
+count</H3>
+<PRE>
+public void <B>count</B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s)</PRE>
+<DL>
+<DD>Start counting; parameter string is displayed; use it to identify this  particular call <br>
+returns when ESC or ENTER button is pressed <br>
+Hold Enter and left or right to decrease count,  otherwise it increases <br>
+counters are reset when this method is called.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="count()"><!-- --></A><H3>
+count</H3>
+<PRE>
+public void <B>count</B>()</PRE>
+<DL>
+<DD>called by count( string)
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="count(java.lang.String, int, int)"><!-- --></A><H3>
+count</H3>
+<PRE>
+public void <B>count</B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>&nbsp;s,
+                  int&nbsp;left,
+                  int&nbsp;right)</PRE>
+<DL>
+<DD>Initializes values of left count and right count.
+ Displays parameter   s   ; sets _leftcount = left,  _rightCount = right
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../index.html?lejos/util/ButtonCounter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ButtonCounter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+
+</BODY>
+</HTML>
@@ -2,12 +2,12 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:09 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Datalogger (leJOS NXT API documentation)
 </TITLE>
 
-<META NAME="keywords" CONTENT="lejos.nxt.Datalogger class">
+<META NAME="keywords" CONTENT="lejos.util.Datalogger class">
 
 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">
 
@@ -51,10 +51,10 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Recyclable.html" title="interface in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?lejos/nxt/Datalogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?lejos/util/Datalogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Datalogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
@@ -84,12 +84,12 @@ DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&n
 <!-- ======== START OF CLASS DATA ======== -->
 <H2>
 <FONT SIZE="-1">
-lejos.nxt</FONT>
+lejos.util</FONT>
 <BR>
 Class Datalogger</H2>
 <PRE>
 <A HREF="../../java/lang/Object.html" title="class in java.lang">java.lang.Object</A>
-  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.nxt.Datalogger</B>
+  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>lejos.util.Datalogger</B>
 </PRE>
 <HR>
 <DL>
@@ -116,7 +116,7 @@ Datalogger class; stores float values then  then transmits  via bluetooth or usb
 <B>Constructor Summary</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../lejos/nxt/Datalogger.html#Datalogger()">Datalogger</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../lejos/util/Datalogger.html#Datalogger()">Datalogger</A></B>()</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
@@ -133,16 +133,8 @@ Datalogger class; stores float values then  then transmits  via bluetooth or usb
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Datalogger.html#main(java.lang.String[])">main</A></B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>[]&nbsp;args)</CODE>
-
-<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to test the DL object</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Datalogger.html#reset()">reset</A></B>()</CODE>
+<TD><CODE><B><A HREF="../../lejos/util/Datalogger.html#reset()">reset</A></B>()</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the log; next write is at the beginning;</TD>
@@ -150,7 +142,7 @@ Datalogger class; stores float values then  then transmits  via bluetooth or usb
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Datalogger.html#transmit(boolean)">transmit</A></B>(boolean&nbsp;useUSB)</CODE>
+<TD><CODE><B><A HREF="../../lejos/util/Datalogger.html#transmit(boolean)">transmit</A></B>(boolean&nbsp;useUSB)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transmit the stored values to the PC via USB or bluetooth;<br>
@@ -159,7 +151,7 @@ Datalogger class; stores float values then  then transmits  via bluetooth or usb
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>&nbsp;void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../lejos/nxt/Datalogger.html#writeLog(float)">writeLog</A></B>(float&nbsp;v)</CODE>
+<TD><CODE><B><A HREF="../../lejos/util/Datalogger.html#writeLog(float)">writeLog</A></B>(float&nbsp;v)</CODE>
 
 <BR>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write a float  value to the log</TD>
@@ -244,19 +236,6 @@ public void <B>transmit</B>(boolean&nbsp;useUSB)</PRE>
 <DT><B>Parameters:</B><DD><CODE>useUSB</CODE> - if false, uses Bluetooth</DL>
 </DD>
 </DL>
-<HR>
-
-<A NAME="main(java.lang.String[])"><!-- --></A><H3>
-main</H3>
-<PRE>
-public static void <B>main</B>(<A HREF="../../java/lang/String.html" title="class in java.lang">String</A>[]&nbsp;args)</PRE>
-<DL>
-<DD>to test the DL object
-<P>
-<DD><DL>
-</DL>
-</DD>
-</DL>
 <!-- ========= END OF CLASS DATA ========= -->
 <HR>
 
@@ -287,10 +266,10 @@ public static void <B>main</B>(<A HREF="../../java/lang/String.html" title="clas
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>PREV CLASS</B></A>&nbsp;
-&nbsp;<A HREF="../../lejos/nxt/Flash.html" title="class in lejos.nxt"><B>NEXT CLASS</B></A></FONT></TD>
+&nbsp;<A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Recyclable.html" title="interface in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-  <A HREF="../../index.html?lejos/nxt/Datalogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+  <A HREF="../../index.html?lejos/util/Datalogger.html" target="_top"><B>FRAMES</B></A>  &nbsp;
 &nbsp;<A HREF="Datalogger.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
 &nbsp;<SCRIPT type="text/javascript">
   <!--
index 814be05..41ce655 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Recyclable (leJOS NXT API documentation)
 </TITLE>
@@ -51,7 +51,7 @@ function windowTitle()
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/RecyclableArray.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/util/Recyclable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
@@ -244,7 +244,7 @@ void <B>setNextRecyclable</B>(<A HREF="../../lejos/util/Recyclable.html" title="
 
 <TR>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
-&nbsp;<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util"><B>PREV CLASS</B></A>&nbsp;
 &nbsp;<A HREF="../../lejos/util/RecyclableArray.html" title="class in lejos.util"><B>NEXT CLASS</B></A></FONT></TD>
 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
   <A HREF="../../index.html?lejos/util/Recyclable.html" target="_top"><B>FRAMES</B></A>  &nbsp;
index 57c6a3d..5950132 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 RecyclableArray (leJOS NXT API documentation)
 </TITLE>
index 90a6ba3..fa372da 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Recycler (leJOS NXT API documentation)
 </TITLE>
index 4c24228..8df158e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Timer (leJOS NXT API documentation)
 </TITLE>
index e41473a..b34cfe8 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:08 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 TimerListener (leJOS NXT API documentation)
 </TITLE>
@@ -87,9 +87,6 @@ DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHO
 lejos.util</FONT>
 <BR>
 Interface TimerListener</H2>
-<DL>
-<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../lejos/nxt/Motor.html" title="class in lejos.nxt">Motor</A></DD>
-</DL>
 <HR>
 <DL>
 <DT><PRE>public interface <B>TimerListener</B></DL>
index 6998258..48adc16 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.util (leJOS NXT API documentation)
 </TITLE>
@@ -42,6 +42,10 @@ Classes</FONT>&nbsp;
 <BR>
 <A HREF="Assertion.html" title="class in lejos.util" target="classFrame">Assertion</A>
 <BR>
+<A HREF="ButtonCounter.html" title="class in lejos.util" target="classFrame">ButtonCounter</A>
+<BR>
+<A HREF="Datalogger.html" title="class in lejos.util" target="classFrame">Datalogger</A>
+<BR>
 <A HREF="RecyclableArray.html" title="class in lejos.util" target="classFrame">RecyclableArray</A>
 <BR>
 <A HREF="Recycler.html" title="class in lejos.util" target="classFrame">Recycler</A>
index bb4b289..f3b50fa 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.util (leJOS NXT API documentation)
 </TITLE>
@@ -121,6 +121,15 @@ More utility classes
 <TD>Class used in debugging to test assertions.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util">ButtonCounter</A></B></TD>
+<TD>This is class is for data entry using the NXT keyboard.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util">Datalogger</A></B></TD>
+<TD>Datalogger class; stores float values then  then transmits  via bluetooth or usb<br>
+ works with DataViewer   in pctools.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="15%"><B><A HREF="../../lejos/util/RecyclableArray.html" title="class in lejos.util">RecyclableArray</A></B></TD>
 <TD>A recyclable array.</TD>
 </TR>
index 34b8795..a81232e 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 lejos.util Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -90,7 +90,7 @@ Class Hierarchy
 <LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/AbstractRecyclable.html" title="class in lejos.util"><B>AbstractRecyclable</B></A> (implements lejos.util.<A HREF="../../lejos/util/Recyclable.html" title="interface in lejos.util">Recyclable</A>)
 <UL>
 <LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/RecyclableArray.html" title="class in lejos.util"><B>RecyclableArray</B></A></UL>
-<LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>Assertion</B></A><LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Recycler.html" title="class in lejos.util"><B>Recycler</B></A><UL>
+<LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Assertion.html" title="class in lejos.util"><B>Assertion</B></A><LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/ButtonCounter.html" title="class in lejos.util"><B>ButtonCounter</B></A><LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Datalogger.html" title="class in lejos.util"><B>Datalogger</B></A><LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Recycler.html" title="class in lejos.util"><B>Recycler</B></A><UL>
 <LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/ArrayRecycler.html" title="class in lejos.util"><B>ArrayRecycler</B></A></UL>
 <LI TYPE="circle">lejos.util.<A HREF="../../lejos/util/Timer.html" title="class in lejos.util"><B>Timer</B></A></UL>
 </UL>
index a06c10b..8e08284 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:02 GMT 2008 -->
 <TITLE>
 Overview (leJOS NXT API documentation)
 </TITLE>
@@ -30,7 +30,7 @@ Overview (leJOS NXT API documentation)
 <FONT size="+1" CLASS="FrameHeadingFont">
 Packages</FONT>
 <BR>
-<FONT CLASS="FrameItemFont"><A HREF="package-frame.html" target="packageFrame">&lt;unnamed package></A></FONT>
+<FONT CLASS="FrameItemFont"><A HREF="java/awt/package-frame.html" target="packageFrame">java.awt</A></FONT>
 <BR>
 <FONT CLASS="FrameItemFont"><A HREF="java/io/package-frame.html" target="packageFrame">java.io</A></FONT>
 <BR>
@@ -48,6 +48,10 @@ Packages</FONT>
 <BR>
 <FONT CLASS="FrameItemFont"><A HREF="lejos/nxt/comm/package-frame.html" target="packageFrame">lejos.nxt.comm</A></FONT>
 <BR>
+<FONT CLASS="FrameItemFont"><A HREF="lejos/nxt/remote/package-frame.html" target="packageFrame">lejos.nxt.remote</A></FONT>
+<BR>
+<FONT CLASS="FrameItemFont"><A HREF="lejos/rcxcomm/package-frame.html" target="packageFrame">lejos.rcxcomm</A></FONT>
+<BR>
 <FONT CLASS="FrameItemFont"><A HREF="lejos/subsumption/package-frame.html" target="packageFrame">lejos.subsumption</A></FONT>
 <BR>
 <FONT CLASS="FrameItemFont"><A HREF="lejos/util/package-frame.html" target="packageFrame">lejos.util</A></FONT>
index 2673d36..d60f471 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:04 GMT 2008 -->
 <TITLE>
 Overview (leJOS NXT API documentation)
 </TITLE>
@@ -82,6 +82,10 @@ function windowTitle()
 <B>Packages</B></FONT></TH>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="java/awt/package-summary.html">java.awt</A></B></TD>
+<TD>Minimal AWT package for Rectangle class</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="20%"><B><A HREF="java/io/package-summary.html">java.io</A></B></TD>
 <TD>Input/Output support</TD>
 </TR>
@@ -114,6 +118,14 @@ function windowTitle()
 <TD>NXT communication classes</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="lejos/nxt/remote/package-summary.html">lejos.nxt.remote</A></B></TD>
+<TD>Remote NXT access over Bluetooth</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="20%"><B><A HREF="lejos/rcxcomm/package-summary.html">lejos.rcxcomm</A></B></TD>
+<TD>Emulation of RCX communication classes</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <TD WIDTH="20%"><B><A HREF="lejos/subsumption/package-summary.html">lejos.subsumption</A></B></TD>
 <TD>Support for subsumption architecture.</TD>
 </TR>
index 7f25308..7f1f179 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 Class Hierarchy (leJOS NXT API documentation)
 </TITLE>
@@ -79,7 +79,7 @@ function windowTitle()
 Hierarchy For All Packages</H2>
 </CENTER>
 <DL>
-<DT><B>Package Hierarchies:</B><DD><A HREF="java/io/package-tree.html">java.io</A>, <A HREF="java/lang/package-tree.html">java.lang</A>, <A HREF="java/util/package-tree.html">java.util</A>, <A HREF="javax/microedition/io/package-tree.html">javax.microedition.io</A>, <A HREF="javax/microedition/lcdui/package-tree.html">javax.microedition.lcdui</A>, <A HREF="lejos/navigation/package-tree.html">lejos.navigation</A>, <A HREF="lejos/nxt/package-tree.html">lejos.nxt</A>, <A HREF="lejos/nxt/comm/package-tree.html">lejos.nxt.comm</A>, <A HREF="lejos/subsumption/package-tree.html">lejos.subsumption</A>, <A HREF="lejos/util/package-tree.html">lejos.util</A></DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="java/awt/package-tree.html">java.awt</A>, <A HREF="java/io/package-tree.html">java.io</A>, <A HREF="java/lang/package-tree.html">java.lang</A>, <A HREF="java/util/package-tree.html">java.util</A>, <A HREF="javax/microedition/io/package-tree.html">javax.microedition.io</A>, <A HREF="javax/microedition/lcdui/package-tree.html">javax.microedition.lcdui</A>, <A HREF="lejos/navigation/package-tree.html">lejos.navigation</A>, <A HREF="lejos/nxt/package-tree.html">lejos.nxt</A>, <A HREF="lejos/nxt/comm/package-tree.html">lejos.nxt.comm</A>, <A HREF="lejos/nxt/remote/package-tree.html">lejos.nxt.remote</A>, <A HREF="lejos/rcxcomm/package-tree.html">lejos.rcxcomm</A>, <A HREF="lejos/subsumption/package-tree.html">lejos.subsumption</A>, <A HREF="lejos/util/package-tree.html">lejos.util</A></DL>
 <HR>
 <H2>
 Class Hierarchy
@@ -89,40 +89,54 @@ Class Hierarchy
 <LI TYPE="circle">lejos.util.<A HREF="lejos/util/AbstractRecyclable.html" title="class in lejos.util"><B>AbstractRecyclable</B></A> (implements lejos.util.<A HREF="lejos/util/Recyclable.html" title="interface in lejos.util">Recyclable</A>)
 <UL>
 <LI TYPE="circle">lejos.util.<A HREF="lejos/util/RecyclableArray.html" title="class in lejos.util"><B>RecyclableArray</B></A></UL>
-<LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>Arbitrator</B></A><LI TYPE="circle">java.util.<A HREF="java/util/ArrayList.html" title="class in java.util"><B>ArrayList</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Assertion.html" title="class in lejos.util"><B>Assertion</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Battery.html" title="class in lejos.nxt"><B>Battery</B></A><LI TYPE="circle">java.util.<A HREF="java/util/BitSet.html" title="class in java.util"><B>BitSet</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm"><B>Bluetooth</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm"><B>BTConnection</B></A> (implements javax.microedition.io.<A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A>)
+<LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Arbitrator.html" title="class in lejos.subsumption"><B>Arbitrator</B></A><LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Arbitrator2.html" title="class in lejos.subsumption"><B>Arbitrator2</B></A><LI TYPE="circle">java.util.<A HREF="java/util/ArrayList.html" title="class in java.util"><B>ArrayList</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Assertion.html" title="class in lejos.util"><B>Assertion</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/BasicMotor.html" title="class in lejos.nxt"><B>BasicMotor</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>RCXMotor</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Battery.html" title="class in lejos.nxt"><B>Battery</B></A><LI TYPE="circle">java.util.<A HREF="java/util/BitSet.html" title="class in java.util"><B>BitSet</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/Bluetooth.html" title="class in lejos.nxt.comm"><B>Bluetooth</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTConnection.html" title="class in lejos.nxt.comm"><B>BTConnection</B></A> (implements javax.microedition.io.<A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io">StreamConnection</A>)
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTRemoteDevice.html" title="class in lejos.nxt.comm"><B>BTRemoteDevice</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Button.html" title="class in lejos.nxt"><B>Button</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
-<LI TYPE="circle">java.lang.<A HREF="java/lang/Class.html" title="class in java.lang"><B>Class</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Command.html" title="class in javax.microedition.lcdui"><B>Command</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Datalogger.html" title="class in lejos.nxt"><B>Datalogger</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui"><B>Display</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui"><B>Displayable</B></A><UL>
+<LI TYPE="circle">lejos.util.<A HREF="lejos/util/ButtonCounter.html" title="class in lejos.util"><B>ButtonCounter</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Class.html" title="class in java.lang"><B>Class</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Command.html" title="class in javax.microedition.lcdui"><B>Command</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Datalogger.html" title="class in lejos.util"><B>Datalogger</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/Debug.html" title="class in lejos.nxt.comm"><B>Debug</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/DeviceInfo.html" title="class in lejos.nxt.comm"><B>DeviceInfo</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Display.html" title="class in javax.microedition.lcdui"><B>Display</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Displayable.html" title="class in javax.microedition.lcdui"><B>Displayable</B></A><UL>
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Screen.html" title="class in javax.microedition.lcdui"><B>Screen</B></A><UL>
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Alert.html" title="class in javax.microedition.lcdui"><B>Alert</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Form.html" title="class in javax.microedition.lcdui"><B>Form</B></A> (implements javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/CommandListener.html" title="interface in javax.microedition.lcdui">CommandListener</A>)
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/List.html" title="class in javax.microedition.lcdui"><B>List</B></A> (implements javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui">Choice</A>)
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/TextBox.html" title="class in javax.microedition.lcdui"><B>TextBox</B></A></UL>
 </UL>
-<LI TYPE="circle">java.io.<A HREF="java/io/File.html" title="class in java.io"><B>File</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Float.html" title="class in java.lang"><B>Float</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Font.html" title="class in javax.microedition.lcdui"><B>Font</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui"><B>Graphics</B></A><LI TYPE="circle">java.util.<A HREF="java/util/Hashtable.html" title="class in java.util"><B>Hashtable</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">java.io.<A HREF="java/io/File.html" title="class in java.io"><B>File</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/FirmwareInfo.html" title="class in lejos.nxt.comm"><B>FirmwareInfo</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Flash.html" title="class in lejos.nxt"><B>Flash</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Float.html" title="class in java.lang"><B>Float</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Font.html" title="class in javax.microedition.lcdui"><B>Font</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Graphics.html" title="class in javax.microedition.lcdui"><B>Graphics</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/GyroSensor.html" title="class in lejos.nxt"><B>GyroSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">java.util.<A HREF="java/util/Hashtable.html" title="class in java.util"><B>Hashtable</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/I2CSensor.html" title="class in lejos.nxt"><B>I2CSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
 <UL>
-<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>ColorSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>CompassSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ColorSensor.html" title="class in lejos.nxt"><B>ColorSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/CompassSensor.html" title="class in lejos.nxt"><B>CompassSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/IRSeeker.html" title="class in lejos.nxt"><B>IRSeeker</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/NXTCam.html" title="class in lejos.nxt"><B>NXTCam</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXLink.html" title="class in lejos.nxt"><B>RCXLink</B></A> (implements lejos.rcxcomm.<A HREF="lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm">Opcode</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXMotorMultiplexer.html" title="class in lejos.nxt"><B>RCXMotorMultiplexer</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/TiltSensor.html" title="class in lejos.nxt"><B>TiltSensor</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/UltrasonicSensor.html" title="class in lejos.nxt"><B>UltrasonicSensor</B></A></UL>
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Image.html" title="class in javax.microedition.lcdui"><B>Image</B></A><LI TYPE="circle">java.io.<A HREF="java/io/InputStream.html" title="class in java.io"><B>InputStream</B></A><UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTInputStream.html" title="class in lejos.nxt.comm"><B>BTInputStream</B></A><LI TYPE="circle">java.io.<A HREF="java/io/DataInputStream.html" title="class in java.io"><B>DataInputStream</B></A><LI TYPE="circle">java.io.<A HREF="java/io/FileInputStream.html" title="class in java.io"><B>FileInputStream</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/USBInputStream.html" title="class in lejos.nxt.comm"><B>USBInputStream</B></A></UL>
-<LI TYPE="circle">java.lang.<A HREF="java/lang/Integer.html" title="class in java.lang"><B>Integer</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui"><B>Item</B></A><UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/InputValues.html" title="class in lejos.nxt.comm"><B>InputValues</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Integer.html" title="class in java.lang"><B>Integer</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Item.html" title="class in javax.microedition.lcdui"><B>Item</B></A><UL>
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/ChoiceGroup.html" title="class in javax.microedition.lcdui"><B>ChoiceGroup</B></A> (implements javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui">Choice</A>)
 <LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Gauge.html" title="class in javax.microedition.lcdui"><B>Gauge</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Spacer.html" title="class in javax.microedition.lcdui"><B>Spacer</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/StringItem.html" title="class in javax.microedition.lcdui"><B>StringItem</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/TextField.html" title="class in javax.microedition.lcdui"><B>TextField</B></A></UL>
 <LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LCD.html" title="class in lejos.nxt"><B>LCD</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/LCP.html" title="class in lejos.nxt.comm"><B>LCP</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LightSensor.html" title="class in lejos.nxt"><B>LightSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
-<LI TYPE="circle">java.lang.<A HREF="java/lang/Math.html" title="class in java.lang"><B>Math</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Motor.html" title="class in lejos.nxt"><B>Motor</B></A> (implements lejos.util.<A HREF="lejos/util/TimerListener.html" title="interface in lejos.util">TimerListener</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>MotorPort</B></A><LI TYPE="circle"><A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;"><B>NXTServerSocket</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NXTSocket</B></A><LI TYPE="circle">java.io.<A HREF="java/io/OutputStream.html" title="class in java.io"><B>OutputStream</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/LLC.html" title="class in lejos.rcxcomm"><B>LLC</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Math.html" title="class in java.lang"><B>Math</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/MotorPort.html" title="class in lejos.nxt"><B>MotorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTComm.html" title="class in lejos.nxt.comm"><B>NXTComm</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTCommand.html" title="class in lejos.nxt.comm"><B>NXTCommand</B></A> (implements lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTServerSocket.html" title="class in lejos.nxt.comm"><B>NXTServerSocket</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTSocket.html" title="class in lejos.nxt.comm"><B>NXTSocket</B></A><LI TYPE="circle">java.io.<A HREF="java/io/OutputStream.html" title="class in java.io"><B>OutputStream</B></A><UL>
 <LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/BTOutputStream.html" title="class in lejos.nxt.comm"><B>BTOutputStream</B></A><LI TYPE="circle">java.io.<A HREF="java/io/DataOutputStream.html" title="class in java.io"><B>DataOutputStream</B></A><LI TYPE="circle">java.io.<A HREF="java/io/FileOutputStream.html" title="class in java.io"><B>FileOutputStream</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/USBOutputStream.html" title="class in lejos.nxt.comm"><B>USBOutputStream</B></A></UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/PacketHandler.html" title="class in lejos.rcxcomm"><B>PacketHandler</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/LLCHandler.html" title="class in lejos.rcxcomm"><B>LLCHandler</B></A><LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/LLCReliableHandler.html" title="class in lejos.rcxcomm"><B>LLCReliableHandler</B></A></UL>
 <LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/Pilot.html" title="class in lejos.navigation"><B>Pilot</B></A><UL>
 <LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/CompassPilot.html" title="class in lejos.navigation"><B>CompassPilot</B></A></UL>
-<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Poll.html" title="class in lejos.nxt"><B>Poll</B></A><LI TYPE="circle">java.util.<A HREF="java/util/Random.html" title="class in java.util"><B>Random</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>RCXLightSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXMotor.html" title="class in lejos.nxt"><B>RCXMotor</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Recycler.html" title="class in lejos.util"><B>Recycler</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Poll.html" title="class in lejos.nxt"><B>Poll</B></A><LI TYPE="circle">java.util.<A HREF="java/util/Random.html" title="class in java.util"><B>Random</B></A><LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/RCXAbstractPort.html" title="class in lejos.rcxcomm"><B>RCXAbstractPort</B></A><UL>
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/RCXPort.html" title="class in lejos.rcxcomm"><B>RCXPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXLightSensor.html" title="class in lejos.nxt"><B>RCXLightSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXPlexedMotorPort.html" title="class in lejos.nxt"><B>RCXPlexedMotorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/RCXRemoteMotorPort.html" title="class in lejos.nxt"><B>RCXRemoteMotorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+<LI TYPE="circle">java.awt.<A HREF="java/awt/Rectangle.html" title="class in java.awt"><B>Rectangle</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Recycler.html" title="class in lejos.util"><B>Recycler</B></A><UL>
 <LI TYPE="circle">lejos.util.<A HREF="lejos/util/ArrayRecycler.html" title="class in lejos.util"><B>ArrayRecycler</B></A></UL>
-<LI TYPE="circle">java.lang.<A HREF="java/lang/Runtime.html" title="class in java.lang"><B>Runtime</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
-<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Sound.html" title="class in lejos.nxt"><B>Sound</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>SoundSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
-<LI TYPE="circle"><A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;"><B>StartUpText</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/String.html" title="class in java.lang"><B>String</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/StringBuffer.html" title="class in java.lang"><B>StringBuffer</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/StringUtils.html" title="class in java.lang"><B>StringUtils</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/System.html" title="class in java.lang"><B>System</B></A><LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/TachoNavigator.html" title="class in lejos.navigation"><B>TachoNavigator</B></A> (implements lejos.navigation.<A HREF="lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A>)
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="lejos/nxt/remote/RemoteBattery.html" title="class in lejos.nxt.remote"><B>RemoteBattery</B></A> (implements lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="lejos/nxt/remote/RemoteMotorPort.html" title="class in lejos.nxt.remote"><B>RemoteMotorPort</B></A> (implements lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>, lejos.nxt.<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt">TachoMotorPort</A>)
+<LI TYPE="circle">lejos.nxt.remote.<A HREF="lejos/nxt/remote/RemoteNXT.html" title="class in lejos.nxt.remote"><B>RemoteNXT</B></A><LI TYPE="circle">lejos.nxt.remote.<A HREF="lejos/nxt/remote/RemoteSensorPort.html" title="class in lejos.nxt.remote"><B>RemoteSensorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt">ADSensorPort</A>, lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm">NXTProtocol</A>)
+<LI TYPE="circle">java.lang.<A HREF="java/lang/Runtime.html" title="class in java.lang"><B>Runtime</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorPort.html" title="class in lejos.nxt"><B>SensorPort</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/I2CPort.html" title="interface in lejos.nxt">I2CPort</A>, lejos.nxt.<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt">LegacySensorPort</A>, lejos.nxt.<A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt">ListenerCaller</A>)
+<LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/Serial.html" title="class in lejos.rcxcomm"><B>Serial</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Sound.html" title="class in lejos.nxt"><B>Sound</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SoundSensor.html" title="class in lejos.nxt"><B>SoundSensor</B></A> (implements lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt">SensorConstants</A>)
+<LI TYPE="circle">java.lang.<A HREF="java/lang/String.html" title="class in java.lang"><B>String</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/StringBuffer.html" title="class in java.lang"><B>StringBuffer</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/StringUtils.html" title="class in java.lang"><B>StringUtils</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/System.html" title="class in java.lang"><B>System</B></A><LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/TachoNavigator.html" title="class in lejos.navigation"><B>TachoNavigator</B></A> (implements lejos.navigation.<A HREF="lejos/navigation/Navigator.html" title="interface in lejos.navigation">Navigator</A>)
 <UL>
 <LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/CompassNavigator.html" title="class in lejos.navigation"><B>CompassNavigator</B></A></UL>
 <LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/TextMenu.html" title="class in lejos.nxt"><B>TextMenu</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Thread.html" title="class in java.lang"><B>Thread</B></A><UL>
 <LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/ActivityBase.html" title="class in lejos.subsumption"><B>ActivityBase</B></A><UL>
 <LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Activity.html" title="class in lejos.subsumption"><B>Activity</B></A></UL>
-</UL>
+<LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/LCPBTResponder.html" title="class in lejos.nxt.comm"><B>LCPBTResponder</B></A></UL>
 <LI TYPE="circle">java.lang.<A HREF="java/lang/Throwable.html" title="class in java.lang"><B>Throwable</B></A><UL>
 <LI TYPE="circle">java.lang.<A HREF="java/lang/Error.html" title="class in java.lang"><B>Error</B></A><UL>
 <LI TYPE="circle">java.lang.<A HREF="java/lang/NoClassDefFoundError.html" title="class in java.lang"><B>NoClassDefFoundError</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/NoSuchMethodError.html" title="class in java.lang"><B>NoSuchMethodError</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/OutOfMemoryError.html" title="class in java.lang"><B>OutOfMemoryError</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/StackOverflowError.html" title="class in java.lang"><B>StackOverflowError</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/ThreadDeath.html" title="class in java.lang"><B>ThreadDeath</B></A></UL>
@@ -141,7 +155,23 @@ Class Hierarchy
 Interface Hierarchy
 </H2>
 <UL>
-<LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>Behavior</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><B>ButtonListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui"><B>Choice</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Cloneable.html" title="interface in java.lang"><B>Cloneable</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/CommandListener.html" title="interface in javax.microedition.lcdui"><B>CommandListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/ItemCommandListener.html" title="interface in javax.microedition.lcdui"><B>ItemCommandListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/ItemStateListener.html" title="interface in javax.microedition.lcdui"><B>ItemStateListener</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>ListenerCaller</B></A><LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/Navigator.html" title="interface in lejos.navigation"><B>Navigator</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Recyclable.html" title="interface in lejos.util"><B>Recyclable</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A><LI TYPE="circle">java.io.<A HREF="java/io/Serializable.html" title="interface in java.io"><B>Serializable</B></A><LI TYPE="circle">javax.microedition.io.<A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io"><B>StreamConnection</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/TimerListener.html" title="interface in lejos.util"><B>TimerListener</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt"><B>BasicMotorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>TachoMotorPort</B></A> (also extends lejos.nxt.<A HREF="lejos/nxt/Tachometer.html" title="interface in lejos.nxt">Tachometer</A>)
+</UL>
+<LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Behavior.html" title="interface in lejos.subsumption"><B>Behavior</B></A><UL>
+<LI TYPE="circle">lejos.subsumption.<A HREF="lejos/subsumption/Behavior2.html" title="interface in lejos.subsumption"><B>Behavior2</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ButtonListener.html" title="interface in lejos.nxt"><B>ButtonListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/Choice.html" title="interface in javax.microedition.lcdui"><B>Choice</B></A><LI TYPE="circle">java.lang.<A HREF="java/lang/Cloneable.html" title="interface in java.lang"><B>Cloneable</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/CommandListener.html" title="interface in javax.microedition.lcdui"><B>CommandListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/ItemCommandListener.html" title="interface in javax.microedition.lcdui"><B>ItemCommandListener</B></A><LI TYPE="circle">javax.microedition.lcdui.<A HREF="javax/microedition/lcdui/ItemStateListener.html" title="interface in javax.microedition.lcdui"><B>ItemStateListener</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ListenerCaller.html" title="interface in lejos.nxt"><B>ListenerCaller</B></A><LI TYPE="circle">lejos.navigation.<A HREF="lejos/navigation/Navigator.html" title="interface in lejos.navigation"><B>Navigator</B></A><LI TYPE="circle">lejos.nxt.comm.<A HREF="lejos/nxt/comm/NXTProtocol.html" title="interface in lejos.nxt.comm"><B>NXTProtocol</B></A><LI TYPE="circle">lejos.rcxcomm.<A HREF="lejos/rcxcomm/Opcode.html" title="interface in lejos.rcxcomm"><B>Opcode</B></A><LI TYPE="circle">lejos.util.<A HREF="lejos/util/Recyclable.html" title="interface in lejos.util"><B>Recyclable</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorConstants.html" title="interface in lejos.nxt"><B>SensorConstants</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>ADSensorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/BasicSensorPort.html" title="interface in lejos.nxt"><B>BasicSensorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/ADSensorPort.html" title="interface in lejos.nxt"><B>ADSensorPort</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>I2CPort</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/I2CPort.html" title="interface in lejos.nxt"><B>I2CPort</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/LegacySensorPort.html" title="interface in lejos.nxt"><B>LegacySensorPort</B></A></UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/SensorPortListener.html" title="interface in lejos.nxt"><B>SensorPortListener</B></A><LI TYPE="circle">java.io.<A HREF="java/io/Serializable.html" title="interface in java.io"><B>Serializable</B></A><LI TYPE="circle">javax.microedition.io.<A HREF="javax/microedition/io/StreamConnection.html" title="interface in javax.microedition.io"><B>StreamConnection</B></A><LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/Tachometer.html" title="interface in lejos.nxt"><B>Tachometer</B></A><UL>
+<LI TYPE="circle">lejos.nxt.<A HREF="lejos/nxt/TachoMotorPort.html" title="interface in lejos.nxt"><B>TachoMotorPort</B></A> (also extends lejos.nxt.<A HREF="lejos/nxt/BasicMotorPort.html" title="interface in lejos.nxt">BasicMotorPort</A>)
+</UL>
+<LI TYPE="circle">lejos.util.<A HREF="lejos/util/TimerListener.html" title="interface in lejos.util"><B>TimerListener</B></A></UL>
 <HR>
 
 
diff --git a/nxtOSEK/lejos_nxj/docs/apidocs/package-frame.html b/nxtOSEK/lejos_nxj/docs/apidocs/package-frame.html
deleted file mode 100644 (file)
index a7e4ab3..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
-<TITLE>
-&lt;Unnamed&gt; (leJOS NXT API documentation)
-</TITLE>
-
-<META NAME="keywords" CONTENT="&lt;Unnamed&gt; package">
-
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-
-
-</HEAD>
-
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameTitleFont">
-<A HREF="package-summary.html" target="classFrame">&lt;Unnamed&gt;</A></FONT>
-<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
-<TR>
-<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
-Classes</FONT>&nbsp;
-<FONT CLASS="FrameItemFont">
-<BR>
-<A HREF="NXTServerSocket.html" title="class in &lt;Unnamed&gt;" target="classFrame">NXTServerSocket</A>
-<BR>
-<A HREF="StartUpText.html" title="class in &lt;Unnamed&gt;" target="classFrame">StartUpText</A></FONT></TD>
-</TR>
-</TABLE>
-
-
-</BODY>
-</HTML>
index c3787d9..228b3e8 100644 (file)
@@ -1,4 +1,4 @@
-
+java.awt
 java.io
 java.lang
 java.util
@@ -7,5 +7,7 @@ javax.microedition.lcdui
 lejos.navigation
 lejos.nxt
 lejos.nxt.comm
+lejos.nxt.remote
+lejos.rcxcomm
 lejos.subsumption
 lejos.util
index 5852592..37d9fb2 100644 (file)
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.5.0_09) on Sun Sep 02 23:07:10 BST 2007 -->
+<!-- Generated by javadoc (build 1.5.0_09) on Tue Jan 08 20:46:03 GMT 2008 -->
 <TITLE>
 Serialized Form (leJOS NXT API documentation)
 </TITLE>
@@ -83,6 +83,4300 @@ Serialized Form</H1>
 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
 <TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
 <TH ALIGN="center"><FONT SIZE="+2">
+<B>Package</B> <B>java.awt</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="java.awt.AWTEvent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.AWTEvent extends java.util.EventObject implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-1825314779160409405L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+bdata</H3>
+<PRE>
+byte[] <B>bdata</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+id</H3>
+<PRE>
+int <B>id</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+consumed</H3>
+<PRE>
+boolean <B>consumed</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.AWTKeyStroke"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.AWTKeyStroke extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-6430539691155161871L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readResolve()"><!-- --></A><H3>
+readResolve</H3>
+<PRE>
+protected <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> <B>readResolve</B>()
+                      throws java.io.ObjectStreamException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.io.ObjectStreamException</CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+keyChar</H3>
+<PRE>
+char <B>keyChar</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+keyCode</H3>
+<PRE>
+int <B>keyCode</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+modifiers</H3>
+<PRE>
+int <B>modifiers</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+onKeyRelease</H3>
+<PRE>
+boolean <B>onKeyRelease</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.AWTPermission"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.AWTPermission extends java.security.BasicPermission implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>8890392402588814465L
+
+<P>
+
+<P>
+<A NAME="java.awt.BorderLayout"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.BorderLayout extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-8658291919501921765L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+hgap</H3>
+<PRE>
+int <B>hgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+vgap</H3>
+<PRE>
+int <B>vgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+north</H3>
+<PRE>
+java.awt.Component <B>north</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+west</H3>
+<PRE>
+java.awt.Component <B>west</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+east</H3>
+<PRE>
+java.awt.Component <B>east</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+south</H3>
+<PRE>
+java.awt.Component <B>south</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+center</H3>
+<PRE>
+java.awt.Component <B>center</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+firstLine</H3>
+<PRE>
+java.awt.Component <B>firstLine</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+lastLine</H3>
+<PRE>
+java.awt.Component <B>lastLine</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+firstItem</H3>
+<PRE>
+java.awt.Component <B>firstItem</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+lastItem</H3>
+<PRE>
+java.awt.Component <B>lastItem</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Button"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Button extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-8774683716313001058L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+label</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>label</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+actionCommand</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>actionCommand</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+buttonSerializedDataVersion</H3>
+<PRE>
+int <B>buttonSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Button.AccessibleAWTButton"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Button.AccessibleAWTButton extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-5932203980244017102L
+
+<P>
+
+<P>
+<A NAME="java.awt.Canvas"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Canvas extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-2284879212465893870L
+
+<P>
+
+<P>
+<A NAME="java.awt.Canvas.AccessibleAWTCanvas"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Canvas.AccessibleAWTCanvas extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-6325592262103146699L
+
+<P>
+
+<P>
+<A NAME="java.awt.CardLayout"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.CardLayout extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4328196481005934313L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="java.awt.Checkbox"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Checkbox extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>7270714317450821763L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+label</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>label</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+state</H3>
+<PRE>
+boolean <B>state</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+group</H3>
+<PRE>
+java.awt.CheckboxGroup <B>group</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+checkboxSerializedDataVersion</H3>
+<PRE>
+int <B>checkboxSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Checkbox.AccessibleAWTCheckbox"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Checkbox.AccessibleAWTCheckbox extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>7881579233144754107L
+
+<P>
+
+<P>
+<A NAME="java.awt.CheckboxGroup"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.CheckboxGroup extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3729780091441768983L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+selectedCheckbox</H3>
+<PRE>
+java.awt.Checkbox <B>selectedCheckbox</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.CheckboxMenuItem"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.CheckboxMenuItem extends java.awt.MenuItem implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>6190621106981774043L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+state</H3>
+<PRE>
+boolean <B>state</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+checkboxMenuItemSerializedDataVersion</H3>
+<PRE>
+int <B>checkboxMenuItemSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.CheckboxMenuItem.AccessibleAWTCheckboxMenuItem"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.CheckboxMenuItem.AccessibleAWTCheckboxMenuItem extends java.awt.MenuItem.AccessibleAWTMenuItem implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-1122642964303476L
+
+<P>
+
+<P>
+<A NAME="java.awt.Choice"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Choice extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4075310674757313071L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+pItems</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>pItems</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+selectedIndex</H3>
+<PRE>
+int <B>selectedIndex</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+choiceSerializedDataVersion</H3>
+<PRE>
+int <B>choiceSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Choice.AccessibleAWTChoice"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Choice.AccessibleAWTChoice extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>7175603582428509322L
+
+<P>
+
+<P>
+<A NAME="java.awt.Color"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Color extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>118526816881161077L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+value</H3>
+<PRE>
+int <B>value</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+frgbvalue</H3>
+<PRE>
+float[] <B>frgbvalue</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+fvalue</H3>
+<PRE>
+float[] <B>fvalue</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+falpha</H3>
+<PRE>
+float <B>falpha</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+cs</H3>
+<PRE>
+java.awt.color.ColorSpace <B>cs</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Component"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Component extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-7644114512714619750L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+x</H3>
+<PRE>
+int <B>x</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+y</H3>
+<PRE>
+int <B>y</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+width</H3>
+<PRE>
+int <B>width</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+height</H3>
+<PRE>
+int <B>height</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+foreground</H3>
+<PRE>
+java.awt.Color <B>foreground</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+background</H3>
+<PRE>
+java.awt.Color <B>background</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+font</H3>
+<PRE>
+java.awt.Font <B>font</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+peerFont</H3>
+<PRE>
+java.awt.Font <B>peerFont</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+cursor</H3>
+<PRE>
+java.awt.Cursor <B>cursor</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+locale</H3>
+<PRE>
+java.util.Locale <B>locale</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+ignoreRepaint</H3>
+<PRE>
+boolean <B>ignoreRepaint</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+visible</H3>
+<PRE>
+boolean <B>visible</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+enabled</H3>
+<PRE>
+boolean <B>enabled</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+valid</H3>
+<PRE>
+boolean <B>valid</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+dropTarget</H3>
+<PRE>
+java.awt.dnd.DropTarget <B>dropTarget</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+popups</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>popups</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+name</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+nameExplicitlySet</H3>
+<PRE>
+boolean <B>nameExplicitlySet</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+focusable</H3>
+<PRE>
+boolean <B>focusable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+isFocusTraversableOverridden</H3>
+<PRE>
+int <B>isFocusTraversableOverridden</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+focusTraversalKeys</H3>
+<PRE>
+java.util.Set&lt;E&gt;[] <B>focusTraversalKeys</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+focusTraversalKeysEnabled</H3>
+<PRE>
+boolean <B>focusTraversalKeysEnabled</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minSize</H3>
+<PRE>
+java.awt.Dimension <B>minSize</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minSizeSet</H3>
+<PRE>
+boolean <B>minSizeSet</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+prefSize</H3>
+<PRE>
+java.awt.Dimension <B>prefSize</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+prefSizeSet</H3>
+<PRE>
+boolean <B>prefSizeSet</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+maxSize</H3>
+<PRE>
+java.awt.Dimension <B>maxSize</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+maxSizeSet</H3>
+<PRE>
+boolean <B>maxSizeSet</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+newEventsOnly</H3>
+<PRE>
+boolean <B>newEventsOnly</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+eventMask</H3>
+<PRE>
+long <B>eventMask</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+changeSupport</H3>
+<PRE>
+java.beans.PropertyChangeSupport <B>changeSupport</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+isPacked</H3>
+<PRE>
+boolean <B>isPacked</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+boundsOp</H3>
+<PRE>
+int <B>boundsOp</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+componentSerializedDataVersion</H3>
+<PRE>
+int <B>componentSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+accessibleContext</H3>
+<PRE>
+javax.accessibility.AccessibleContext <B>accessibleContext</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Component.AccessibleAWTComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Component.AccessibleAWTComponent extends javax.accessibility.AccessibleContext implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>642321655757800191L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+accessibleAWTComponentHandler</H3>
+<PRE>
+java.awt.event.ComponentListener <B>accessibleAWTComponentHandler</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+accessibleAWTFocusHandler</H3>
+<PRE>
+java.awt.event.FocusListener <B>accessibleAWTFocusHandler</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.ComponentOrientation"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.ComponentOrientation extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+orientation</H3>
+<PRE>
+int <B>orientation</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Container"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Container extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4613797578919906343L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+
+<P>
+<A NAME="java.awt.Container.AccessibleAWTContainer"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Container.AccessibleAWTContainer extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>5081320404842566097L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+accessibleContainerHandler</H3>
+<PRE>
+java.awt.event.ContainerListener <B>accessibleContainerHandler</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.ContainerOrderFocusTraversalPolicy"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.ContainerOrderFocusTraversalPolicy extends java.awt.FocusTraversalPolicy implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>486933713763926351L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+implicitDownCycleTraversal</H3>
+<PRE>
+boolean <B>implicitDownCycleTraversal</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Cursor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Cursor extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>8028237497568985504L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+type</H3>
+<PRE>
+int <B>type</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+name</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.DefaultFocusTraversalPolicy"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.DefaultFocusTraversalPolicy extends java.awt.ContainerOrderFocusTraversalPolicy implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="java.awt.Dialog"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Dialog extends java.awt.Window implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>5920926903803293709L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+resizable</H3>
+<PRE>
+boolean <B>resizable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+undecorated</H3>
+<PRE>
+boolean <B>undecorated</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+modal</H3>
+<PRE>
+boolean <B>modal</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+title</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>title</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Dialog.AccessibleAWTDialog"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Dialog.AccessibleAWTDialog extends java.awt.Window.AccessibleAWTWindow implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4837230331833941201L
+
+<P>
+
+<P>
+<A NAME="java.awt.Dimension"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Dimension extends java.awt.geom.Dimension2D implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4723952579491349524L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+width</H3>
+<PRE>
+int <B>width</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+height</H3>
+<PRE>
+int <B>height</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Event"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Event extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>5488922509400504703L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+target</H3>
+<PRE>
+<A HREF="java/lang/Object.html" title="class in java.lang">Object</A> <B>target</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+when</H3>
+<PRE>
+long <B>when</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+id</H3>
+<PRE>
+int <B>id</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+x</H3>
+<PRE>
+int <B>x</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+y</H3>
+<PRE>
+int <B>y</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+key</H3>
+<PRE>
+int <B>key</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+modifiers</H3>
+<PRE>
+int <B>modifiers</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+clickCount</H3>
+<PRE>
+int <B>clickCount</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+arg</H3>
+<PRE>
+<A HREF="java/lang/Object.html" title="class in java.lang">Object</A> <B>arg</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+evt</H3>
+<PRE>
+java.awt.Event <B>evt</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+consumed</H3>
+<PRE>
+boolean <B>consumed</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.FileDialog"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.FileDialog extends java.awt.Dialog implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>5035145889651310422L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+mode</H3>
+<PRE>
+int <B>mode</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+dir</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>dir</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+file</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>file</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+filter</H3>
+<PRE>
+java.io.FilenameFilter <B>filter</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.FlowLayout"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.FlowLayout extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-7262534875583282631L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+align</H3>
+<PRE>
+int <B>align</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+newAlign</H3>
+<PRE>
+int <B>newAlign</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+hgap</H3>
+<PRE>
+int <B>hgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+vgap</H3>
+<PRE>
+int <B>vgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+serialVersionOnStream</H3>
+<PRE>
+int <B>serialVersionOnStream</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Font"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Font extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4206021311591459213L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                         <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+fRequestedAttributes</H3>
+<PRE>
+<A HREF="java/util/Hashtable.html" title="class in java.util">Hashtable</A> <B>fRequestedAttributes</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+name</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+style</H3>
+<PRE>
+int <B>style</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+size</H3>
+<PRE>
+int <B>size</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+pointSize</H3>
+<PRE>
+float <B>pointSize</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+fontSerializedDataVersion</H3>
+<PRE>
+int <B>fontSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.FontMetrics"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.FontMetrics extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>1681126225205050147L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+font</H3>
+<PRE>
+java.awt.Font <B>font</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Frame"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Frame extends java.awt.Window implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>2673458971256075116L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+maximizedBounds</H3>
+<PRE>
+<A HREF="java/awt/Rectangle.html" title="class in java.awt">Rectangle</A> <B>maximizedBounds</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+title</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>title</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+menuBar</H3>
+<PRE>
+java.awt.MenuBar <B>menuBar</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+resizable</H3>
+<PRE>
+boolean <B>resizable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+undecorated</H3>
+<PRE>
+boolean <B>undecorated</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+mbManagement</H3>
+<PRE>
+boolean <B>mbManagement</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+state</H3>
+<PRE>
+int <B>state</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+ownedWindows</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>ownedWindows</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+frameSerializedDataVersion</H3>
+<PRE>
+int <B>frameSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Frame.AccessibleAWTFrame"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Frame.AccessibleAWTFrame extends java.awt.Window.AccessibleAWTWindow implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-6172960752956030250L
+
+<P>
+
+<P>
+<A NAME="java.awt.GraphicsConfigTemplate"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.GraphicsConfigTemplate extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
+<A NAME="java.awt.GridBagConstraints"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.GridBagConstraints extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-1000070633030801713L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+gridx</H3>
+<PRE>
+int <B>gridx</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+gridy</H3>
+<PRE>
+int <B>gridy</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+gridwidth</H3>
+<PRE>
+int <B>gridwidth</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+gridheight</H3>
+<PRE>
+int <B>gridheight</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+weightx</H3>
+<PRE>
+double <B>weightx</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+weighty</H3>
+<PRE>
+double <B>weighty</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+anchor</H3>
+<PRE>
+int <B>anchor</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+fill</H3>
+<PRE>
+int <B>fill</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+insets</H3>
+<PRE>
+java.awt.Insets <B>insets</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+ipadx</H3>
+<PRE>
+int <B>ipadx</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+ipady</H3>
+<PRE>
+int <B>ipady</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+tempX</H3>
+<PRE>
+int <B>tempX</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+tempY</H3>
+<PRE>
+int <B>tempY</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+tempWidth</H3>
+<PRE>
+int <B>tempWidth</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+tempHeight</H3>
+<PRE>
+int <B>tempHeight</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minWidth</H3>
+<PRE>
+int <B>minWidth</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minHeight</H3>
+<PRE>
+int <B>minHeight</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.GridBagLayout"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.GridBagLayout extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>8838754796412211005L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+comptable</H3>
+<PRE>
+<A HREF="java/util/Hashtable.html" title="class in java.util">Hashtable</A> <B>comptable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+defaultConstraints</H3>
+<PRE>
+java.awt.GridBagConstraints <B>defaultConstraints</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+layoutInfo</H3>
+<PRE>
+java.awt.GridBagLayoutInfo <B>layoutInfo</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+columnWidths</H3>
+<PRE>
+int[] <B>columnWidths</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+rowHeights</H3>
+<PRE>
+int[] <B>rowHeights</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+columnWeights</H3>
+<PRE>
+double[] <B>columnWeights</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+rowWeights</H3>
+<PRE>
+double[] <B>rowWeights</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.GridLayout"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.GridLayout extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+hgap</H3>
+<PRE>
+int <B>hgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+vgap</H3>
+<PRE>
+int <B>vgap</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+rows</H3>
+<PRE>
+int <B>rows</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+cols</H3>
+<PRE>
+int <B>cols</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Insets"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Insets extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-2272572637695466749L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+top</H3>
+<PRE>
+int <B>top</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+left</H3>
+<PRE>
+int <B>left</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+bottom</H3>
+<PRE>
+int <B>bottom</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+right</H3>
+<PRE>
+int <B>right</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Label"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Label extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3094126758329070636L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+text</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>text</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+alignment</H3>
+<PRE>
+int <B>alignment</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Label.AccessibleAWTLabel"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Label.AccessibleAWTLabel extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-3568967560160480438L
+
+<P>
+
+<P>
+<A NAME="java.awt.List"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.List extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-3304312411574666869L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+items</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>items</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+rows</H3>
+<PRE>
+int <B>rows</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+multipleMode</H3>
+<PRE>
+boolean <B>multipleMode</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+selected</H3>
+<PRE>
+int[] <B>selected</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+visibleIndex</H3>
+<PRE>
+int <B>visibleIndex</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+listSerializedDataVersion</H3>
+<PRE>
+int <B>listSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.List.AccessibleAWTList"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.List.AccessibleAWTList extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>7924617370136012829L
+
+<P>
+
+<P>
+<A NAME="java.awt.List.AccessibleAWTList.AccessibleAWTListChild"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.List.AccessibleAWTList.AccessibleAWTListChild extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4412022926028300317L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+parent</H3>
+<PRE>
+java.awt.List <B>parent</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+indexInParent</H3>
+<PRE>
+int <B>indexInParent</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.MediaTracker"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MediaTracker extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-483174189758638095L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+target</H3>
+<PRE>
+java.awt.Component <B>target</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+head</H3>
+<PRE>
+java.awt.MediaEntry <B>head</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Menu"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Menu extends java.awt.MenuItem implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-8809584163345499784L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+items</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>items</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+tearOff</H3>
+<PRE>
+boolean <B>tearOff</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+isHelpMenu</H3>
+<PRE>
+boolean <B>isHelpMenu</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+menuSerializedDataVersion</H3>
+<PRE>
+int <B>menuSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Menu.AccessibleAWTMenu"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Menu.AccessibleAWTMenu extends java.awt.MenuItem.AccessibleAWTMenuItem implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>5228160894980069094L
+
+<P>
+
+<P>
+<A NAME="java.awt.MenuBar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuBar extends java.awt.MenuComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4930327919388951260L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                         <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+menus</H3>
+<PRE>
+<A HREF="java/util/Vector.html" title="class in java.util">Vector</A> <B>menus</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+helpMenu</H3>
+<PRE>
+java.awt.Menu <B>helpMenu</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+menuBarSerializedDataVersion</H3>
+<PRE>
+int <B>menuBarSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.MenuBar.AccessibleAWTMenuBar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuBar.AccessibleAWTMenuBar extends java.awt.MenuComponent.AccessibleAWTMenuComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-8577604491830083815L
+
+<P>
+
+<P>
+<A NAME="java.awt.MenuComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuComponent extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4536902356223894379L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+font</H3>
+<PRE>
+java.awt.Font <B>font</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+name</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+nameExplicitlySet</H3>
+<PRE>
+boolean <B>nameExplicitlySet</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+newEventsOnly</H3>
+<PRE>
+boolean <B>newEventsOnly</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+accessibleContext</H3>
+<PRE>
+javax.accessibility.AccessibleContext <B>accessibleContext</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.MenuComponent.AccessibleAWTMenuComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuComponent.AccessibleAWTMenuComponent extends javax.accessibility.AccessibleContext implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4269533416223798698L
+
+<P>
+
+<P>
+<A NAME="java.awt.MenuItem"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuItem extends java.awt.MenuComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-21757335363267194L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+enabled</H3>
+<PRE>
+boolean <B>enabled</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+label</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>label</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+actionCommand</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>actionCommand</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+eventMask</H3>
+<PRE>
+long <B>eventMask</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+shortcut</H3>
+<PRE>
+java.awt.MenuShortcut <B>shortcut</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+menuItemSerializedDataVersion</H3>
+<PRE>
+int <B>menuItemSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.MenuItem.AccessibleAWTMenuItem"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuItem.AccessibleAWTMenuItem extends java.awt.MenuComponent.AccessibleAWTMenuComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-217847831945965825L
+
+<P>
+
+<P>
+<A NAME="java.awt.MenuShortcut"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.MenuShortcut extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>143448358473180225L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+key</H3>
+<PRE>
+int <B>key</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+usesShift</H3>
+<PRE>
+boolean <B>usesShift</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Panel"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Panel extends java.awt.Container implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-2728009084054400034L
+
+<P>
+
+<P>
+<A NAME="java.awt.Panel.AccessibleAWTPanel"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Panel.AccessibleAWTPanel extends java.awt.Container.AccessibleAWTContainer implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-6409552226660031050L
+
+<P>
+
+<P>
+<A NAME="java.awt.Point"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Point extends java.awt.geom.Point2D implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-5276940640259749850L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+x</H3>
+<PRE>
+int <B>x</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+y</H3>
+<PRE>
+int <B>y</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Polygon"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Polygon extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-6460061437900069969L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+npoints</H3>
+<PRE>
+int <B>npoints</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+xpoints</H3>
+<PRE>
+int[] <B>xpoints</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+ypoints</H3>
+<PRE>
+int[] <B>ypoints</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+bounds</H3>
+<PRE>
+<A HREF="java/awt/Rectangle.html" title="class in java.awt">Rectangle</A> <B>bounds</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.PopupMenu"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.PopupMenu extends java.awt.Menu implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4620452533522760060L
+
+<P>
+
+<P>
+<A NAME="java.awt.PopupMenu.AccessibleAWTPopupMenu"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.PopupMenu.AccessibleAWTPopupMenu extends java.awt.Menu.AccessibleAWTMenu implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-4282044795947239955L
+
+<P>
+
+<P>
+<A NAME="java.awt.Scrollbar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Scrollbar extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>8451667562882310543L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+value</H3>
+<PRE>
+int <B>value</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+maximum</H3>
+<PRE>
+int <B>maximum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minimum</H3>
+<PRE>
+int <B>minimum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+visibleAmount</H3>
+<PRE>
+int <B>visibleAmount</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+orientation</H3>
+<PRE>
+int <B>orientation</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+lineIncrement</H3>
+<PRE>
+int <B>lineIncrement</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+pageIncrement</H3>
+<PRE>
+int <B>pageIncrement</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+scrollbarSerializedDataVersion</H3>
+<PRE>
+int <B>scrollbarSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Scrollbar.AccessibleAWTScrollBar"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Scrollbar.AccessibleAWTScrollBar extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-344337268523697807L
+
+<P>
+
+<P>
+<A NAME="java.awt.ScrollPane"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.ScrollPane extends java.awt.Container implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>7956609840827222915L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+scrollbarDisplayPolicy</H3>
+<PRE>
+int <B>scrollbarDisplayPolicy</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+vAdjustable</H3>
+<PRE>
+java.awt.ScrollPaneAdjustable <B>vAdjustable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+hAdjustable</H3>
+<PRE>
+java.awt.ScrollPaneAdjustable <B>hAdjustable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+wheelScrollingEnabled</H3>
+<PRE>
+boolean <B>wheelScrollingEnabled</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.ScrollPane.AccessibleAWTScrollPane"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.ScrollPane.AccessibleAWTScrollPane extends java.awt.Container.AccessibleAWTContainer implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>6100703663886637L
+
+<P>
+
+<P>
+<A NAME="java.awt.ScrollPaneAdjustable"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.ScrollPaneAdjustable extends <A HREF="java/lang/Object.html" title="class in java.lang">Object</A> implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-3359745691033257079L
+
+<P>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+sp</H3>
+<PRE>
+java.awt.ScrollPane <B>sp</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+orientation</H3>
+<PRE>
+int <B>orientation</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+value</H3>
+<PRE>
+int <B>value</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+minimum</H3>
+<PRE>
+int <B>minimum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+maximum</H3>
+<PRE>
+int <B>maximum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+visibleAmount</H3>
+<PRE>
+int <B>visibleAmount</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+unitIncrement</H3>
+<PRE>
+int <B>unitIncrement</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+blockIncrement</H3>
+<PRE>
+int <B>blockIncrement</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+adjustmentListener</H3>
+<PRE>
+java.awt.event.AdjustmentListener <B>adjustmentListener</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.SystemColor"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.SystemColor extends java.awt.Color implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4503142729533789064L
+
+<P>
+
+<P>
+<A NAME="java.awt.TextArea"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextArea extends java.awt.TextComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3692302836626095722L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+rows</H3>
+<PRE>
+int <B>rows</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+columns</H3>
+<PRE>
+int <B>columns</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+scrollbarVisibility</H3>
+<PRE>
+int <B>scrollbarVisibility</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+textAreaSerializedDataVersion</H3>
+<PRE>
+int <B>textAreaSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.TextArea.AccessibleAWTTextArea"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextArea.AccessibleAWTTextArea extends java.awt.TextComponent.AccessibleAWTTextComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3472827823632144419L
+
+<P>
+
+<P>
+<A NAME="java.awt.TextComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextComponent extends java.awt.Component implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-2214773872412987419L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+text</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>text</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+editable</H3>
+<PRE>
+boolean <B>editable</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+selectionStart</H3>
+<PRE>
+int <B>selectionStart</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+selectionEnd</H3>
+<PRE>
+int <B>selectionEnd</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+backgroundSetByClientCode</H3>
+<PRE>
+boolean <B>backgroundSetByClientCode</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+textComponentSerializedDataVersion</H3>
+<PRE>
+int <B>textComponentSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+checkForEnableIM</H3>
+<PRE>
+boolean <B>checkForEnableIM</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.TextComponent.AccessibleAWTTextComponent"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextComponent.AccessibleAWTTextComponent extends java.awt.Component.AccessibleAWTComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>3631432373506317811L
+
+<P>
+
+<P>
+<A NAME="java.awt.TextField"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextField extends java.awt.TextComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>-2966288784432217853L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+columns</H3>
+<PRE>
+int <B>columns</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+echoChar</H3>
+<PRE>
+char <B>echoChar</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+textFieldSerializedDataVersion</H3>
+<PRE>
+int <B>textFieldSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.TextField.AccessibleAWTTextField"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.TextField.AccessibleAWTTextField extends java.awt.TextComponent.AccessibleAWTTextComponent implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>6219164359235943158L
+
+<P>
+
+<P>
+<A NAME="java.awt.Window"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Window extends java.awt.Container implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4497834738069338734L
+
+<P>
+<A NAME="serialized_methods"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialization Methods</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<A NAME="readObject(java.io.ObjectInputStream)"><!-- --></A><H3>
+readObject</H3>
+<PRE>
+private void <B>readObject</B>(java.io.ObjectInputStream&nbsp;arg0)
+                 throws <A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A>,
+                        <A HREF="java/io/IOException.html" title="class in java.io">IOException</A>,
+                        java.awt.HeadlessException</PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/lang/ClassNotFoundException.html" title="class in java.lang">ClassNotFoundException</A></CODE>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE>
+<DD><CODE>java.awt.HeadlessException</CODE></DD>
+</DL>
+</DL>
+<HR>
+<A NAME="writeObject(java.io.ObjectOutputStream)"><!-- --></A><H3>
+writeObject</H3>
+<PRE>
+private void <B>writeObject</B>(java.io.ObjectOutputStream&nbsp;arg0)
+                  throws <A HREF="java/io/IOException.html" title="class in java.io">IOException</A></PRE>
+<DL>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="java/io/IOException.html" title="class in java.io">IOException</A></CODE></DD>
+</DL>
+</DL>
+<A NAME="serializedForm"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Serialized Fields</B></FONT></TH>
+</TR>
+</TABLE>
+
+<H3>
+warningString</H3>
+<PRE>
+<A HREF="java/lang/String.html" title="class in java.lang">String</A> <B>warningString</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+syncLWRequests</H3>
+<PRE>
+boolean <B>syncLWRequests</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+state</H3>
+<PRE>
+int <B>state</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+alwaysOnTop</H3>
+<PRE>
+boolean <B>alwaysOnTop</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+focusMgr</H3>
+<PRE>
+java.awt.FocusManager <B>focusMgr</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+focusableWindowState</H3>
+<PRE>
+boolean <B>focusableWindowState</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+windowSerializedDataVersion</H3>
+<PRE>
+int <B>windowSerializedDataVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+<H3>
+locationByPlatform</H3>
+<PRE>
+boolean <B>locationByPlatform</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<P>
+<A NAME="java.awt.Window.AccessibleAWTWindow"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class java.awt.Window.AccessibleAWTWindow extends java.awt.Container.AccessibleAWTContainer implements Serializable</B></FONT></TH>
+</TR>
+</TABLE>
+
+<P>
+<B>serialVersionUID:&nbsp;</B>4215068635060671780L
+
+<P>
+<HR SIZE="4" NOSHADE>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="center"><FONT SIZE="+2">
 <B>Package</B> <B>java.io</B></FONT></TH>
 </TR>
 </TABLE>
index 3fd4a3e..2443302 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/lib/classes.jar and b/nxtOSEK/lejos_nxj/lib/classes.jar differ
index e1a3aef..6705c9b 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/lib/jtools.jar and b/nxtOSEK/lejos_nxj/lib/jtools.jar differ
index f1ecb2f..06e9652 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/lib/pccomm.jar and b/nxtOSEK/lejos_nxj/lib/pccomm.jar differ
index c21f5a1..bc6df76 100644 (file)
Binary files a/nxtOSEK/lejos_nxj/lib/pctools.jar and b/nxtOSEK/lejos_nxj/lib/pctools.jar differ
index 5d78e37..f7200dc 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <classpath>\r
-       <classpathentry excluding="BTReceive/|BTSend/|BumperCar/|ColorDetector/|CompassTest/|ExceptionTest/|HelloWorld/|Line/|Listen/|MemoryTest/|PerformanceTest/|PilotTester/|SonicTest/|SpeedTest/|Subsumption1/|Subsumption2/|TiltTest/|Tune/|USBReceive/|USBSend/|View/|GraphicsSample/|SocketTest/|TimeTest/|SocketServer/|BTConnectTest/|SoundSample/|LCDUI/" kind="src" path=""/>\r
+       <classpathentry excluding="BTReceive/|BTSend/|BumperCar/|ColorDetector/|CompassTest/|ExceptionTest/|HelloWorld/|Line/|Listen/|MemoryTest/|PerformanceTest/|PilotTester/|SonicTest/|SpeedTest/|Subsumption1/|Subsumption2/|TiltTest/|Tune/|USBReceive/|USBSend/|View/|GraphicsSample/|SocketTest/|TimeTest/|SocketServer/|BTConnectTest/|SoundSample/|LCDUI/|DLTest/|RCXMMTest/|RCXLinkTest/|LLCTest/|RCXRemote/|RCXRemoteMotor/|SerialTest/|RCXEmulator/|LLCMonitor/|RCXPortTest/|SignalTest/|BlueStats/|RemoteMotor/|MonitorTest/|NXTCamTest/|RemoteNXTTest/" kind="src" path=""/>\r
+       <classpathentry kind="src" path="DLTest"/>\r
        <classpathentry kind="src" path="LCDUI"/>\r
        <classpathentry kind="src" path="SoundSample"/>\r
        <classpathentry kind="src" path="GraphicsSample"/>\r
        <classpathentry kind="src" path="TimeTest"/>\r
        <classpathentry kind="src" path="SocketServer"/>\r
        <classpathentry kind="src" path="BTConnectTest"/>\r
+       <classpathentry kind="src" path="RCXMMTest"/>\r
+       <classpathentry kind="src" path="RCXRemote"/>\r
+       <classpathentry kind="src" path="RCXRemoteMotor"/>\r
+       <classpathentry kind="src" path="RCXEmulator"/>\r
+       <classpathentry kind="src" path="LLCMonitor"/>\r
+       <classpathentry kind="src" path="RCXPortTest"/>\r
+       <classpathentry kind="src" path="SignalTest"/>\r
+       <classpathentry kind="src" path="BlueStats"/>\r
+       <classpathentry kind="src" path="MonitorTest"/>\r
+       <classpathentry kind="src" path="NXTCamTest"/>\r
+       <classpathentry kind="src" path="RemoteNXTTest"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
        <classpathentry kind="lib" path="/classes/lib/classes.jar"/>\r
        <classpathentry kind="lib" path="/pccomms/lib/pccomm.jar"/>\r
index 6618bc0..43b2113 100644 (file)
@@ -4,17 +4,55 @@ import lejos.nxt.*;
 import lejos.nxt.comm.*;\r
 import java.io.*;\r
 \r
+/**\r
+ * \r
+ * Test of NXT to NXT Bluetooth comms.\r
+ * \r
+ * Connects to another NXT, sends 100 ints, and receives the \r
+ * replies. Then closes the connection and shuts down.\r
+ * \r
+ * Works with the BTReceive sample running on the slave NXT.\r
+ * \r
+ * Change the name string to the name of your slave NXT, and make sure\r
+ * it is in the known devices list of the master NXT. To do this, turn\r
+ * on the slave NXT and make sure Bluetooth is on and the device\r
+ * is visible. Use the Bluetooth menu on the slave for this. Then,\r
+ * on the master, select the Bluetooth menu and then select Search.\r
+ * The name of the slave NXT should appear. Select Add to add\r
+ * it to the known devices of the master. You can check this has\r
+ * been done by selecting Devices from the Bluetooth menu on the\r
+ * master.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
 public class BTConnectTest {\r
        public static void main(String[] args) throws Exception {\r
                String name = "NXT";\r
                \r
-               LCD.drawString("Try to connect...", 0, 0);\r
+               LCD.drawString("Connecting...", 0, 0);\r
                LCD.refresh();\r
                \r
                BTRemoteDevice btrd = Bluetooth.getKnownDevice(name);\r
 \r
+               if (btrd == null) {\r
+                       LCD.clear();\r
+                       LCD.drawString("No such device", 0, 0);\r
+                       LCD.refresh();\r
+                       Thread.sleep(2000);\r
+                       System.exit(1);\r
+               }\r
+               \r
                BTConnection btc = Bluetooth.connect(btrd);\r
                \r
+               if (btc == null) {\r
+                       LCD.clear();\r
+                       LCD.drawString("Connect fail", 0, 0);\r
+                       LCD.refresh();\r
+                       Thread.sleep(2000);\r
+                       System.exit(1);\r
+               }\r
+               \r
                LCD.clear();\r
                LCD.drawString("Connected", 0, 0);\r
                LCD.refresh();\r
@@ -24,29 +62,38 @@ public class BTConnectTest {
                                \r
                for(int i=0;i<100;i++) {\r
                        try {\r
-                               LCD.drawInt(i*30000, 0, 2);\r
+                               LCD.drawInt(i*30000, 8, 0, 2);\r
                                LCD.refresh();\r
                                dos.writeInt(i*30000);\r
                                dos.flush();                    \r
                        } catch (IOException ioe) {\r
-                               LCD.drawString("Exception", 0, 0);\r
+                               LCD.drawString("Write Exception", 0, 0);\r
                                LCD.refresh();\r
                        }\r
                        \r
                        try {\r
-                               LCD.drawInt(dis.readInt(),0,3);\r
+                               LCD.drawInt(dis.readInt(),8, 0,3);\r
                                LCD.refresh();\r
                        } catch (IOException ioe) {\r
+                               LCD.drawString("Read Exception ", 0, 0);\r
+                               LCD.refresh();\r
                        }\r
                }\r
                \r
                try {\r
+                       LCD.drawString("Closing...    ", 0, 0);\r
+                       LCD.refresh();\r
                        dis.close();\r
                        dos.close();\r
                        btc.close();\r
                } catch (IOException ioe) {\r
+                       LCD.drawString("Close Exception", 0, 0);\r
+                       LCD.refresh();\r
                }\r
                \r
-               Button.ESCAPE.waitForPressAndRelease();\r
+               LCD.clear();\r
+               LCD.drawString("Finished",3, 4);\r
+               LCD.refresh();\r
+               Thread.sleep(2000);\r
        }\r
 }\r
diff --git a/nxtOSEK/lejos_nxj/samples/BTConnectTest/BTConnectTest.nxj b/nxtOSEK/lejos_nxj/samples/BTConnectTest/BTConnectTest.nxj
deleted file mode 100644 (file)
index 4eb608d..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/BTConnectTest/BTConnectTest.nxj and /dev/null differ
index 9482fd3..5a43945 100644 (file)
@@ -2,13 +2,25 @@ import lejos.nxt.*;
 import lejos.nxt.comm.*;
 import java.io.*;
 
+/**
+ * Receive data from another NXT, a PC, a phone, 
+ * or another bluetooth device.
+ * 
+ * Waits for a connection, receives an int and returns
+ * its negative as a reply, 100 times, and then closes
+ * the connection, and waits for a new one.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class BTReceive {
 
        public static void main(String [] args)  throws Exception 
        {
                String connected = "Connected";
-        String waiting = "Waiting";
-
+        String waiting = "Waiting...";
+        String closing = "Closing...";
+        
                while (true)
                {
                        LCD.drawString(waiting,0,0);
@@ -19,22 +31,24 @@ public class BTReceive {
                        LCD.clear();
                        LCD.drawString(connected,0,0);
                        LCD.refresh();  
-                       
-                       InputStream is = btc.openInputStream();
-                       OutputStream os = btc.openOutputStream();
-                       DataInputStream dis = new DataInputStream(is);
-                       DataOutputStream dos = new DataOutputStream(os);
+
+                       DataInputStream dis = btc.openDataInputStream();
+                       DataOutputStream dos = btc.openDataOutputStream();
                        
                        for(int i=0;i<100;i++) {
-                               int ii = dis.readInt();
-                               LCD.drawInt(ii,3,0,1);
+                               int n = dis.readInt();
+                               LCD.drawInt(n,7,0,1);
                                LCD.refresh();
-                               dos.writeInt(-ii);
+                               dos.writeInt(-n);
                                dos.flush();
                        }
                        
                        dis.close();
                        dos.close();
+                       Thread.sleep(100); // wait for data to drain
+                       LCD.clear();
+                       LCD.drawString(closing,0,0);
+                       LCD.refresh();
                        btc.close();
                        LCD.clear();
                }
diff --git a/nxtOSEK/lejos_nxj/samples/BTReceive/BTReceive.nxj b/nxtOSEK/lejos_nxj/samples/BTReceive/BTReceive.nxj
deleted file mode 100644 (file)
index ba64f53..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/BTReceive/BTReceive.nxj and /dev/null differ
index f98a019..6d34836 100644 (file)
@@ -1,6 +1,42 @@
 import lejos.pc.comm.*;
 import java.io.*;
 
+/**
+ * This is a PC sample. It connects to the NXT, and then
+ * sends an integer and waits for a reply, 100 times.
+ * 
+ * Compile this program with javac (not nxjc), and run it 
+ * with java.
+ * 
+ * You need pccomm.jar on the CLASSPATH. On Windows you
+ * will also need bluecove.jar on the CLASSPATH. On Linux, 
+ * you will need libjbluez.so on the Java library path.
+ * 
+ * Run the program by:
+ * 
+ *   java BTSend <name> <address>
+ *   
+ * where <name> is the name of your NXT, and <address> is
+ * its Bluetooth address. 
+ * 
+ * For example:
+ * 
+ *   java BTSend NXT 00:16:53:00:78:48
+ *   
+ * You can find the address for your NXT by running nxjbrowse
+ *  - this lists the name and address of each NXT it finds.
+ * 
+ * See the comment in the code on how to do a Bluetooth 
+ * inquiry to find your NXT, instead of using the address
+ * parameter.
+ * 
+ * Your NXT should be running a sample such as BTReceive or
+ * SignalTest. Run the NXT program first until it is
+ * waiting for a connection, and then run the PC program. 
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class BTSend {
        
        public static void main(String[] args) {
@@ -30,7 +66,13 @@ public class BTSend {
                
                System.out.println("Connecting to " + nxtInfo[0].btResourceString);
 
-               boolean opened = nxtComm.open(nxtInfo[0]); 
+               boolean opened = false;
+               
+               try {
+                       opened = nxtComm.open(nxtInfo[0]); 
+               } catch (NXTCommException e) {
+                       System.out.println("Exception from open");
+               }
                
                if (!opened) {
                        System.out.println("Failed to open " + nxtInfo[0].name);
@@ -47,25 +89,32 @@ public class BTSend {
                                
                for(int i=0;i<100;i++) {
                        try {
+                               System.out.println("Sending " + (i*30000));
                                dos.writeInt((i*30000));
                                dos.flush();                    
+                               
                        } catch (IOException ioe) {
-                               System.out.println("IO Exception writing bytes");
+                               System.out.println("IO Exception writing bytes:");
+                               System.out.println(ioe.getMessage());
+                               break;
                        }
                        
                        try {
                                System.out.println("Received " + dis.readInt());
                        } catch (IOException ioe) {
-                               System.out.println("IO Exception reading bytes");
+                               System.out.println("IO Exception reading bytes:");
+                               System.out.println(ioe.getMessage());
+                               break;
                        }
                }
                
                try {
                        dis.close();
-                       //dos.close(); Why does this prevent re-connection?
+                       dos.close();
                        nxtComm.close();
                } catch (IOException ioe) {
-                       System.out.println("IOException closing connection");
+                       System.out.println("IOException closing connection:");
+                       System.out.println(ioe.getMessage());
                }
        }
 }
diff --git a/nxtOSEK/lejos_nxj/samples/BlueStats/BlueStats.java b/nxtOSEK/lejos_nxj/samples/BlueStats/BlueStats.java
new file mode 100644 (file)
index 0000000..238a10b
--- /dev/null
@@ -0,0 +1,84 @@
+import lejos.nxt.*;\r
+import lejos.nxt.comm.*;\r
+\r
+/**\r
+ * BlueStats: display local device Bluetooth information.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class BlueStats {\r
+       public static void main(String[] args) {\r
+               String versionString = "BC4 version ";\r
+               String nameString = "Name";\r
+               String visString = "Visibility";\r
+               String statusString = "Status";\r
+               String portString = "Port Open";\r
+               String opString = "Op Mode";\r
+               String addrString = "Adr";\r
+               String connsString = "Conns";\r
+\r
+               while(!Button.ESCAPE.isPressed()) {\r
+                       byte[] name = Bluetooth.getFriendlyName();\r
+                       byte[] version = Bluetooth.getVersion();\r
+                       String fn = byteArrayToString(name);\r
+                       byte [] connections = Bluetooth.getConnectionStatus();\r
+                       String addr = getAddressString(Bluetooth.getLocalAddress());\r
+                       \r
+                       // Friendly name of local device\r
+                       LCD.drawString(nameString,0,0);\r
+                       LCD.drawString(fn, 5, 0);\r
+                       \r
+                       // Version of BlueCore software\r
+                       LCD.drawString(versionString + version[0] + "." + version[1],0,1);\r
+\r
+                       // Local address\r
+            LCD.drawString(addrString,0,2);\r
+                       LCD.drawString(addr, 4, 2);\r
+                       \r
+                       // Visibility\r
+                       LCD.drawString(visString, 0, 3);\r
+                       LCD.drawInt(Bluetooth.getVisibility(), 11, 3);\r
+                       \r
+                       // Status byte\r
+                       LCD.drawString(statusString, 0, 4);\r
+                       LCD.drawInt(Bluetooth.getStatus() & 0xFF, 7, 4);\r
+                       \r
+                       // Connections\r
+                       LCD.drawString(connsString, 0, 5);\r
+                       for(int i=0;i<4;i++) LCD.drawInt(connections[i], 2, 5 + i*3, 5);\r
+\r
+                       // Port open\r
+                       LCD.drawString(portString, 0, 6);\r
+                       LCD.drawInt(Bluetooth.getPortOpen(), 10, 6);\r
+                       \r
+                       // Operating mode\r
+                       LCD.drawString(opString, 0, 7);\r
+                       LCD.drawInt(Bluetooth.getOperatingMode(), 8, 7);\r
+                       \r
+                       LCD.refresh();                  \r
+               }       \r
+    }\r
+       \r
+       private static String byteArrayToString(byte [] ba) {\r
+               StringBuffer sb = new StringBuffer(ba.length);\r
+               for(int i=0;i<ba.length;i++) {\r
+                       sb.append((char) ba[i]);\r
+               }\r
+               return sb.toString();\r
+       }\r
+\r
+       private static final char[] hexChars = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};\r
+\r
+       private static String getAddressString(byte [] addr) {\r
+               char[] caddr = new char[12];\r
+\r
+               for(int i=0; i<6; i++) {\r
+                       int nr = addr[i] & 0xFF;        \r
+                       caddr[i*2] = hexChars[nr & 0x0F];\r
+                       caddr[i*2+1] = hexChars[nr >> 4];\r
+               }\r
+               return new String(caddr, 0, 12);\r
+       }\r
+\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/BlueStats/build.xml b/nxtOSEK/lejos_nxj/samples/BlueStats/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
index 7c9f038..b357629 100644 (file)
@@ -1,6 +1,16 @@
 import lejos.subsumption.*;
 import lejos.nxt.*;
 
+/**
+ * Demonstration of the Behavior subsumption classes.
+ * 
+ * Requires a wheeled vehicle with two independently controlled
+ * motors connected to motor ports A and C, and a touch
+ * sensor connected to sensor  port 2.
+ * 
+ * @author Brian Bagnall and Lawrie Griffiths
+ *
+ */
 public class BumperCar {
    public static void main(String [] args) {
       Behavior b1 = new DriveForward();
diff --git a/nxtOSEK/lejos_nxj/samples/BumperCar/BumperCar.nxj b/nxtOSEK/lejos_nxj/samples/BumperCar/BumperCar.nxj
deleted file mode 100644 (file)
index 7a1023c..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/BumperCar/BumperCar.nxj and /dev/null differ
index 2c5f0bc..3e6cdc4 100644 (file)
@@ -10,19 +10,23 @@ public class ColorDetector {
        \r
        public static void main(String [] args) throws Exception {\r
                ColorSensor cmps = new ColorSensor(SensorPort.S1);\r
+               String color = "Color";\r
+               String r = "R";\r
+               String g = "G";\r
+               String b = "B";\r
                \r
                while(!Button.ESCAPE.isPressed()) {\r
                        LCD.clear();\r
                        LCD.drawString(cmps.getProductID(), 0, 0);\r
                        LCD.drawString(cmps.getSensorType(), 0, 1);\r
                        LCD.drawString(cmps.getVersion(), 9, 1);\r
-                       LCD.drawString("Color", 0, 3);\r
+                       LCD.drawString(color, 0, 3);\r
                        LCD.drawInt((int)cmps.getColorNumber(),7,3);\r
-                       LCD.drawString("R", 0, 5);\r
+                       LCD.drawString(r, 0, 5);\r
                        LCD.drawInt((int)cmps.getRed(),1,5);\r
-                       LCD.drawString("G", 5, 5);\r
+                       LCD.drawString(g, 5, 5);\r
                        LCD.drawInt((int)cmps.getGreen(),6,5);\r
-                       LCD.drawString("B", 10, 5);\r
+                       LCD.drawString(b, 10, 5);\r
                        LCD.drawInt((int)cmps.getBlue(),11,5);\r
                        LCD.refresh();\r
                        Thread.sleep(INTERVAL);\r
diff --git a/nxtOSEK/lejos_nxj/samples/ColorDetector/ColorDetector.nxj b/nxtOSEK/lejos_nxj/samples/ColorDetector/ColorDetector.nxj
deleted file mode 100644 (file)
index 82060ff..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/ColorDetector/ColorDetector.nxj and /dev/null differ
index 3d570be..5884364 100644 (file)
@@ -1,15 +1,23 @@
 import lejos.nxt.*;
 
-       public class CompassTest {
-               
-               public static void main(String[] args) throws Exception {
-                       CompassSensor compass = new CompassSensor(SensorPort.S1);
-                                               
-                       while(!Button.ESCAPE.isPressed()) {
-                               LCD.clear();
-                               LCD.drawInt((int) compass.getDegrees(), 0, 0);
-                               LCD.refresh();
-                               Thread.sleep(500);
-                       }
-               }       
-       }
+/**
+ * Simple test of compass sensors.
+ * 
+ * Works with Mindsensors and HiTechnic compass sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+ public class CompassTest {
+       
+       public static void main(String[] args) throws Exception {
+               CompassSensor compass = new CompassSensor(SensorPort.S1);
+                                       
+               while(!Button.ESCAPE.isPressed()) {
+                       LCD.clear();
+                       LCD.drawInt((int) compass.getDegrees(), 0, 0);
+                       LCD.refresh();
+                       Thread.sleep(500);
+               }
+       }       
+}
diff --git a/nxtOSEK/lejos_nxj/samples/CompassTest/CompassTest.nxj b/nxtOSEK/lejos_nxj/samples/CompassTest/CompassTest.nxj
deleted file mode 100644 (file)
index 8667024..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/CompassTest/CompassTest.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/DLTest/DLTest.java b/nxtOSEK/lejos_nxj/samples/DLTest/DLTest.java
new file mode 100644 (file)
index 0000000..b5ff11a
--- /dev/null
@@ -0,0 +1,44 @@
+import lejos.nxt.*;\r
+import lejos.util.*;\r
+\r
+/**\r
+ * Test of the DataLogger class. Logs 600 floating point \r
+ * numbers and then transmits them to the PC.\r
+ * \r
+ * Run lejos.pc.tools.DataViewer on the PC to view the logged data.\r
+ * \r
+ * Once the program has transmitted data to the PC, it waits\r
+ * for a button press. Press ENTER to log and transmit more data,\r
+ * or ESCAPE to exit the program.\r
+ * \r
+ * The sample is set up to transmit over Bluetooth. To use\r
+ * USB, set the parameter to transmit to true;\r
+ * \r
+ * @author Roger Glassey and Lawrie Griffiths\r
+ *\r
+ */\r
+public class DLTest\r
+{\r
+   public static void main(String[] args)\r
+   {\r
+      int size =600;\r
+\r
+      Datalogger dl = new Datalogger();\r
+      boolean more = true;\r
+      while(more)\r
+      {\r
+         for(int i = 0 ; i<size; i++)\r
+         {\r
+            float x = i*0.5f;\r
+            dl.writeLog(x);\r
+         }\r
+         dl.transmit(false); \r
+         dl.reset();\r
+         LCD.clear();\r
+         LCD.drawString("more?",0,2);\r
+         LCD.refresh();\r
+         more = 1 == Button.waitForPress();\r
+      }\r
+   }\r
+}\r
+\r
diff --git a/nxtOSEK/lejos_nxj/samples/DLTest/build.xml b/nxtOSEK/lejos_nxj/samples/DLTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
index 8c00c17..f399807 100644 (file)
@@ -1,5 +1,17 @@
 import lejos.nxt.*;
 
+/**
+ * Simple test of leJOS exceptions.
+ * 
+ * This causes an ArrayIndexOutOdBoundsException.
+ * 
+ * Use the --verbose (-v) flag on nxj or nxjlink to see
+ * the values of classes and methods (signatures) for
+ * your program.
+ *  
+ * @author Lawrie Griffiths
+ *
+ */
 public class ExceptionTest {
        
        public static void main (String[] aArg)
diff --git a/nxtOSEK/lejos_nxj/samples/ExceptionTest/ExceptionTest.nxj b/nxtOSEK/lejos_nxj/samples/ExceptionTest/ExceptionTest.nxj
deleted file mode 100644 (file)
index fc1be93..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/ExceptionTest/ExceptionTest.nxj and /dev/null differ
index d615c67..5382287 100644 (file)
@@ -1,5 +1,14 @@
 import javax.microedition.lcdui.Graphics;
+import lejos.nxt.*;
 
+/**
+ * Simple demonstration of leJOS graphics.
+ * 
+ * see the LCDUI sample for more sophisticated graphics.
+ * 
+ * @author Brian Bagnall and Lawrie Griffiths
+ *
+ */
 public class GraphicsSample {
        
        public static void main(String [] options) throws Exception {
@@ -7,5 +16,6 @@ public class GraphicsSample {
                g.drawLine(5,5,60,60);
                g.drawRect(62, 10, 25, 35);
                g.refresh();
+               Button.waitForPress();
        }
 }
diff --git a/nxtOSEK/lejos_nxj/samples/GraphicsSample/GraphicsSample.nxj b/nxtOSEK/lejos_nxj/samples/GraphicsSample/GraphicsSample.nxj
deleted file mode 100644 (file)
index 47abdb4..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/GraphicsSample/GraphicsSample.nxj and /dev/null differ
index 3a8d765..6f5b347 100644 (file)
@@ -6,6 +6,6 @@ public class HelloWorld
   throws Exception
   {
      LCD.drawString("Hello World",3,4);
-     LCD.refresh();
+     Thread.sleep(2000);
   }
 }
diff --git a/nxtOSEK/lejos_nxj/samples/HelloWorld/HelloWorld.nxj b/nxtOSEK/lejos_nxj/samples/HelloWorld/HelloWorld.nxj
deleted file mode 100644 (file)
index 8b73e70..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/HelloWorld/HelloWorld.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/LCDUI/LCDUI.nxj b/nxtOSEK/lejos_nxj/samples/LCDUI/LCDUI.nxj
deleted file mode 100644 (file)
index 15536dc..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/LCDUI/LCDUI.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/LLCMonitor/LLCMonitor.java b/nxtOSEK/lejos_nxj/samples/LLCMonitor/LLCMonitor.java
new file mode 100644 (file)
index 0000000..958fca7
--- /dev/null
@@ -0,0 +1,31 @@
+import lejos.nxt.*;\r
+import lejos.rcxcomm.LLC;\r
+\r
+\r
+/**\r
+ * Shows Lego IR byes received on the LCD.\r
+ * \r
+ * Requires a Mindsensors NRLink adapter connected to\r
+ * sensor port S1.\r
+ * \r
+ * Point the RCX remote control at the NRLink and see\r
+ * the bytes received, or use any other Lego IR source. \r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */public class LLCMonitor {\r
+       public static void main(String[] args) throws Exception {\r
+               LLC.init(SensorPort.S1);\r
+               \r
+               while (true) {\r
+                       int b = LLC.read();\r
+                       \r
+                       if (b >= 0) {\r
+                               LCD.clear();\r
+                               LCD.drawInt(b & 0xFF, 3, 0, 0);\r
+                               LCD.refresh();\r
+                               Thread.sleep(500);                              \r
+                       }\r
+               }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/LLCMonitor/build.xml b/nxtOSEK/lejos_nxj/samples/LLCMonitor/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
index d8f3649..cca2e24 100644 (file)
@@ -2,12 +2,29 @@ import lejos.nxt.*;
 import lejos.subsumption.*;
 import lejos.navigation.*;
 
+/**
+ * Demonstration of use of the Behavior and Pilot classes to
+ * implement a simple line following robot.
+ * 
+ * Requires a wheeled vehicle with two independently controlled
+ * wheels with motors connected to motor ports A and C, and a light
+ * sensor mounted forwards and pointing down, connected to sensor port 1.
+ * 
+ * Press ENTER to start the robot.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class Line {
        
        public static void main (String[] aArg)
        throws Exception
        {
-               final Pilot pilot = new Pilot(5.5f,11.2f,Motor.A, Motor.C);
+               // Change last parameter of Pilot to specify on which 
+               // direction you want to be "forward" for your vehicle.
+               // The wheel and axle dimension psarameters should be
+               // set for your robot, but are not critical.
+               final Pilot pilot = new Pilot(5.6f,16.0f,Motor.A, Motor.C, true);
                final LightSensor light = new LightSensor(SensorPort.S1);
                
                Behavior DriveForward = new Behavior()
@@ -46,6 +63,7 @@ public class Line {
                        }
                };
 
+               //Wait for ENTER button to be pressed
                Button.ENTER.waitForPressAndRelease();
 
                Behavior[] bArray = {OffLine, DriveForward};            
diff --git a/nxtOSEK/lejos_nxj/samples/Line/Line.nxj b/nxtOSEK/lejos_nxj/samples/Line/Line.nxj
deleted file mode 100644 (file)
index 3306e50..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/Line/Line.nxj and /dev/null differ
index 69d2d59..20118be 100644 (file)
@@ -1,5 +1,18 @@
 import lejos.nxt.*;
 
+/**
+ * Test of sensor port listeners.
+ * 
+ * Note that these only work with Analog/Digital sensors
+ * like the LEGO Touch, Sound and Light sensors.
+ * 
+ * They do not work with I2C sensors like the Ultrasonic sensor.
+ * 
+ * This test needs a LEGO Sound sensor connected to sensor port S1.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class Listen implements SensorPortListener
 {
        String changed = "State changed";
@@ -17,6 +30,7 @@ public class Listen implements SensorPortListener
                LCD.clear();
                LCD.drawString("Finished", 3, 4);
                LCD.refresh();
+               Thread.sleep(2000);
        }
        
        public void stateChanged(SensorPort port, int value, int oldValue)
diff --git a/nxtOSEK/lejos_nxj/samples/Listen/Listen.nxj b/nxtOSEK/lejos_nxj/samples/Listen/Listen.nxj
deleted file mode 100644 (file)
index 7f21bc6..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/Listen/Listen.nxj and /dev/null differ
index 40d059f..8080632 100644 (file)
@@ -1,6 +1,14 @@
-import java.lang.System;
 import lejos.nxt.*;
 
+/**
+ * Shows how leJOS free RAM reduces as String objects are created.
+ * 
+ * Now that leJOS NXJ has a garbage collector, it shows the
+ * garbage collector kicking in and the memory increasing again.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class MemoryTest {
        public static void main (String[] arg)
        throws InterruptedException
diff --git a/nxtOSEK/lejos_nxj/samples/MemoryTest/MemoryTest.nxj b/nxtOSEK/lejos_nxj/samples/MemoryTest/MemoryTest.nxj
deleted file mode 100644 (file)
index b3166ff..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/MemoryTest/MemoryTest.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/MonitorTest/MonitorTest.java b/nxtOSEK/lejos_nxj/samples/MonitorTest/MonitorTest.java
new file mode 100644 (file)
index 0000000..bba254c
--- /dev/null
@@ -0,0 +1,124 @@
+import lejos.nxt.*;\r
+import lejos.navigation.*;\r
+import lejos.nxt.comm.*;\r
+\r
+/**\r
+ * Test of remote monitor.\r
+ * \r
+ * This sample is based on the PilotTester sample - see\r
+ * the comments in PilotTester.java for the requirements\r
+ * of the robot. MonitorTest also requires a light sensor \r
+ * connected to sensor port S1.\r
+ * \r
+ * Run MonitorTest on the NXT and then start pc.tools.NXJMonitor\r
+ * on the PC and connect to the NXT.\r
+ * \r
+ * You will see some messages in the tracing area and the\r
+ * gauges for sensor port S1 will show you the raw and scaled\r
+ * value of the light sensor.\r
+ * \r
+ * Then press ENTER on the NXT and you will see messages in\r
+ * the NXJMonitor tracing area as the NXJ program runs, and\r
+ * you will see values for the motor tachometer readings \r
+ * in the motor gauges for A and C.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class MonitorTest \r
+{\r
+       static Pilot robot = new Pilot(5.6f,16.0f,Motor.A, Motor.C,true);\r
+       \r
+       public static void main(String[] args ) throws Exception \r
+       {\r
+        LCPBTResponder lcpThread = new LCPBTResponder();\r
+        lcpThread.setDaemon(true);\r
+        lcpThread.start();\r
+        \r
+        LightSensor light = new LightSensor(SensorPort.S1);\r
+   \r
+               LCP.messageWrite(0, "Waiting for ENTER to be pressed");\r
+               \r
+               // Wait for user to press ENTER\r
+           Button.ENTER.waitForPressAndRelease();\r
+               \r
+               LCP.messageWrite(0, "PilotTester Started");\r
+\r
+               robot.setSpeed(500);\r
+               LCP.messageWrite(0, "Moving forward");\r
+               robot.forward();\r
+               pause(1000);\r
+               robot.stop();\r
+               showCount(0);\r
+               robot.backward();\r
+               pause(1000);\r
+               robot.stop();\r
+               LCP.messageWrite(0, "Stopped");\r
+               showCount(1);\r
+               LCP.messageWrite(0, "Traveling 10 units");\r
+               robot.travel(10,true);\r
+               while(robot.isMoving())Thread.yield();\r
+               LCP.messageWrite(0, "Finished traveling");\r
+               showCount(2);\r
+               LCP.messageWrite(0, "Traveling back 10 units");\r
+               robot.travel(-10);\r
+               LCP.messageWrite(0, "Finished traveling back");\r
+               showCount(3);\r
+               for(int i = 0; i<4; i++)\r
+               {\r
+                       LCP.messageWrite(0, "Rotating 90");\r
+                       robot.rotate(90);\r
+               }\r
+               LCP.messageWrite(0, "Finished rotating");\r
+               showCount(4);\r
+               for(int i = 0; i<4; i++)\r
+               {\r
+                       LCP.messageWrite(0, "Rotating Back 90");\r
+                       robot.rotate(-90,true);\r
+                       while(robot.isMoving())Thread.yield();\r
+               }\r
+               LCP.messageWrite(0, "Finished rotating back");\r
+               showCount(5);\r
+               LCP.messageWrite(0, "Steering right");\r
+               robot.steer(-50,180,true);\r
+               while(robot.isMoving())Thread.yield();\r
+               LCP.messageWrite(0, "Steering back");\r
+               robot.steer(-50,-180);\r
+               LCP.messageWrite(0, "Finished steering");\r
+               showCount(6);\r
+               LCP.messageWrite(0, "Steering left");\r
+               robot.steer(50,180);\r
+               LCP.messageWrite(0, "Steering back");\r
+               robot.steer(50, -180);\r
+               LCP.messageWrite(0, "Finished steering");\r
+               showCount(7);\r
+               LCP.messageWrite(0, "Traveling forward a bit");\r
+               robot.travel(10,true);\r
+               pause(500);\r
+               LCP.messageWrite(0, "Stopped");\r
+        robot.stop();\r
+               LCP.messageWrite(0, "Traveling backwards a bit");\r
+               robot.travel(-10);\r
+               LCP.messageWrite(0, "A quick spin");\r
+               robot.rotate(720);\r
+               LCP.messageWrite(0, "Finished");\r
+               \r
+               // Exit after any button is pressed\r
+               Button.waitForPress();\r
+       }\r
+               \r
+       public static void pause(int time)\r
+       {\r
+               try{ Thread.sleep(time);\r
+       }\r
+               catch(InterruptedException e){}\r
+       }\r
+       \r
+       public static void showCount(int i)\r
+       {\r
+               LCD.drawInt(robot.getLeftCount(),0,i);\r
+               LCD.drawInt(robot.getRightCount(),7,i);\r
+       }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/samples/MonitorTest/build.xml b/nxtOSEK/lejos_nxj/samples/MonitorTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/NXTCamTest/NXTCamTest.java b/nxtOSEK/lejos_nxj/samples/NXTCamTest/NXTCamTest.java
new file mode 100644 (file)
index 0000000..cce3c26
--- /dev/null
@@ -0,0 +1,45 @@
+import lejos.nxt.*;\r
+\r
+import java.awt.Rectangle;\r
+\r
+/**\r
+ * For testing the Mindsensors NXTCam.\r
+ * @author Lawrie Griffiths\r
+ */\r
+public class NXTCamTest {\r
+\r
+       final static int INTERVAL = 1000; // milliseconds\r
+       \r
+       public static void main(String [] args) throws Exception {\r
+               NXTCam camera = new NXTCam(SensorPort.S1);\r
+               String objects = "Objects: ";\r
+               int numObjects;\r
+               \r
+               camera.sendCommand('A'); // sort objects by size\r
+               camera.sendCommand('E'); // start tracking\r
+       \r
+               while(!Button.ESCAPE.isPressed()) {\r
+                       LCD.clear();\r
+                       LCD.drawString(camera.getProductID(), 0, 0);\r
+                       LCD.drawString(camera.getSensorType(), 0, 1);\r
+                       LCD.drawString(camera.getVersion(), 9, 1);\r
+                       LCD.drawString(objects, 0, 2);\r
+                       LCD.drawInt(numObjects = camera.getNumberOfObjects(),1,9,2);\r
+                       \r
+                       if (numObjects >= 1 && numObjects <= 8) {\r
+                               for (int i=0;i<numObjects;i++) {\r
+                                       Rectangle r = camera.getRectangle(i);\r
+                                       if (r.height > 30 && r.width > 30) {\r
+                                               LCD.drawInt(camera.getObjectColor(i), 3, 0, 3+i);\r
+                                               LCD.drawInt(r.width, 3, 4, 3+i);\r
+                                               LCD.drawInt(r.height, 3, 8, 3+i);\r
+                                       }\r
+                                       \r
+                               }\r
+                       }\r
+\r
+                       LCD.refresh();\r
+                       Thread.sleep(INTERVAL);\r
+               }\r
+       }\r
+}
\ No newline at end of file
diff --git a/nxtOSEK/lejos_nxj/samples/NXTCamTest/build.xml b/nxtOSEK/lejos_nxj/samples/NXTCamTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
index 830b2e9..e65c986 100644 (file)
@@ -15,7 +15,12 @@ import lejos.nxt.*;
  * 5/6: two button listeners
  * 7/8: two button listeners and a sensor listener
  *
- * */
+ *
+ * Note that this program is similar to the leJOS RCX version
+ * and can be used to compare the performance of leJOS on the
+ * NXT with leJOS on the RCX.
+ * 
+ **/
 
 public class PerformanceTest
 {
@@ -102,7 +107,6 @@ public class PerformanceTest
 
   }
   
-  
   static void showProgramNumber(int p)
   {
          LCD.clear();
diff --git a/nxtOSEK/lejos_nxj/samples/PerformanceTest/PerformanceTest.nxj b/nxtOSEK/lejos_nxj/samples/PerformanceTest/PerformanceTest.nxj
deleted file mode 100644 (file)
index fe7d6d8..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/PerformanceTest/PerformanceTest.nxj and /dev/null differ
index f96583b..c119f8c 100644 (file)
@@ -1,18 +1,34 @@
 import lejos.nxt.*;
 import lejos.navigation.*;
 
-
+/**
+ * Test of the Pilot class.
+ * 
+ * Requires a wheeled vehicle with two independently controlled
+ * motors to steer differentially, so it can rotate within its 
+ * own footprint (i.e. turn on one spot).
+ * 
+ * Adjust the parameters of the Pilot to the dimensions
+ * and motor connections for your robot.
+ * 
+ * The vehicle will go through a series of manoeuvres and
+ * show the tachometer readings on the screen after each
+ * manoeuvre. 
+ * 
+ * Press ENTER to start and any button to return to the menu
+ * when the program has finished.
+ *
+ * @author Roger Glassey and Lawrie Griffiths
+ *
+ */
 public class PilotTester
 {
-       
-       static Pilot robot = new Pilot(2.1f,4.4f,Motor.A, Motor.C,true);
-               public static void main(String[] args ) 
+       static Pilot robot = new Pilot(5.6f,16.0f,Motor.A, Motor.C,true);
+       public static void main(String[] args ) throws Exception
        {
-
-               try {
-                       Button.ENTER.waitForPressAndRelease();
-               } catch (InterruptedException ie) {}
-               Pilot robot = new Pilot(2.1f,4.4f,Motor.A, Motor.C,false);
+        // Wait for user to press ENTER
+               Button.ENTER.waitForPressAndRelease();
 
                robot.setSpeed(500);
                robot.forward();
@@ -51,21 +67,22 @@ public class PilotTester
         robot.stop();
                robot.travel(-10);
                robot.rotate(720);
-               while(Button.readButtons()==0)Thread.yield();
+               
+               // Exit after any button is pressed
+               Button.waitForPress();
        }
                
-  public static void pause(int time)
-  {
-       try{ Thread.sleep(time);
-  }
-       catch(InterruptedException e){}
-  }
+    public static void pause(int time)
+    {
+       try{ Thread.sleep(time);
+    }
+       catch(InterruptedException e){}
+    }
+    
        public static void showCount(int i)
        {
                LCD.drawInt(robot.getLeftCount(),0,i);
                LCD.drawInt(robot.getRightCount(),7,i);
-               LCD.refresh();
        }
-
 }
 
diff --git a/nxtOSEK/lejos_nxj/samples/PilotTester/PilotTester.nxj b/nxtOSEK/lejos_nxj/samples/PilotTester/PilotTester.nxj
deleted file mode 100644 (file)
index cff5cc0..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/PilotTester/PilotTester.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/RCXEmulator/RCXEmulator.java b/nxtOSEK/lejos_nxj/samples/RCXEmulator/RCXEmulator.java
new file mode 100644 (file)
index 0000000..923d7da
--- /dev/null
@@ -0,0 +1,150 @@
+import lejos.nxt.*;\r
+import lejos.rcxcomm.*;\r
+\r
+/*\r
+ * Responds to RCX Remote control\r
+ * \r
+ */\r
+public class RCXEmulator {\r
+\r
+       public static void main(String[] args) {\r
+               Serial.setPort(SensorPort.S1);\r
+               RCXLink link = Serial.getLink();\r
+               int msgCount=0;\r
+               link.setDefaultSpeed();\r
+               link.flush();\r
+               \r
+               byte[] packet = new byte[10];\r
+               byte[] reply = new byte[10];\r
+               int c1, c2;\r
+               //String cmd = "Cmd:";\r
+               //String remote = "Remote";\r
+               \r
+               while (true) {;\r
+                       if (Serial.isPacketAvailable()) {\r
+                               int numBytes = Serial.readPacket(packet);\r
+                               //LCD.drawString(cmd, 0, 0);\r
+                               //LCD.drawInt((packet[0] & 0xF7), 4,  5, 0);\r
+                               //LCD.drawInt(numBytes, 4, 11, 0);\r
+                               if ((packet[0] & 0xF7) == 210) { // Remote command\r
+                                       reply[0] = (byte) (0xFF - (packet[0] & 0xFF));\r
+                                       Serial.sendPacket(reply, 0, 1);\r
+                                       c1 = packet[1] & 0xFF;\r
+                                       c2 = packet[2] & 0xFF;\r
+                                       //LCD.drawString(remote,0,1);\r
+                                       //LCD.drawInt(c1, 4, 7, 1);\r
+                                       //LCD.drawInt(c2, 4, 11, 1);\r
+                                       if (c1 != 0 || c2 != 0) LCD.clear();\r
+                                       LCD.drawInt(++msgCount, 4, 0, 4);\r
+                                       if (c1 == 0) {\r
+                                               if (c2 == 1) message1();\r
+                                               else if (c2==0x02) message2();\r
+                                               else if (c2==0x04) message3();\r
+                                               else if (c2==0x08) incMotorA();\r
+                                               else if (c2==0x10) incMotorB();\r
+                                               else if (c2==0x20) incMotorC();\r
+                                               else if (c2==0x40) decMotorA();\r
+                                               else if (c2==0x80) decMotorB();\r
+                                       } else if (c2 == 0) {\r
+                                               if (c1==0x01) decMotorC();\r
+                                               else if (c1==0x02) program1();\r
+                                               else if (c1==0x04) program2();\r
+                                               else if (c1==0x08) program3();\r
+                                               else if (c1==0x10) program4();\r
+                                               else if (c1==0x20) program5();\r
+                                               else if (c1==0x40) stopAll();\r
+                                               else if (c1==0x80) sound();\r
+                                       }\r
+                               }\r
+                               LCD.refresh();\r
+                       }\r
+               }\r
+       }\r
+       \r
+       private static String msg1 = "MSG1";\r
+       private static String msg2 = "MSG2";\r
+       private static String msg3 = "MSG3";\r
+       private static String incA = "Motor A fwd";\r
+       private static String incB = "Motor B fwd";\r
+       private static String incC = "Motor C fwd";\r
+       private static String decA = "Motor A bwd";\r
+       private static String decB = "Motor B bwd";\r
+       private static String decC = "Motor C bwd";\r
+       private static String prog1 = "Program 1";\r
+       private static String prog2 = "Program 2";\r
+       private static String prog3 = "Program 3";\r
+       private static String prog4 = "Program 4";\r
+       private static String prog5 = "Program 5";\r
+       private static String stop = "Stop All";\r
+       private static String beep = "Sound";\r
+       \r
+       private static void message1() {\r
+           display(msg1);      \r
+       }\r
+       \r
+       private static void message2() {\r
+               display(msg2);\r
+       }\r
+       \r
+       private static void message3() {\r
+               display(msg3);\r
+       }\r
+       \r
+       private static void incMotorA() {\r
+               display(incA);\r
+       }\r
+       \r
+       private static void incMotorB() {\r
+               display(incB);\r
+       }\r
+       \r
+       private static void incMotorC() {\r
+               display(incC);\r
+       }\r
+       \r
+       private static void decMotorA() {\r
+               display(decA);\r
+       }\r
+       \r
+       private static void decMotorB() {\r
+               display(decB);\r
+       }\r
+       \r
+       private static void decMotorC() {\r
+               display(decC);\r
+       }\r
+       \r
+       private static void display(String msg) {\r
+               LCD.drawString(msg, 0, 3);\r
+               LCD.refresh();\r
+       }\r
+       \r
+       private static void program1() {\r
+           display(prog1);     \r
+       }\r
+       \r
+       private static void program2() {\r
+           display(prog2);     \r
+       }\r
+       \r
+       private static void program3() {\r
+           display(prog3);     \r
+       }\r
+       \r
+       private static void program4() {\r
+           display(prog4);     \r
+       }\r
+       \r
+       private static void program5() {\r
+           display(prog5);     \r
+       }\r
+       \r
+       private static void stopAll() {\r
+           display(stop);      \r
+       }\r
+       \r
+       private static void sound() {\r
+           display(beep);\r
+           Sound.beep();\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/RCXEmulator/build.xml b/nxtOSEK/lejos_nxj/samples/RCXEmulator/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/RCXMMTest/RCXMMTest.java b/nxtOSEK/lejos_nxj/samples/RCXMMTest/RCXMMTest.java
new file mode 100644 (file)
index 0000000..8d16399
--- /dev/null
@@ -0,0 +1,30 @@
+import lejos.nxt.*;\r
+\r
+/**\r
+ * Test of the Mindsensors RCX Motor Multiplexer.\r
+ * \r
+ * The adapter should be connected to S1 and an RCX\r
+ * motor connected to port 1 on the multiplexer.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXMMTest {\r
+\r
+       public static void main(String[] args) throws Exception {\r
+               RCXMotorMultiplexer mm = new RCXMotorMultiplexer(SensorPort.S1);\r
+               \r
+               while (true) {\r
+                       LCD.drawString(mm.getSensorType(), 0, 0);\r
+                       LCD.drawInt(mm.getDirection(0),3,0,1);\r
+                       LCD.drawInt(mm.getSpeed(0),3,0,2);\r
+                       LCD.refresh();\r
+                       \r
+                       mm.A.setPower(100);\r
+                       mm.A.forward();\r
+                       Thread.sleep(1000);\r
+                       mm.A.backward();\r
+                       Thread.sleep(1000);\r
+               }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/RCXMMTest/build.xml b/nxtOSEK/lejos_nxj/samples/RCXMMTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/RCXPortTest/RCXPortTest.java b/nxtOSEK/lejos_nxj/samples/RCXPortTest/RCXPortTest.java
new file mode 100644 (file)
index 0000000..b3db1ad
--- /dev/null
@@ -0,0 +1,56 @@
+\r
+import lejos.rcxcomm.*;\r
+import java.io.*;\r
+import lejos.nxt.*;\r
+\r
+/**\r
+ * Test of NXT emulation of the leJOS RCX RCXPort class.\r
+ * \r
+ * Run the LLCSensorReader sample on the RCX, and the NXT \r
+ * will read the raw sensor value of the sensor connected to\r
+ * the RCX S2 port.\r
+ * \r
+ * Requires a Mindsensors NRLink adapter connected to sensor\r
+ * port S1 on the NXT.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXPortTest {\r
+\r
+       public static void main(String[] args) throws Exception {\r
+           try {\r
+             RCXPort port = new RCXPort(SensorPort.S1);\r
+             String reading = "Reading Sensor";\r
+             String rcvd = "Received ";\r
+\r
+             InputStream is = port.getInputStream();\r
+             OutputStream os = port.getOutputStream();\r
+             DataInputStream dis = new DataInputStream(is);\r
+             DataOutputStream dos = new DataOutputStream(os);\r
+\r
+             LCD.drawString(reading,0,0);\r
+             LCD.refresh();\r
+             int sendTime = (int)System.currentTimeMillis();\r
+             for(int i=0;i<20;i++) {\r
+               dos.writeByte(1);\r
+               dos.flush();\r
+\r
+               int n = dis.readShort();\r
+\r
+               LCD.drawString(rcvd,0,1);\r
+               LCD.drawInt(n,4,10,1);\r
+               LCD.refresh();\r
+             }\r
+             LCD.drawString("Time: ", 0, 2);\r
+             LCD.drawInt((int)System.currentTimeMillis() - sendTime,6,6,2);\r
+             LCD.refresh();\r
+             Button.waitForPress();\r
+           }\r
+           catch (Exception e) {\r
+             LCD.drawString("Exception",0,7);\r
+             LCD.refresh();\r
+             Button.waitForPress();\r
+           }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/RCXPortTest/build.xml b/nxtOSEK/lejos_nxj/samples/RCXPortTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/RCXRemote/RCXRemote.java b/nxtOSEK/lejos_nxj/samples/RCXRemote/RCXRemote.java
new file mode 100644 (file)
index 0000000..2143bcb
--- /dev/null
@@ -0,0 +1,50 @@
+\r
+import lejos.nxt.*;\r
+\r
+/*\r
+ * Emulates the RCX Remote control\r
+ *\r
+ * @author Lawrie Griffiths <lawrie.griffiths@ntlworld.com>\r
+ * \r
+ * Bugs:\r
+ *   Beep does not work twice in a row with standard RCX firmware.\r
+ *   Commands only work every other time with RCX leJOS RemoteControlTest\r
+ *   example (due to the RCX leJOS Remote Control system not\r
+ *   handling the 0x08 toggle bit in RCX opcodes).\r
+ */\r
+public class RCXRemote {\r
+       public static void main(String[] args) throws Exception {\r
+               RCXLink link = new RCXLink(SensorPort.S1);\r
+               String[] menuItems = \r
+                       {"P1", "P2", "P3", "P4", "P5",\r
+                        "Stop", "Beep",\r
+                        "A fwd", "A bwd", "B fwd", \r
+                        "B bwd", "C fwd", "C bwd",\r
+                        "Msg 1", "Msg 2", "Msg 3"};    \r
+               TextMenu menu = new TextMenu(menuItems,1,"RCX Remote");         \r
+               int menu_item;\r
+               \r
+               do {\r
+                       menu_item = menu.select();\r
+                       \r
+                       if (menu_item >= 0 && menu_item <= 4) {\r
+                               link.runProgram(menu_item + 1);\r
+                       }\r
+                       \r
+                       if (menu_item == 5) link.stopAllPrograms();\r
+                       if (menu_item == 6) link.beep();\r
+                                       \r
+                       if (menu_item == 7) link.forwardStep(0);\r
+                       if (menu_item == 8) link.backwardStep(0);\r
+                       if (menu_item == 9) link.forwardStep(1);\r
+                       if (menu_item == 10) link.backwardStep(1);\r
+                       if (menu_item == 11) link.forwardStep(1);\r
+                       if (menu_item == 12) link.backwardStep(1);\r
+                       \r
+                       if (menu_item >=13 && menu_item <= 15) {\r
+                               link.sendRemoteCommand(1 << (menu_item - 13));\r
+                       }\r
+                       \r
+               } while (menu_item >= 0);               \r
+       }       \r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/RCXRemote/build.xml b/nxtOSEK/lejos_nxj/samples/RCXRemote/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/RCXRemoteMotor.java b/nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/RCXRemoteMotor.java
new file mode 100644 (file)
index 0000000..b559cc4
--- /dev/null
@@ -0,0 +1,65 @@
+\r
+import lejos.nxt.*;\r
+\r
+/**\r
+ * Test of a remote RCX motor using a remote RCX as a controller.\r
+ * \r
+ * Requires a Mindsensors NRLink adapter connected to sensor\r
+ * port S1 on the NXT, and RCX motors connected to one or\r
+ * more of the RCX motor ports.\r
+ * \r
+ * Press the ENTER button to increase the power, LEFT to cycle through\r
+ * the motor modes (forward, backward,float,stop) and RIGHT\r
+ * to cycle through the motors.\r
+ * \r
+ * ESCAPE terminates the program.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXRemoteMotor {\r
+\r
+       public static void main(String[] args) throws Exception {\r
+               RCXLink link = new RCXLink(SensorPort.S1);\r
+               \r
+               int power = 0;\r
+               int mode = 1;\r
+               int motor = 0;\r
+               RCXMotor[] motors = {link.A, link.B, link.C};\r
+               String motorString = "Motor:";\r
+               String modeString = "Mode:";\r
+               String powerString = "Power:";\r
+               \r
+               while (true) {\r
+                       \r
+                       int key = Button.waitForPress();\r
+                       \r
+                       if (key == 1) { // ENTER\r
+                               power += 20;\r
+                               if (power > 100) power = 0;\r
+                       } else if (key == 2) { // LEFT\r
+                               mode++;\r
+                               if (mode > 4) mode = 1;                 \r
+                       } else if (key == 4) { // RIGHT\r
+                               motor++;\r
+                               if (motor > 2) motor = 0;\r
+                       } else if (key == 8) { // ESCAPE\r
+                               System.exit(0);\r
+                       }\r
+                       \r
+                       LCD.drawString(motorString,0,0);\r
+                       LCD.drawInt(motor, 10, 0);\r
+                       LCD.drawString(powerString,0,1);\r
+                       LCD.drawInt(power, 3, 10, 1);\r
+                       LCD.drawString(modeString,0,2);\r
+                       LCD.drawInt(mode, 10, 2);\r
+                       LCD.refresh();\r
+                       motors[motor].setPower(power);\r
+                       Thread.sleep(100);\r
+                       if (mode == 1) motors[motor].forward();\r
+                       else if (mode == 2) motors[motor].backward();\r
+                       else if (mode == 3) motors[motor].flt();\r
+                       else if (mode == 4) motors[motor].stop();\r
+               }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/build.xml b/nxtOSEK/lejos_nxj/samples/RCXRemoteMotor/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/RemoteNXTTest/RemoteNXTTest.java b/nxtOSEK/lejos_nxj/samples/RemoteNXTTest/RemoteNXTTest.java
new file mode 100644 (file)
index 0000000..ec95212
--- /dev/null
@@ -0,0 +1,80 @@
+import lejos.nxt.*;\r
+import lejos.nxt.remote.*;\r
+import java.io.*;\r
+\r
+public class RemoteNXTTest {\r
+       public static void main(String[] args) throws Exception {\r
+               RemoteNXT nxt = null;   \r
+               int power = 0;\r
+               int mode = 1;\r
+               int motor = 0;\r
+               String motorString = "Motor:";\r
+               String modeString = "Mode:";\r
+               String powerString = "Power:";\r
+               String batteryString = "Battery:";\r
+               String lightString = "Light:";\r
+               String tachoString = "Tacho:";\r
+               \r
+        try {\r
+            LCD.drawString("Connecting...",0,0);\r
+               nxt = new RemoteNXT("NXT");\r
+               LCD.clear();\r
+            LCD.drawString("Connected",0,0);\r
+            Thread.sleep(2000);\r
+        } catch (IOException ioe) {\r
+               LCD.clear();\r
+            LCD.drawString("Conn Failed",0,0);\r
+            Thread.sleep(2000);\r
+            System.exit(1);\r
+        }\r
+        \r
+               Motor[] motors = {nxt.A, nxt.B, nxt.C};\r
+               LightSensor light = new LightSensor(nxt.S1);\r
+       \r
+               while (true) {\r
+                       LCD.clear();\r
+                       LCD.drawString(motorString,0,0);\r
+                       LCD.drawInt(motor, 10, 0);\r
+                       LCD.drawString(powerString,0,1);\r
+                       LCD.drawInt(power, 3, 10, 1);\r
+                       LCD.drawString(modeString,0,2);\r
+                       LCD.drawInt(mode, 10, 2);\r
+                       LCD.drawString(tachoString,0,3);\r
+                       LCD.drawInt(motors[motor].getTachoCount(), 6,  7, 3);\r
+                       LCD.drawString(batteryString,0,4);\r
+                       LCD.drawInt(nxt.Battery.getVoltageMilliVolt(), 6,  9, 4);\r
+                       LCD.drawString(lightString,0,5);\r
+                       LCD.drawInt(light.readValue(), 4,  7, 5);\r
+                       LCD.drawString(nxt.getBrickName(), 0, 6);\r
+                       LCD.drawString(nxt.getFirmwareVersion(), 0, 7);\r
+                       LCD.drawString(nxt.getProtocolVersion(), 4, 7);\r
+                       LCD.drawInt(nxt.getFlashMemory(), 6, 8, 7);\r
+                       \r
+                       int key = Button.waitForPress();\r
+                       \r
+                       if (key == 1) { // ENTER\r
+                               power += 20;\r
+                               if (power > 100) power = 0;\r
+                       } else if (key == 2) { // LEFT\r
+                               mode++;\r
+                               if (mode > 4) mode = 1;                 \r
+                       } else if (key == 4) { // RIGHT\r
+                               motor++;\r
+                               if (motor > 2) motor = 0;\r
+                       } else if (key == 8) { // ESCAPE\r
+                               System.exit(0);\r
+                       }\r
+                       \r
+            LCD.clear();;\r
+            LCD.drawString("Setting power",0,0);\r
+                       motors[motor].setPower(power);\r
+            LCD.drawString("Moving motor",0,1);\r
+                       if (mode == 1) motors[motor].forward();\r
+                       else if (mode == 2) motors[motor].backward();\r
+                       else if (mode == 3) motors[motor].flt();\r
+                       else if (mode == 4) motors[motor].stop();\r
+               }\r
+       }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/samples/RemoteNXTTest/build.xml b/nxtOSEK/lejos_nxj/samples/RemoteNXTTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/SignalTest/SignalTest.java b/nxtOSEK/lejos_nxj/samples/SignalTest/SignalTest.java
new file mode 100644 (file)
index 0000000..aa40d23
--- /dev/null
@@ -0,0 +1,43 @@
+import java.io.DataInputStream;\r
+import java.io.DataOutputStream;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+\r
+import lejos.nxt.*;\r
+import lejos.nxt.comm.*;\r
+\r
+/**\r
+ * Open a connection to the NXT using the BTSend sample\r
+ * and then walk round the house measuring the signal\r
+ * strength.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class SignalTest {\r
+\r
+       public static void main(String [] args)  throws Exception \r
+       {\r
+               String connected = "Connected";\r
+        String waiting = "Waiting";\r
+        String strength = "Signal: ";\r
+\r
+               LCD.drawString(waiting,0,0);\r
+               LCD.refresh();\r
+\r
+        BTConnection btc = Bluetooth.waitForConnection();\r
+        \r
+               LCD.clear();\r
+               LCD.drawString(connected,0,0);\r
+               LCD.refresh();  \r
+               \r
+               while(!Button.ESCAPE.isPressed()) {\r
+                       LCD.drawString(strength, 0, 3);\r
+                       LCD.drawInt(btc.getSignalStrength(), 3, 9 ,3);\r
+                       LCD.refresh();\r
+                       Thread.sleep(1000);\r
+               }\r
+               \r
+               btc.close();\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/samples/SignalTest/build.xml b/nxtOSEK/lejos_nxj/samples/SignalTest/build.xml
new file mode 100644 (file)
index 0000000..d293e3f
--- /dev/null
@@ -0,0 +1,84 @@
+<project name="samples" default="uploadandrun">
+    <description>
+       Sample build file
+    </description>
+
+  <!-- set properties for this build -->
+  <property environment = "env"/>
+  <property file="../samples.properties"/>
+  <property name="src" location="."/>
+  <basename property="program" file="."/>
+  <property name="binary" value="${program}.nxj" />
+       
+  <!-- deletes class files -->
+  <target name="clean" description="clean up all generated files">
+    <delete>
+      <fileset dir="."> 
+        <include name="**/*.class"/>
+      </fileset>
+     </delete>
+  </target>
+
+  <target name="compile" depends="clean"
+        description="compile the source " >
+    <!-- Compile the java code from ${src}  -->
+    <javac source="1.3" target="1.1" srcdir="${src}" destdir="${src}">
+      <bootclasspath>
+        <pathelement location="${nxj.classes.home}/lib/classes.jar"/>
+       </bootclasspath>
+    </javac>
+  </target>
+
+  <target name="link" depends="compile"
+        description="link the binary " >
+    <!-- Link the binary and create a signature file -->
+    <java classname="js.tinyvm.TinyVM">
+      <arg value="--classpath"/>
+      <arg path="${nxj.classes.home}/lib/classes.jar:." /> 
+      <arg value="--writeorder" />
+      <arg value="LE" />
+      <arg value="${program}"/>
+      <arg value="-o"/>
+      <arg value="${binary}"/>
+      <arg value="-v"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="upload" depends="link"
+        description="upload the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+       
+  <target name="uploadandrun" depends="link"
+        description="upload and run the binary " >
+    <java classname="lejos.pc.tools.NXJUpload" fork="true">
+      <jvmarg value="-Djava.library.path=${nxj.library.path}"/>
+      <arg value="${binary}"/>
+      <arg value="-r"/>
+      <classpath>
+        <pathelement location="${nxj.jtools.home}/lib/jtools.jar"/>
+        <pathelement location="${nxj.pctools.home}/lib/pctools.jar"/>
+       <pathelement location="${nxj.pccomm.home}/lib/pccomm.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/commons-cli-1.0.jar"/>
+       <pathelement location="${nxj.jtools.home}/3rdparty/lib/bcel-5.1.jar"/>
+       <pathelement location="${nxj.pccomm.home}/3rdparty/lib/bluecove.jar"/>
+      </classpath>
+    </java>
+  </target>
+</project>
diff --git a/nxtOSEK/lejos_nxj/samples/SocketTest/SocketTest.nxj b/nxtOSEK/lejos_nxj/samples/SocketTest/SocketTest.nxj
deleted file mode 100644 (file)
index 5082049..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/SocketTest/SocketTest.nxj and /dev/null differ
index f0879ae..b85efb9 100644 (file)
@@ -1,6 +1,12 @@
 
 import lejos.nxt.*;
 
+/**
+ * Simple test of the Lego UltraSonic Sensor.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class SonicTest {
        
        public static void main(String[] args) throws Exception {
diff --git a/nxtOSEK/lejos_nxj/samples/SonicTest/SonicTest.nxj b/nxtOSEK/lejos_nxj/samples/SonicTest/SonicTest.nxj
deleted file mode 100644 (file)
index 20dd383..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/SonicTest/SonicTest.nxj and /dev/null differ
index dfbf6e2..9286ae9 100644 (file)
@@ -1,12 +1,58 @@
 import lejos.nxt.*;
 import java.io.*;
 
-
+/**
+ * Demonstrates playing 8-bit WAV files.
+ * 
+ * Use nxjbrowse to upload 8-bit WAV files. On Windows XP,
+ * ringin.wav and ringout.wav are 8-bit WAV file, 
+ * which can be found in the Media subfolder of
+ * the Windows folder.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class SoundSample {
        public static void main(String [] options) throws Exception {
-               File f = new File("ringin.wav");
-               Sound.playSample(f,1500,1000);
-               Thread.sleep(2000);
-       }
+               File[] allFiles = File.listFiles();
+               String s;
+               int len = 0;
+               
+               // Calculate number of WAV files
+               
+               for(int i=0;i<allFiles.length && allFiles[i] != null;i++) {
+                       s = allFiles[i].getName();
+                       int l = s.length();
+                       if (l > 4 && s.charAt(l-3) =='w' && s.charAt(l-2) == 'a' && s.charAt(l-1) == 'v') len++;        
+               }
+               
+               // Make array of WAV files and fileNames
+               
+               String[] fileNames = new String[len];
+               File[] files = new File[len];
+               int j = 0;
+               for(int i=0;i<allFiles.length && allFiles[i] != null;i++) {
+                       s = allFiles[i].getName();
+                       int l = s.length();
+                       if (l > 4 && s.charAt(l-3) =='w' && s.charAt(l-2) == 'a' && s.charAt(l-1) == 'v') {
+                               fileNames[j] = s;
+                               files[j++] = allFiles[i];
+                       }
+               }
+               
+               LCD.drawString("Play a WAV file",0,0);
+               
+               // Create menu of WAV files
+               TextMenu fileMenu = new TextMenu(fileNames,1);
+               
+               // Play files until the user quits
+               int selected;
+               do {
+                       selected = fileMenu.select();
+                       if (selected >= 0) {
+                               Sound.playSample(files[selected],100);
+                       }
+               } while (selected >= 0);
 
+       }
 }
diff --git a/nxtOSEK/lejos_nxj/samples/SoundSample/SoundSample.nxj b/nxtOSEK/lejos_nxj/samples/SoundSample/SoundSample.nxj
deleted file mode 100644 (file)
index f010082..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/SoundSample/SoundSample.nxj and /dev/null differ
index a73fd1c..1965f60 100644 (file)
@@ -8,9 +8,16 @@ public class SpeedTest {
   byte A = 0;
   LightSensor ls = new LightSensor(SensorPort.S3);
   UltrasonicSensor us = new UltrasonicSensor(SensorPort.S1);
+  /* Disable the speed regulation and close down the associated threads.
+   * This test does not require this type of motion control.
+   */
   Motor.A.regulateSpeed(false);
   Motor.B.regulateSpeed(false);
   Motor.C.regulateSpeed(false);
+  Motor.A.shutdown();
+  Motor.B.shutdown();
+  Motor.C.shutdown();
+  
   Motor.B.forward();
   Motor.C.forward();
   int iteration = 0;
@@ -24,18 +31,18 @@ public class SpeedTest {
    distVal = us.getDistance();
    tacho = Motor.B.getTachoCount();
    int RN = (int)(Math.random() * 100) + 1;
-   
-   LCD.drawInt(tacho,0,0);
-   LCD.drawInt((lightVal + distVal + tacho)*100/RN, 0, 1);
-   LCD.drawInt(A, 0, 2);
-   LCD.drawInt(iteration, 0, 4);
-   if(iteration%10 == 0)
-    LCD.refresh();
+
+   // Uncomment the following to produce display output as per the original test.
+   //LCD.drawInt(tacho,0,0);
+   //LCD.drawInt((lightVal + distVal + tacho)*100/RN, 0, 1);
+   //LCD.drawInt(A, 0, 2);
+   //LCD.drawInt(iteration, 0, 4);
+   //LCD.refresh();
 
    // Set motor speed for B and C to RN (Using Coast)
 
-   Motor.B.setSpeed(RN);
-   Motor.C.setSpeed(RN);
+   Motor.B.setPower(RN);
+   Motor.C.setPower(RN);
    if(RN > 50) ++A;
    if(RN < 50) --A;
    
diff --git a/nxtOSEK/lejos_nxj/samples/SpeedTest/SpeedTest.nxj b/nxtOSEK/lejos_nxj/samples/SpeedTest/SpeedTest.nxj
deleted file mode 100644 (file)
index 14b0021..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/SpeedTest/SpeedTest.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/Subsumption1/Main.nxj b/nxtOSEK/lejos_nxj/samples/Subsumption1/Main.nxj
deleted file mode 100644 (file)
index bed4a3e..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/Subsumption1/Main.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/Subsumption2/Main.nxj b/nxtOSEK/lejos_nxj/samples/Subsumption2/Main.nxj
deleted file mode 100644 (file)
index b48fd06..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/Subsumption2/Main.nxj and /dev/null differ
index c4d5b92..b7059a6 100644 (file)
@@ -1,17 +1,28 @@
 
 import lejos.nxt.*;
 
+/**
+ * Simple test of Acceleration (Tilt) sensors.
+ * 
+ * This should work with Mindsensors and HiTechnic Acceleration
+ * sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class TiltTest {
        
        public static void main(String[] args) throws Exception {
                TiltSensor tilt = new TiltSensor(SensorPort.S1);
-               
-               
+                       
                while(!Button.ESCAPE.isPressed()) {
                        LCD.clear();
-                       LCD.drawInt(tilt.getXTilt(), 0, 0);
-                       LCD.drawInt(tilt.getYTilt(), 0, 1);
-                       LCD.drawInt(tilt.getZTilt(), 0, 2);
+                       LCD.drawInt(tilt.getXTilt(), 6, 0, 0);
+                       LCD.drawInt(tilt.getYTilt(), 6, 0, 1);
+                       LCD.drawInt(tilt.getZTilt(), 6, 0, 2);
+                       LCD.drawInt(tilt.getXAccel(), 6, 0, 3);
+                       LCD.drawInt(tilt.getYAccel(), 6, 0, 4);
+                       LCD.drawInt(tilt.getZAccel(), 6, 0, 5);
                        LCD.refresh();
                        Thread.sleep(500);
                }
diff --git a/nxtOSEK/lejos_nxj/samples/TiltTest/TiltTest.nxj b/nxtOSEK/lejos_nxj/samples/TiltTest/TiltTest.nxj
deleted file mode 100644 (file)
index a33bd25..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/TiltTest/TiltTest.nxj and /dev/null differ
diff --git a/nxtOSEK/lejos_nxj/samples/TimeTest/TimeTest.nxj b/nxtOSEK/lejos_nxj/samples/TimeTest/TimeTest.nxj
deleted file mode 100644 (file)
index 6acd1c4..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/TimeTest/TimeTest.nxj and /dev/null differ
index 50b57a1..2029a86 100644 (file)
@@ -12,7 +12,7 @@ public class Tune {
     0,33, 1760,75, 0,5, 1760,20, 0,20, 1760,20, 0,20, 1976,18, 0,23, 1760,18, 
     0,23, 2217,225, 0,15, 2217,218};
 
-   public static void main(String [] args)  throws Exception {
+   public static void main(String [] args) {
       for(int i=0;i<note.length; i+=2) {
          final short w = note[i+1];
          final int n = note[i];
diff --git a/nxtOSEK/lejos_nxj/samples/Tune/Tune.nxj b/nxtOSEK/lejos_nxj/samples/Tune/Tune.nxj
deleted file mode 100644 (file)
index 1a948ea..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/Tune/Tune.nxj and /dev/null differ
index e587c85..5b5c3fe 100644 (file)
@@ -2,19 +2,29 @@ import lejos.nxt.*;
 import java.io.*;
 import lejos.nxt.comm.*;
 
-
+/**
+ * Test of Java streams over USB.
+ * Run the PC example, USBSend, to send data.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class USBReceive {
 
        public static void main(String [] args) throws Exception 
        {
                USBConnection conn = new USBConnection();
-               InputStream is = conn.openInputStream();
-               OutputStream os = conn.openOutputStream();
-               while (true) {
-                       int b = is.read();
-                       LCD.drawInt(b,3,0,1);
-                       LCD.refresh();
-                       os.write((byte) 100-b);
+               DataOutputStream dOut = conn.openDataOutputStream();
+               DataInputStream dIn = conn.openDataInputStream();
+               LCD.drawString("waiting", 0, 0);
+               
+               while (true) 
+               {
+                       int b = dIn.readInt();
+                       dOut.writeInt(-b);
+                       dOut.flush();
+               LCD.drawInt((int)b,8,0,1);
                }
        }
 }
+
diff --git a/nxtOSEK/lejos_nxj/samples/USBReceive/USBReceive.nxj b/nxtOSEK/lejos_nxj/samples/USBReceive/USBReceive.nxj
deleted file mode 100644 (file)
index 5400532..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/USBReceive/USBReceive.nxj and /dev/null differ
index d79caf5..2b99594 100644 (file)
@@ -1,40 +1,84 @@
 import lejos.pc.comm.*;
 import java.io.*;
-
+/**
+ * This is a PC sample. It connects to the NXT, and then
+ * sends an integer and waits for a reply, 100 times.
+ * 
+ * Compile this program with javac (not nxjc), and run it 
+ * with java.
+ * 
+ * You need pccomm.jar on the CLASSPATH and the jlibnxt
+ * DLL or shared library on the Java library path.
+ * 
+ * Run the program by:
+ * 
+ *   java USBSend
+ * 
+ * Your NXT should be running a sample such as USBReceive. 
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class USBSend {
        
        public static void main(String[] args) {
                NXTComm nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.USB);
                
-               NXTInfo[] nxtInfo = nxtComm.search(null, NXTCommFactory.USB);
+               NXTInfo[] nxtInfo = null;
+               
+               try {
+                       nxtInfo = nxtComm.search(null, NXTCommFactory.USB);
+               } catch (NXTCommException e) {
+                       System.out.println("Exception in search");
+               }
                
                if (nxtInfo.length == 0) {
                        System.out.println("No NXT Found");
                        System.exit(1);
                }
 
-               nxtComm.open(nxtInfo[0]);
+               try {
+                       nxtComm.open(nxtInfo[0]);
+               } catch (NXTCommException e) {
+                       System.out.println("Exception in open");
+               }
                
                InputStream is = nxtComm.getInputStream();
                OutputStream os = nxtComm.getOutputStream();
-               
-               for(int i=0;i<100;i++) {
+               DataInputStream inDat = new DataInputStream(is);
+               DataOutputStream outDat = new DataOutputStream(os);
+               int x = 0;
+               for(int i=0;i<100;i++) 
+               {
                        try {
-                               os.write(i);
-                               os.flush();
-                               System.out.println("Received " + is.read());
+                          outDat.writeInt(i);
+                          outDat.flush();
+       
                        } catch (IOException ioe) {
                                System.out.println("IO Exception writing bytes");
                        }
+                try {x = inDat.readInt();}
+                catch (IOException ioe) {
+                  System.out.println(ioe);
+                }            
+              System.out.println("Sent "+i+ " Received "+x);
+               }
+               
+               try {
+                       inDat.close();
+                       outDat.close();
+               } catch (IOException ioe) {
+                       System.out.println(ioe);
                }
                
                try {
                        Thread.sleep(1000);
-               } catch (InterruptedException ioe) {}
+               } catch (InterruptedException ie) {}
                
                try {
                        nxtComm.close();
                } catch (IOException ioe) {}
        }
 
-}
+}
\ No newline at end of file
diff --git a/nxtOSEK/lejos_nxj/samples/View/View.nxj b/nxtOSEK/lejos_nxj/samples/View/View.nxj
deleted file mode 100644 (file)
index 622d19e..0000000
Binary files a/nxtOSEK/lejos_nxj/samples/View/View.nxj and /dev/null differ
index e8ccd4c..b8c6034 100644 (file)
@@ -1,5 +1,5 @@
-nxj.classes.home=../../classes
-nxj.jtools.home=../../jtools
-nxj.pctools.home=../../pctools
-nxj.pccomm.home=../../pccomms
+nxj.classes.home=${env.NXJ_HOME}
+nxj.jtools.home=${env.NXJ_HOME}
+nxj.pctools.home=${env.NXJ_HOME}
+nxj.pccomm.home=${env.NXJ_HOME}
 nxj.library.path=${env.NXJ_HOME}/bin
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/java/awt/Rectangle.java b/nxtOSEK/lejos_nxj/src/java/classes/java/awt/Rectangle.java
new file mode 100644 (file)
index 0000000..938f3d1
--- /dev/null
@@ -0,0 +1,18 @@
+package java.awt;\r
+\r
+/**\r
+ * Minimal Rectangle implementation.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class Rectangle {\r
+       public int height, width, x, y;\r
+       \r
+       public Rectangle(int x, int y, int width, int height) {\r
+               this.x = x;\r
+               this.y = y;\r
+               this.width = width;\r
+               this.height = height;\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/java/awt/package.html b/nxtOSEK/lejos_nxj/src/java/classes/java/awt/package.html
new file mode 100644 (file)
index 0000000..a5e1010
--- /dev/null
@@ -0,0 +1 @@
+<body>Minimal AWT package for Rectangle class</body>
index 82ac990..48e4a1f 100644 (file)
@@ -2,6 +2,9 @@
 package java.io;
 
 
+/**
+ * Reads java data types transmitted as bytes over an InputStream.
+ */
 public class DataInputStream extends InputStream {
     
    protected InputStream  in;
index bb8da1c..a0d321d 100644 (file)
@@ -6,6 +6,9 @@
  */
 package java.io;
 
+/**
+ * Transmits java data types as bytes over an OutputStream.
+ */
 public class DataOutputStream extends OutputStream {
     
    protected int written;
index e7f76db..9a83598 100644 (file)
@@ -1,9 +1,17 @@
 package java.io;\r
 \r
-import lejos.nxt.*;\r
+import lejos.nxt.Flash;\r
+import java.io.IOException;\r
 \r
+/**\r
+ * Implements a file system using pages of flash memory.\r
+ * Currently has limited functionality and only supports\r
+ * one file open at a time.\r
+ * \r
+ * @author Brian Bagnall\r
+ */\r
 public class File {\r
-       static int count;\r
+       //static int count; Used for anything?\r
        // CONSTANTS:\r
        /**\r
         *  Number of files the file system can store. \r
@@ -25,7 +33,7 @@ public class File {
         * version number/string, the users file system will reformat automatically.\r
         * (i.e. Restarting file system and erasing their current stored classes) \r
         */\r
-       private static final String TABLE_ID = "V_0.2";  \r
+       private static final String TABLE_ID = "V_0.3";  \r
        \r
        /**\r
         * Indicates the starting page of the file table.\r
@@ -49,21 +57,13 @@ public class File {
         * is stored in the table. \r
         */\r
        private static byte NUM_FILES_POS = (byte)TABLE_ID.length();\r
-               \r
-       /**\r
-        * Indicates the # of bytes per page in the Flash class.\r
-        * Lawrie Griffiths determines this. Might want to access this\r
-        * directly from Flash in future from a package level constant in case\r
-        * we want to alter this number.\r
-        */\r
-       protected static short BYTES_PER_PAGE = 256;\r
        \r
        // GLOBAL STATIC CLASS VARIABLES: \r
        /**\r
         * Shared buffer. Using this as static class variable because leJOS\r
         * lacks a garbage collector.\r
         */\r
-       private static byte [] buff = new byte[BYTES_PER_PAGE];\r
+       private static byte [] buff = new byte[Flash.BYTES_PER_PAGE];\r
        \r
        /**\r
         * Array containing all the Files in the directory. \r
@@ -173,8 +173,10 @@ public class File {
                } else \r
                        files[index] = null;\r
                // 3. writeTable() to update table data.\r
-               File.writeTable(files);\r
-               // 4. Make this file.exists = false;\r
+               try { // Impossible for IOException when deleting, therefore catch here.\r
+                       File.writeTable(files);\r
+               } catch (IOException e) {}\r
+               // 4. Make this file.exists = false and length = 0.\r
                this.exists = false;\r
                this.file_length = 0;\r
                return true;\r
@@ -241,84 +243,174 @@ public class File {
         * array will contain File objects for all the files in flash. If a null\r
         * File array is given, it will create a new File array.\r
         */\r
-       static void readTable(File [] files) { // !! Make private when done tests!\r
+       static void readTable(File [] files) {\r
                // Make sure flash has table id:\r
                if(!File.tableExists()) File.format();\r
+               File.resetTablePointer();\r
+               Flash.readPage(buff, TABLE_START_PAGE); // Kludge to fill data into first page\r
+               // Move pointer to file total:\r
+               byte_pointer = NUM_FILES_POS; // Kludge\r
+               File.totalFiles = readNextByte(); // update total files value \r
                \r
-               Flash.readPage(buff, TABLE_START_PAGE);\r
-               // page_pos is the byte position in the page (pointer):\r
-               short page_pos = NUM_FILES_POS;\r
-               File.totalFiles = buff[page_pos]; // update total files value \r
-//             LCD.drawInt(totalFiles, count++, 5);\r
-//             LCD.refresh();\r
                for(int i=0;i<File.totalFiles;i++) {\r
-                       short pageLocation = (short)((0xFF & buff[++page_pos]) | ((0xFF & buff[++page_pos])<<8));\r
-                       int fileLength = (0xFF & buff[++page_pos]) | ((0xFF & buff[++page_pos]) <<8) | ((0xFF & buff[++page_pos])<<16) | ((0xFF & buff[++page_pos])<<24);\r
+                       short pageLocation = (short)((0xFF & readNextByte()) | ((0xFF & readNextByte())<<8));\r
+                       int fileLength = (0xFF & readNextByte()) | ((0xFF & readNextByte()) <<8) | ((0xFF & readNextByte())<<16) | ((0xFF & readNextByte())<<24);\r
                        \r
                        // The following code attempts to reuse String's. If leJOS gets\r
                        // a garbage collector we can create new strings and reduce this\r
                        // code. It assumes that if files[i] is NOT null then the filename\r
                        // is correct. Relies on delete() to adjust file names correctly.\r
                        if(files[i] == null) {\r
-                               byte numChars = buff[++page_pos]; // Size of file name (string length)\r
+                               byte numChars = readNextByte(); // Size of file name (string length)\r
                                \r
                                for(int j=0;j<numChars;j++) {\r
-                                       charBuff[j] = (char)buff[++page_pos];\r
+                                       charBuff[j] = (char)readNextByte();\r
                                }\r
                                String name = new String(charBuff, 0, numChars);\r
                                files[i] = new File(name, false); // Uses private constructor so it doesn't check through file list if it already exists.\r
                        }\r
                        files[i].page_location = pageLocation;\r
                        files[i].file_length = fileLength;\r
+               }               \r
+       }\r
+       \r
+       /**\r
+        * Helper method to read next byte from file table. It\r
+        * automtatically flips to next page when it gets to end\r
+        * of last page. \r
+        * @return Next byte of data from table.\r
+        */\r
+       private static byte readNextByte() {\r
+               \r
+               if(byte_pointer >= Flash.BYTES_PER_PAGE) {\r
+                       ++page_pointer; // Throw exception here if > FILE_TABLE_PAGES - 1?\r
+                       byte_pointer = 0;\r
+                       Flash.readPage(buff, page_pointer);\r
                }\r
+               \r
+               return buff[byte_pointer++];\r
        }\r
        \r
        /**\r
         * Writes the file data to the table from the files [] array. \r
-        * NOTE: Currently can only use first page of flash to store table! ~ 8 files\r
         * @param files The array containing a list of Files to write to table. \r
         */\r
-       static void writeTable(File [] files) { // !! Make private when done tests!\r
-               short table_pointer = 0; // Move pointer to start of table\r
-               for(table_pointer=0;table_pointer<TABLE_ID.length();table_pointer++) \r
-               {\r
-                       buff[table_pointer] = (byte)TABLE_ID.charAt(table_pointer);\r
+       static void writeTable(File [] files) throws IOException {\r
+               /*\r
+                * Note: This method doesn't bother assigning empty \r
+                * byte positions as 0. Ghost data appears in memory but\r
+                * it will be ignored.\r
+                */\r
+               // Move pointer to start of file table:\r
+               resetTablePointer();\r
+               // Write table id (header with version info): \r
+               for(int i=0;i<TABLE_ID.length();i++) {\r
+                       writeNextByte((byte)TABLE_ID.charAt(i));\r
                }\r
+               // Write total files (when using GC and arrays, can use array length): \r
+               // POSPONED UNTIL LATER (see Kludge below)\r
+               writeNextByte((byte)0); // used to increment byte pointer \r
+               \r
+               // Now write all the file info to the table \r
                byte arrayIndex = 0;\r
-               if(files.length != 0) { // Will throw exception for 0 length unless this checks\r
+               if(files != null && files.length != 0) { // Will throw exception for 0 length unless this checks\r
                        while(files[arrayIndex] != null) {\r
                                \r
-                               if(files[arrayIndex].file_length == -999) break;\r
+                               if(files[arrayIndex].file_length == -999) break; // !! What is this for? Can't remember why it is here.\r
                                \r
-                               // Write page location of file:\r
-                               buff[++table_pointer] = (byte)files[arrayIndex].page_location;\r
-                               buff[++table_pointer] = (byte)(files[arrayIndex].page_location>>8);\r
-                               // Write file size:\r
-                               buff[++table_pointer] = (byte)files[arrayIndex].file_length;\r
-                               buff[++table_pointer] = (byte)(files[arrayIndex].file_length>>8);\r
-                               buff[++table_pointer] = (byte)(files[arrayIndex].file_length>>16);\r
-                               buff[++table_pointer] = (byte)(files[arrayIndex].file_length>>24);\r
-                               // Write length of name:\r
-                               buff[++table_pointer] = (byte)(files[arrayIndex].file_name.length());\r
-                               // Write name:\r
-                               for(int i=0;i<files[arrayIndex].file_name.length();i++) {\r
-                                       buff[++table_pointer] = (byte)files[arrayIndex].file_name.charAt(i);\r
+                               try {\r
+                                       // Write page location of file:\r
+                                       writeNextByte((byte)files[arrayIndex].page_location);\r
+                                       writeNextByte((byte)(files[arrayIndex].page_location>>8));\r
+                                       // Write file size:\r
+                                       writeNextByte((byte)files[arrayIndex].file_length);\r
+                                       writeNextByte((byte)(files[arrayIndex].file_length>>8));\r
+                                       writeNextByte((byte)(files[arrayIndex].file_length>>16));\r
+                                       writeNextByte((byte)(files[arrayIndex].file_length>>24));\r
+                                       // Write length of name:\r
+                                       writeNextByte((byte)(files[arrayIndex].file_name.length()));\r
+                                       // Write name:\r
+                                       for(int i=0;i<files[arrayIndex].file_name.length();i++) {\r
+                                               writeNextByte((byte)files[arrayIndex].file_name.charAt(i));\r
+                                       }\r
+                               } catch (IOException e) {\r
+                                       // Write total files (ignoring aborted one) before rethrowing IOException:\r
+                                       \r
+                                       // Write the current page to flash:\r
+                                       writeBufftoFlash();\r
+                                       \r
+                                       // KLUDGE (should really be done above): Now write total files \r
+                                       Flash.readPage(buff, TABLE_START_PAGE);\r
+                                       buff[NUM_FILES_POS] = arrayIndex; // Update number of files\r
+                                       File.totalFiles = arrayIndex; // Update total files in File class?\r
+                                       Flash.writePage(buff, TABLE_START_PAGE);\r
+                                       throw e;\r
+                               } finally {\r
+                                       // If catch rethrows IOException wonder if finally called? \r
                                }\r
+                               \r
                                ++arrayIndex;\r
                                if(arrayIndex >= files.length) break;\r
+                               \r
                        }\r
                }\r
+               \r
+               // Write the current page to flash:\r
+               writeBufftoFlash();\r
+               \r
+               // KLUDGE (should really be done above): Now write total files \r
+               Flash.readPage(buff, TABLE_START_PAGE);\r
                buff[NUM_FILES_POS] = arrayIndex; // Update number of files\r
                File.totalFiles = arrayIndex; // Update total files in File class?\r
                Flash.writePage(buff, TABLE_START_PAGE);\r
-\r
+       }\r
+       \r
+       /**\r
+        * Couple of global variables used for table pointers.\r
+        */\r
+       private static short page_pointer;\r
+       private static short byte_pointer;\r
+       \r
+       /**\r
+        * Helper method to write the next byte to flash memory\r
+        * and automatically switch to next page.\r
+        * @param value The value to write.\r
+        */\r
+       private static void writeNextByte(byte value) throws IOException {\r
+               if(byte_pointer >= Flash.BYTES_PER_PAGE) {\r
+                       writeBufftoFlash();\r
+                       ++page_pointer;\r
+                       // Throw exception here if > FILE_TABLE_PAGES - 1:\r
+                       if(page_pointer >= FILE_TABLE_PAGES)\r
+                               throw new IOException("File table is full. Try deleting some files.");\r
+                       byte_pointer = 0;\r
+               }\r
+                       \r
+               buff[byte_pointer] = value;\r
+               ++byte_pointer;\r
+       }\r
+       \r
+       /**\r
+        * Writes the current page in buff[] to flash\r
+        *\r
+        */\r
+       private static void writeBufftoFlash() {\r
+               Flash.writePage(buff, page_pointer);\r
+       }\r
+       \r
+       /**\r
+        * Resets the global variables for page and byte pointers to start.\r
+        *\r
+        */\r
+       private static void resetTablePointer() {\r
+               page_pointer = TABLE_START_PAGE;\r
+               byte_pointer = 0;\r
        }\r
        \r
        /**\r
         * Essentially formats the file system by writing TABLE_ID characters to \r
         * the first page of flash memroy. Also writes 0 as the number of files\r
         * in the file system, so it can be used to restart/erase all files.\r
-        *\r
         */\r
        public static void format() {\r
                // Write TABLE_ID to buff array:\r
@@ -327,15 +419,16 @@ public class File {
                }\r
                // Write # of files (0) right after TABLE_ID\r
                buff[NUM_FILES_POS] = 0;\r
-               Flash.writePage(buff, TABLE_START_PAGE);\r
-//             LCD.drawInt(999, 12,5);\r
+               Flash.writePage(buff, TABLE_START_PAGE);\r
+//             LCD.drawInt(999, 12,5);\r
+               files = null;\r
        }\r
        \r
        /**\r
         * Creates a new file entry in the flash memory.\r
         * @return True indicates file was created in flash. False means it already existed or the size is 0 or less.\r
         */\r
-       public boolean createNewFile() {\r
+       public boolean createNewFile() throws IOException {\r
                /**\r
                 * Internally this method updates the page location value and\r
                 * adds this file instance to the global array of files.\r
@@ -356,8 +449,8 @@ public class File {
                        this.page_location = files[File.totalFiles - 1].page_location;\r
                        int prevFileSize = files[File.totalFiles - 1].file_length;\r
                        if(prevFileSize == 0) prevFileSize = 1; // Kludge to reserve page for empty files.\r
-                       int pages = prevFileSize / BYTES_PER_PAGE;\r
-                       if(prevFileSize % BYTES_PER_PAGE != 0) pages++;\r
+                       int pages = prevFileSize / Flash.BYTES_PER_PAGE;\r
+                       if(prevFileSize % Flash.BYTES_PER_PAGE != 0) pages++;\r
                        this.page_location = (short)(page_location + pages);\r
                } else { // If array empty, start writing on first page after table data\r
                        this.page_location = File.FILE_START_PAGE;\r
@@ -371,16 +464,16 @@ public class File {
                return true;\r
        }\r
        \r
-/**\r
- * Move the file a page at a time, in order from low to high memory\r
- * assumes that new starting page location  is lower in flash memory than the old or else that the new pages\r
- * does not overlap with the old.  \r
- * @param page  starting page of the new location.\r
- */\r
-        private void moveTo(int page)\r
+       /**\r
       * Move the file a page at a time, in order from low to high memory\r
       * assumes that new starting page location  is lower in flash memory than the old or else that the new pages\r
       * does not overlap with the old.  \r
       * @param page  starting page of the new location.\r
       */\r
+        private void moveTo(int page) throws IOException\r
        {\r
-               int nrPages = file_length/BYTES_PER_PAGE;\r
-               if(file_length%BYTES_PER_PAGE>0) nrPages++;\r
+               int nrPages = file_length/Flash.BYTES_PER_PAGE;\r
+               if(file_length%Flash.BYTES_PER_PAGE>0) nrPages++;\r
                int from = page_location;\r
                int to = page;\r
                page_location =(short) page;\r
@@ -393,13 +486,15 @@ public class File {
                writeTable(files);      \r
        }\r
 \r
-        /**\r
-         * move the file to become the last one in flash memory \r
-         */\r
-       public void moveToTop()\r
+       /**\r
+        * Move the file to become the last one in flash memory.\r
+        */\r
+       public void moveToTop() throws IOException\r
        {\r
                File  top = files[totalFiles - 1]; // file at top of flash memory\r
-               int page = 1+ top.getPage()+top.length()/BYTES_PER_PAGE;  \r
+               // !! Is the 1 value below problematic? I want to expand\r
+               // past 1 page for table. Actually is looks okay.\r
+               int page = 1+ top.getPage()+top.length()/Flash.BYTES_PER_PAGE;  \r
                int length = file_length;\r
                moveTo(page);   \r
                delete(); // remove from files[] array\r
@@ -407,6 +502,9 @@ public class File {
                createNewFile(); // put back into files[]\r
        }\r
        \r
+       /**\r
+        * Returns to total free memory in the flash file system.\r
+        */\r
        public static int freeMemory() {\r
                int last_page;\r
                \r
@@ -419,21 +517,22 @@ public class File {
                        last_page = -1;\r
                } else {\r
                        File  top = files[totalFiles - 1]; // file at top of flash memory\r
-                       last_page = top.getPage()+(top.length()-1)/BYTES_PER_PAGE;\r
+                       last_page = top.getPage()+(top.length()-1)/Flash.BYTES_PER_PAGE;\r
                }\r
-               return (767 - last_page) * BYTES_PER_PAGE;\r
+               return (Flash.MAX_USER_PAGES - 1 - last_page) * Flash.BYTES_PER_PAGE;\r
        }\r
 \r
-/**\r
* returns location of file in the files[] array\r
- * @return  index of file in files[]\r
- */\r
+       /**\r
       * Returns location of file in the files[] array\r
       * @return  index of file in files[]\r
       */\r
        public  int getIndex()\r
        {\r
                int i = 0;\r
                while( i<totalFiles  && this != files[i]) i++;\r
                return i;\r
        }\r
+       \r
        /** \r
         * Indicates if the flash memory contains a file table.\r
         * Compares header with expected header (TABLE_HEADER) at the \r
@@ -448,11 +547,18 @@ public class File {
                }\r
                return formatted; \r
        }\r
-/**\r
- *  assumptions: the files[] array has no nulls, and is in increasing order by page_location\r
- *  this scheme moves moves each file down to fill in the empty pages. \r
- */    \r
-       public static void defrag()\r
+       \r
+       /**\r
+        * Defrag the file system.\r
+        * \r
+        * WARNING: should only be called from the startup menu.\r
+        * If called from a user program, can cause the current program to\r
+        * be moved resulting in a data abort of other firmware crash.\r
+        * \r
+        * Assumptions: the files[] array has no nulls, and is in increasing order by page_location.\r
+        * This scheme moves moves each file down to fill in the empty pages. \r
+        */     \r
+       public static void defrag() throws IOException\r
        {\r
                File file;\r
                int page_pointer = FILE_START_PAGE; // smallest memory location possible for current file \r
@@ -461,17 +567,26 @@ public class File {
                {\r
                        file = files[i];\r
                        if(file.page_location > page_pointer) file.moveTo(page_pointer);                                        \r
-                       page_pointer = file.page_location + file.length()/BYTES_PER_PAGE ;\r
-                       if (file.length()%BYTES_PER_PAGE >0 ) page_pointer++;   \r
+                       page_pointer = file.page_location + file.length()/Flash.BYTES_PER_PAGE ;\r
+                       if (file.length()%Flash.BYTES_PER_PAGE >0 ) page_pointer++;     \r
                }\r
                writeTable(files);      // update the file data in flash memory \r
        }\r
        \r
+       /**\r
+        * Internal method used to get the page number of the start of the file.\r
+        * \r
+        * @return page number\r
+        */\r
        public int getPage() {\r
                return page_location;\r
        }\r
        \r
-       public void play(int freq, int vol) {\r
-               Sound.playSample(page_location, file_length, freq, vol);\r
+       /**\r
+        * Reset the files array after an error.\r
+        * Forces listFiles to read from the file table.\r
+        */\r
+       public static void reset() {\r
+               files = null;\r
        }\r
 }
\ No newline at end of file
index c84d4ab..e1a70c1 100644 (file)
@@ -1,9 +1,13 @@
 package java.io;\r
 \r
-\r
-\r
 import lejos.nxt.Flash;\r
 \r
+/**\r
+ * Reads a stream of bytes from a file.\r
+ * \r
+ * @author Brian Bagnall\r
+ *\r
+ */\r
 public class FileInputStream extends InputStream{\r
        \r
        int pointer;\r
@@ -14,7 +18,7 @@ public class FileInputStream extends InputStream{
        \r
        public FileInputStream(File f) {\r
         file = f;\r
-               buff = new byte[File.BYTES_PER_PAGE];\r
+               buff = new byte[Flash.BYTES_PER_PAGE];\r
                page_pointer = file.page_location;\r
                data_pointer = 0; // Start of page\r
                pointer = 0; // Overall mark;\r
@@ -29,7 +33,7 @@ public class FileInputStream extends InputStream{
                int val = buff[data_pointer];\r
                data_pointer++;\r
                pointer++;\r
-               if(data_pointer >= File.BYTES_PER_PAGE) {\r
+               if(data_pointer >= Flash.BYTES_PER_PAGE) {\r
                        data_pointer = 0;\r
                        page_pointer++;\r
                        Flash.readPage(buff, page_pointer);\r
index 98a332c..5a2f46b 100644 (file)
@@ -1,9 +1,13 @@
 package java.io;\r
 \r
\r
 import lejos.nxt.Flash;\r
 \r
-\r
+/**\r
+ * Writes a stream of bytes to a file.\r
+ * \r
+ * @author Brian Bagnall\r
+ *\r
+ */\r
 public class FileOutputStream extends OutputStream {\r
 \r
        /**\r
@@ -35,6 +39,7 @@ public class FileOutputStream extends OutputStream {
        {\r
                this(f, false);\r
        }\r
+       \r
 /**\r
  * create a new OutputStream to write to this file\r
  * @param f  the file this stream writes to\r
@@ -43,14 +48,14 @@ public class FileOutputStream extends OutputStream {
        public FileOutputStream(File f, boolean append) {\r
        this.append = append;\r
         file = f;\r
-               buff = new byte[File.BYTES_PER_PAGE];\r
+               buff = new byte[Flash.BYTES_PER_PAGE];\r
                page_pointer = file.page_location;\r
                data_pointer = 0; // Start of first page\r
 \r
                if(append)\r
                {\r
-                       page_pointer = file.page_location + file.file_length/File.BYTES_PER_PAGE ;\r
-                       data_pointer =  file.file_length%File.BYTES_PER_PAGE;\r
+                       page_pointer = file.page_location + file.file_length/Flash.BYTES_PER_PAGE ;\r
+                       data_pointer =  file.file_length%Flash.BYTES_PER_PAGE;\r
                        Flash.readPage(buff, page_pointer);\r
                }\r
                else file.file_length = 0;// can this cause trouble?\r
@@ -64,12 +69,12 @@ public class FileOutputStream extends OutputStream {
                buff[data_pointer] = (byte)b;\r
                data_pointer++;\r
                file.file_length++; \r
-               if(data_pointer >= File.BYTES_PER_PAGE) \r
+               if(data_pointer >= Flash.BYTES_PER_PAGE) \r
                {\r
                        if(file.getIndex()< ( File.totalFiles -1)) \r
                                {\r
                                file.moveToTop();\r
-                               page_pointer = file.page_location + file.file_length/File.BYTES_PER_PAGE;                                       \r
+                               page_pointer = file.page_location + file.file_length/Flash.BYTES_PER_PAGE;                                      \r
                                }\r
                        flush(); // Write to flash\r
                        page_pointer++; // Move to next page\r
@@ -80,10 +85,11 @@ public class FileOutputStream extends OutputStream {
        public void flush() throws IOException {\r
                Flash.writePage(buff, page_pointer);\r
     }\r
-/**\r
- * write the buffer to flash memory and update the file parameters in flash\r
- * Resets pointers, so file can be writen again from beginning with the same output stream.\r
- */    \r
+       \r
+       /**\r
+        * Write the buffer to flash memory and update the file parameters in flash.\r
+        * Resets pointers, so file can be writen again from beginning with the same output stream.\r
+        */     \r
        public void close() throws IOException {\r
                // !! Alternate implementation: If this is a new file, perhaps only \r
                // write the file table information AFTER close() called so  \r
index 7cab835..e7fdc5b 100644 (file)
@@ -46,7 +46,8 @@ package java.lang;
      * @param   i   an integer to be converted.
      * @return  a string representation of the argument in base&nbsp;10.
      */
-    public static synchronized String toString(int i) {
+    public static String toString(int i) {
+         synchronized(buf) {
        int q, r, charPos = 12; 
        char sign = 0 ; 
 
@@ -70,6 +71,7 @@ package java.lang;
        }
 
        return new String ( buf, charPos, 12 - charPos) ; 
+     }
    }
 
    /**
index 3c98faf..5c6e225 100644 (file)
@@ -146,6 +146,8 @@ public final class Math {
        */
        public static double log(double x)
        {
+                   if (x == 0) return NaN;
+                   
                if (x < 1.0)
                        return -log(1.0/x);
                        
index dc3da33..ba994af 100644 (file)
@@ -12,13 +12,8 @@ public final class StringBuffer
 {
   char[] characters;
   int curPos = 0;
-
-  /**
-   * Conversion between integers from 0 to 9 and their respective
-   * chars.
-   **/
-  private static final char[] numbers = { '0', '1', '2', '3', '4',
-                                           '5', '6', '7', '8', '9' };
+  static char [] buf = new char[16];
+  static String minInt = "-2147483648";
 
   /**
    * The value of <i>log(10)</i> used for converting from base
@@ -27,12 +22,13 @@ public final class StringBuffer
   private static final float log10 = 2.30258509f;
 
   public StringBuffer () {
-       characters = new char[0];
+       characters = new char[20];
   }
   
   public StringBuffer (String aString)
   {
     characters = aString.toCharArray();
+    curPos = aString.length();
   }
 
   public StringBuffer (int length)
@@ -88,25 +84,47 @@ public final class StringBuffer
     return append (new String (new char[] { aChar }, 0, 1));
   }
 
-  public StringBuffer append (int aInt)
+  public StringBuffer append (int i)
   {
-       if ( aInt < 0 ) {
-           characters[ curPos++ ] = '-';
-           aInt = -aInt;
-       } // if
+       // Modified to expand the buffer...
+       // Conversion code lifted from Integer, could have just called
+       // append(Integer.toString(aInt))
+       // but that would have allocated a new string for every call. Not sure
+       // how good the garbage collector is at the moment, so probably best
+       // to preserve the existing memory allocation behavior.
+       int q, r, charPos = buf.length; 
+       char sign = 0 ; 
+
+       if (i == Integer.MIN_VALUE) return append(minInt);
+
+       if (i < 0) { 
+          sign = '-' ; 
+          i = -i ; 
+       }
+       synchronized (buf) {
+         for (;;) { 
+           q = i/10; ; 
+           r = i-(q*10) ;
+           buf [--charPos] = (char) ((int) '0' + r) ; 
+           i = q ; 
+           if (i == 0) break ; 
+         }
 
-       int pow = ( int )Math.floor( Math.log( aInt ) / log10 );
+         if (sign != 0) {
+           buf [--charPos] = sign ; 
+         }
 
-       int div = 0;
-       while ( pow >= 0 ) {
-           div = ( int ) ( aInt / (int)Math.pow( 10, pow ) );
-           
-           characters[ curPos++ ] = numbers[ div ];
-           aInt -= div * (int)Math.pow( 10, pow );
-           pow--;
-       } // while
-       
-       return this;
+         // Will it fit in the existing space?
+         int len = buf.length - charPos;
+         if (len + curPos > characters.length) {
+               char [] nc = new char[curPos + len];
+               System.arraycopy (characters, 0, nc, 0, curPos);        
+               characters = nc;
+         }
+         System.arraycopy(buf, charPos, characters, curPos, len);
+         curPos += len;
+         return this;
+       }
   }
 
   public StringBuffer append (long aLong)
@@ -165,82 +183,90 @@ public final class StringBuffer
      * @author Martin E. Nielsen
      **/
     private StringBuffer append( float number, int significantDigits ) {
+         synchronized(buf) {
+               int charPos = 0;
+               if ( number == 0 ) {
+                       buf[ charPos++ ] = '0';
+               } else {
+                       if ( number < 0 ) {
+                               buf[ charPos++ ] = '-';
+                               number = -number;
+                       } // if
 
-       if ( number == 0 ) {
-           characters[ curPos++ ] = '0';
-           return this;
-       } // if
-           
-       if ( number < 0 ) {
-           characters[ curPos++ ] = '-';
-           number = -number;
-       } // if
-
-       // calc. the power (base 10) for the given number:
-       int pow = ( int )Math.floor( Math.log( number ) / log10 );
-       int exponent = 0;
-
-       // use exponential formatting if number too big or too small
-       if ( pow < -3 || pow > 6 ) {
-           exponent = pow;
-           number /= Math.exp( Math.ln10 * exponent );
-       } // if
-
-       // Recalc. the pow if exponent removed and d has changed
-       pow = ( int )Math.floor( Math.log( number ) / log10 );
-
-       // Decide how many insignificant zeros there will be in the
-       // lead of the number.
-       int insignificantDigits = -Math.min( 0, pow );
-
-       // Force it to start with at least "0." if necessarry
-       pow = Math.max( 0, pow );
-        double divisor = Math.pow(10, pow);
-        
-       // Loop over the significant digits (17 for double, 8 for float)
-       for ( int i = 0, end = significantDigits+insignificantDigits, div; i < end; i++  ) {
-
-           // Add the '.' when passing from 10^0 to 10^-1
-           if ( pow == -1 ) {
-               characters[ curPos++ ] = '.';
-           } // if
-           
-           // Find the divisor
-           div = ( int ) ( number / divisor );
-           // This might happen with 1e6: pow = 5 ( instead of 6 )
-           if ( div == 10 ) {
-               characters[ curPos++ ] = '1';
-               characters[ curPos++ ] = '0';
-           } // if
-           else {
-//             characters[ curPos ] = numbers[ div ];
-               characters[ curPos ] = (char)(div + '0');
-               curPos++;
-           } // else
-
-           number -= div * divisor;
-           divisor /= 10.0;
-           pow--;
-
-           // Break the loop if we have passed the '.'
-           if ( number == 0 && divisor < 0.1 ) break;
-       } // for
-
-       // Remove trailing zeros
-       while ( characters[ curPos-1 ] == '0' )
-           curPos--;
-
-       // Avoid "4." instead of "4.0"
-       if ( characters[ curPos-1 ] == '.' )
-           curPos++;
-
-       // Restore the exponential format
-       if ( exponent != 0 ) {
-           characters[ curPos++ ] = 'E';
-           append( exponent );
-       } // if
-       
-       return this;
+                       // calc. the power (base 10) for the given number:
+                       int pow = ( int )Math.floor( Math.log( number ) / log10 );
+                       int exponent = 0;
+
+                       // use exponential formatting if number too big or too small
+                       if ( pow < -3 || pow > 6 ) {
+                               exponent = pow;
+                               number /= Math.exp( Math.ln10 * exponent );
+                       } // if
+
+                       // Recalc. the pow if exponent removed and d has changed
+                       pow = ( int )Math.floor( Math.log( number ) / log10 );
+
+                       // Decide how many insignificant zeros there will be in the
+                       // lead of the number.
+                       int insignificantDigits = -Math.min( 0, pow );
+
+                       // Force it to start with at least "0." if necessarry
+                       pow = Math.max( 0, pow );
+                               double divisor = Math.pow(10, pow);
+
+                       // Loop over the significant digits (17 for double, 8 for float)
+                       for ( int i = 0, end = significantDigits+insignificantDigits, div; i < end; i++  ) {
+
+                               // Add the '.' when passing from 10^0 to 10^-1
+                               if ( pow == -1 ) {
+                                       buf[ charPos++ ] = '.';
+                               } // if
+
+                               // Find the divisor
+                               div = ( int ) ( number / divisor );
+                               // This might happen with 1e6: pow = 5 ( instead of 6 )
+                               if ( div == 10 ) {
+                                       buf[ charPos++ ] = '1';
+                                       buf[ charPos++ ] = '0';
+                               } // if
+                               else {
+                                       buf[ charPos ] = (char)(div + '0');
+                                       charPos++;
+                               } // else
+
+                               number -= div * divisor;
+                               divisor /= 10.0;
+                               pow--;
+
+                               // Break the loop if we have passed the '.'
+                               if ( number == 0 && divisor < 0.1 ) break;
+                       } // for
+
+                       // Remove trailing zeros
+                       while ( buf[ charPos-1 ] == '0' )
+                               charPos--;
+
+                       // Avoid "4." instead of "4.0"
+                       if ( buf[ charPos-1 ] == '.' )
+                               charPos++;
+                       if ( exponent != 0 ) {
+                               buf[ charPos++ ] = 'E';
+                       } // if
+                       // Do we have enough room?
+                       if (charPos + curPos > characters.length) {
+                                 char [] nc = new char[curPos + charPos];
+                                 System.arraycopy (characters, 0, nc, 0, curPos);      
+                                 characters = nc;
+                       }
+                       System.arraycopy(buf, 0, characters, curPos, charPos);
+                       curPos += charPos;
+                       // Restore the exponential format
+                       if ( exponent != 0 ) {
+                               append( exponent );
+                       } // if
+               }
+               return this;
+         }
     }
 }
 
index c1a25fc..ebd94a4 100644 (file)
@@ -10,12 +10,8 @@ public final class System
   /**
    * Copies one array to another.
    */
-  //public static native void arraycopy (Object src, int srcOffset, Object dest, int destOffset, int length);
-  static void arraycopy (char[] src, int srcOffset, char[] dest, int destOffset, int length)
-  {
-    for (int i = 0; i < length; i++)
-      dest[i + destOffset] = src[i + srcOffset]; 
-  }
+  public static native void arraycopy (Object src, int srcOffset, Object dest, int destOffset, int length);
+
 
   /**
    * Terminate the application.
@@ -35,5 +31,18 @@ public final class System
   public static Runtime getRuntime() {
        return Runtime.getRuntime();
   }
+  
+  /**
+   * Collect garbage
+   */
+ public static native void gc();
+ /**
+  * Shutdown the brick
+  */
+ public static native void shutDown();
 }
 
+
+
index e7f9540..0b39750 100644 (file)
@@ -1,6 +1,7 @@
 package java.util;\r
 \r
 /**\r
+ * An expandable array.\r
  * \r
  * @author Andre Nijholt\r
  */\r
@@ -153,14 +154,11 @@ public class ArrayList {
 \r
                Object oldData[] = elementData;\r
                elementData = new Object[newCapacity];\r
-               arraycopy(oldData, 0, elementData, 0, elementCount);\r
+               System.arraycopy(oldData, 0, elementData, 0, elementCount);\r
            }\r
        }\r
        \r
-       private void arraycopy(Object[] src, int srcOffset, Object[] dst, int dstOffset, int length) {\r
-               for (int i = 0; i < length; i++)\r
-                       dst[i + dstOffset] = src[i + srcOffset];\r
-       }\r
+\r
 \r
 \r
 }\r
index b2cbee4..00a5137 100644 (file)
@@ -171,7 +171,7 @@ public class Vector
 
       elementData = new Object[pNewCapacity];
 
-      arraycopy(oldData,0, elementData, 0, elementCount);
+      System.arraycopy(oldData,0, elementData, 0, elementCount);
 
 
 
@@ -381,7 +381,7 @@ public class Vector
 
       {
 
-        arraycopy(elementData, aIndex + 1, elementData, aIndex, j);
+        System.arraycopy(elementData, aIndex + 1, elementData, aIndex, j);
 
       }
 
@@ -453,7 +453,7 @@ public class Vector
 
       Object[] pNewElements = new Object[pNewCapacity];
 
-      arraycopy (elementData, 0, pNewElements, 0, elementData.length);
+      System.arraycopy (elementData, 0, pNewElements, 0, elementData.length);
 
       elementData = pNewElements;*/
 
@@ -487,7 +487,7 @@ public class Vector
 
     Object[] result = new Object[elementCount];
 
-    arraycopy(elementData, 0, result, 0, elementCount);
+    System.arraycopy(elementData, 0, result, 0, elementCount);
 
     return result;
 
@@ -531,23 +531,11 @@ public class Vector
 
       elementData = new Object[elementCount];
 
-      arraycopy(oldData, 0, elementData, 0, elementCount);
+      System.arraycopy(oldData, 0, elementData, 0, elementCount);
 
     }
 
   }
 
-  static void arraycopy (Object[] src, int srcoffset, Object[] dest, int destoffset, int length)
-
-    {
-
-      for (int i = 0; i < length; i++)
-
-        dest[i + destoffset] = src[i + srcoffset];
-
-  }
-
-  //private native void arraycopy (Object aSource, int aOffset1, Object aDest, int aOffset2, int aLength);
-
 }
 
index 6010e17..03c6c82 100644 (file)
@@ -253,12 +253,14 @@ public class Display {
        \r
        private void update() {\r
                if (current.getPaintRequest()) {\r
+                       graphics.autoRefresh(false);\r
                        graphics.clear();\r
                        updateTicker(tickerOffset);\r
                        \r
                        current.paint(graphics);\r
                        current.clearPaintRequest();\r
                        graphics.refresh();\r
+                       graphics.autoRefresh(true);\r
                }\r
        }\r
        \r
index 5130d8d..7135e81 100644 (file)
@@ -36,6 +36,11 @@ public class Graphics {
        public int getCenteredX(String str) {\r
                return (LCD.DISPLAY_CHAR_WIDTH - str.length()) / 2;\r
        }\r
+       \r
+       public void setColor(int rgb)\r
+       {\r
+               rgbColor = rgb;\r
+       }\r
                \r
        /**\r
        * Using rgbColor as argument even though global, because when this\r
@@ -313,6 +318,11 @@ public class Graphics {
        public void clear() {\r
                LCD.clearDisplay();\r
        }\r
+       \r
+       public void autoRefresh(boolean on)\r
+       {\r
+               LCD.setAutoRefresh((on ? 1 : 0));\r
+       }\r
 }\r
 \r
 /*\r
index 073567b..7cd0116 100644 (file)
@@ -2,7 +2,7 @@ package lejos.navigation;
 import lejos.nxt.*;
 
 /**
-* The CompassPilot class, like its superclass, can keep track of the robot position and the direction angle it faces; It uses a compassPpilot bject to control NXT robot movements.<br>
+* The CompassNavigatort class, like its superclass, can keep track of the robot position and the direction angle it faces. It uses a CompassPilot object to control NXT robot movements.<br>
 * The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.
 * However, some commands optionally return immediately, to permit sensor monitoring in the main thread.  It is then the programmers responsibility to 
 * call updateXY() when the robot motion is completed.  All angles are in degrees, distances in the units used to specify robot dimensions.
index 85226be..7a33165 100644 (file)
@@ -1,9 +1,12 @@
 package lejos.navigation;
-//import lejos.navigation.*;
+
 import lejos.nxt.CompassSensor;
 import lejos.nxt.SensorPort;
 import lejos.nxt.Motor;
 
+/**
+ * A Pilot that keeps track of direction using a CompassSensor.
+ */
 public class CompassPilot extends Pilot {
        
        protected CompassSensor compass;
index 5fba5fd..641c9c8 100644 (file)
 package lejos.navigation;
 //import lejos.navigation.*;
-import lejos.nxt.Motor;
+import lejos.nxt.*;
+import lejos.navigation.*;
+
 
 /**
-* The TachoNavigator class can keep track of the robot position and the direction angle it faces; It uses a _pilot object to control NXT robot movements.<br>
-* The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.
-* However, some commands optionally return immediately, to permit sensor monitoring in the main thread.  It is then the programmers responsibility to 
-* call updatePosition() when the robot motion is completed.  All angles are in degrees, distances in the units used to specify robot dimensions.
-* As with pilot, the robot must be have two independently controlled drive wheels. 
-* The assumed initial position of the robot is at (0,0) and initial angle 0 i.e. pointing in the +X direction. 
-*/
-
-public class TachoNavigator  implements Navigator
-{ 
-       // orientation and co-ordinate data
-       protected float _heading = 0;
-       private float _x = 0;
-       private float _y = 0;
-       // The essential component
-       protected Pilot _pilot;
-       
-/**
- * set false whenever the robot moves,  set to true by updatePosition();
+ * The TachoNavigator class can keep track of the robot position and the direction angle it faces; It uses a _pilot object to control NXT robot movements.<br>
+ * The position and direction angle values are updated automatically when the movement command returns after the movement is complete and and after stop() command is issued.
+ * However, some commands optionally return immediately, to permit sensor monitoring in the main thread.  It is then the programmers responsibility to 
+ * call updatePosition() when the robot motion is completed.  All angles are in degrees, distances in the units used to specify robot dimensions.
+ * As with pilot, the robot must be have two independently controlled drive wheels. 
+ * The assumed initial position of the robot is at (0,0) and initial angle 0 i.e. pointing in the +X direction. 
  */
-       private boolean _updated = false;
 
-/**
-* Allocates a Navigator object and initializes it with the proper motors.
-* The x and y values and the direction angle are all initialized to 0, so if the first move is forward() the robot will run along
-* the x axis. <BR>
-* @param wheelDiameter The diameter of the wheel, usually printed right on the
-* wheel, in centimeters (e.g. 49.6 mm = 4.96 cm = 1.95 in) 
-* @param trackWidth The distance from the center of the left tire to the center
-* of the right tire, in units of your choice
-* @param rightMotor The motor used to drive the right wheel e.g. Motor.C.
-* @param leftMotor The motor used to drive the left wheel e.g. Motor.A.
-* @param reverse  If motor.forward() dives the robot backwars, set this parameter true.
-*/
-       public TachoNavigator(float wheelDiameter, float trackWidth, Motor leftMotor, Motor rightMotor, boolean reverse) 
-               {
-                       _pilot = new Pilot(wheelDiameter,trackWidth,leftMotor, rightMotor,reverse);
-               }
-       
-       public TachoNavigator(float wheelDiameter, float trackWidth, Motor leftMotor, Motor rightMotor) 
-       {
-               _pilot = new Pilot(wheelDiameter,trackWidth,leftMotor, rightMotor);
-       }
-
-          
-          public TachoNavigator(Pilot pilot) {
-                _pilot = pilot;
-          }
-          
-       /**
-       * Overloaded TachoNavigator constructor that assumes the following:<BR>
-       * Left motor = Motor.A   Right motor = Motor.C <BR>
-       * @param wheelDiameter The diameter of the wheel, usually printed right on the
-       * wheel, in centimeters (e.g. 49.6 mm = 4.96 cm)  
-       * @param driveLength The distance from the center of the left tire to the center
-       * of the right tire, 
-       */
-       public TachoNavigator(float wheelDiameter, float driveLength)
-       {
-         this(wheelDiameter, driveLength, Motor.A, Motor.C);
-       }
-       
-    public Pilot getPilot(){ return _pilot;}
-/**
-* Returns the current x coordinate of the NXT.
-* @return float Present x coordinate.
-*/
-       public float getX() 
-       {
-               return _x;
-       }
-       
-       /**
-       * Returns the current y coordinate of the NXT.
-       * Note: At present it will only give an updated reading when the NXT is stopped.
-       * @return float Present y coordinate.
-       */
-       public float getY() { return _y;}
-        
-       /**
-       * Returns the current angle the NXT robot is facing, relative to the +X axis direction; the +Y direction is 90 degrees.
-       * Note: At present it will only give an updated reading when the NXT is stopped.
-       * @return float Angle in degrees.
-       */
-       public float getAngle() { return _heading;} 
+public class TachoNavigator implements Navigator
+{ 
+   // orientation and co-ordinate data
+   protected float _heading = 0;
+   private float _x = 0;
+   private float _y = 0;
+   protected int _left0 = 0;
+   protected int _right0 = 0;
 
-/**
-*sets robot location (x,y) and direction angle
-*@param x  the x coordinate of the robot
-*@param y the y coordinate of the robot
-*@param directionAngle  the angle the robot is heading, measured from the x axis.  90 degrees is the +Y direction
-*/     
-       public void setPosition(float x, float y, float directionAngle)
-       {
-               _x = x;
-               _y = y;
-               _heading = directionAngle;
-       }
-       /**
- *sets the motor speed of the robot, in degrees/second. 
- */
-       public void setSpeed(int speed)
-       {
-               _pilot.setSpeed(speed);
-       }
-       
-       /**
-        * Moves the NXT robot forward until stop() is called.
-        * @see Navigator#stop().
-        */
-    public void forward() 
-    {
-         _updated = false;
-         _pilot.resetTachoCount();
-         _pilot.forward();
-    }
-   
-    /**
-     * Moves the NXT robot backward until stop() is called.
-     */
-       public void backward() 
-       {
-         _updated = false;
-         _pilot.resetTachoCount();
-         _pilot.backward();
-       }
-       
-       /**
-        * Halts the NXT robot and calculates new x, y coordinates.
-        */
-       public void stop() 
-       {
-               _pilot.stop();
-               updatePosition();
-       }
-       
-       /**
-        *returns true iff the robot is moving under power
-        */
-       public boolean isMoving()
-       {
-               return _pilot.isMoving();
-       }
-
-       /**
-        * Moves the NXT robot a specific distance. A positive value moves it forwards and
-        * a negative value moves it backwards. 
-        * The robot position is updated atomatically when the method returns. 
-        * @param distance The positive or negative distance to move the robot, same units as _wheelDiameter
-        */
-       public void travel(float distance) 
-       {
-               travel(distance,false);
-       }
-
-       /**
-        * Moves the NXT robot a specific distance. A positive value moves it forwards and
-        * a negative value moves it backwards. 
-        *  If immediateReturnis true, method returns immidiately and your code MUST call updatePostion()
-        * when the robot has stopped.  Otherwise, the robot position is lost. 
-        * @param distance The positive or negative distance to move the robot, same units as _wheelDiameter
-        * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
-        *  is responsible for calling updatePosition() before the robot moves again. 
-        */
-       public void travel(float distance,boolean immediateReturn) 
-       {
-               _updated = false;
-               _pilot.resetTachoCount();
-               _pilot.travel(distance,immediateReturn);
-               if(!immediateReturn) updatePosition();
-       }
+   // The essential component
+   protected Pilot _pilot;
 
-/**
-*Rotates the NXT to the left (increasing angle) until stop() is called;
-*/
-       public void rotateLeft()
-       {
-         _updated = false;
-         _pilot.resetTachoCount();
-         _pilot.steer(200);
-       }
-  
-/**
-*Rotates the NXT to the right (decreasing angle) until stop() is called;
-*/
-  public void rotateRight()
-  {
-         _updated = false;
-         _pilot.resetTachoCount();
-         _pilot.steer(-200);
-  }
-
-       /**
-        * Rotates the NXT robot a specific number of degrees in a direction (+ or -).
-        * @param angle Angle to rotate in degrees. A positive value rotates left, a negative value right.
-        **/
-       public void rotate(float angle)
-       {
-               rotate(angle,false);
-       }
-       
-       /**
-        * Rotates the NXT robot a specific number of degrees in a direction (+ or -).
-        *  If immediateReturn is true, method returns immidiately and your code MUST call updatePostion()
-        * when the robot has stopped.  Otherwise, the robot position is lost. 
-        * @param angle Angle to rotate in degrees. A positive value rotates left, a negative value right.
-        * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
-        *  is responsible for calling updatePosition() before the robot moves again. 
-        */
+   /**
+    * set false whenever the robot moves,  set to true by updatePosition();
+    */
+   private boolean _updated = false;
+
+   /**
+    * Allocates a Navigator object and initializes it with the proper motors.
+    * The x and y values and the direction angle are all initialized to 0, so if the first move is forward() the robot will run along
+    * the x axis. <BR>
+    * @param wheelDiameter The diameter of the wheel, usually printed right on the
+    * wheel, in centimeters (e.g. 49.6 mm = 4.96 cm = 1.95 in) 
+    * @param trackWidth The distance from the center of the left tire to the center
+    * of the right tire, in units of your choice
+    * @param rightMotor The motor used to drive the right wheel e.g. Motor.C.
+    * @param leftMotor The motor used to drive the left wheel e.g. Motor.A.
+    * @param reverse  If motor.forward() dives the robot backwars, set this parameter true.
+    */
+   public TachoNavigator(float wheelDiameter, float trackWidth, Motor leftMotor, Motor rightMotor, boolean reverse) 
+   {
+      _pilot = new Pilot(wheelDiameter,trackWidth,leftMotor, rightMotor,reverse);
+   }
+
+   public TachoNavigator(float wheelDiameter, float trackWidth, Motor leftMotor, Motor rightMotor) 
+   {
+      _pilot = new Pilot(wheelDiameter,trackWidth,leftMotor, rightMotor);
+   }
+
+
+   public TachoNavigator(Pilot pilot) {
+      _pilot = pilot;
+   }
+
+   /**
+    * Overloaded TachoNavigator constructor that assumes the following:<BR>
+    * Left motor = Motor.A   Right motor = Motor.C <BR>
+    * @param wheelDiameter The diameter of the wheel, usually printed right on the
+    * wheel, in centimeters (e.g. 49.6 mm = 4.96 cm)  
+    * @param driveLength The distance from the center of the left tire to the center
+    * of the right tire, 
+    */
+   public TachoNavigator(float wheelDiameter, float driveLength)
+   {
+      this(wheelDiameter, driveLength, Motor.A, Motor.C);
+   }
+
+   public Pilot getPilot(){ return _pilot;}
+   /**
+    * Returns the current x coordinate of the NXT.
+    * @return float Present x coordinate.
+    */
+   public float getX() 
+   {
+      return _x;
+   }
+
+   /**
+    * Returns the current y coordinate of the NXT.
+    * Note: At present it will only give an updated reading when the NXT is stopped.
+    * @return float Present y coordinate.
+    */
+   public float getY() { return _y;}
+
+   /**
+    * Returns the current angle the NXT robot is facing, relative to the +X axis direction; the +Y direction is 90 degrees.
+    * Note: At present it will only give an updated reading when the NXT is stopped.
+    * @return float Angle in degrees.
+    */
+   public float getAngle() { return _heading;} 
+
+   /**
+    *sets robot location (x,y) and direction angle
+    *@param x  the x coordinate of the robot
+    *@param y the y coordinate of the robot
+    *@param directionAngle  the angle the robot is heading, measured from the x axis.  90 degrees is the +Y direction
+    */ 
+   public void setPosition(float x, float y, float directionAngle)
+   {
+      _x = x;
+      _y = y;
+      _heading = directionAngle;
+   }
+   /**
+    *sets the motor speed of the robot, in degrees/second. 
+    */
+   public void setSpeed(int speed)
+   {
+      _pilot.setSpeed(speed);
+   }
+
+   /**
+    * Moves the NXT robot forward until stop() is called.
+    * @see Navigator#stop().
+    */
+   public void forward() 
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.forward();
+   }
+
+   /**
+    * Moves the NXT robot backward until stop() is called.
+    */
+   public void backward() 
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.backward();
+   }
+
+   /**
+    * Halts the NXT robot and calculates new x, y coordinates.
+    */
+   public void stop() 
+   {
+      _pilot.stop();
+      updatePosition();
+   }
+
+   /**
+    *returns true iff the robot is moving under power
+    */
+   public boolean isMoving()
+   {
+      return _pilot.isMoving();
+   }
+
+   /**
+    * Moves the NXT robot a specific distance. A positive value moves it forwards and
+    * a negative value moves it backwards. 
+    * The robot position is updated atomatically when the method returns. 
+    * @param distance The positive or negative distance to move the robot, same units as _wheelDiameter
+    */
+   public void travel(float distance) 
+   {
+      travel(distance,false);
+   }
+
+   /**
+    * Moves the NXT robot a specific distance. A positive value moves it forwards and
+    * a negative value moves it backwards. 
+    *  If immediateReturnis true, method returns immidiately and your code MUST call updatePostion()
+    * when the robot has stopped.  Otherwise, the robot position is lost. 
+    * @param distance The positive or negative distance to move the robot, same units as _wheelDiameter
+    * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
+    *  is responsible for calling updatePosition() before the robot moves again. 
+    */
+   public void travel(float distance,boolean immediateReturn) 
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.travel(distance,immediateReturn);
+      if(!immediateReturn) updatePosition();
+   }
+
+   /**
+    *Rotates the NXT to the left (increasing angle) until stop() is called;
+    */
+   public void rotateLeft()
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.steer(200);
+   }
+
+   /**
+    *Rotates the NXT to the right (decreasing angle) until stop() is called;
+    */
+   public void rotateRight()
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.steer(-200);
+   }
+
+   /**
+    * Rotates the NXT robot a specific number of degrees in a direction (+ or -).
+    * @param angle Angle to rotate in degrees. A positive value rotates left, a negative value right.
+    **/
+   public void rotate(float angle)
+   {
+      rotate(angle,false);
+   }
+
+   /**
+    * Rotates the NXT robot a specific number of degrees in a direction (+ or -).
+    *  If immediateReturn is true, method returns immidiately and your code MUST call updatePostion()
+    * when the robot has stopped.  Otherwise, the robot position is lost. 
+    * @param angle Angle to rotate in degrees. A positive value rotates left, a negative value right.
+    * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
+    *  is responsible for calling updatePosition() before the robot moves again. 
+    */
    public void rotate(float angle,boolean immediateReturn)
-       {
-         _updated = false; 
+   {
+      _updated = false; 
       int turnAngle = Math.round(normalize(angle));
       _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
       _pilot.rotate(turnAngle,immediateReturn);
       if(!immediateReturn) updatePosition();
-       }
+   }
 
    /**
     * Rotates the NXT robot to point in a specific direction. It will take the shortest
@@ -227,8 +244,8 @@ public class TachoNavigator  implements Navigator
     * @param angle The angle to rotate to, in degrees.
     */
    public void rotateTo(float angle) 
-       {
-        rotateTo(angle,false);
+   {
+      rotateTo(angle,false);
    }
 
    /**
@@ -241,11 +258,11 @@ public class TachoNavigator  implements Navigator
     * updatePosition() before the robot moves again. 
     */
    public void rotateTo(float angle,boolean immediateReturn) 
-       {
-        float turnAngle = normalize( angle - _heading);
-       rotate(turnAngle,immediateReturn);
+   {
+      float turnAngle = normalize( angle - _heading);
+      rotate(turnAngle,immediateReturn);
    }
-   
+
    /**
     * Rotates the NXT robot towards the target point (x,y)  and moves the required distance.
     * Method returns when target point is reached, and the robot position is updated;
@@ -257,7 +274,7 @@ public class TachoNavigator  implements Navigator
       rotateTo(angleTo(x,y));
       travel(distanceTo(x,y));
    }
-  
+
    /**
     * Rotates the NXT robot towards the target point (x,y)  and moves the required distance.
     * Method returns when target point is reached, and the robot position is updated;
@@ -267,156 +284,165 @@ public class TachoNavigator  implements Navigator
     */
    public void goTo(float x, float y, boolean immediateReturn) 
    {
-          rotateTo(angleTo(x,y));
-       travel(distanceTo(x,y), immediateReturn);
+      rotateTo(angleTo(x,y));
+      travel(distanceTo(x,y), immediateReturn);
    }
-   
+
    /**
     * distance from robot to the point with coordinates (x,y) .
     * @param x coordinate of the point
     * @param y coordinate of the point
     * @return the distance from the robot current location to the point
     */
-       public float distanceTo( float x, float y)
-       {
-               float dx = x -_x;
-               float dy = y -_y; 
-               //use hypotenuse formula
-               return (float)Math.sqrt(dx*dx+dy*dy);
-       }
-       
-       /**
-        * returns the direction angle (degrees) to point with coordinates (x,y)
-        * @param x coordinate of the point
-        * @param y coordinate of the point
-        * @return the direction angle to the point (x,y) from the NXT.  Rotate to this angle to head toward it. 
-        */
-       public float angleTo(float x, float y)
-       {
-               float dx = x -_x;
-               float dy = y -_y;
-               return(float)Math.toDegrees(Math.atan2(dy,dx));
-       }
-
-       /**
-        * Updates robot location (x,y) and direction angle. Called by stop, and movement commands that terminate when complete.
-        * Must be called after a command that returns immediatly, but after robot movement stops, and before another movement method is called.
-        */ 
-       public void updatePosition()
-       {
-               if(_updated)return;// don't do it again
-               try{Thread.sleep(70);}
-               catch(InterruptedException e){}
-               int left = _pilot.getLeftCount();//left wheel rotation angle
-               int right = _pilot.getRightCount();
-               if(left == 0 && right == 0)return; // no movement
-               int outsideRotation = 0;
-               int insideRotation = 0;
-               int direction = 1; // assume left turn
-               if(Math.abs(left)<Math.abs(right))
-               {
-                       outsideRotation = right;
-                       insideRotation = left;
-               }
-               else
-               {
-                       outsideRotation = left;
-                       insideRotation = right;
-                       direction = -1; // turn to right
-               }
-               float turnAngle = direction*(outsideRotation-insideRotation)*_pilot._wheelDiameter/(2*_pilot._trackWidth);
-               float ratio = 1.0f*insideRotation/outsideRotation;
-               float moveAngle = 0; // angle of displacement in robot coordinates, degrees
-               float projection = 0;  //angle to project displacement to world coordinates, in radians
-               float distance = 0; // of displacement
-               boolean approx = false;
-               if(ratio>.95) // probably movement was intended to be straight
-               {
-                       float avg = (insideRotation+outsideRotation)/2.0f; 
-                       distance = avg/_pilot._degPerDistance;
-                       projection = (float)Math.toRadians(_heading+turnAngle/2);
-                       approx = true;
-               }
-               else
-               { 
-                       float turnRadius =_pilot._trackWidth/(1 - ratio) -  _pilot._trackWidth/2 ; // 
-                       float radians = (float) Math.toRadians(turnAngle); // turnAngle in radians
-                       float dx0 = turnRadius*(float)Math.sin(radians);  //displacement  in robot coordinates
-                       float dy0 = turnRadius*(1 -(float) Math.cos(radians)); 
-                       distance = (float) Math.sqrt(dx0*dx0+dy0*dy0);  //distance 
-                       moveAngle = (float)Math.atan2(dy0,dx0); //in robot coordinates
-                       approx = false;
-                       projection = moveAngle + (float)Math.toRadians(_heading); // angle to project displacement onto world coordinates
-               }
-               _heading = normalize(_heading + turnAngle); // keep angle between -180 and 180
-               _x += distance * Math.cos(projection); // displacement in world coordinates
-               _y += distance * Math.sin(projection);
-               if(approx) _heading += turnAngle/2; // correct approximation
-               _updated = true;
-       }
-       
-       /**
-        * Moves the NXT robot in a circular path with a specified radius. <br>
-        * The center of the turning circle is on the right side of the robot iff parameter radius is negative;  <br>
-        * Postcondition:  motor speed is NOT restored to previous value;
-        * @param radius is the radius of the circular path. If positive, the left wheel is on the inside of the turn.  If negative, the left wheel is on the outside.
-        */
-       public void turn(float radius)
-       {
-               _updated = false;
-               _pilot.resetTachoCount();
-               _pilot.steer(turnRate(radius));
-       }
-
-       /**
-        * Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached. <br>
-        * The center of the turning circle is on the right side of the robot iff parameter radius is negative.
-        *  Robot will stop when total rotation equals angle. If angle is negative, robot will move travel backwards.
-        * @param radius radius of the turning circle
-        * @param angle the angle by which the robot heading changes, + or -
-        */
-       public void turn(float radius, int angle)
-       {
-               turn(radius,angle,false);
-       }
-       
-       /**
-        * Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached. <br>
-        * The center of the turning circle is on the right side of the robot iff parameter radius is negative.
-        * Robot will stop when total rotation equals angle. If angle is negative, robot will move travel backwards.
-        * @param radius  see turn(turnRage, angle)
-        * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
-        * is responsible for calling updatePosition() before the robot moves again. 
-        */
-       public void turn(float radius, int angle, boolean immediateReturn)
-       {
-               _updated = false;
-               _pilot.resetTachoCount();
-               _pilot.steer(turnRate(radius),angle,immediateReturn);
-               if(!immediateReturn) updatePosition();
-       }
-
-       /**
-        * returns equivalent angle between -180 and +180
-        */
-       private float normalize(float angle)
-       {
-         float a = angle;
-         while(a > 180) a -= 360;
-         while(a < -180) a += 360;
-         return a;
-       }
-       
-       private int turnRate(float radius)
-       {
-               int direction = 1;
-               if(radius<0) 
-               {
-                       direction = -1;
-                       radius = -radius;
-               }
-               float ratio = (2*radius - _pilot._trackWidth)/(2*radius+_pilot._trackWidth);
-               return Math.round(direction * 100*(1 - ratio));
-       }
+   public float distanceTo( float x, float y)
+   {
+      float dx = x -_x;
+      float dy = y -_y; 
+      //use hypotenuse formula
+      return (float)Math.sqrt(dx*dx+dy*dy);
+   }
+
+   /**
+    * returns the direction angle (degrees) to point with coordinates (x,y)
+    * @param x coordinate of the point
+    * @param y coordinate of the point
+    * @return the direction angle to the point (x,y) from the NXT.  Rotate to this angle to head toward it. 
+    */
+   public float angleTo(float x, float y)
+   {
+      float dx = x -_x;
+      float dy = y -_y;
+      return(float)Math.toDegrees(Math.atan2(dy,dx));
+   }
+
+   /**
+    * Updates robot location (x,y) and direction angle. Called by stop, and movement commands that terminate when complete.
+    * If you use a movement command that returns immediately, you MUST call this method when the movement is complete. 
+    * It may also be called while movement is on progress. 
+    */ 
+   public void updatePosition()
+   {
+      int temp = 0;
+      int left = _pilot.getLeftCount();//left wheel rotation angle
+      int right = _pilot.getRightCount();
+      temp = left;
+      left -=_left0;
+      _left0 = temp; 
+      temp = right; 
+      right -= _right0;
+      _right0 = temp ; 
+      if(left == 0 && right == 0)return; // no movement
+      int outside = 0;
+      int inside = 0;
+      byte direction = 0; 
+      float dx = 0;
+      float dy = 0;
+      if(Math.abs(left)<Math.abs(right))
+      {
+         outside = right;
+         inside = left;
+         direction = 1;
+      }
+      else
+      {
+         outside = left;
+         inside = right;
+         direction = -1; // turn to right
+      }        
+
+      float turnAngle = direction*(outside-inside)*_pilot._wheelDiameter/(2*_pilot._trackWidth);
+
+      boolean approx = false;
+      if(1.0f*inside/outside > .98) // probably movement was intended to be straight
+      {
+         float distance = 0.5f*(inside+outside)/_pilot._degPerDistance;
+         float projection = (float)Math.toRadians(_heading+turnAngle/2);
+         dx = distance*(float)Math.cos(projection);
+         dy = distance*(float)Math.sin(projection);
+         approx = true;
+      }
+      else
+      { 
+         float turnRadius = _pilot._trackWidth*(outside+inside)/(2*(outside - inside));
+         double  headingRad = (Math.toRadians(_heading));
+         if(direction == -1)headingRad +=Math.PI;
+         double  turnRad =  Math.toRadians(turnAngle);
+         dx = turnRadius*(float)(Math.sin(headingRad + turnRad) - Math.sin(headingRad));
+         dy = turnRadius*(float)(Math.cos(headingRad)- Math.cos(headingRad+turnRad));
+      }
+      _heading = normalize(_heading + turnAngle); // keep angle between -180 and 180
+      _x += dx;
+      _y += dy; 
+      if(approx) _heading -= turnAngle/2; // correct approximation
+      _updated = true;
+   }
+
+   /**
+    * Moves the NXT robot in a circular path with a specified radius. <br>
+    * The center of the turning circle is on the right side of the robot iff parameter radius is negative;  <br>
+    * Postcondition:  motor speed is NOT restored to previous value;
+    * @param radius is the radius of the circular path. If positive, the left wheel is on the inside of the turn.  If negative, the left wheel is on the outside.
+    */
+   public void turn(float radius)
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.steer(turnRate(radius));
+   }
+
+   /**
+    * Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached. <br>
+    * The center of the turning circle is on the right side of the robot iff parameter radius is negative.
+    *  Robot will stop when total rotation equals angle. If angle is negative, robot will move travel backwards.
+    * @param radius radius of the turning circle
+    * @param angle the angle by which the robot heading changes, + or -
+    */
+   public void turn(float radius, int angle)
+   {
+      turn(radius,angle,false);
+   }
+
+   /**
+    * Moves the NXT robot in a circular path through a specific angle; If waitForCompletion is true, returns when angle is reached. <br>
+    * The center of the turning circle is on the right side of the robot iff parameter radius is negative.
+    * Robot will stop when total rotation equals angle. If angle is negative, robot will travel backwards.
+    * @param radius  see turn(turnRage, angle)
+    * @param immediateReturn iff true, the method returns immediately, in which case the programmer <br>
+    * is responsible for calling updatePosition() before the robot moves again. 
+    */
+   public void turn(float radius, int angle, boolean immediateReturn)
+   {
+      _updated = false;
+      _pilot.resetTachoCount();
+      _right0 = 0;
+      _left0 = 0;
+      _pilot.steer(turnRate(radius),angle,immediateReturn);
+      if(!immediateReturn) updatePosition();
+   }
+
+   /**
+    * returns equivalent angle between -180 and +180
+    */
+   private float normalize(float angle)
+   {
+      float a = angle;
+      while(a > 180) a -= 360;
+      while(a < -180) a += 360;
+      return a;
+   }
+
+   private int turnRate(float radius)
+   {
+      int direction = 1;
+      if(radius<0) 
+      {
+         direction = -1;
+         radius = -radius;
+      }
+      float ratio = (2*radius - _pilot._trackWidth)/(2*radius+_pilot._trackWidth);
+      return Math.round(direction * 100*(1 - ratio));
+   }
 }
 
index 90ec456..a01778d 100644 (file)
@@ -1,6 +1,12 @@
 package lejos.nxt;
 
-interface ADSensorPort extends BasicSensorPort {
+/**
+ * An abstraction for a port that supports Analog/Digital sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface ADSensorPort extends BasicSensorPort {
 
        public boolean readBooleanValue();
        
index b2dd30a..56f6cdc 100644 (file)
@@ -1,6 +1,13 @@
 package lejos.nxt;
 
-abstract class BasicMotor 
+/**
+ * An abstraction for a motor without a tachometer,
+ * such as an RCX motor.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public abstract class BasicMotor 
 {
        
        int _mode = 4;
index cdb9022..a0144d2 100644 (file)
@@ -1,7 +1,17 @@
 package lejos.nxt;
 
-interface BasicMotorPort {
+/**
+ * An abstraction for a motor port that supports RCX
+ * type motors, but not NXT motors with tachometers.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface BasicMotorPort {
+       static public final int PWM_FLOAT = 0;
+       static public final int PWM_BRAKE = 1;
        
        public void controlMotor(int power, int mode);
-
+       
+       public void setPWMMode(int mode);
 }
index 7b1c375..128c932 100644 (file)
@@ -1,6 +1,13 @@
 package lejos.nxt;
 
-interface BasicSensorPort extends SensorConstants {
+/**
+ * An abstraction for a sensor port that supports 
+ * setting and retrieving types and modes of sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface BasicSensorPort extends SensorConstants {
 
        public int getMode();
        
index 0e6c9ab..5a06661 100644 (file)
@@ -1,6 +1,25 @@
 package lejos.nxt;
 
+/**
+ * Read and write access to flash memory in pages.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class Flash {
+       
+       /**
+        * Maximum number of pages available to user flash memory.
+        * Change this if the start of user flash memory in the
+        * firmware changes.
+        * 
+        */
+       public static final int MAX_USER_PAGES = 704;
+       
+       /**
+        * Indicates the # of bytes per page in a page of Flash memory.
+        */
+       public static short BYTES_PER_PAGE = 256;
 
        private Flash()
        {
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/GyroSensor.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/GyroSensor.java
new file mode 100644 (file)
index 0000000..0a004d0
--- /dev/null
@@ -0,0 +1,37 @@
+package lejos.nxt;\r
+\r
+/**\r
+ * Support the HiTechnic Gyro sensor - untested.\r
+ * http://www.hitechnic.com/\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class GyroSensor implements SensorConstants {\r
+       ADSensorPort port;\r
+       private int offset = 600;\r
+\r
+       public GyroSensor(ADSensorPort port)\r
+       {\r
+               this.port = port;\r
+               port.setTypeAndMode(TYPE_CUSTOM,\r
+                            MODE_RAW);\r
+       }\r
+       \r
+       /**\r
+        * Read the gyro value\r
+        * \r
+        * @return gyro value\r
+        */\r
+       public int readValue()\r
+       { \r
+               return (port.readRawValue() - offset); \r
+       }\r
+       \r
+       /**\r
+        * Set the offset\r
+        */\r
+       public void setOffset(int offset) {\r
+               this.offset = offset;\r
+       }\r
+}\r
index cf8ce5e..6bc3f39 100644 (file)
@@ -1,6 +1,12 @@
 package lejos.nxt;
 
-interface I2CPort extends BasicSensorPort {
+/**
+ * Abstraction for a port that supports I2C sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface I2CPort extends BasicSensorPort {
 
        public void i2cEnable();
        
index f4a218f..d35b23f 100644 (file)
@@ -17,7 +17,8 @@ public abstract class I2CSensor implements SensorConstants {
        char [] versionChars = StringUtils.getCharacters(version);
        char [] productIDChars = StringUtils.getCharacters(productID);
        char [] sensorTypeChars = StringUtils.getCharacters(sensorType);
-       byte[] byteBuff = new byte[8]; 
+       byte [] byteBuff = new byte[8];
+       byte [] buf1 = new byte[1];
        
        public I2CSensor(I2CPort port)
        {
@@ -47,16 +48,15 @@ public abstract class I2CSensor implements SensorConstants {
        }
        
        /**
-        *  Executes an I2C write transaction - not yet working.
+        *  Executes an I2C write transaction.
         *  
         * @param register I2C register, e.g 0x42
         * @param buf Buffer containing data to send
         * @param len Length of data to send
         * @return status zero=success, non-zero=failure
         */
-       public int sendData(int register, byte [] buf, int len) {       
-               int ret = port.i2cStart(address, register, len, buf, len, 1);
-               
+       public int sendData(int register, byte [] buf, int len) {
+        int ret = port.i2cStart(address, register, len, buf, len, 1);
                if (ret != 0) return ret;
                
                while (port.i2cBusy() != 0) {
@@ -67,6 +67,18 @@ public abstract class I2CSensor implements SensorConstants {
        }
        
        /**
+        *  Executes an I2C write transaction.
+        *  
+        * @param register I2C register, e.g 0x42
+        * @param value single byte to send
+        * @return status zero=success, non-zero=failure
+        */
+       public int sendData(int register, byte value) {
+               buf1[0] = value;
+               return sendData(register, buf1, 1);
+       }
+       
+       /**
         * Return the sensor version number.
         * 
         * @return 8-byte string
@@ -107,4 +119,8 @@ public abstract class I2CSensor implements SensorConstants {
                }       
                return sensorType;
        }
+       
+       public void setAddress(int addr) {
+               address = addr;
+       }
 }
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/IRSeeker.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/IRSeeker.java
new file mode 100644 (file)
index 0000000..13dac4a
--- /dev/null
@@ -0,0 +1,38 @@
+package lejos.nxt;\r
+\r
+/**\r
+ * HiTechnic IRSeeker sensor - untested.\r
+ * www.hitechnic.com\r
+ */\r
+public class IRSeeker extends I2CSensor {\r
+       byte[] buf = new byte[1];\r
+       \r
+       public IRSeeker(I2CPort port)\r
+       {\r
+               super(port);\r
+       }\r
+       \r
+       /**\r
+        * Returns the direction of the target (1-9)\r
+        * or zero if no target. \r
+        * \r
+        * @return direction\r
+        */\r
+       public int getDirection() {\r
+               int ret = getData(0x42, buf, 1);\r
+               if(ret != 0) return -1;\r
+               return (0xFF & buf[0]);\r
+       }\r
+       \r
+       /**\r
+        * Returns value of sensor 1 - 5.\r
+        * \r
+        * @return sensor value (0 to 255).\r
+        */\r
+       public int getSensorValue(int id) {\r
+               if (id <= 0 || id > 5) return -1;\r
+               int ret = getData(0x42 + id, buf, 1);\r
+               if(ret != 0) return -1;\r
+               return (0xFF & buf[0]);\r
+       }\r
+}\r
index 400df90..09234e8 100644 (file)
@@ -1,8 +1,10 @@
+\r
 package lejos.nxt;\r
 \r
 /**\r
+ * Text and graphics output to the LCD display.\r
  * \r
- * @author Andre Nijholt\r
+ * @author Andre Nijholt and BB\r
  */\r
 public class LCD {\r
        public static final int SCREEN_SCALE    = 4;\r
@@ -149,16 +151,24 @@ public class LCD {
                /* 0x7E */ {0x00, 0x07, 0x00, 0x07, 0x00},\r
                /* 0x7F */ {0x3E, 0x36, 0x2A, 0x36, 0x3E},\r
        };\r
-\r
-       private static int [] displayBuf = new int[200];\r
-\r
+       public static native int [] getDisplay();\r
+       public static native void setAutoRefresh(int mode);\r
+       \r
+       // Use shared display buffer. Switch over next two lines to go back to old\r
+       // way\r
+       //private static int [] displayBuf = new int[200];\r
+       private static int [] displayBuf = getDisplay();\r
+       /**\r
+        * Method to set a pixel to screen.\r
+        */\r
        public static void setPixel(int rgbColor, int x, int y) {\r
                if (x < 0 || x >= SCREEN_WIDTH || y < 0 || y >= SCREEN_HEIGHT) return; // Test-Modify for speed\r
                int xChar = x / 4;\r
                int yChar = y / 8;\r
                int index = yChar * 25 + xChar;\r
                int specificBit = (y % 8) + ((x % 4) * 8);\r
-               displayBuf[index] = displayBuf[index] | (rgbColor << specificBit);\r
+               //displayBuf[index] = displayBuf[index] | (rgbColor << specificBit);\r
+               displayBuf[index] = (displayBuf[index] & ~(1 << specificBit)) | (rgbColor << specificBit);\r
        }\r
 \r
        public static void drawString(String str, int x, int y, boolean invert) {\r
@@ -198,7 +208,8 @@ public class LCD {
        }\r
        \r
        public static void setDisplay() {\r
-               setDisplay(displayBuf);\r
+               //setDisplay(displayBuf);\r
+               refresh();\r
        }\r
 \r
        /**\r
index 5dd1f5b..b605518 100644 (file)
@@ -1,6 +1,12 @@
 package lejos.nxt;
 
-interface LegacySensorPort extends ADSensorPort {
+/**
+ * Abstraction for a port that supports legacy RCX sensors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface LegacySensorPort extends ADSensorPort {
        
        public void activate();
        
index 1d76e49..3269dc8 100644 (file)
@@ -55,9 +55,8 @@ public class LightSensor implements SensorConstants
         * @return Value as a percentage of difference between the low and high calibration values. \r
         */\r
        public int readValue()\r
-       {\r
-//             return ((1023 - port.readRawValue()) * 100/ 1023); \r
-               if(_hundred == _zero)return 1023;\r
+       { \r
+               if(_hundred == _zero) return 0;\r
                return 100*(port.readRawValue() - _zero)/(_hundred - _zero); \r
        }\r
        \r
index e93ea77..95af943 100644 (file)
@@ -2,9 +2,6 @@ package lejos.nxt;
 import lejos.nxt.Battery;\r
 import lejos.util.*;\r
 \r
-\r
-\r
-\r
 /**\r
  * Abstraction for a NXT motor. Three instances of <code>Motor</code>\r
  * are available: <code>Motor.A</code>, <code>Motor.B</code>\r
@@ -34,516 +31,556 @@ import lejos.util.*;
  *   while(Motor.A.isRotating();\r
  *   int angle = Motor.A.getTachoCount(); // should be -360\r
  * </pre></code>\r
- * @author Roger Glassey revised 26 March 2007\r
+ * @author Roger Glassey revised 20 Dec 2007 - uses brake mode for better control\r
  */\r
-public class Motor extends BasicMotor implements TimerListener\r
+public class Motor extends BasicMotor// implements TimerListener\r
 {\r
-  private TachoMotorPort _port;\r
-  private int _speed = 360;\r
-  private int _speed0 = 360;\r
-  // used for speed regulation\r
-  private boolean _keepGoing = true;// for regulator\r
-  /**\r
-   * Initially true; changed only by regulateSpeed(),<br>\r
-   * used by Regulator, updteState, reset*\r
-   */\r
-  private boolean _regulate = true;\r
-  private boolean _wasRegulating = false;\r
-  public Regulator regulator = new Regulator();\r
-  private Timer timer = new Timer(100,this);\r
-  // used for control of angle of rotation\r
-  private int _direction = 1; // +1 is forward ; used by rotate();\r
-  private int _limitAngle;\r
-  private int _stopAngle;\r
-  private boolean _rotating = false;\r
-  private boolean _wasRotating = false;\r
-  private boolean _rampUp = true;\r
-  private int _lastTacho = 0;\r
-  private int _actualSpeed;\r
-  private float _voltage;\r
+   private TachoMotorPort _port;\r
+   /*\r
+    * default speed\r
+    */\r
+   private int _speed = 360;\r
+   private int _speed0 = 360;\r
+   // used for speed regulation\r
+   private boolean _keepGoing = true;// for regulator\r
+   /**\r
+    * Initially true; changed only by regulateSpeed(),<br>\r
+    * used by Regulator, updteState, reset*\r
+    */\r
+   private boolean _regulate = true;\r
+   private boolean _wasRegulating = false;\r
+   public Regulator regulator = new Regulator();\r
+// private Timer timer = new Timer(100,this);\r
+   // used for control of angle of rotation\r
+   private int _direction = 1; // +1 is forward ; used by rotate();\r
+   private int _limitAngle;\r
+   private int _stopAngle;\r
+   private boolean _rotating = false;\r
+   private boolean _wasRotating = false;\r
+   private boolean _rampUp = true;\r
+   /**\r
+    * used by timedOut to calculate actual speed;\r
+    */\r
+   private int _lastTacho = 0;\r
+   /**\r
+    * set by timedOut\r
+    */\r
+   private int _actualSpeed;\r
+   private float _voltage = 0f;\r
+   /** initialized to be false(ramping enabled); changed only by smoothAcceleration\r
+    */\r
+   private boolean _noRamp = false;\r
+     \r
+   /**\r
+    * Motor A.\r
+    */\r
+   public static final Motor A = new Motor (MotorPort.A);\r
 \r
+   /**\r
+    * Motor B.\r
+    */\r
+   public static final Motor B = new Motor (MotorPort.B);\r
 \r
-   /** initialized to be false(ramping enabled); changed only by smoothAcceleration\r
-   */\r
-  private boolean _noRamp = false;\r
\r
-  /**\r
-   * Motor A.\r
-   */\r
-  public static final Motor A = new Motor (MotorPort.A);\r
-  \r
-  /**\r
-   * Motor B.\r
-   */\r
-  public static final Motor B = new Motor (MotorPort.B);\r
-  \r
-  /**\r
-   * Motor C.\r
-   */\r
-  public static final Motor C = new Motor (MotorPort.C);\r
+   /**\r
+    * Motor C.\r
+    */\r
+   public static final Motor C = new Motor (MotorPort.C);\r
+\r
+   public Motor (TachoMotorPort port)\r
+   {\r
+      _port = port;\r
+      port.setPWMMode(TachoMotorPort.PWM_BRAKE);\r
+      regulator.setDaemon(true);\r
+      regulator.start();\r
+      while(_voltage < 1f );\r
+   }\r
    \r
-  public Motor (MotorPort port)\r
-  {\r
-    _port = port;\r
-    regulator.setDaemon(true);\r
-    regulator.start();\r
-    timer.start();\r
-  }\r
    public int getStopAngle() { return (int)_stopAngle;}\r
-   \r
-       /**\r
-        * Causes motor to rotate forward.\r
-        */\r
-       public void forward()\r
-       { \r
-               synchronized(regulator) \r
-               {\r
-                       _mode = 1;\r
-                       updateState();\r
-               }\r
-       }  \r
-               \r
-       /**\r
-       * Causes motor to rotate backwards.\r
-        */\r
-       public void backward()\r
-       {\r
-               synchronized(regulator)\r
-               {\r
-                       _mode = 2;\r
-                       updateState();\r
-               }\r
-       }\r
-\r
-       /**\r
-        * Reverses direction of the motor. It only has\r
-        * effect if the motor is moving.\r
-        */\r
-       public void reverseDirection()\r
-       {\r
-               synchronized(regulator)\r
-               {\r
-                       if (_mode == 1 || _mode == 2)\r
-                   {\r
-                               _mode = (3 - _mode);\r
-                               updateState();\r
-                   }\r
-               }\r
-       }\r
-\r
-       /**\r
-        * Causes motor to float. The motor will lose all power,\r
-        * but this is not the same as stopping. Use this\r
-        * method if you don't want your robot to trip in\r
-        * abrupt turns.\r
-        */   \r
-       public void flt()\r
-       {\r
-               synchronized(regulator)\r
-               {\r
-                       _mode = 4;\r
-                       updateState();\r
-               }\r
-       }\r
-\r
-       /**\r
-        * Causes motor to stop, pretty much\r
-        * instantaneously. In other words, the\r
-        * motor doesn't just stop; it will resist\r
-        * any further motion.\r
-        * Cancels any rotate() orders in progress\r
-        */\r
-       public void stop()\r
-       {\r
-               synchronized(regulator)\r
-               {\r
-                       _mode = 3;\r
-                   updateState();\r
-               }\r
-       }\r
-  /** \r
-   *calls controlMotor, startRegating;  updates _direction, _rotating, _wasRotating\r
-   */\r
-  void updateState()\r
-  {\r
-         _rotating = false; //regulator should stop testing for rotation limit  ASAP\r
-//     synchronized(regulator)\r
-       {\r
-               if(_wasRotating)\r
-               {\r
-                       setSpeed(_speed0);\r
-                       _regulate = _wasRegulating;\r
-               }\r
-               _wasRotating = false; // perhaps redundant\r
-\r
-               if(_mode>2) // stop or float\r
-               {\r
-                       _port.controlMotor(0, _mode);\r
-                       return;\r
-               }\r
-                _port.controlMotor(_power, _mode);\r
-       \r
-               if(_regulate)\r
-               {\r
-                 regulator.reset();\r
-                 _rampUp = true;\r
-               }\r
-                _direction = 3 - 2*_mode;\r
-       }\r
-  }\r
-\r
-  /**\r
-   * @return true iff the motor is currently in motion.\r
-   */\r
-  public final boolean isMoving()\r
-  {\r
-    return (_mode == 1 || _mode == 2 || _rotating);      \r
-  }\r
-  \r
-  \r
-  /**\r
-   * causes motor to rotate through angle. <br>\r
-   * @param  angle through which the motor will rotate\r
-   */\r
-  public void rotate(int angle)\r
-  {\r
-       rotateTo(getTachoCount()+angle);\r
-  }\r
-\r
-  /**\r
-   * causes motor to rotate through angle; <br>\r
-   * iff immediateReturn is true, method returns immediately and the motor stops by itself <br>\r
-   * When the angle is reached, the method isRotating() returns false;\r
-   * @param  angle through which the motor will rotate\r
-   * @param immediateReturn iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread. \r
-   */\r
+\r
+   /**\r
+    * Causes motor to rotate forward.\r
+    */\r
+   public void forward()\r
+   { \r
+      synchronized(regulator) \r
+      {\r
+         _mode = 1;\r
+         updateState();\r
+      }\r
+   }  \r
+\r
+   /**\r
+    * Causes motor to rotate backwards.\r
+    */\r
+   public void backward()\r
+   {\r
+      synchronized(regulator)\r
+      {\r
+         _mode = 2;\r
+         updateState();\r
+      }\r
+   }\r
+\r
+   /**\r
+    * Reverses direction of the motor. It only has\r
+    * effect if the motor is moving.\r
+    */\r
+   public void reverseDirection()\r
+   {\r
+      synchronized(regulator)\r
+      {\r
+         if (_mode == 1 || _mode == 2)\r
+         {\r
+            _mode = (3 - _mode);\r
+            updateState();\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    * Causes motor to float. The motor will lose all power,\r
+    * but this is not the same as stopping. Use this\r
+    * method if you don't want your robot to trip in\r
+    * abrupt turns.\r
+    */   \r
+   public void flt()\r
+   {\r
+      synchronized(regulator)\r
+      {\r
+         _mode = 4;\r
+         updateState();\r
+      }\r
+   }\r
+\r
+   /**\r
+    * Causes motor to stop, pretty much\r
+    * instantaneously. In other words, the\r
+    * motor doesn't just stop; it will resist\r
+    * any further motion.\r
+    * Cancels any rotate() orders in progress\r
+    */\r
+   public void stop()\r
+   {\r
+      synchronized(regulator)\r
+      {\r
+         _mode = 3;\r
+         updateState();\r
+      }\r
+   }\r
+\r
+\r
+   /** \r
+    *calls controlMotor, startRegating;  updates _direction, _rotating, _wasRotating\r
+    */\r
+   void updateState()\r
+   {\r
+      _rotating = false; //regulator should stop testing for rotation limit  ASAP\r
+      synchronized(regulator)\r
+      {\r
+         if(_wasRotating)\r
+         {\r
+            setSpeed(_speed0);\r
+            _regulate = _wasRegulating;\r
+         }\r
+         _wasRotating = false; // perhaps redundant\r
+\r
+         if(_mode>2) // stop or float\r
+         {\r
+            _port.controlMotor(0, _mode);\r
+            return;\r
+         }\r
+         _port.controlMotor(_power, _mode);\r
+\r
+         if(_regulate)\r
+         {\r
+            regulator.reset();\r
+            _rampUp = true;\r
+         }\r
+         _direction = 3 - 2*_mode;\r
+      }\r
+   }\r
+\r
+   /**\r
+    * @return true iff the motor is currently in motion.\r
+    */\r
+   public boolean isMoving()\r
+   {\r
+      return (_mode == 1 || _mode == 2 || _rotating);    \r
+   }\r
+\r
+\r
+   /**\r
+    * causes motor to rotate through angle. <br>\r
+    * @param  angle through which the motor will rotate\r
+    */\r
+   public void rotate(int angle)\r
+   {\r
+      rotateTo(getTachoCount()+angle);\r
+   }\r
+\r
+   /**\r
+    * causes motor to rotate through angle; <br>\r
+    * iff immediateReturn is true, method returns immediately and the motor stops by itself <br>\r
+    * When the angle is reached, the method isRotating() returns false;\r
+    * @param  angle through which the motor will rotate\r
+    * @param immediateReturn iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread. \r
+    */\r
    public void rotate(int angle, boolean immediateReturn)\r
    {\r
-               int t = getTachoCount();\r
-               rotateTo(t+angle,immediateReturn);\r
-       }\r
-\r
-  /**\r
-   * causes motor to rotate to limitAngle;  <br>\r
-   * Then getTachoCount should be within +- 2 degrees of the limit angle when the method returns\r
-   * @param  limitAngle to which the motor will rotate\r
-   */\r
-  public void rotateTo(int limitAngle)\r
-  {\r
-       rotateTo(limitAngle,false);\r
-  }\r
-\r
-  /**\r
-   * causes motor to rotate to limitAngle; <br>\r
-   * if immediateReturn is true, method returns immediately and the motor stops by itself <br>\r
-   * Then getTachoCount should be within +- 2 degrees if the limit angle\r
-   * When the angle is reached, the method isRotating() returns false;\r
-   * @param  limitAngle to which the motor will rotate, and then stop. \r
-   * @param immediateReturn iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread. \r
-    */\r
-  public void rotateTo(int limitAngle,boolean immediateReturn)\r
-  {\r
-       synchronized(regulator)\r
-       {\r
-               if(_wasRotating)\r
-               {\r
-                       setSpeed(_speed0);\r
-                       _regulate = _wasRegulating;\r
-                       _wasRotating = false;\r
-               }\r
-               _stopAngle = limitAngle;\r
-               if(limitAngle > getTachoCount()) _mode = 1;\r
-               else _mode = 2;\r
-           _port.controlMotor(_power, _mode);\r
-           _direction = 3 - 2*_mode;\r
-               if(_regulate) regulator.reset();\r
-               if(!_wasRotating)\r
-               {\r
-                 _stopAngle -= _direction * overshoot();\r
-                 _limitAngle = limitAngle;\r
-               }\r
-               _rotating = true; // rotating to a limit\r
-               _rampUp = !_noRamp && Math.abs(_stopAngle-getTachoCount())>40 && _speed>200;  //no ramp for small angles\r
-       if(immediateReturn)return;\r
-       }\r
-       while(_rotating) Thread.yield();\r
-  }\r
+      int t = getTachoCount();\r
+      rotateTo(t+angle,immediateReturn);\r
+   }\r
 \r
-/**\r
- *inner class to regulate speed; also stop motor at desired rotation angle\r
- **/\r
- private class Regulator extends Thread\r
-  {\r
-       /**\r
-        *tachoCount when regulating started\r
-        */\r
-       int angle0 = 0;\r
-    /**\r
-     * set by reset, used  to regulate  motor speed\r
-     */ \r
-       float basePower = 0;\r
-    /**\r
-     * time regulating started\r
-     */\r
-       int time0 = 0;\r
-    float error = 0;\r
-    /**\r
-     * helper method - used by reset and setSpeed()\r
-     */\r
-       int calcPower(int speed)\r
-       {   \r
-//             float pwr = 100 - 7.4f*Battery.getVoltage()+0.065f*speed;// no-load motor\r
-      float pwr = 100 - 7.4f*_voltage+0.065f*speed;\r
-               if(pwr<0) return 0;\r
-               if(pwr>100)return 100;\r
-               else return (int)pwr;\r
-       }\r
\r
-    /**\r
-     * called by forward() backward() and reverseDirection() <br>\r
-     * resets parameters for speed regulation\r
-     **/\r
-       public void reset()\r
-       {\r
-               if(!_regulate)return;\r
-               time0 = (int)System.currentTimeMillis();\r
-               angle0 = getTachoCount();\r
-           basePower = calcPower(_speed);\r
-       setPower((int)basePower);\r
-       }\r
\r
-    /**\r
-     * Monitors time and tachoCount to regulate speed and stop motor rotation at limit angle\r
-     */\r
-       public void run()\r
-       {\r
-//             int limit = 0;\r
-\r
-               float e0 = 0;\r
-               float accel =5f;// deg/sec/ms  was 1.5\r
-        float power =  0;\r
-               int ts = 0;//time to reach speed\r
-               while(_keepGoing)\r
-               { synchronized(this)\r
-               {       \r
-                       if(_regulate && isMoving()) //regulate speed \r
-                       {\r
-                               int elapsed = (int)System.currentTimeMillis()-time0;\r
-                               int angle = getTachoCount()-angle0;\r
-//                basePower = calcPower(_speed);\r
-                               if(_rampUp)\r
-                               {   \r
-\r
-                                       ts = (int)(_speed/accel);\r
-//                                     ts = 100;\r
-                    if(elapsed<ts)// not at speed yet\r
-                                       {\r
\r
-                                               // target distance = a * t * t/ 2 - maintain constant acceleration\r
-                                               error = accel*elapsed * elapsed/2000 - (float)Math.abs(angle);\r
-                                       }\r
-                                       else  // adjust elapsed time for acceleration time - don't try to catch up\r
-                                       {\r
-                     error = ((elapsed - ts/2)* _speed)/1000f - (float)Math.abs(angle);\r
-                                       }\r
-                               }\r
-                               else    \r
-                                       error = (elapsed*_speed/1000f)- (float)Math.abs(angle);\r
-                               power = basePower + 0.75f * error;// -0.1f * e0;// magic numbers from experiment\r
-                               if(power<0) power = 0;\r
-                               e0 = error;\r
-                               float smooth = 0.0025f;// another magic number from experiment\r
-                               basePower = basePower + smooth*(power-basePower); \r
-                               setPower((int)power);\r
-                       }\r
-         // stop at rotation limit angle\r
-                       if(_rotating && _direction*(getTachoCount() - _stopAngle)>0)\r
-                       {\r
-                               if(!_wasRotating)_speed0 = _speed;\r
-                               _mode = 3; // stop motor\r
-                               _port.controlMotor (0, 3);\r
-                               int a = angleAtStop();//returns when motor has stopped\r
-                               int remaining = _limitAngle - a;\r
-                               if(_direction * remaining >3 ) // not yet done; don't call nudge for less than 3 deg\r
-                               {\r
-                                       if(!_wasRotating)// initial call to rotate(); save state variables\r
-                                       {\r
-                                               _wasRegulating = _regulate;\r
-                                               _regulate = true;\r
-                                               _speed0 = _speed;\r
-                                               setSpeed(300);//was 150\r
-                                               _wasRotating = true;\r
-//                                             limit = _limitAngle;\r
-                                       }\r
-                               nudge(remaining,a); //another try\r
-                               }\r
-                               else //rotation complete;  restore state variables\r
-                               {       \r
-                                       setSpeed(_speed0);//restore speed setting\r
-                                       _mode = 3; // stop motor  maybe redundant\r
-                                       _port.controlMotor (0, _mode);\r
-                                       _rotating = false;\r
-                                       _wasRotating = false;\r
-                                       _regulate = _wasRegulating;\r
-                               }\r
-                       }\r
-               }\r
-               Thread.yield();\r
-               }       \r
-       }\r
-  /**\r
-   *helper method for run  - stop at limit angle branch\r
-   */ \r
-       private void nudge(int remaining,int tachoCount)\r
-       {\r
\r
-               if(remaining>0)_mode = 1;\r
-               else _mode = 2; \r
-           _port.controlMotor(_power, _mode);\r
-           _direction = 3 - 2*_mode;\r
-               _stopAngle = tachoCount + remaining/3;\r
-               if(remaining < 3 && remaining > -3) _stopAngle += _direction; //nudge at least 1 deg\r
-           _rotating = true;\r
-           _rampUp = false;\r
-           _regulate = true;\r
-       }  \r
-    /**\r
-     *helper method for run\r
-     **/\r
-       int angleAtStop()\r
-       {\r
-               int a0 = getTachoCount();\r
-               boolean turning = true;\r
-               int a = 0;\r
-               while(turning)\r
-               {\r
-                       _port.controlMotor(0,3); // looks redundant, but controlMotor(0,3) fails, rarely.\r
-                       try{Thread.sleep(20);}// was 10\r
-                       catch(InterruptedException w){}\r
-                       a = getTachoCount();\r
-                       turning = Math.abs(a - a0)>0;\r
-                       a0 = a;\r
-               }\r
-               return  a;\r
-       }\r
-  }\r
\r
-  /**\r
-   *causes run() to exit\r
-   */\r
-  public void shutdown(){_keepGoing = false;}\r
-  \r
\r
-  /** \r
-   * turns speed regulation on/off; <br>\r
-   * Cumulative speed error is within about 1 degree after initial acceleration.\r
-   * @param  yes is true for speed regulation on\r
-   */\r
-  public void regulateSpeed(boolean yes) \r
-  {\r
-       _regulate = yes;\r
-  }\r
-  \r
-  /**\r
-   * enables smoother acceleration.  Motor speed increases gently,  and does not <>\r
-   * overshoot when regulate Speed is used. \r
-   * \r
-   */\r
-  public void smoothAcceleration(boolean yes) \r
-  {_noRamp = ! yes;}\r
\r
-  /**\r
-   * Sets motor speed , in degrees per second; Up to 900 is posssible with 8 volts.\r
-   * @param speed value in degrees/sec  \r
-   */\r
-  public final void setSpeed (int speed)\r
-  {\r
-    _speed = Math.abs(speed);\r
-     setPower((int)regulator.calcPower(_speed));\r
-     regulator.reset();\r
-     _rampUp = false;\r
-  }\r
-\r
-  /**\r
-   *sets motor power.  This method is used by the Regulator thread to control motor speed.\r
-   *Warning:  negative power will cause the motor to run in reverse but without updating the _direction \r
-   *field which is used by the Regulator thread.  If the speed regulation is enabled, the rusults are \r
-   *unpredictable. \r
-   */\r
-  public synchronized void  setPower(int power)\r
-  {\r
-         _power = power;\r
-         _port.controlMotor (_power, _mode);\r
-  }\r
-\r
-  /**\r
-   * Returns the current motor speed in degrees per second\r
-   */\r
-  public final int getSpeed()\r
-  {\r
-    return _speed;       \r
-  }\r
-       public int getMode() {return _mode;}\r
-       public int getPower() { return _power;}\r
-       \r
-  private int overshoot()\r
-  {\r
-       return   (int)(5+ _speed*0.060f);//60?\r
-  }\r
-\r
-  /**\r
-   * Return the angle that a Motor is rotating to.\r
-   * \r
-   * @return angle in degrees\r
-   */\r
-  public int getLimitAngle()\r
-  {\r
-       return _limitAngle;\r
-  }\r
-\r
-  /**\r
-   *returns true when motor is rotating towarad a specified angle\r
-   */ \r
-  public boolean isRotating()\r
-  {\r
-       return  _rotating;\r
-  }\r
-  public boolean isRegulating(){return _regulate;}\r
-  /**\r
-   * requred by TimerListener interface\r
-   */\r
-  public void timedOut()\r
-  {\r
-       int angle = getTachoCount();\r
-       _actualSpeed = 10*(angle - _lastTacho);\r
-       _lastTacho = angle;\r
-    _voltage = Battery.getVoltage();\r
-  }\r
-       \r
-  /** \r
-   *returns actualSpeed degrees per second,  calculated every 100 ms; negative value means motor is rotating backward\r
-   */\r
-  public int getActualSpeed() { return _actualSpeed;}  \r
-  /**\r
-   * Returns the tachometer count.\r
-   * \r
-   * @return tachometer count in degrees\r
-   */\r
-  public int getTachoCount()\r
-  {\r
-       return _port.getTachoCount();\r
-  }\r
-       \r
-  /**\r
-   * Resets the tachometer count to zero.\r
-   */\r
-  public void resetTachoCount()\r
-  {\r
-       _port.resetTachoCount();\r
-  }\r
-\r
-  public float getError() {return regulator.error;}\r
-  public float getBasePower() {return regulator.basePower;}\r
+   /**\r
+    * causes motor to rotate to limitAngle;  <br>\r
+    * Then getTachoCount should be within +- 2 degrees of the limit angle when the method returns\r
+    * @param  limitAngle to which the motor will rotate\r
+    */\r
+   public void rotateTo(int limitAngle)\r
+   {\r
+      rotateTo(limitAngle,false);\r
+   }\r
+\r
+   /**\r
+    * causes motor to rotate to limitAngle; <br>\r
+    * if immediateReturn is true, method returns immediately and the motor stops by itself <br>\r
+    * Then getTachoCount should be within +- 2 degrees if the limit angle\r
+    * When the angle is reached, the method isRotating() returns false;\r
+    * @param  limitAngle to which the motor will rotate, and then stop. \r
+    * @param immediateReturn iff true, method returns immediately, thus allowing monitoring of sensors in the calling thread. \r
+    */\r
+   public void rotateTo(int limitAngle,boolean immediateReturn)\r
+   {\r
+      synchronized(regulator)\r
+      {\r
+         if(_wasRotating)\r
+         {\r
+            setSpeed(_speed0);\r
+            _regulate = _wasRegulating;\r
+            _wasRotating = false;\r
+         }\r
+         _stopAngle = limitAngle;\r
+         if(limitAngle > getTachoCount()) _mode = 1;\r
+         else _mode = 2;\r
+         _port.controlMotor(_power, _mode);\r
+         _direction = 3 - 2*_mode;\r
+         if(_regulate) regulator.reset();\r
+         if(!_wasRotating)\r
+         {\r
+            _stopAngle -= _direction * overshoot();\r
+            _limitAngle = limitAngle;\r
+         }\r
+         _rotating = true; // rotating to a limit\r
+         _rampUp = !_noRamp && Math.abs(_stopAngle-getTachoCount())>40 && _speed>200;  //no ramp for small angles\r
+         if(immediateReturn)return;\r
+      }\r
+      while(_rotating) Thread.yield();\r
+   }\r
+\r
+   /**\r
+    *inner class to regulate speed; also stop motor at desired rotation angle\r
+    **/\r
+   private class Regulator extends Thread\r
+   {\r
+      /**\r
+       *tachoCount when regulating started\r
+       */\r
+      int angle0 = 0;\r
+      /**\r
+       * set by reset, used  to regulate  motor speed\r
+       */ \r
+      float basePower = 0;\r
+      /**\r
+       * time regulating started\r
+       */\r
+      int time0 = 0;\r
+      float error = 0;\r
+      /**\r
+       * helper method - used by reset and setSpeed()\r
+       */\r
+      int calcPower(int speed)\r
+      {   \r
+         float pwr = 100 -12*_voltage + 0.12f*_speed;\r
+         if(pwr<0) return 0;\r
+         if(pwr>100)return 100;\r
+         else return (int)pwr;\r
+      }\r
+\r
+      /**\r
+       * called by forward() backward() and reverseDirection() <br>\r
+       * resets parameters for speed regulation\r
+       **/\r
+      public void reset()\r
+      {\r
+         if(!_regulate)return;\r
+         time0 = (int)System.currentTimeMillis();\r
+         angle0 = getTachoCount();\r
+         basePower = calcPower(_speed);\r
+         setPower((int)basePower);\r
+      }\r
+\r
+      /**\r
+       * Monitors time and tachoCount to regulate speed and stop motor rotation at limit angle\r
+       */\r
+      public void run()\r
+      {\r
+         float e0=0;\r
+         float accel = 0;// =8.f;// accel = _speed/(1000*ts);\r
+         float power =  0;\r
+         float ts = 200;//time to reach speed\r
+         int tock = 100+ (int)System.currentTimeMillis(); // \r
+         int tick = (int)System.currentTimeMillis();  // loop once per ms\r
+         while(_keepGoing)\r
+         { synchronized(this)\r
+            { \r
+            if((int)System.currentTimeMillis()> tick)             \r
+            {\r
+               tick = (int)System.currentTimeMillis();    \r
+               if(tick >= tock)\r
+               {                    \r
+                  tock+=100;\r
+                  timedOut();\r
+               }\r
+               if(_rotating && _direction*(getTachoCount() - _stopAngle)>=0)  stopAtLimit();  // was >0\r
+               else if(_regulate && isMoving()) //regulate speed \r
+               {\r
+                  int elapsed = (int)System.currentTimeMillis()-time0;\r
+                  int angle = getTachoCount()-angle0;\r
+                  int absA = angle;\r
+                  if(angle<0)absA = -angle;\r
+                  if(_rampUp)\r
+                  {   \r
+                     ts = 130;// time to get up to speed\r
+                     if(elapsed<ts)// not at speed yet\r
+                     {\r
+                        error = elapsed*elapsed/ts;  //assume acceleration decreases linearly\r
+                        error = error * (1 - elapsed/(3.0f*ts))*(_speed/1000f);\r
+                        error = error -absA;\r
+                     }\r
+                     else  // adjust elapsed time for acceleration time - don't try to catch up\r
+                     {\r
+                        error = ((elapsed - ts/3)* _speed)/1000f - absA;\r
+                     }\r
+                  }\r
+                  else         \r
+                     error = (elapsed*_speed/1000f)- absA;\r
+                  power = basePower + 10f * error;// -2*e0;//10 , -4// magic numbers from experiment .75\r
+                  if(power<0) power = 0;\r
+                  e0 = error;\r
+                  float smooth = 0.008f;// another magic number from experiment.0025\r
+                  basePower = basePower + smooth*(power-basePower); \r
+                  setPower((int)power);\r
+               }// end speed regulation\r
+               // stop at rotation limit angle\r
+      \r
+            }// end if tick\r
+            }// end synchronized block\r
+         Thread.yield();\r
+         }     // end keep going loop\r
+      }\r
+      /**\r
+       * helper method for run()\r
+       */\r
+      void stopAtLimit()\r
+      {\r
+         _mode = 3; // stop motor\r
+         _port.controlMotor (0, 3);\r
+         int a = angleAtStop();//returns w:hen motor has stopped\r
+         int remaining = _limitAngle - a;\r
+         if(_direction * remaining >2 ) // not yet done; don't call nudge for less than 3 deg\r
+         {                                                            \r
+            if(!_wasRotating)// initial call to rotate(); save state variables\r
+            {\r
+               _wasRegulating = _regulate;\r
+               _regulate = true;\r
+               _speed0 = _speed;\r
+               _wasRotating = true;\r
+            }\r
+            nudge(remaining,a); //another try\r
+         }\r
+         else //rotation complete;  restore state variables\r
+         { \r
+            if (_wasRotating)\r
+            {\r
+               setSpeed(_speed0);//restore speed setting\r
+               _wasRotating = false;\r
+               _regulate = _wasRegulating;\r
+            }\r
+            _mode = 3; // stop motor  maybe redundant\r
+            _port.controlMotor (0, _mode);\r
+            _rotating = false;\r
+         }  \r
+      }\r
+      /**\r
+       *helper method for stopAtLimit() \r
+       **/\r
+      private void nudge(int remaining,int tachoCount)\r
+      {\r
+         setSpeed(100);\r
+         if(remaining > 0)_mode = 1;\r
+         else _mode = 2;       \r
+         _port.controlMotor(_power, _mode);\r
+         _direction = 3 - 2*_mode;\r
+         _stopAngle = tachoCount + remaining/2;\r
+         if(remaining < 2 && remaining > -2) _stopAngle += _direction; //nudge at least 1 deg\r
+         _rotating = true;\r
+         _rampUp = false;\r
+         _regulate = true;\r
+      }  \r
+      /**\r
+       *helper method for stopAtLimit\r
+       **/\r
+      int angleAtStop()\r
+      {\r
+         int a0 = getTachoCount();\r
+         boolean turning = true;\r
+         int a = 0;\r
+         while(turning)\r
+         {\r
+            _port.controlMotor(0,3); // looks redundant, but controlMotor(0,3) fails, rarely.\r
+            try{Thread.sleep(20);}// was 10\r
+            catch(InterruptedException w){}\r
+            a = getTachoCount();\r
+            turning = Math.abs(a - a0)>0;\r
+            a0 = a;\r
+         }\r
+         return        a;\r
+      }\r
+   }\r
+\r
+   /**\r
+    *causes run() to exit\r
+    */\r
+   public void shutdown(){_keepGoing = false;}\r
+\r
+\r
+   /** \r
+    * turns speed regulation on/off; <br>\r
+    * Cumulative speed error is within about 1 degree after initial acceleration.\r
+    * @param  yes is true for speed regulation on\r
+    */\r
+   public void regulateSpeed(boolean yes) \r
+   {\r
+      _regulate = yes;\r
+   }\r
+\r
+   /**\r
+    * enables smoother acceleration.  Motor speed increases gently,  and does not <>\r
+    * overshoot when regulate Speed is used. \r
+    * \r
+    */\r
+   public void smoothAcceleration(boolean yes) \r
+   {_noRamp = ! yes;}\r
+\r
+   /**\r
+    * Sets motor speed , in degrees per second; Up to 900 is posssible with 8 volts.\r
+    * @param speed value in degrees/sec  \r
+    */\r
+   public void setSpeed (int speed)\r
+   {\r
+\r
+      _speed = speed;\r
+      if(speed<0)_speed = - speed;\r
+      setPower((int)regulator.calcPower(_speed));\r
+      regulator.reset();\r
+      _rampUp = false;\r
+   }\r
+\r
+   /**\r
+    *sets motor power.  This method is used by the Regulator thread to control motor speed.\r
+    *Warning:  negative power will cause the motor to run in reverse but without updating the _direction \r
+    *field which is used by the Regulator thread.  If the speed regulation is enabled, the rusults are \r
+    *unpredictable. \r
+    */\r
+   public synchronized void  setPower(int power)\r
+   {\r
+      _power = power;\r
+      _port.controlMotor (_power, _mode);\r
+   }\r
+\r
+   /**\r
+    * Returns the current motor speed in degrees per second\r
+    */\r
+   public int getSpeed()\r
+   {\r
+      return _speed;     \r
+   }\r
+   /**\r
+    * @return : 1 = forwardm, 2= backward, 3 = stop, 4 = float\r
+    */\r
+   public int getMode() {return _mode;}\r
+   public int getPower() { return _power;}\r
+   /**\r
+    * used by rotateTo to calculate stopAngle from limitAngle\r
+    * @return\r
+    */\r
+   private int overshoot()\r
+   {\r
+      return   (int)(3+ _speed*0.072f);//60?\r
+   }\r
+\r
+   /**\r
+    * Return the angle that a Motor is rotating to.\r
+    * \r
+    * @return angle in degrees\r
+    */\r
+   public int getLimitAngle()\r
+   {\r
+      return _limitAngle;\r
+   }\r
+\r
+   /**\r
+    *returns true when motor rotation task is not yet complete a specified angle\r
+    */ \r
+   public boolean isRotating()\r
+   {\r
+      return  _rotating;\r
+   }\r
+   public boolean isRegulating(){return _regulate;}\r
+   /**\r
+   /* calculates  actual speed and updates battery voltage every 100 ms\r
+    */\r
+   private void timedOut()\r
+   {\r
+      int angle = getTachoCount();\r
+      _actualSpeed = 10*(angle - _lastTacho);\r
+      _lastTacho = angle;\r
+      _voltage = Battery.getVoltage(); \r
+   }\r
+\r
+   /** \r
+    *returns actualSpeed degrees per second,  calculated every 100 ms; negative value means motor is rotating backward\r
+    */\r
+   public int getActualSpeed() { return _actualSpeed;} \r
+   /**\r
+    * Returns the tachometer count.\r
+    * \r
+    * @return tachometer count in degrees\r
+    */\r
+   public int getTachoCount()\r
+   {\r
+      return _port.getTachoCount();\r
+   }\r
+\r
+   /**\r
+    * Resets the tachometer count to zero.\r
+    */\r
+   public void resetTachoCount()\r
+   {\r
+      _port.resetTachoCount();\r
+   }\r
+\r
+   /**\r
+    * for degugging\r
+    * @return regulator error\r
+    */\r
+   public float getError() {return regulator.error;}\r
+   \r
+   /**\r
+    * for debugging\r
+    * @return base power of regulator\r
+    */\r
+   public float getBasePower() {return regulator.basePower;}\r
 }\r
 \r
 \r
index ba9f157..d1af374 100644 (file)
@@ -7,7 +7,7 @@ package lejos.nxt;
  */
 public class MotorPort implements TachoMotorPort {
        int _id;
-       int _pwmMode = 0; // default to float mode
+       int _pwmMode = PWM_FLOAT; // default to float mode
        
        private MotorPort(int id)
        {
@@ -68,6 +68,11 @@ public class MotorPort implements TachoMotorPort {
        {
                resetTachoCountById( _id - 'A');
        }
+       
+       public void setPWMMode(int mode)
+       {
+               _pwmMode = mode;
+       }
          
        public static synchronized native void resetTachoCountById(int aMotor);
 }
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/NXTCam.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/NXTCam.java
new file mode 100644 (file)
index 0000000..86e0730
--- /dev/null
@@ -0,0 +1,66 @@
+package lejos.nxt;\r
+\r
+import java.awt.*;\r
+\r
+/**\r
+ * Mindsensors NXTCam.\r
+ * www.mindsensors.com\r
+ * \r
+ * Author Lawrie Griffiths\r
+ * \r
+ */\r
+public class NXTCam extends I2CSensor {\r
+       byte[] buf = new byte[4];\r
+       \r
+       public NXTCam(I2CPort port)\r
+       {\r
+               super(port);\r
+               port.setType(TYPE_LOWSPEED_9V);\r
+       }\r
+       \r
+       /**\r
+        * Get the number of objects being tracked\r
+        * \r
+        * @return number of objects (0 - 8)\r
+        */\r
+       public int getNumberOfObjects() {\r
+               int ret = getData(0x42, buf, 1);\r
+               if(ret != 0) return -1;\r
+               return (0xFF & buf[0]);\r
+       }\r
+       \r
+       /**\r
+        * Get the color number for a tracked object\r
+        * \r
+        * @param id the object number (starting at zero)\r
+        * @return the color of the object (starting at zero)\r
+        */\r
+       public int getObjectColor(int id) {\r
+               int ret = getData(0x43 + (id * 5), buf, 1);\r
+               if(ret != 0) return -1;\r
+               return (0xFF & buf[0]);\r
+       }\r
+       \r
+       /**\r
+        * Get the rectangle containing a tracked object\r
+        * \r
+        * @param id the object number (starting at zero)\r
+        * @return the rectangle\r
+        */\r
+       public Rectangle getRectangle(int id) {\r
+               for(int i=0;i<4;i++) buf[i] = 0;\r
+               getData(0x44 + (id * 5), buf, 4);\r
+               return new Rectangle(buf[0] & 0xFF, buf[1] & 0xFF,\r
+                               (buf[2] & 0xFF) - (buf[0] & 0xFF),\r
+                               (buf[3] & 0xFF) - (buf[1] & 0xFF));\r
+       }\r
+       \r
+       /**\r
+        * Send a single byte command represented by a letter\r
+        * @param cmd the letter that identifies the command\r
+        */\r
+       public void sendCommand(char cmd) {\r
+               sendData(0x41, (byte) cmd);\r
+       }\r
+}\r
+\r
index 5d25891..c6e84bb 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * RCX access classes.
+ * NXT access classes.
  */
 package lejos.nxt;
 
@@ -24,7 +24,7 @@ public class Poll
     public static final short ALL_BUTTONS  = 0xF0;
     public static final short BUTTON_MASK_SHIFT  = 4;
 
-    public static final short SERIAL_MASK = 0x100;
+    public static final short SERIAL_MASK = 0x100; // Not used
     public static final short SERIAL_SHIFT = 8;
 
     private static Poll monitor = new Poll(true);
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXLink.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXLink.java
new file mode 100644 (file)
index 0000000..989f7d5
--- /dev/null
@@ -0,0 +1,242 @@
+package lejos.nxt;\r
+\r
+import lejos.rcxcomm.Opcode;\r
+/**\r
+ * Supports Mindsensors NRLink RCX IR adapter.\r
+ * \r
+ * @author Lawrie Griffiths <lawrie.griffiths@ntlworld.com>\r
+ *\r
+ */\r
+public class RCXLink extends I2CSensor implements Opcode {\r
+       \r
+       private byte[] buf = new byte[4];\r
+       \r
+       public RCXMotor A = new RCXMotor(new RCXRemoteMotorPort(this,0));\r
+       public RCXMotor B = new RCXMotor(new RCXRemoteMotorPort(this,1));\r
+       public RCXMotor C = new RCXMotor(new RCXRemoteMotorPort(this,2));\r
+\r
+       private final static byte SLOW_SPEED = 0x44; // Default 2400 baud\r
+       private final static byte FLUSH = 0x46; // Flush the FIFO buffer\r
+       private final static byte HIGH_SPEED = 0x48; // 4800 baudprivate final static byte LONG_RANGE = 0x4C;\r
+       private final static byte SHORT_RANGE = 0x53;\r
+       private final static byte LONG_RANGE = 0x4c;\r
+       private final static byte TRANSMIT_RAW_MACRO = 0x55; // Transmit Unassembled raw macro data;\r
+       private final static byte COMMAND = 0x41;\r
+       private final static byte RUN = 0x52;\r
+       private final static byte ARPA_ON = 0x4E;\r
+       private final static byte ARPA_OFF = 0x4F;\r
+       private final static byte STATUS_REG = 0x41;\r
+       private final static byte RX_DATA_LEN = 0x40;\r
+       private final static byte TX_DATA_LEN = 0x40;\r
+       private final static byte RX_DATA = 0x42;\r
+       private final static byte TX_DATA = 0x42;\r
+       \r
+       // ROM Macro Definitions:\r
+       public final static byte SHORT_RANGE_IR = 0x01;\r
+       public final static byte LONG_RANGE_IR = 0x04;\r
+       public final static byte POWER_OFF_RCX = 0x07;\r
+       public final static byte RUN_PROGRAM_1 = 0x09;\r
+       public final static byte RUN_PROGRAM_2 = 0x0D;\r
+       public final static byte RUN_PROGRAM_3 = 0x11;\r
+       public final static byte RUN_PROGRAM_4 = 0x15;\r
+       public final static byte RUN_PROGRAM_5 = 0x19;\r
+       public final static byte STOP_ALL_PROGRAMS = 0x1D;\r
+       public final static byte MOTOR_A_FORWARD = 0x21;\r
+       public final static byte MOTOR_A_REVERSED = 0x25;\r
+       public final static byte MOTOR_B_FORWARD = 0x29;\r
+       public final static byte MOTOR_B_REVERSED = 0x2D;\r
+       public final static byte MOTOR_C_FORWARD = 0x31;\r
+       public final static byte MOTOR_C_REVERSED = 0x35;\r
+       /**\r
+        * NOTE: The BEEP macro is unreliable. \r
+     * It works once, and then needs another command executed\r
+     * before it works again.\r
+        */\r
+       public final static byte BEEP = 0x39;   \r
+               \r
+       public final static int EEPROM_BUFFER = 0x78;\r
+       public final static int DELAY = 10;\r
+       \r
+       public RCXLink(I2CPort port) {\r
+               super(port);\r
+       }\r
+\r
+       public void runMacro(int addr) {\r
+               buf[0] = RUN;\r
+               buf[1] = (byte) addr;\r
+               \r
+               sendData(COMMAND, buf, 2);\r
+       }\r
+       \r
+       public void beep() {\r
+               runMacro(BEEP);\r
+       }\r
+       \r
+       public void runProgram(int programNumber) {\r
+               runMacro(RUN_PROGRAM_1 + ((programNumber-1)*4));\r
+       }\r
+       \r
+       public void forwardStep(int id) { // RCX Remote Command\r
+               runMacro(MOTOR_A_FORWARD + (id*8));\r
+       }\r
+       \r
+       public void backwardStep(int id) { // RCX Remote Command\r
+               runMacro(MOTOR_A_REVERSED + (id*8));\r
+       }\r
+       \r
+       public void setRCXRangeShort() {\r
+               runMacro(SHORT_RANGE_IR);\r
+       }\r
+       \r
+       public void setRCXRangeLong() {\r
+               runMacro(LONG_RANGE_IR);\r
+       }\r
+       \r
+       public void powerOff() {\r
+               runMacro(POWER_OFF_RCX);\r
+       }\r
+       \r
+       public void stopAllPrograms() {\r
+               runMacro(STOP_ALL_PROGRAMS);\r
+       }\r
+       \r
+       public void flush() {\r
+               sendData(COMMAND, FLUSH);\r
+       }\r
+       \r
+       public void setDefaultSpeed() {\r
+               sendData(COMMAND, SLOW_SPEED);\r
+       }\r
+       \r
+       public void setHighSpeed() {\r
+               sendData(COMMAND, HIGH_SPEED);\r
+       }\r
+       \r
+       public void setRangeLong() {\r
+               sendData(COMMAND, LONG_RANGE);\r
+       }\r
+\r
+       public void setRangeShort() {\r
+               sendData(COMMAND, SHORT_RANGE);\r
+       }\r
+       \r
+       public void setAPDAOn() {\r
+               sendData(COMMAND, ARPA_ON);\r
+       }\r
+       \r
+       public void setAPDAOff() {\r
+\r
+               sendData(COMMAND, ARPA_OFF);\r
+       }\r
+       \r
+       public void defineMacro(int addr, byte[] macro) {\r
+               sendData((byte) addr,(byte) macro.length);\r
+               sleep();\r
+               sendData((byte) addr+1, macro, macro.length);\r
+       }\r
+       \r
+       public int getStatus() {\r
+               getData(STATUS_REG, buf, 1);\r
+               return buf[0] & 0xFF;\r
+       }\r
+       \r
+       public int bytesAvailable() {\r
+               getData(RX_DATA_LEN, buf, 1);\r
+               return buf[0] & 0xFF;\r
+       }\r
+       \r
+       public void ping() {\r
+               buf[0] = OPCODE_ALIVE;\r
+               defineAndRun(buf,1);\r
+       }\r
+       \r
+       public void sendF7(int msg) {\r
+               buf[0] = (byte) OPCODE_SET_MESSAGE;\r
+               buf[1] = (byte) (msg & 0xFF);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void sendRemoteCommand(int msg) {\r
+               buf[0] = OPCODE_REMOTE_COMMAND;\r
+               buf[1] = (byte) (msg >> 8);\r
+               buf[2] = (byte) (msg & 0xFF);\r
+               defineAndRun(buf,3);\r
+       }\r
+       \r
+       public void setMotorPower(int id, int power) { \r
+               buf[0] = OPCODE_SET_MOTOR_POWER;\r
+               buf[1] = (byte) (1 << id);\r
+               buf[2] = 2;\r
+               buf[3] = (byte) power;\r
+               defineMacro(EEPROM_BUFFER, buf); // Bug: sendData cannot send more than 3 bytes\r
+               sleep();\r
+               sendData(EEPROM_BUFFER+4, (byte) power);\r
+               sleep();\r
+               runMacro(EEPROM_BUFFER);\r
+       }\r
+       \r
+       public void stopMotor(int id) {\r
+               buf[0] = OPCODE_SET_MOTOR_ON_OFF;\r
+               buf[1] = (byte) ((1 << id) | 0x40);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void startMotor(int id) {\r
+               buf[0] = OPCODE_SET_MOTOR_ON_OFF;\r
+               buf[1] = (byte) ((1 << id) | 0x80);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void fltMotor(int id) {\r
+               buf[0] = OPCODE_SET_MOTOR_ON_OFF;\r
+               buf[1] = (byte) (1 << id);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void forward(int id) {\r
+               buf[0] = (byte) OPCODE_SET_MOTOR_DIRECTION;\r
+               buf[1] = (byte) ((1 << id) | 0x80);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void backward(int id) {\r
+               buf[0] = (byte) OPCODE_SET_MOTOR_DIRECTION;\r
+               buf[1] = (byte) (1 << id);\r
+               defineAndRun(buf,2);\r
+       }\r
+       \r
+       public void setRawMode() {\r
+               sendData(COMMAND, TRANSMIT_RAW_MACRO);\r
+       }\r
+       \r
+       public void sendBytes(byte[] data, int len) {\r
+               sendData(TX_DATA,data,len);\r
+               sleep();\r
+               sendData(TX_DATA_LEN, (byte) len);\r
+       }\r
+       \r
+       public int readBytes(byte [] data) {\r
+               getData(RX_DATA_LEN,buf,1);\r
+               int numBytes = buf[0];\r
+               if (numBytes > 0) {\r
+                       if (numBytes > data.length) numBytes = data.length;\r
+                       sleep();\r
+                       getData(RX_DATA,data,numBytes);\r
+               }\r
+               return numBytes;\r
+       }\r
+       \r
+       private void sleep() {\r
+               try {\r
+                       Thread.sleep(DELAY);\r
+               } catch (InterruptedException e) {}\r
+       }\r
+       \r
+       public void defineAndRun(byte[] macro, int len) {\r
+               sendData(EEPROM_BUFFER,(byte) len);\r
+               sleep();\r
+               sendData(EEPROM_BUFFER+1, macro, len);\r
+               sleep();                \r
+               runMacro(EEPROM_BUFFER);\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXMotorMultiplexer.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXMotorMultiplexer.java
new file mode 100644 (file)
index 0000000..c3be147
--- /dev/null
@@ -0,0 +1,42 @@
+package lejos.nxt;\r
+\r
+/**\r
+ * Supports the mindsensors RCX Motor Multiplexer\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXMotorMultiplexer extends I2CSensor {\r
+       private byte[] buf = new byte[1];\r
+       \r
+       public RCXMotor A = new RCXMotor(new RCXPlexedMotorPort(this,0));\r
+       public RCXMotor B = new RCXMotor(new RCXPlexedMotorPort(this,1));\r
+       public RCXMotor C = new RCXMotor(new RCXPlexedMotorPort(this,2));\r
+       public RCXMotor D = new RCXMotor(new RCXPlexedMotorPort(this,3));\r
+       \r
+       \r
+       public RCXMotorMultiplexer(I2CPort port) {\r
+               super(port);\r
+               setAddress(0x5A);\r
+       }\r
+       \r
+       public void setSpeed(int speed, int id) {\r
+               buf[0] = (byte) speed;\r
+               sendData(0x43 + (id*2), buf, 1);\r
+       }\r
+       \r
+       public int getSpeed(int id) {\r
+               getData(0x43 + (id*2), buf, 1);\r
+           return buf[0] & 0xFF;\r
+       }\r
+       \r
+       public void setDirection(int direction, int id) {\r
+               buf[0] = (byte) direction;\r
+               sendData(0x42 + (id*2), buf, 1);\r
+       }\r
+       \r
+       public int getDirection(int id) {\r
+               getData(0x42 + (id*2), buf, 1);\r
+           return buf[0] & 0xFF;\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXPlexedMotorPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXPlexedMotorPort.java
new file mode 100644 (file)
index 0000000..1f89908
--- /dev/null
@@ -0,0 +1,29 @@
+package lejos.nxt;\r
+\r
+/**\r
+ * Supports a motor connected to the Mindsensors RCX Motor Multiplexer\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXPlexedMotorPort implements BasicMotorPort {\r
+       private RCXMotorMultiplexer plex;\r
+       private int id;\r
+       \r
+       public RCXPlexedMotorPort(RCXMotorMultiplexer plex, int id) {\r
+               this.plex = plex;\r
+               this.id = id;\r
+       }\r
+       \r
+       public void controlMotor(int power, int mode) {\r
+               int mmMode = mode;\r
+               if (mmMode == 4) mmMode = 0; // float\r
+               int mmPower = (int) ((float)power * 2.55f);\r
+               if (mmMode == 3) mmPower = 255; // Maximum breaking\r
+               plex.setDirection(mmMode, id);\r
+               plex.setSpeed(mmPower, id);\r
+       }\r
+       \r
+       public void setPWMMode(int mode) {\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXRemoteMotorPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/RCXRemoteMotorPort.java
new file mode 100644 (file)
index 0000000..a923159
--- /dev/null
@@ -0,0 +1,56 @@
+package lejos.nxt;\r
+\r
+/**\r
+ * Supports a motor connected to a remote RCX via a mindsensord NRLink adapter\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RCXRemoteMotorPort implements BasicMotorPort {\r
+       private RCXLink link;\r
+       private int id;\r
+       private boolean started = false;\r
+       private int oldPower = -1;\r
+       \r
+       public RCXRemoteMotorPort(RCXLink link, int id) {\r
+               this.link = link;\r
+               this.id = id;\r
+       }\r
+       public void controlMotor(int power, int mode) {\r
+               //LCD.drawInt(id, 0, 0);\r
+               //LCD.drawInt(power,4,0,1);\r
+               //LCD.drawInt(mode,0,2);\r
+               //LCD.refresh();\r
+               \r
+               int power7 = (int) (power/12.5);\r
+               \r
+               if (power7 > 7) power7 = 7;\r
+                               \r
+               if ((mode == 1 || mode == 2) && !started) {\r
+                       link.startMotor(id);\r
+                       started = true;\r
+                       sleep();\r
+               } else started = false;\r
+               \r
+               if (power != oldPower) {\r
+                       link.setMotorPower(id, power7);\r
+                       sleep();\r
+               }\r
+               \r
+               if (mode == 1) link.forward(id);\r
+               else if (mode == 2) link.backward(id);\r
+               else if (mode == 3) link.stopMotor(id);\r
+               else if (mode == 4) link.fltMotor(id);\r
+               \r
+               oldPower = power;\r
+       }\r
+       \r
+       private void sleep() {\r
+               try {\r
+                       Thread.sleep(50);\r
+               } catch (InterruptedException e) {}\r
+       }\r
+       \r
+       public void setPWMMode(int mode) {\r
+       }\r
+}\r
index 5f25fee..3200728 100644 (file)
@@ -13,7 +13,7 @@ public class SensorPort implements LegacySensorPort, I2CPort, ListenerCaller
   private int type, mode;
   
    
-  private static final byte[]  powerType = {0,0,1,1,1,0,0,0,0,0,0,1};
+  private static final byte[]  powerType = {0,0,1,1,1,0,0,0,0,0,0,2};
   private static final byte[]  adType = {-1,-1,-1,-1,-1,1,0,1,2,-1,-1,-1};
 
   /**
index bb832f0..2b7d96f 100644 (file)
@@ -13,15 +13,14 @@ public class Sound
   }
 
   /**
-   * Play a system sound - not yet implemented.
+   * Play a system sound.
    * <TABLE BORDER=1>
    * <TR><TH>aCode</TH><TH>Resulting Sound</TH></TR>
    * <TR><TD>0</TD><TD>short beep</TD></TR>
    * <TR><TD>1</TD><TD>double beep</TD></TR>
    * <TR><TD>2</TD><TD>descending arpeggio</TD></TR>
    * <TR><TD>3</TD><TD>ascending  arpeggio</TD></TR>
-   * <TR><TD>4</TD><TD>long, low beep</TD></TR>
-   * <TR><TD>5</TD><TD>quick ascending arpeggio</TD></TR>
+   * <TR><TD>4</TD><TD>long, low buzz</TD></TR>
    * </TABLE>
    */
    
@@ -64,7 +63,7 @@ public class Sound
   }
 
   /**
-   * Beeps once - not yet implemented.
+   * Beeps once.
    */
   public static void beep()
   {
@@ -72,7 +71,7 @@ public class Sound
   }
 
   /**
-   * Beeps twice - not yet implemented.
+   * Beeps twice.
    */
   public static void twoBeeps()
   {
@@ -88,7 +87,7 @@ public class Sound
   }
 
   /**
-   * Downward tones.
+   * Upward tones.
    */
  public static void beepSequenceUp()
  {
@@ -122,19 +121,18 @@ public class Sound
    * Internal method used to play sound sample from a file
    * @param page the start page of the file
    * @param len the length of the file
-   * @param freq the frequency
-   * @param vol the volume
+   * @param freq the frequency 
+   * @param vol the volume 1000 corresponds to 100%, 100 to 10%, 2500 to 250%
    */
   public static native void playSample(int page, int len, int freq, int vol);
   
   /**
    * 
    * @param file the 8-bit PWM (WAV) sample file
-   * @param freq the average frequency to play the sample at
-   * @param vol the sound volume
+   * @param vol the volume percentage 0 - 100
    */
-  public static void playSample(File file, int freq, int vol) {
-         playSample(file.getPage(), file.length(), freq, vol);
+  public static void playSample(File file, int vol) {
+         playSample(file.getPage(), file.length(), 11000, vol * 10);
   }
   
 }
index 2e8565a..be43fae 100644 (file)
@@ -1,5 +1,10 @@
 package lejos.nxt;
 
-interface TachoMotorPort extends BasicMotorPort, Tachometer {
-       
+/**
+ * Abstraction for a motor port that supports NXT motors with tachometers.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface TachoMotorPort extends BasicMotorPort, Tachometer {
 }
\ No newline at end of file
index e3d4261..2f50f31 100644 (file)
@@ -1,6 +1,12 @@
 package lejos.nxt;
 
-interface Tachometer {
+/**
+ * Abstraction for the tachometer built into NXT motors.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
+public interface Tachometer {
        
        public int getTachoCount();
        
index 3aaaeb3..e5b32d8 100644 (file)
@@ -125,13 +125,31 @@ public class TextMenu
         * Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
         * and returns the index of the selected item. <br>
         * The menu display wraps items that scroll off the top will reappear on the bottom and vice versa.
+        * 
+        * The selectedIndex is set to the first menu item.
+        * 
         * @return the index of the selected item
         **/
-       public int select()
-       {
+       public int select() 
+       { 
+          return select(0); 
+       } 
+
+       /**
+        * Allows the user to scroll through the items, using the right and left buttons (forward and back)  The Enter key closes the menu <br>
+        * and returns the index of the selected item. <br>
+        * The menu display wraps items that scroll off the top will reappear on the bottom and vice versa.
+        * 
+        * This version of select allows the selected index to be set when the menu is first displayed.
+        * 
+        * @param selectedIndex the idex to start the menu on
+        * @return the index of the selected item
+        **/
+       public int select(int selectedIndex) 
+       { 
+          _selectedIndex = selectedIndex;
 //             if (_length<_size) _size = _length;
                int button = 0;
-               _selectedIndex = 0;
                _quit = false;
 //             LCD.clear();
                display();
index 7731bf5..e9843b1 100644 (file)
 package lejos.nxt;
 
 /**
- * Abstraction for a Mindsensors (and possibly HiTechnic) 
+ * Abstraction for a Mindsensors
  * acceleration (tilt) sensor.
  * 
  */
 public class TiltSensor extends I2CSensor {
        byte[] buf = new byte[2];
+       byte[] buf2 = new byte[1];
+       
+       private static final String MINDSENSORS_ID = "mndsnsrs";
+       
+       private static byte X_TILT = 0x42;
+       private static byte Y_TILT = 0x43;
+       private static byte Z_TILT = 0x44;
+       
+       private static byte MINDSTORMS_X_ACCEL_LSB = 0x45;
+       private static byte MINDSTORMS_Y_ACCEL_LSB = 0x47;
+       private static byte MINDSTORMS_Z_ACCEL_LSB = 0x49;
+       
+       private static byte HITECHNIC_X_ACCEL_2BITS = 0x45;
+       private static byte HITECHNIC_Y_ACCEL_2BITS = 0x46;
+       private static byte HITECHNIC_Z_ACCEL_2BITS = 0x47;
+       
+       private boolean isMindsensors; // For comparing HiTechnic vs. Mindsensors
        
        public TiltSensor(I2CPort port)
        {
                super(port);
+               port.setType(TYPE_LOWSPEED_9V);
+               isMindsensors = (this.getProductID().equals(MINDSENSORS_ID));
        }
        
        /**
-        * Returns X tilt value.
+        * Tilt of sensor along X-axis (see top of Mindsensors.com sensor for
+        * diagram of axis).  128 is level. 
+        * 
+        * @return X tilt value, or -1 if call failed
         */
        public int getXTilt() {         
-               int ret = getData(0x42, buf, 1);
-               
+               int ret = getData(X_TILT, buf, 1);              
                return (ret == 0 ? (buf[0] & 0xff) : -1);
        }
        
        /**
         * Returns Y tilt value.
+        * 
+        * @return Y tilt value, or -1 if call failed
         */
        public int getYTilt() {         
-               int ret = getData(0x43, buf, 1);
-               
+               int ret = getData(Y_TILT, buf, 1);      
                return (ret == 0 ? (buf[0] & 0xff) : -1);
        }
        
        /**
         * Returns Z tilt value.
+        * 
+        * @return Z tilt value, or -1 if call failed
         */
        public int getZTilt() {         
-               int ret = getData(0x44, buf, 1);
-               
+               int ret = getData(Z_TILT, buf, 1);      
                return (ret == 0 ? (buf[0] & 0xff) : -1);
        }
+       
+       /**
+        * Acceleration along X axis. Positive or negative values in mg.
+        * (g = acceleration due to gravity = 9.81 m/s^2)
+        * @return Acceleration e.g. 9810 mg (falling on earth)
+        */
+       public int getXAccel() {
+               if (isMindsensors) {
+                       int ret = getData(MINDSTORMS_X_ACCEL_LSB, buf, 2);
+                       int accel = (buf[0] & 0xFF) | ((buf[1]) << 8);
+                       return (ret == 0 ? accel : -1);
+               } else {
+                       int ret = getData(X_TILT, buf, 1);
+                       if (ret != 0) return -1;
+                       ret = getData(HITECHNIC_X_ACCEL_2BITS, buf2, 1);
+                       if (ret != 0) return -1;
+                       return ((buf[0] & 0xFF) << 2) + (buf2[0] & 0xFF);
+               }
+       }
+       
+       /**
+        * Acceleration along Y axis. Positive or negative values in mg.
+        * (g = acceleration due to gravity = 9.81 m/s^2)
+        * @return Acceleration e.g. 9810 mg (falling on earth)
+        */
+       public int getYAccel() {
+               if (isMindsensors) {
+                       int ret = getData(MINDSTORMS_Y_ACCEL_LSB, buf, 2);
+                       int accel = (buf[0] & 0xFF) | ((buf[1]) << 8);
+                       return (ret == 0 ? accel : -1);
+               } else {
+                       int ret = getData(Y_TILT, buf, 1);
+                       if (ret != 0) return -1;
+                       ret = getData(HITECHNIC_Y_ACCEL_2BITS, buf2, 1);
+                       if (ret != 0) return -1;
+                       return ((buf[0] & 0xFF) << 2) + (buf2[0] & 0xFF);
+               }
+       }
+       
+       /**
+        * Acceleration along Z axis. Positive or negative values in mg.
+        * (g = acceleration due to gravity = 9.81 m/s^2)
+        * @return Acceleration e.g. 9810 mg (falling on earth)
+        */
+       public int getZAccel() {
+               if (isMindsensors) {
+                       int ret = getData(MINDSTORMS_Z_ACCEL_LSB, buf, 2);
+                       int accel = (buf[0] & 0xFF) | ((buf[1]) << 8);
+                       return (ret == 0 ? accel : -1);
+               } else {
+                       int ret = getData(Z_TILT, buf, 1);
+                       if (ret != 0) return -1;
+                       ret = getData(HITECHNIC_Z_ACCEL_2BITS, buf2, 1);
+                       if (ret != 0) return -1;
+                       return ((buf[0] & 0xFF) << 2) + (buf2[0] & 0xFF);
+               }
+       }
 }
index 6effd15..2bb4da2 100644 (file)
 package lejos.nxt;
 
 /**
- * 
+ *
  * Abstraction for a NXT Ultrasonic Sensor.
  *
  */
-public class UltrasonicSensor extends I2CSensor {
-       byte[] buf = new byte[1];
+public class UltrasonicSensor extends I2CSensor
+{
+       /* Device control locations */
+       private static final byte MODE = 0x41;
+       private static final byte DISTANCE = 0x42;
+       private static final byte FACTORY_DATA = 0x11;
+       private static final byte UNITS = 0x14;
+       private static final byte CALIBRATION = 0x4a;
+       private static final byte PING_INTERVAL = 0x40;
+       /* Device modes */
+       private static final byte MODE_OFF = 0x0;
+       private static final byte MODE_SINGLE = 0x1;
+       private static final byte MODE_CONTINUOUS = 0x2;
+       private static final byte MODE_CAPTURE = 0x3;
+       private static final byte MODE_RESET = 0x4;
+       /* Device timing */
+       private static final int DELAY_CMD = 0x5;
+       private static final int DELAY_AVAILABLE = 0xf;
+       
+       private byte[] buf = new byte[1];
+       private byte[] inBuf = new byte[8];
+       private String units = "       ";
+       private char [] unitsChars = StringUtils.getCharacters(units);
+       private int nextCmdTime;
+       private int dataAvailableTime;
+       private int currentDistance;
+       private byte mode;
+       
+       /*
+        * Return the current time in milliseconds
+        */
+       private int now()
+       {
+               return (int)System.currentTimeMillis();
+       }
        
-       public UltrasonicSensor(I2CPort port) {
+       /*
+        * Wait until the specified time
+        *
+        */
+       private void wait(int when)
+       {
+               int delay = when - now();
+               if (delay > 0)
+                       try
+                       {
+                               Thread.sleep(delay);
+                       }
+                       catch (Exception e)
+                       {}
+       }
+       
+       /*
+        * Over-ride standard get function to ensure correct inter-command timing
+        * when using the ultrasonic sensor. The Lego Ultrasonic sensor uses a
+        * "bit-banged" i2c interface and seems to require a minimum delay between
+        * commands otherwise the commands fail.
+        */
+       public int getData(int register, byte [] buf, int len)
+       {
+               wait(nextCmdTime);
+               int ret = super.getData(register, buf, len);
+               nextCmdTime = now() + DELAY_CMD;
+               return ret;
+       }
+       
+       /*
+        * Over-ride the standard send function to ensure the correct inter-command
+        * timing for the ultrasonic sensor.
+        *
+        */
+       public int sendData(int register, byte [] buf, int len)
+       {
+               wait(nextCmdTime);
+               int ret = super.sendData(register, buf, len);
+               nextCmdTime = now() + DELAY_CMD;
+               return ret;
+       }
+       
+       public UltrasonicSensor(SensorPort port)
+       {
                super(port);
+               // Set correct sensor type, default is TYPE_LOWSPEED
+               port.setType(TYPE_LOWSPEED_9V);
+               // Default mode is continuous
+               mode = MODE_CONTINUOUS;
+               // Set initial inter-command delays
+               nextCmdTime = now() + DELAY_CMD;
+               dataAvailableTime = now() + DELAY_AVAILABLE;
+               currentDistance = 255;
        }
-
+       
        /**
-        * Return distance of object.
-        * 
+        * Return distance to an object. To ensure that the data returned is valid
+        * this method may have to wait a short while for the distance data to
+        * become available.
+        *
         * @return distance or 255 if no object in range
         */
-       public int getDistance() {              
-               int ret = getData(0x42, buf, 1);
-               
-               return (ret == 0 ? (buf[0] & 0xff) : 255);
+       public int getDistance()
+       {
+               // If we are in continuous mode and new data will not yet be available
+               // simply return the current reading (since this is what the sensor
+               // will do anyway.)
+               if (mode == MODE_CONTINUOUS && now() < dataAvailableTime)
+                       return currentDistance;
+               wait(dataAvailableTime);
+               int ret = getData(DISTANCE, buf, 1);
+               currentDistance = (ret == 0 ? (buf[0] & 0xff) : 255);
+               // Make a note of when new data should be available.
+               if (mode == MODE_CONTINUOUS)
+                       dataAvailableTime = now() + DELAY_AVAILABLE;
+               return currentDistance;
        }
-
-}
+       
+       /**
+        * Return an array of 8 echo distances. These are generated when using ping
+        * mode. A value of 255 indicates that no echo was obtained. The array must
+        * contain at least 8 elements, if not -1 is returned. If the distnace data
+        * is not yet available the method will wait until it is.
+        *
+        * @return 0 if ok <> 0 otherwise
+        */
+       public int getDistances(int dist[])
+       {
+               if (dist.length < inBuf.length || mode != MODE_SINGLE) return -1;
+               wait(dataAvailableTime);
+               int ret = getData(DISTANCE, inBuf, inBuf.length);
+               for(int i = 0; i < inBuf.length; i++)
+                       dist[i] = (int)inBuf[i] & 0xff;
+               return ret;
+       }
+       
+       /*
+        * Set the sensor into the specified mode. Keep track of which mode we are
+        * operating in. Make a note of when any distance data will become available
+        *
+        */
+       private int setMode(byte mode)
+       {
+               buf[0] = mode;
+               int ret = sendData(MODE, buf, 1);
+               // Make a note of when the data will be available
+               dataAvailableTime = now() + DELAY_AVAILABLE;
+               if (ret == 0) this.mode = mode;
+               return ret;
+       }
+       
+       /**
+        * Send a single ping.
+        * The sensor operates in two modes, continuous and ping. When in continuous
+        * mode the sensor sends out pings as often as it can and the most recently
+        * obtained result is available via a call to getDistance. When in ping mode
+        * a ping is only transmitted when a call is made to ping. This sends a
+        * single ping and up to 8 echoes are captured. These may be read by making
+        * a call to getDistance and passing a suitable array. A delay of
+        * approximately 20ms is required between the call to ping and getDistance.
+        * This delay is not included in the method. Calls to getDistance before
+        * this period may result in an error or no data being returned. The normal
+        * getDistance call may also be used with ping, returning information for
+        * the first echo. Calling this method will disable teh default continuous
+        * mode, to switch back to continuous mode call continuous.
+        *
+        * @return 0 if ok <> 0 otherwise
+        *
+        */
+       public int ping()
+       {
+               return setMode(MODE_SINGLE);
+       }
+       
+       /**
+        * Switch to continuous ping mode.
+        * This method enables continuous ping and capture mode. This is the default
+        * operating mode of the sensor. Please the notes for ping for more details.
+        *
+        * @return 0 if ok <> 0 otherwise
+        *
+        */
+       public int continuous()
+       {
+               return setMode(MODE_CONTINUOUS);
+       }
+       /**
+        * Turn off the sensor.
+        * This call disables the sensor. No pings will be issued after this call,
+        * until either ping, continuous or reset is called.
+        *
+        * @return 0 if ok <> 0 otherwise
+        *
+        */
+       public int off()
+       {
+               return setMode(MODE_OFF);
+       }
+       
+       /**
+        * Set capture mode
+        * Set the sensor into capture mode. The Lego documentation states:
+        * "Within this mode the sensor will measure whether any other ultrasonic
+        * sensors are within the vicinity. With this information a program can
+        * evaluate when it is best to make a new measurement which will not
+        * conflict with other ultrasonic sensors."
+        * I have no way of testing this. Perhaps someone with a second NXT could
+        * check it out!
+        *
+        * @return 0 if ok <> 0 otherwise
+        *
+        */
+       public int capture()
+       {
+               return setMode(MODE_CAPTURE);
+       }
+       
+       /**
+        * Reset the device
+        * Performs a "soft reset" of the device. Restores things to the default
+        * state. Following this call the sensor will be operating in continuous
+        * mode.
+        *
+        * @return 0 if ok <> 0 otherwise
+        *
+        */
+       public int reset()
+       {
+               int ret = setMode(MODE_RESET);
+               // In continuous mode after a reset;
+               if (ret == 0) mode = MODE_CONTINUOUS;
+               return ret;
+       }
+       
+       private int getMultiBytes(int reg, byte data[], int len)
+       {
+               /*
+                * For some locations that are adjacent in address it is not possible
+                * to read the locations in a single read, instead we must read them
+                * using a series of individual reads. No idea why this should be, but
+                * that is how it is!
+                */
+               int ret;
+               for(int i = 0; i < len; i++)
+               {
+                       ret = getData(reg+i, buf, 1);
+                       if (ret != 0) return ret;
+                       data[i] = buf[0];
+               }
+               return 0;
+       }
+       
+       private int setMultiBytes(int reg, byte data[], int len)
+       {
+               /*
+                * For some locations that are adjacent in address it is not possible
+                * to read the locations in a single write, instead we must write them
+                * using a series of individual writes. No idea why this should be, but
+                * that is how it is!
+                */
+               int ret;
+               for(int i = 0; i < len; i++)
+               {
+                       buf[0] = data[i];
+                       ret = sendData(reg+i, buf, 1);
+                       if (ret != 0) return ret;
+               }
+               return 0;
+       }
+       
+       /**
+        * Return 10 bytes of factory calibration data. The bytes are as follows
+        * data[0] : Factory zero (cal1)
+        * data[1] : Factory scale factor (cal2)
+        * data[2] : Factory scale divisor.
+        *
+        * @return 0 if ok <> 0 otherwise
+        */
+       public int getFactoryData(byte data[])
+       {
+               if (data.length < 3) return -1;
+               return getMultiBytes(FACTORY_DATA, data, 3);
+       }
+       /**
+        * Return a string indicating the type of units in use by the unit.
+        * The default response is 10E-2m indicating centimetres in use.
+        *
+        * @return 7 byte string
+        */
+       public String getUnits()
+       {
+               int ret = getData(UNITS, inBuf, 7);
+               for(int i = 0; i < 7; i++)
+                       unitsChars[i] = (ret == 0 ? (char)inBuf[i] : ' ');
+               return units;
+       }
+       
+       /**
+        * Return 3 bytes of calibration data. The bytes are as follows
+        * data[0] : zero (cal1)
+        * data[1] : scale factor (cal2)
+        * data[2] : scale divisor.
+        *
+        * @return 0 if ok <> 0 otherwise
+        */
+       public int getCalibrationData(byte data[])
+       {
+               /* Note the lego documentation says this is at loacation 0x50, however
+                * it looks to me like this is a hex v decimal thing and it should be
+                * location 0x49 + 1 which is 0x4a not 0x50! There certainly seems to be
+                * valid data at 0x4a...
+                */
+               if (data.length < 3) return -1;
+               return getMultiBytes(CALIBRATION, data, 3);
+       }
+       
+       /**
+        * Set 3 bytes of calibration data. The bytes are as follows
+        * data[0] : zero (cal1)
+        * data[1] : scale factor (cal2)
+        * data[2] : scale divisor.
+        *
+        * This does not currently seem to work.
+        *
+        * @return 0 if ok <> 0 otherwise
+        */
+       public int setCalibrationData(byte data[])
+       {
+               if (data.length < 3) return -1;
+               return setMultiBytes(CALIBRATION, data, 3);
+       }
+       
+       /**
+        * Return the interval used in continuous mode.
+        * This seems to be in the range 1-15. It can be read and set. However tests
+        * seem to show it has no effect. Others have reported that this does vary
+        * the ping interval (when used in other implementations). Please report
+        * any new results.
+        *
+        * @return -1 if error otherwise the interval
+        */
+       public byte getContinuousInterval()
+       {
+               int ret = getData(PING_INTERVAL, buf,1);
+               return (ret == 0 ? buf[0] : -1);
+       }
+       
+       /**
+        * Set the ping inetrval used when in continuous mode.
+        * See getContinuousInterval for more details.
+        *
+        * @return 0 if 0k <> 0 otherwise.
+        */
+       public int setContinuousInterval(byte interval)
+       {
+               buf[0] = interval;
+               int ret = sendData(PING_INTERVAL, buf, 1);
+               return ret;
+       }
+       
+       /**
+        * Returns the current operating mode of the sensor.
+        * 0 : sensor is off
+        * 1 : Single shot ping mode
+        * 2 : continuous ping mode (default)
+        * 3 : Event capture mode
+        *
+        * @return -1 if error otherwise the operating mode
+        */
+       public byte getMode()
+       {
+               int ret = getData(MODE, buf,1);
+               return (ret == 0 ? buf[0] : -1);
+       }
+}
\ No newline at end of file
index 5d27b9c..341d78e 100644 (file)
@@ -3,43 +3,572 @@ package lejos.nxt.comm;
 import java.io.*;
 import javax.microedition.io.*;
 
+
 /**
- * 
- * Represents a Bluetooth Stream Connection.
- * 
+ * Provides a Bluetooth connection
+ * Supports both packetized and stream based commincation.
+ * Blocking and non-blocking I/O.
+ * Notes:
+ * Because of the limited buffer space and the way that several connections
+ * have to share the interface to the Bluetooth device data may be lost. This
+ * will happen if a switch into command mode is required when there is data
+ * arriving from the remote connection that can not be placed into the input
+ * buffer. Every attempt is made to avoid this but it can happen. Application
+ * programs can help avoid this problem by:
+ * 1) Using just a single Bluetooth connection
+ * 2) Using Bluetooth commands while data transfers are in progress.
+ * 3) Performing application level flow control to avoid more then 256 bytes
+ *    of data being sent from the remote side at any one time.
+ * 4) Reading any pending data as soon as possible.
+ * If data is lost then calls to read and write will return -2 to indicate the
+ * problem. If using packet mode then the input stream can be re-synchronized
+ * by issuing a read to discard the partial packet which may be in the input
+ * buffer.
  */
-public class BTConnection implements StreamConnection {
-       int handle;
-       boolean open;
-       BTInputStream is = new BTInputStream();
-       BTOutputStream os = new BTOutputStream();
+public class BTConnection implements StreamConnection
+{
+       static final int CS_IDLE = 0;
+       static final int CS_DISCONNECTED = 1;
+       static final int CS_CONNECTED = 2;
+       static final int CS_DATALOST = 3;
+       static final int CS_DISCONNECTING = 4;
+       
+       private static int BTC_BUFSZ = 256;
+       private static int BTC_CLOSETIMEOUT1 = 1000;
+       private static int BTC_CLOSETIMEOUT2 = 250;
        
-       BTConnection(int handle)
+       public static final int AM_DISABLE = 0;
+       public static final int AM_ALWAYS = 1;
+       public static final int AM_OUTPUT = 2;
+
+       int state = CS_IDLE;
+       int chanNo;
+       byte handle;
+       int header = 2;
+       int switchMode;
+       byte [] inBuf;
+       byte [] outBuf;
+       int inCnt;
+       int inOffset;
+       int outCnt;
+       int outOffset;
+       int pktOffset;
+       int pktLen;
+       InputStream is;
+       OutputStream os;
+
+
+       public BTConnection(int chan)
+       {
+               state = CS_IDLE;
+               chanNo = chan;
+               is = null;
+               os = null;
+       }
+       
+       synchronized void reset()
+       {
+               // Called by the low level implementation if things go wrong!
+               state = CS_IDLE;
+               inBuf = null;
+               outBuf = null;
+               notifyAll();
+       }
+
+       /**
+        * Bind the low level I/O handle to a connection object
+        * set things up ready to go.
+        */
+       synchronized void bind(byte handle)
        {
+               if (inBuf == null )
+                       inBuf = new byte[BTC_BUFSZ];
+               if (outBuf == null)
+                       outBuf = new byte[BTC_BUFSZ];
+               inCnt = 0;
+               inOffset = 0;
+               outCnt = 0;
+               outOffset = 0;
+               state = CS_CONNECTED;
+               header = 2;
+               switchMode = AM_ALWAYS;
                this.handle = handle;
-               open = true;
+               pktOffset = -header;
+               pktLen = 0;
        }
 
-       public void close() throws IOException {
-               Bluetooth.btSetCmdMode(1);
-               open = false;
+       /**
+        * Called when the remote side of the connection disconnects.
+        * Mark the connection as now disconected.
+        */
+       synchronized boolean disconnected()
+       {
+               // Connection has been closed wake up anything waiting
+               //1 Debug.out("Disconnected " + handle + "\n");
+               notifyAll();
+               // don't allow multiple disconnects, or disconnect of a closed connection'
+               if (state <= CS_DISCONNECTED) return false;
+               state = CS_DISCONNECTED;
+               outCnt = 0;
+               return true;
        }
+       
+       /**
+        * Close the connection. Flush any pending output. Inform the remote side
+        * that the connection is now closed. Free resources.
+        */
+       public void close()
+       {
+               //Debug.out("Close\n");
+               if (state == CS_IDLE) return;
+               synchronized (this)
+               {
+                       if (state >= CS_CONNECTED)
+                               state = CS_DISCONNECTING;
+               }
+               //Debug.out("Close1\n");
+               // If we have any output pending give it chance to go... and discard
+               // any input. We allow longer if we have pending output, just in case we
+               // need to switch streams.
+               for(int i = 0; state == CS_DISCONNECTING && (i < BTC_CLOSETIMEOUT2 || (outCnt > 0 && i < BTC_CLOSETIMEOUT1)); i++ )
+               {
+                       read(null, inBuf.length, false);
+                       try{Thread.sleep(1);} catch (Exception e) {}
+               }
+               // Dump any remaining output
+               outCnt = 0;
+               //Debug.out("Close2\n");
+               if (state == CS_DISCONNECTING)
+                       // Must not be synchronized here or we get a deadlock
+                       Bluetooth.closeConnection(handle);
+               synchronized(this)
+               {
+               //Debug.out("Close3\n");
+                       while (state == CS_DISCONNECTING)
+                               try{wait();}catch(Exception e){}
+               //Debug.out("Close4\n");
+                       state = CS_IDLE;
+                       inBuf = null;
+                       outBuf = null;
+               }
+               //Debug.out("Close complete\n");
 
-       public DataInputStream openDataInputStream() throws IOException {
-               return new DataInputStream(is);
+       }
+       
+       /**
+        * Low level output function. Take any data in the output buffer and write
+        * it to the device. Called by the Bluetooth thread when this channel is
+        * active, to perform actual data I/O.
+        */
+       synchronized void send()
+       {
+               //Debug.out("send\n");
+               if (outOffset >= outCnt) return;
+               // Transmit the data in the output buffer
+               int cnt = Bluetooth.btWrite(outBuf, outOffset, outCnt - outOffset);
+               //1 Debug.out("Send " + cnt + "\n");
+               outOffset += cnt;
+               if (outOffset >= outCnt)
+               {
+                       //Debug.out("Send complete\n");
+                       outOffset = 0;
+                       outCnt = 0;
+                       notifyAll();
+               }
+               else
+               {
+                       //Debug.out("send remaining " + (outCnt - outOffset) + "\n");
+               }
        }
 
-       public DataOutputStream openDataOutputStream() throws IOException {
-               return new DataOutputStream(os);
+       /**
+        * Attempt to write bytes to the Bluetooth connection. Optionally wait if it
+        * is not possible to write at the moment. Supports both packet and stream
+        * write opperations. If in packet mode a set of header bytes indicating
+        * the size of the packet will be sent ahead of the data.
+        * NOTE: If in packet mode and writing large packets (> 254 bytes), then
+        * the blocking mode (wait = true), should be used to ensure that the packet
+        * is sent correctly.
+        * @param       data    The data to be written.
+        * @param       len             The number of bytes to write.
+        * @param       wait    True if the call should block until all of the data has
+        *                                      been sent.
+        * @return                      > 0 number of bytes written.
+        *                                      0 Request would have blocked (and wait was false).
+        *                                      -1 An error occurred
+        *                                      -2 Data has been lost (See notes above).
+        */
+       public synchronized int write(byte [] data, int len, boolean wait)
+       {
+               // Place the data to be sent in the output buffer. If there is no
+               // space and wait is true then wait for space.
+               int offset = -header;
+               int hdr = len;
+
+               //1 Debug.out("write " + len +" bytes\n");
+               if (state == CS_DATALOST)
+               {
+                       state = CS_CONNECTED;
+                       return -2;
+               }
+               if (state != CS_CONNECTED) return -1;
+               if (outCnt > 0 && !wait) return 0;
+               // Make sure we have a place to put the data
+               while (offset < len)
+               {
+                       while (outCnt >= outBuf.length)
+                       {
+                               //Debug.out("Buffer cnt " + outCnt + "\n");
+                               if (!wait && header == 0) return offset;
+                               //Debug.out("Waiting in write\n");
+                               try {wait();} catch(Exception e){}
+                               //Debug.out("Wakeup state " + state + "\n");
+                               if (state != CS_CONNECTED) return offset;
+                       }
+                       if (offset < 0)
+                       {
+                               // need to add header byte(s)
+                               outBuf[outCnt++] = (byte) hdr;
+                               hdr >>= 8;
+                               offset++;
+                       }
+                       else
+                       {
+                               int cnt = (outBuf.length - outCnt);
+                               if (cnt > len - offset) cnt = len - offset;
+                               System.arraycopy(data, offset, outBuf, outCnt, cnt);
+                               outCnt += cnt;
+                               offset += cnt;
+                       }
+               }
+               return offset;
+       }
+
+       public int write(byte [] data, int len)
+       {
+               return write(data, len, true);
+       }
+       
+       /**
+        * Low level input function. Called by the Bluetooth thread to transfer
+        * input from the system into the input buffer.
+        */
+       synchronized void recv()
+       {
+               //1 Debug.out("recv\n");
+               // Read data into the input buffer
+               while (inCnt < inBuf.length)
+               {
+                       if (inCnt == 0) inOffset = 0;
+                       int offset = (inOffset + inCnt) % inBuf.length;
+                       int len = (offset >= inOffset ? inBuf.length - offset : inOffset - offset);
+                       //Debug.out("inCnt " + inCnt + " inOffset " + inOffset + " offset " + offset + " len " + len + "\n");
+                       int cnt = Bluetooth.btRead(inBuf, offset, len);
+                       if (cnt <= 0) break;
+                       inCnt += cnt;
+                       //1 Debug.out("recv " + inCnt + "\n");
+               }
+               if (inCnt > 0) notifyAll();
+       }
+       
+       /**
+        * Attempt to read data from the connection. Optionally wait for data to
+        * become available. Supports both packet and stream mode operations. When
+        * in packet mode the packet length bytes are automatically processed. The
+        * read will return just a single packet. If the packet is larger then the
+        * requested length then the rest of the packet will be returned in the
+        * following reads. If wait is true then in packet mode the call will wait
+        * until either the entire packet can be read or outLen bytes are available.
+        * In stream mode the call will return if at least 1 byte has been read.
+        * @param       data    Location to return the data. If null the data is discarded.
+        * @param       outLen  Max number of bytes to read.
+        * @param       wait    Should the call block waiting for data.
+        * @return                      > 0 number of bytes read.
+        * @return                      0 no bytes available (and wait was false).
+        *                                      -1 an error occurred.
+        *                                      -2 data lost (see notes).
+        */
+       public synchronized int read(byte [] data, int outLen, boolean wait)
+       {
+               // If wait is true wait until we can read at least one byte. if the
+               // packet has a header and data is not large enough for the data then
+               // the next read will continue to read the packet
+               int offset = 0;
+               //Debug.out("read\n");
+               if (header == 0)
+               {
+                       // Stream mode just read what we can
+                       pktOffset = 0;
+                       pktLen = outLen;
+               }
+               if (state == CS_IDLE) return -1;
+               if (state == CS_DATALOST)
+               {
+                       state = CS_CONNECTED;
+                       return -2;
+               }
+               if (state == CS_DISCONNECTED && inCnt <= 0) return -1;
+               if (!wait && inCnt <= 0) return 0;
+               while (pktOffset < pktLen)
+               {
+                       //Debug.out(" inCnt " + inCnt + " pktOffset " + pktOffset + " pktLen " + pktLen + "\n");
+                       // Make sure we have something to read
+                       while (inCnt <= 0)
+                       {
+                               //Debug.out("About to wait inOff " + inOffset + " inCnt " + inCnt + "\n");
+                               if (!wait) return offset;
+                               try{wait();}catch(Exception e){}
+                               if (state != CS_CONNECTED) return offset;
+                               //Debug.out("wakeup cnt " + inCnt + "\n");
+                       }
+                       if (pktOffset < 0)
+                       {
+                               // Deal with the header, at this point we have at least one header byte
+                               pktLen += ((int) inBuf[inOffset++] & 0xff) << (header + pktOffset)*8;
+                               pktOffset++;
+                               inCnt--;
+                               //Debug.out("Header len " +pktLen + " offset " + pktOffset + "\n");
+                       }
+                       else
+                       {
+                               if (offset >= outLen) return offset;
+                               // Transfer as much as we can in one go...
+                               int len = (inOffset + inCnt > inBuf.length ? inBuf.length - inOffset : inCnt);
+                               if (len > outLen - offset) len = outLen - offset;
+                               if (len > pktLen - pktOffset) len = pktLen - pktOffset;
+                               if (data != null)
+                                       System.arraycopy(inBuf, inOffset, data, offset, len);
+                               offset += len;
+                               inOffset += len;
+                               pktOffset += len;
+                               inCnt -= len;
+                               // If not in packet mode we can return anytime now we have some data
+                               if (header == 0) wait = false;
+                       }
+                       inOffset = inOffset % inBuf.length;
+               }
+               // End of packet set things up for next time
+               //Debug.out("Read len " + offset + "\n");
+               pktOffset = -header;
+               pktLen = 0;
+               return offset;
+       }
+       
+       public int read(byte [] data, int len)
+       {
+               return read(data, len, true);
+       }
+       
+       /**
+        * Indicate the number of bytes available to be read. Supports both packet
+        * mode and stream connections. 
+        * @param       what    0 (all modes) return the number of bytes that can be
+        *                                      read without blocking.
+        *                                      1 (packet mode) return the number of bytes still to be
+        *                                      read from the current packet.
+        *                                      2 (packet mode) return the length of the current packet.
+        */
+       public synchronized int available(int what)
+       {
+               if (state == CS_IDLE) return -1;
+               if (state == CS_DATALOST)
+               {
+                       state = CS_CONNECTED;
+                       return -2;
+               }
+               if (header > 0)
+               {
+                       // if not in a packet try and read the header
+                       if (pktOffset < 0) read(null, 0, false);
+                       if (pktOffset < 0) return 0;
+                       if (what == 2) return pktLen; 
+                       int ret = pktLen - pktOffset;
+                       // If we have been asked what is actually available limit it.
+                       // otherwise we return the number of bytes in the current packet
+                       if (what == 0 && ret > inCnt) ret = inCnt;
+                       return ret;
+               }
+               else
+                       return inCnt;
+       }
+       
+       public int available()
+       {
+               return available(0);
+       }
+       
+       /**
+        * Set operating mode. Controls the packet/stream mode of this channel.
+        * For packet mode it defines the header size to be used.
+        * @param mode  Size of header, 0 indicates stream mode.
+        */
+       public void setIOMode(int mode)
+       {
+               header = mode;
+       }
+       
+       /**
+        * Read a packet from the stream. Do not block and for small packets
+        * (< 254 bytes), do not return a partial packet.
+        * @param       buf             Buffer to read data into.
+        * @param       len             Number of bytes to read.
+        * @return                      > 0 number of bytes read.
+        *                                      other values see read.
+        */
+       public int readPacket(byte buf[], int len)
+       {
+               // Check to see if we have a full packet if the packet is small
+               int pkt = available(1);
+               if (pkt == -2) return -2;
+               if (pkt < 255 && available(0) < pkt) return 0;
+               return read(buf, len, false);
+       }
+       
+       /**
+        * Send a data packet.
+        * Must be in data mode.
+        * @param buf the data to send
+        * @param bufLen the number of bytes to send
+        */
+       public void sendPacket(byte [] buf, int bufLen)
+       {
+               if (bufLen <= 254)
+           {
+                       write(buf, bufLen, false);
+           }
+       }
+       
+       /**
+        * Low level function called by the Bluetooth thread. It basically answers
+        * the question: Should I switch to this channel and perform I/O? The answer
+        * to this question can be controlled using the setActiveMode method.
+        * @ return                     true if the channel is interesting!
+        */
+       synchronized boolean needsAttention()
+       {
+               //1 if (chanNo == 0) Debug.out("na s" + state + " i " + inCnt + "\n");
+               //Debug.out("needs attention\n");
+               // return true if we need to perform low level I/O on this channel
+               if (state < CS_CONNECTED || switchMode == AM_DISABLE) return false;
+               // If we have any output then need to send it
+               if (outOffset < outCnt) return true;
+               if (switchMode == AM_OUTPUT) return false;
+               // If we do not have any input need to see if there is more waiting
+               if (inCnt <= 0) return true;
+               return false;
+       }
+       
+       /**
+        * Set the channel switching mode. Allows control of when we will switch to
+        * this channel. By default we will switch to this channel to check for
+        * input. However if AM_OUTPUT is set we only switch if we have output
+        * waiting to be sent.
+        * @param       mode    The switch control mode.
+        */
+       void setActiveMode(int mode)
+       {
+               switchMode = mode;
+       }
+       
+       private boolean pendingInput()
+       {
+               return (Bluetooth.btPending() & Bluetooth.BT_PENDING_INPUT) != 0;
        }
 
+       /**
+        * Prepare the low level Bluetooth interface for a switch into command mode.
+        * To switch to command mode we need to be sure that there is no pending
+        * input for this channel. To do this we ready any data into the available
+        * input buffers. If all else fails we discard data. When we return the
+        * interface should be ready to be switched.
+        */
+       synchronized void flushInput()
+       {
+               // Need to be sure that there is no input in the input buffer before
+               // we switch mode. 
+               if (state == CS_IDLE) return;
+               //Debug.out("Flush\n");
+               if (!pendingInput()) return;
+               //1 Debug.out("Pending input space " + (inBuf.length - inCnt) + "\n");
+               while (pendingInput() && inCnt < inBuf.length)
+                       recv();
+               if (!pendingInput()) return;
+               //Debug.out("Dropping packets\n");
+               // If we still have input we are now in big trouble we will have
+               // to discard data.
+               while (pendingInput())
+               {
+                       while (read(null, inBuf.length, false) > 0)
+                               ;
+                       recv();
+               }
+               // Mark the channel as having lost data
+               if (state == CS_CONNECTED)
+                       state = CS_DATALOST;
+       }
+       
+       /**
+        * Return the InputStream for this connection.
+        * 
+        * @return the input stream
+        */
        public InputStream openInputStream() throws IOException {
-               return is;
+               return (is != null ? is : new BTInputStream(this));
        }
 
+       /**
+        * Return the OutputStream for this connection
+        * 
+        * @return the output stream
+        */
        public OutputStream openOutputStream() throws IOException {
-               return os;
+               return (os != null ? os : new BTOutputStream(this));
        }
 
-}
+       /**
+        * Return the DataInputStream for this connect
+        * 
+        * @return the data input stream
+        */
+       public DataInputStream openDataInputStream() throws IOException {
+               return new DataInputStream(openInputStream());
+       }
 
+       /**
+        * Return the DataOutputStream for this connection.
+        * 
+        * @return the data output stream
+        */
+       public DataOutputStream openDataOutputStream() throws IOException {
+               return new DataOutputStream(openOutputStream());
+       }
+
+       /**
+        * Close the stream for this connection.
+        * This suspends the connection and switch the BC4 chip to command mode.
+        *
+        */
+       public void closeStream() {
+               // Nothing to do for Bluetooth
+       }
+       
+       /**
+        * Open the stream for this connection.
+        * This resumes the connection and switches the BC4 chip to data mode.
+        *
+        */
+       public void openStream() {
+               // Nothing to do for Bluetooth
+       }
+       
+       /**
+        * Get the signal strength of this connection.
+        * This necessitates closing and reopening the data stream.
+        *  
+        * @return a value from 0 to 255
+        */
+       public int getSignalStrength() {
+               int strength = Bluetooth.getSignalStrength((byte) handle); 
+               return strength;
+       }
+}
\ No newline at end of file
index 43161b9..7333066 100644 (file)
@@ -4,12 +4,17 @@ import java.io.*;
 
 /**
  * Extends InputStream for BlueTooth; implements available()
- * @author   Roger Glassey revised on june 23, 2007
+ * @author   Roger Glassey revised on june 23, 2007, modified for Bluetooth2
  */
 public class BTInputStream extends InputStream {
        private byte buf[] = new byte[256];
        private int bufIdx = 0, bufSize = 0;
+       private BTConnection conn = null;
     
+       BTInputStream(BTConnection conn)
+       {
+               this.conn = conn;
+       }
     /**
      * Returns one byte as an integer between 0 and 255.  
      * Returns -1 if the end of the stream is reached.
@@ -18,7 +23,12 @@ public class BTInputStream extends InputStream {
        public int read() 
     {
           if (bufIdx >= bufSize) bufSize = 0;
-       while(bufSize == 0) bufSize = available();
+          if (bufSize <= 0)
+          {
+                  bufSize = conn.read(buf, buf.length, true);
+                  if (bufSize <= 0) return -1;
+                  bufIdx = 0;
+          }
        return buf[bufIdx++] & 0xFF;
        }
        
@@ -30,7 +40,7 @@ public class BTInputStream extends InputStream {
        if (bufIdx >= bufSize) bufSize = 0;
        if (bufSize == 0) {
           bufIdx = 0;
-          bufSize = Bluetooth.readPacket(buf, 256);
+          bufSize = conn.read(buf, buf.length, false);
        }
        return bufSize - bufIdx;
     }
index 22d9b71..1adebbe 100644 (file)
@@ -2,13 +2,32 @@ package lejos.nxt.comm;
 
 import java.io.*;
 
-public class BTOutputStream extends OutputStream {
-       byte[] bb = new byte[3];
+/**
+ * Implements an OutputStream over Bluetooth.
+ *
+ */public class BTOutputStream extends OutputStream {
+       private final int BUFFER_SIZE = 32;     
+       private byte[] buffer = new byte[BUFFER_SIZE];
+       private int numBytes = 0;
+       private BTConnection conn = null;
        
-       public void write(int b) {
-               bb[0] = 1;
-               bb[1] = 0;
-               bb[2] = (byte) b;
-               Bluetooth.btSend(bb,3);
+       BTOutputStream(BTConnection conn)
+       {
+               this.conn = conn;
+       }
+       
+    public void write(int b) {
+       if (numBytes == BUFFER_SIZE) {
+               flush();
+       }
+       buffer[numBytes] = (byte) b;
+       numBytes++;     
+    }
+    
+       public void flush() {
+               if (numBytes > 0) {
+                       conn.write(buffer, numBytes, true);
+                       numBytes = 0;
+               }
        }
 }
index 277a3c8..c7ce147 100644 (file)
@@ -1,5 +1,11 @@
 package lejos.nxt.comm;\r
 \r
+/**\r
+ * Represents a remote Bluetooth device.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
 public class BTRemoteDevice {\r
 \r
        private byte[] addr = new byte[7];\r
index 058947a..db59cb6 100644 (file)
@@ -1,12 +1,14 @@
 package lejos.nxt.comm;
 import java.util.*;
-import lejos.nxt.*;
+
 
 /**
- * Support for Bluetooth communications.
+ * Provides Bluetooth comminications.
+ * Allows inbound and outbound connections.
+ * Provides access to to device registration.
  */
-public class Bluetooth {
-
+public class Bluetooth
+{
        public static  final int MSG_BEGIN_INQUIRY = 0;
        public static  final int MSG_CANCEL_INQUIRY = 1;
        public static  final int MSG_CONNECT = 2;
@@ -60,311 +62,791 @@ public class Bluetooth {
        public static  final int MSG_SET_BRICK_STATUSBYTE_RESULT = 50;
        public static  final int MSG_GET_BRICK_STATUSBYTE = 51;
        public static  final int MSG_SET_BRICK_STATUSBYTE = 52;
+       public static  final int MSG_GET_OPERATING_MODE = 53;
+       public static  final int MSG_SET_OPERATING_MODE = 54;
+       public static  final int MSG_OPERATING_MODE_RESULT = 55;
+       public static  final int MSG_GET_CONNECTION_STATUS = 56;
+       public static  final int MSG_CONNECTION_STATUS_RESULT = 57;
+       public static  final int MSG_GOTO_DFU_MODE = 58;
+       public static  final int MSG_ANY = -1;
        
-       private static byte[] sendBuf = new byte[256];
-       private static byte[] receiveBuf = new byte[128];
-       private static byte[] friendlyName = retrieveFriendlyName();
-       private static byte[] localAddr = retrieveLocalAddress();
-       private static boolean supressWait = false;
+       public static final int BT_PENDING_INPUT = 1;
+       public static final int BT_PENDING_OUTPUT = 2;
+
+       private static final int CHANCNT = 4;
+       private static final int RS_INIT = -1;
+       private static final int RS_IDLE = 0;
+       private static final int RS_CMD = 1;
+       private static final int RS_WAIT = 2;
+       private static final int RS_REPLY = 3;
+       private static final int RS_REQUESTCONNECT = 4;
+       private static final int RS_ERROR = 5;
        
-       private Bluetooth()
-       {       
-       }
+       private static final int IO_TIME = 100;
+       private static final int CMD_TIME = 50;
+       private static final int TO_SWITCH = 500;
+       private static final int TO_REPLY = 250;
+       private static final int TO_SHORT = 2000;
+       private static final int TO_LONG = 30000;
+       private static final int TO_RESET = 5000;
+       private static final int TO_INIT = 500;
+       private static final int TO_CLOSE = 100;
+       private static final int TO_FORCERESET = -1;
+       private static final int TO_NONE = 0;
+       private static final int TO_FLUSH = 500;
        
+       static BTConnection [] Chans = new BTConnection[CHANCNT];
+       static byte [] cmdBuf = new byte[128];
+       static byte [] replyBuf = new byte[256];
+       static int cmdTimeout;
+       static int reqState = RS_INIT;
+       static int savedState;
+       static boolean listening = false;
+       static int connected;
+       static int resetCnt;
+       static boolean powerOn;
+       static boolean publicPowerOn = false;
+       public final static byte[] defaultPin = 
+           {(byte) '1', (byte) '2', (byte) '3', (byte) '4'};
+       private static byte [] pin = defaultPin;
+       static Object sync = new Object();
+       static byte[] cachedName;
+       static byte[] cachedAddress;
+
        /**
-        * Low-level method to send a BT command or data
+        * Low-level method to write BT data
         * 
         * @param buf the buffer to send
+        * @param off the offset to start the write from.
         * @param len the number of bytes to send
+        * @return number of bytes actually written
         */
-       public static native void btSend(byte[] buf, int len);
-       
+       public static native int btWrite(byte[] buf, int off, int len);
        /**
-        * Low-level method to receive BT replies or data
+        * Low-level method to read BT data
         * 
-        * @param buf the buffer to receive data in
+        * @param buf the buffer to read data into
+        * @param off the offset at which to start the transfer
+        * @param len the number of bytes to read
+        * @return number of bytes actually read
         */
-       public static native void btReceive(byte[] buf);
-       
+       public static native int btRead(byte[] buf, int off, int len);  
+       /**
+        *Low-Level method to access the Bluetooth interface. Bitwise values returned.
+        * @return              0 No data pending
+        *                              0x1 input pending
+        *                              0x2 output pending
+        */
+       public static native int btPending();
        /**
         * Low-level method to switch BC4 chip between command
         * and data (stream) mode.
         * 
         * @param mode 0=data mode, 1=command mode
         */
-       public static native void btSetCmdMode(int mode);
+       public static native void btSetArmCmdMode(int mode);
        
        /**
-        * Low-level nethod to get the BC4 chip mode - does not work.
+        * Low-level method to get the BC4 chip mode
         */
-       public static native int btGetCmdMode();
+       public static native int btGetBC4CmdMode();
        
        /**
-        * Low-level method to start ADC converter - does not wok.
+        * Low-level method to start ADC converter
         *
         */
        public static native void btStartADConverter();
+
+       /**
+        * Low-level method to take the BC4 reset line low
+        */
+       public static native void btSetResetLow();
        
        /**
-        * Send a command to the BC4 chip. Must be in command mode.
-        * @param cmd the command
-        * @param len the number of bytes
-        * 
+        * Low-level method to take the BC4 reset line high
         */
-       public static void sendCommand(byte[] cmd, int len)
-       {
-               int checkSum = 0;
-               
-               sendBuf[0] = (byte) (len + 2);
-               
-               for(int i=0;i<len;i++)
-               {
-                       sendBuf[i+1] = cmd[i];
-                       checkSum += cmd[i];
-               }
-               
-           checkSum = -checkSum;
-           sendBuf[len+2] = (byte) ((checkSum >> 8) & 0xff);
-           sendBuf[len+3] = (byte) (checkSum & 0xff);
-                                       
-               btSend(sendBuf,len+3);
-       }
+       public static native void btSetResetHigh();
+       
        
        /**
-        * Receive a command or reply from the BC4 chip. 
-        * Must be in command mode.
-        * 
-        * @param buf the buffer to receive the reply
-        * @param bufLen the length of the buffer
-        * @return the number of bytes received
+        * Low-level method to send a BT command or data
+        *
+        * @param buf the buffer to send
+        * @param len the number of bytes to send
+        */
+       public static native void btSend(byte[] buf, int len);
+
+       /**
+        * Low-level method to receive BT replies or data
+        *
+        * @param buf the buffer to receive data in
         */
-       public static int receiveReply(byte[] buf, int bufLen)
+       public static native void btReceive(byte[] buf);
+
+       
+       public Bluetooth()
        {
-               int checkSum, negSum, len;
-               btReceive(receiveBuf);
-               len = receiveBuf[0];
-               buf[0] = (byte) len;
-               
-               if (len == 0) return 0;
-               
-               checkSum = len;
-               
-               if (len-1 <= bufLen)
-               {
-                       for(int i=1;i<len-1;i++) 
-                       {
-                               buf[i] = receiveBuf[i];
-                               checkSum += (buf[i] & 0xff);
-                       }
-                       negSum = (receiveBuf[len-1] & 0xff) << 8;
-                       negSum += (receiveBuf[len] & 0xff);
-                       if (checkSum + negSum == 65536) return len-1;
-                       else return 0;
-               }
-               return 0;
        }
        
-       /**
-        * Read a data packet (with 2-byte length header) from a stream connection.
-        * Must be in data mode.
-        * 
-        * @param buf the buffer to receive the data in
-        * @param bufLen the length of the buffer
-        * @return the number of bytes received
-        */
-       public static int readPacket(byte[] buf, int bufLen)
+       private static void cmdInit(int cmd, int len, int param1, int param2)
        {
-               int len;
-               
-               btReceive(receiveBuf);
-               len = receiveBuf[0];
-               if (len > 0 && len <= bufLen)
-               {
-             for(int i=0;i<len;i++) buf[i] = receiveBuf[i+2];
-             return len;
-               }
-               return 0;
+               // Helper function. Setup a simple command in the buffer ready to go.
+               cmdBuf[0] = (byte)len;
+               cmdBuf[1] = (byte)cmd;
+               cmdBuf[2] = (byte)param1;
+               cmdBuf[3] = (byte)param2;
        }
        
-       /**
-        * Send a data packet.
-        * Must be in data mode.
-        * @param buf the data to send
-        * @param bufLen the number of bytes to send
-        */
-       public static void sendPacket(byte [] buf, int bufLen)
+       private static void startTimeout(int period)
+       {
+               // Start a command timeout
+               cmdTimeout = (int)System.currentTimeMillis() + period;
+       }
+       
+       private static boolean checkTimeout()
+       {
+               return (cmdTimeout > 0 && (int)System.currentTimeMillis() > cmdTimeout);
+       }
+       
+       private static void cancelTimeout()
        {
-               if (bufLen <= 254)
-           {
-                       sendBuf[0] = (byte) (bufLen & 0xFF);
-                       sendBuf[1] = (byte) ((bufLen >> 8) & 0xFF);
-                       for(int i=0;i<bufLen;i++) sendBuf[i+2] = buf[i];
-                       btSend(sendBuf,bufLen+2);
-           }
+               cmdTimeout = -1;
        }
        
        /**
-        * Wait for a remote device to connect.
-        * Pin currently must be 1234.
-        * 
-        * @return a BTConnection
+        * The main Bluetooth control thread. This controls access to the Bluetooth
+        * interface. It controls and peforms all low level access to the device.
+        * Switches it between data channels and command streams as required.
         */
-       public static BTConnection waitForConnection()
+       static class BTThread extends Thread
        {
-               byte[] reply = new byte[32];
-               byte[] dummy = new byte[32];
-               byte[] msg = new byte[32];
-               byte[] device = new byte[7];
-               boolean cmdMode = true;
-               BTConnection btc = null;
+               static final int MO_STREAM = 0;
+               static final int MO_CMD = 1;
+               private int mode;
+               private int curChan;
+
+               public BTThread()
+               {
+                       mode = MO_CMD;
+                       reqState = RS_INIT;
+                       curChan = -1;
+                       resetCnt = 0;
+                       // Make sure power is on(may cause a reset!)
+                       btSetResetHigh();
+                       for(int i = 0; i < CHANCNT; i++)
+                               Chans[i] = new BTConnection(i);
+                       connected = 0;
+                       listening = false;
+                       cancelTimeout();
+                       setDaemon(true);
+                       start();
+                       // Setup initial state
+                       powerOn = false;
+                       setPower(true);
+                       setOperatingMode((byte)1);
+                       closePort();
+                       cachedName = getFriendlyName();
+                       cachedAddress = getLocalAddress();
+               }
 
-               Bluetooth.btSetCmdMode(1);
-               Bluetooth.btStartADConverter();
+               
+               private void sendCommand()
+               {
+                       // Command should be all setup and ready to go in cmdBuf
+                       int checkSum = 0;
+                       int len = (int)cmdBuf[0] & 0xff;
+                       //1 Debug.out("send cmd " + (int)cmdBuf[1] + "\n");
+                       for(int i=0;i<len;i++)
+                       {
+                               checkSum += cmdBuf[i+1];
+                       }
+                       checkSum = -checkSum;
+                       cmdBuf[len+1] = (byte) ((checkSum >> 8) & 0xff);
+                       cmdBuf[len+2] = (byte) checkSum;
+                       cmdBuf[0] = (byte)(len + 2);
+                       btWrite(cmdBuf,0, len+3);
+               }
 
-               while (cmdMode & !supressWait)
+               private int recvReply()
                {
-                       receiveReply(reply,32);
+                       // Read a reply and place it in replyBuf
+                       if (checkTimeout()) return -1;
+                       int cnt = Bluetooth.btRead(replyBuf, 0, 1);
+                       if (cnt <= 0) return 0;
+                       int len = (int)replyBuf[0] & 0xff;
+                       if (len < 3 ||len >= replyBuf.length)
+                       {
+                               //1 Debug.out("Bad packet len " + len + " cnt " + cnt + "\n");
+                               return -1;
+                       }
+                       int timeout = (int)System.currentTimeMillis() + TO_REPLY;
+                       while (cnt < len+1)
+                       {
+                               cnt += Bluetooth.btRead(replyBuf, cnt, len + 1 - cnt);
+                               if ((int)System.currentTimeMillis() > timeout)
+                               {
+                                       //1 Debug.out("recvReply timeout\n");
+                                       return -1;
+                               }
+                       }
                        
-                       if (reply[0] != 0) {
-                               //LCD.drawInt(reply[1],0, 2);
-                               //LCD.refresh();
-                               if (reply[1] == MSG_REQUEST_PIN_CODE) {
-                                       for(int i=0;i<7;i++) device[i] = reply[i+2];
-                                       msg[0] = Bluetooth.MSG_PIN_CODE;
-                                       for(int i=0;i<7;i++) msg[i+1] = device[i];
-                                       msg[8] = '1';
-                                       msg[9] = '2';
-                                       msg[10] = '3';
-                                       msg[11] = '4';
-                                       for(int i=0;i<12;i++) msg[i+12] = 0;
-                                       sendCommand(msg, 24);                                   
-                               }       
-                               
-                               if (reply[1] == MSG_REQUEST_CONNECTION) {
-                                       for(int i=0;i<7;i++) device[i] = reply[i+2];
-                                       msg[0] = MSG_ACCEPT_CONNECTION;
-                                       msg[1] = 1;
-                                       sendCommand(msg, 2);                                    
+                       int csum = len; 
+                       len -= 2;
+                       for(int i = 0; i < len; i++)
+                               csum += (int)replyBuf[i+1] & 0xff;
+                       csum = -csum;
+                       //1 Debug.out("Got reply " + replyBuf[1] + "\n");
+                       if (((byte) csum == replyBuf[len+2]) && ((byte)(csum >> 8) == replyBuf[len+1]))
+                               return len;
+                       else
+                       {
+                               //1 Debug.out("Bad csum\n");
+                               return -1;
+                       }
+               }
+       
+               /**
+                * Perform a hardware reset of the BlueCore chip.
+                * 
+                */     
+               private void reset() 
+               {
+
+                       synchronized(Bluetooth.sync)
+                       {
+                               int len;
+                               //1 Debug.out("hardware reset\n");
+                               for(int resetCnt = 0; resetCnt < 2; resetCnt++)
+                               {
+                                       // Ditch any pending data in the input buffer
+                                       startTimeout(TO_FLUSH);
+                                       while (!checkTimeout())
+                                       {
+                                               recvReply();
+                                       }
+                                       // Debug.out("End of flush\n");
+                                       // BC4 reset seq. First take the reset line low...
+                                       btSetArmCmdMode(MO_CMD);
+                                       btSetResetLow();
+                                       // Keep it that way for 100ms and discard any input
+                                       startTimeout(100);
+                                       while (!checkTimeout())
+                                       {
+                                               recvReply();
+                                       }
+                                       // Now bring it high
+                                       btSetResetHigh();
+                                       // Now wait for either 5 seconds or for a RESET_INDICATION
+                                       startTimeout(TO_RESET);
+                                       while ((len = recvReply()) == 0 || ( len > 0 && replyBuf[1] != MSG_RESET_INDICATION))
+                                                       Thread.yield();
+                                       //1 if (len < 0) Debug.out("Reset timed out");
+                                       // Check things are working
+                                       //1 Debug.out("Send mode cmd\n");
+                                       cmdInit(MSG_GET_OPERATING_MODE, 1, 0, 0);
+                                       sendCommand();
+                                       startTimeout(TO_SHORT);
+                                       while ((len = recvReply()) == 0 || (len > 0 && replyBuf[1] != MSG_OPERATING_MODE_RESULT))
+                                                       Thread.yield();
+                                       //1 if (len < 0) Debug.out("mode had timed out\n");
+                                       // if we got the response without a timeout we are done!
+                                       if (len > 0) break;
                                }
-                               
-                               if (reply[1] == MSG_CONNECT_RESULT) {
-                                       try {
-                                               Thread.sleep(300);
-                                       } catch (InterruptedException ie) {}
-                                       receiveReply(dummy,32);                                 
-                                       if (dummy[0] == 0) {
-                           btc = new BTConnection(reply[3]);
-                                               msg[0] = MSG_OPEN_STREAM;
-                                               msg[1] = reply[3];
-                                               sendCommand(msg, 2);
-                                               try {
-                                                       Thread.sleep(100);
-                                               } catch (InterruptedException ie) {}
-                                               btSetCmdMode(0);
-                                               cmdMode = false;
-                                       } 
+                               // We are now in command mode
+                               mode = MO_CMD;
+                               // Now reset everything else that is going on gulp!
+                               for(int i = 0; i < CHANCNT; i++)
+                                       Chans[i].reset();
+                               //1 Debug.out("reset complete state is " + reqState + "\n");
+                               listening = false;
+                               connected = 0;
+                               curChan = -1;
+                               cancelTimeout();
+                               // Tell anyone that is waiting
+                               if (reqState > RS_IDLE) reqState = RS_ERROR;
+                               Bluetooth.sync.notifyAll();
+                               resetCnt++;
+                       }
+               }
+               
+               private void processReply()
+               {
+                       // Read and process and command replies from the bc4
+                       // If the reply buffer is free, look to see if we have a new reply
+                       synchronized(Bluetooth.sync)
+                       {
+                               //Debug.out("processn reply " + reqState + "\n");
+                               int len;
+                               while (reqState < RS_REPLY && (len = recvReply()) != 0)
+                               {
+                                       //Debug.out("process request\n");
+                                       // Got a message. We only deal with the messages we have to deal
+                                       // with here. In general we allow the calling thread to decide
+                                       // what to do (this includes ignoring the message!).
+                                       //1 Debug.out("got request " + (int)replyBuf[1] + " state " + reqState + "\n");
+                                       if (len < 0 || replyBuf[1] == MSG_RESET_INDICATION)
+                                       {
+                                               //1 Debug.out("Got reply error\n");
+                                               reset();
+                                               break;
+                                       }
+                                       else if (replyBuf[1] == MSG_CLOSE_CONNECTION_RESULT)
+                                       {
+                                               if (replyBuf[3] >= 0 && replyBuf[3] < Chans.length)
+                                               {
+                                                       if (Chans[replyBuf[3]].disconnected())
+                                                               connected--;
+                                                       if (replyBuf[3] == (byte)curChan) curChan = -1;
+                                               }
+                                       }
+                                       else if (replyBuf[1] == MSG_REQUEST_CONNECTION)
+                                       {
+                                               if (listening)
+                                               {
+                                                       // Push the current state
+                                                       savedState = reqState;
+                                                       reqState = RS_REQUESTCONNECT;
+                                               }
+                                               else
+                                               {
+                                                       // No one wants to know so reject it.
+                                                       // Note: Doing this seems to cause a device reset!
+                                                       cmdInit(MSG_ACCEPT_CONNECTION, 2, 0, 0);
+                                                       sendCommand();
+                                                       continue;
+                                               }
+                                       }
+                                       else if (replyBuf[1] == MSG_REQUEST_PIN_CODE)
+                                       {
+                                               // If we have no pin then nothing to do
+                                               if (pin == null) continue;
+                                               // Otherwise send the pin as requested
+                                               cmdInit(MSG_PIN_CODE, 24, 0, 0);
+                                               System.arraycopy(replyBuf, 2, cmdBuf, 2, 7);
+                                               for(int i = 0; i < 16; i++)
+                                                       cmdBuf[i + 9] = (i < pin.length ? pin[i] : 0);
+                                               sendCommand();
+                                               continue;
+                                       } else if (replyBuf[1] == MSG_PIN_CODE_ACK)
+                                               continue;
+                                       // All other messages give the caller it to deal with
+                                       if (reqState == RS_WAIT)
+                                               reqState = RS_REPLY;
+                                       if (reqState >= RS_REPLY)
+                                               Bluetooth.sync.notifyAll();
                                }
                        }
-                       Thread.yield();
+                       //Debug.out("process reply end\n");
+               }
+               
+               private void processCommands()
+               {
+                       // Process commands. Return when we should consider switching to
+                       // stream mode.
+                       //Debug.out("Process cmd1\n");
+                       switchToCmd();
+                       int cmdEnd = (int)System.currentTimeMillis() + CMD_TIME;
+                       while (cmdEnd > (int)System.currentTimeMillis() || reqState > RS_IDLE)
+                       {
+                               //Debug.out("ProcessCommands state " + reqState + "\n");
+                               synchronized(Bluetooth.sync)
+                               {
+                                       if (reqState == RS_CMD)
+                                       {
+                                               // Have a command ready to go so send it
+                                               sendCommand();
+                                               reqState = RS_WAIT;
+                                       }
+                                       processReply();
+                               }
+                               Thread.yield();
+                       }
+                       //Debug.out("Process cmd end\n");
+               }
+               
+               private int selectChan()
+               {
+                       // Select the next channel to be processed
+                       if (connected == 0) return -1;
+                       int i;
+                       int cur = curChan;
+                       for(i = 0; i < Chans.length; i++)
+                       {
+                               cur = (cur + 1) % Chans.length;
+                               if (Chans[cur].needsAttention()) 
+                               {
+                                       // if (cur != curChan) Debug.out("Selected " + cur + "\n");
+                                       return cur;
+                               }
+                       }
+                       // Nothing better found so stick with the current channel
+                       return curChan;
+               }
+               
+               private void processStreams()
+               {
+                       // Process the streams. Return when we should switch to command mode
+                       // Debug.out("PS cur " + curChan + " state " + reqState + "\n");
+                       while (true)
+                       {
+                               synchronized(Bluetooth.sync)
+                               {
+                                       //Debug.out("Process streams " + reqState + "\n");
+                                       if (reqState != RS_IDLE) return;
+                                       int next = selectChan();
+                                       if (next < 0 || !switchToStream(next)) return;
+                                       // Perform I/O on the current stream. Switching from one stream
+                                       // to another is a slow process, so we spend at least IO_TIME ms
+                                       // on each stream before switching away.
+                                       //Debug.out("Process streams 2" + reqState + "\n");
+                                       int ioEnd = (int)System.currentTimeMillis() + IO_TIME;                  
+                                       while (ioEnd > (int)System.currentTimeMillis() && Chans[curChan].state >= BTConnection.CS_CONNECTED)
+                                       {
+                                               if (bc4Mode() != MO_STREAM) return;
+                                               Chans[curChan].send();
+                                               Chans[curChan].recv();
+                                               Thread.yield();
+                                       }
+                                       //Debug.out("Process streams 3" + reqState + "\n");
+                                       // Do we need to switch back to command mode?
+                                       if (listening) return;
+                               }
+                               Thread.yield();
+                       }
+               }
+               
+               private int waitSwitch(int target, boolean flush)
+               {
+                       // Wait for the BC4 to switch to mode, or timeout...
+                       int timeout = (int) System.currentTimeMillis() + TO_SWITCH;
+                       while (timeout > (int)System.currentTimeMillis())
+                       {
+                               if (bc4Mode() == target) return target;
+                               // Need to flush input when switching to command mode
+                               if (flush && curChan >= 0) Chans[curChan].flushInput();
+                       }
+                       //1 Debug.out("Failed to switch\n");
+                       mode = -1;
+                       curChan = -1;
+                       return bc4Mode();
                }
-               return btc;
-       }
-       
-       /**
-        * Called when Bluetooth starts up to get the friendly namr
-        * of this device, as this cannot be done when a stream is open.
-        */
-       private static byte[] retrieveFriendlyName() {
-               byte[] reply = new byte[32];
-               byte[] msg = new byte[1];
-               byte[] name = new byte[16];
                
-               msg[0] = MSG_GET_FRIENDLY_NAME;
+               private boolean switchToStream(int chan)
+               {
+                       // Decide which (if any) stream to switch to
+                       if (mode == MO_STREAM && chan == curChan) return true;
+                       switchToCmd();
+                       //1 Debug.out("Switch to chan " + chan + " handle " + Chans[chan].handle + "\n");
+                       cmdInit(MSG_OPEN_STREAM, 2, Chans[chan].handle, 0);
+                       sendCommand();
+                       // Now wait for the BC4 to switch
+                       if (waitSwitch(MO_STREAM, false) != MO_STREAM) return false;
+                       //1 Debug.out("In stream mode\n");
+                       // Make sure we process any remaining command input that may have arrived
+                       processReply();
+                       // Finally switch the ARM over
+                       btSetArmCmdMode(MO_STREAM);
+                       mode = MO_STREAM;
+                       curChan = chan;
+                       return true;
+               }
                
-               sendCommand(msg,1);
+               private void switchToCmd()
+               {
+                       // Need to switch back into command mode
+                       // First step send any pending data
+                       if (mode == MO_CMD) return;
+                       //1 Debug.out("switch to cmd\n");
+                       if (mode == MO_STREAM && bc4Mode() == MO_CMD && curChan >= 0)
+                       {
+                               //1 Debug.out("Trying early flush\n");
+                               Chans[curChan].flushInput();
+                       }
+                       // wait for any output to drain
+                       while((btPending() & BT_PENDING_OUTPUT) != 0)
+                               Thread.yield();
+                       try{Thread.sleep(100);}catch(Exception e){}
+                       btSetArmCmdMode(MO_CMD);
+                       // If there is any input data left we could be in trouble. Try and
+                       // flush everything.
+                       if (waitSwitch(MO_CMD, true) != MO_CMD)
+                       {
+                               //1 Debug.out("Failed to switch to cmd\n");
+                               reset();
+                               return;
+                       }
+                       mode = MO_CMD;
+               }
                
-               boolean gotName = false;
+               private int bc4Mode()
+               {
+                       // return the current mode of the BC4 chip
+                       int ret = btGetBC4CmdMode();
+                       // > 512 indicates a high logic level which is mode 0!
+                       if (ret > 512)
+                               return MO_STREAM;
+                       else
+                               return MO_CMD;
+               }
                
-               while(!gotName) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0 && reply[1] == MSG_GET_FRIENDLY_NAME_RESULT) {
-                               for(int i=0;i<16;i++) name[i] = reply[i+2];
-                               gotName = true;
+               private void waitInit()
+               {
+                       synchronized (Bluetooth.sync)
+                       {
+                               reqState = RS_INIT;
+                               processCommands();
+                               reqState = RS_IDLE;
+                               Bluetooth.sync.notifyAll();
                        }
                }
                
-               return name;
+               public void run()
+               {
+                       //1 Debug.out("Thread running\n");
+                       waitInit();
+                       //1 Debug.out("Init complete\n");
+                       while(true)
+                       {
+                               processCommands();
+                               processStreams();
+                               Thread.yield();
+                       }
+               }
+       }
+
+       // Create the Bluetooth device thread.
+       private static BTThread btThread = new BTThread();
+       
+       static private int waitState(int target)
+       {
+               // Debug.out("Wait state " + target + "\n");
+               synchronized (Bluetooth.sync) {
+                       // Wait for the system to enter the specified state (or timeout)
+                       while (reqState != target && reqState != RS_ERROR)
+                               try{Bluetooth.sync.wait();}catch(Exception e){}
+                       if (reqState == RS_ERROR)
+                               return -1;
+                       else
+                               return 0;
+               }
+       }
+       
+       private static void cmdStart()
+       {
+               // Wait for the system to be idle. Ignore timeout errors.
+               while (waitState(RS_IDLE) < 0)
+                       try{Bluetooth.sync.wait();}catch(Exception e){}
+       }
+       
+       private static void cmdComplete()
+       {
+               // command now complete. Reset to idle (clears any timeout state)
+               synchronized(Bluetooth.sync)
+               {
+                       reqState = RS_IDLE;
+                       cancelTimeout();
+                       Bluetooth.sync.notifyAll();
+               }
        }
        
+       private static int cmdWait(int state, int waitState, int msg, int timeout)
+       {
+               //1 Debug.out("Cmd wait\n");
+               synchronized (Bluetooth.sync)
+               {
+                       // Check we have power if not fail the request
+                       if (!powerOn) return -1;
+                       if (waitState > 0) reqState = waitState;
+                       if (timeout != TO_NONE) startTimeout(timeout);
+                       while (true)
+                       {
+                               if (waitState(state) < 0) return -1;
+                               if (msg == MSG_ANY || replyBuf[1] == msg) return 0;
+                               // Ignore any unwanted message
+                               if (reqState == RS_REPLY) reqState = RS_WAIT; 
+                       }
+               }
+       }
+
        /**
-        * Get the friendly name of the local device
-        * @return the friendly name
+        * Set the pin to be used for pairing/connecting to the system
+        * 
+        * @param newPin the new pin code
+        * 
         */
-       public static byte [] getFriendlyName() {
-               return friendlyName;
+       public static void setPin(byte[] newPin)
+       {
+               pin = newPin;
+       }
+
+       /**
+        * Return the pin to be used for pairing/connecting to the system
+        * 
+        * @return The current pin code
+        * 
+        */     
+       public static byte[] getPin()
+       {
+               return pin;
        }
+
        
        /**
-        * Set the name of the local device
-        * @param name the friendly name for the device
+        * Close an open connection
+        * 
+        * @param handle the handle for the connection
+        * @return the status 0 = success
         */
-       public static void setFriendlyName(byte[] name) {
-               byte[] reply = new byte[32];
-               byte[] msg = new byte[32];
-               
-               friendlyName = name;
-               
-               msg[0] = MSG_SET_FRIENDLY_NAME;
-               
-               for(int i=-0;i<16;i++) msg[i+1] = name[i];
-               
-               sendCommand(msg,17);
-               
-               boolean setName = false;
-               
-               while(!setName) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0 && reply[1] == MSG_SET_FRIENDLY_NAME_ACK) {
-                               setName = true;
-                       }
+       public static int closeConnection(byte handle)
+       {
+               int ret = -1;
+               //1 Debug.out("Close connection state " + reqState + "\n");
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       // We can have a race condition when both ends of the connection
+                       // close at the same time. This can mean we try and close an already
+                       // closed connection. If we do this the BC4 goes into reset mode.
+                       // To try and avoid this happening we insert a different length
+                       // delay between outbound and inbound streams. We then wait to see
+                       // if the other end has already closed things...
+                       int timeout = (handle == 3 ? 5*TO_CLOSE : TO_CLOSE);
+                       reqState = RS_WAIT;
+                       try{Bluetooth.sync.wait(timeout);}catch(Exception e){}
+                       reqState = RS_IDLE;
+                       // There is a small chance that we may have had a reset so make sure
+                       // that we still have an open channel to close!
+                       byte [] status = getConnectionStatus();
+                       //1 Debug.out("Conn status " + status[handle]);
+                       if (status == null || status[handle] != 2) return -1;
+                       if (Chans[handle].state != BTConnection.CS_DISCONNECTING) return -1;
+                       cmdInit(MSG_CLOSE_CONNECTION, 2, handle, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_CLOSE_CONNECTION_RESULT, TO_SHORT) >= 0)
+                               ret = (int)replyBuf[2];
+                       int retryCnt = 5;
+                       do {
+                               // We may have a race condition here, or have triggered a reset
+                               // wait for things to settle
+                               reqState = RS_WAIT;
+                               try{Bluetooth.sync.wait(TO_REPLY);}catch(Exception e){}
+                               reqState = RS_IDLE;
+                       } while (getConnectionStatus() == null);
+                       cmdComplete();
+                       return ret;
                }
        }
-       
+
        /**
-        * get the Bluetooth address of the local device
-        * @return the local address
+        * Opens the  port to allow incoming connections.
+        * 
+        * @return an array of three bytes: success, handle, ps_success
         */
-       public static byte[] getLocalAddress() {
-               return localAddr;
+       public static byte[] openPort() {
+               byte[] result = new byte[3];
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       cmdInit(MSG_OPEN_PORT, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_PORT_OPEN_RESULT, TO_SHORT) < 0)
+                               result = null;
+                       else
+                               System.arraycopy(replyBuf, 2, result, 0, 3);
+                       //1 Debug.out("Port open handle " + (int)replyBuf[3] + " status " + (int)replyBuf[2] + "\n");
+                       cmdComplete();
+                       return result;
+               }
        }
+
        
        /**
-        * get the local address when Bluetooth starts up
-        * as it cannot be retrivedwhen a stream is open.
+        * Closes the  port to disallow incoming connections.
+        * 
+        * @return an array of two bytes: success, ps_success
         */
-       private static byte[] retrieveLocalAddress() {
-               byte[] reply = new byte[32];
-               byte[] msg = new byte[1];
-               byte[] address = new byte[7];
-               
-               msg[0] = MSG_GET_LOCAL_ADDR;
-               
-               sendCommand(msg,1);
-               
-               boolean gotAddress = false;
-               
-               while(!gotAddress) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0 && reply[1] == MSG_GET_LOCAL_ADDR_RESULT) {
-                               for(int i=0;i<7;i++) address[i] = reply[i+2];
-                               gotAddress = true;
+       public static byte [] closePort() {
+               byte [] result = new byte[2];
+               //1 Debug.out("Close port\n");
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       // The Lego doc says the handle should always be 3!
+                       cmdInit(MSG_CLOSE_PORT, 2, 3, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_CLOSE_PORT_RESULT, TO_SHORT) < 0)
+                               result = null;
+                       else
+                               System.arraycopy(replyBuf, 2, result, 0, 2);
+                       cmdComplete();
+                       return result;
+               }
+       }
+
+       /**
+        * Wait for a remote device to connect.
+        * 
+        * @param pin the pin to use
+        * @return a BTConnection
+        */
+       public static BTConnection waitForConnection(byte[] pin)
+       {
+               //1 Debug.out("waitForConnection\n");
+               synchronized (Bluetooth.sync)
+               {
+                       BTConnection ret = null;
+                       // only one listener at once
+                       if (listening) return null;
+                       // First open up the listening port
+                       byte [] port = openPort();
+                       if (port == null || port[0] != 1 || port[1] >=  Chans.length || port[1] < 0)
+                       {
+                               //1 Debug.out("Failed to open port\n");
+                               return null;
+                       }
+                       // Now in listening mode
+                       listening = true;
+                       byte []savedPin = getPin();
+                       setPin(pin);
+                       // Wait for special connect indication
+                       while (listening && reqState != RS_REQUESTCONNECT)
+                               try{Bluetooth.sync.wait();}catch(Exception e){}
+                       if (listening)
+                       {
+                               //1 Debug.out("Got connect request\n");
+                               // Restore state
+                               reqState = savedState;
+                               // and wait until we have control
+                               cmdStart();
+                               // Acknowledge the request
+                               cmdInit(MSG_ACCEPT_CONNECTION, 2, 1, 0);
+                               if (cmdWait(RS_REPLY, RS_CMD, MSG_CONNECT_RESULT, TO_LONG) >= 0)
+                               {
+                                       //1 Debug.out("Connect result " + (int)replyBuf[2] + " handle " + (int)replyBuf[3] + "\n");
+                                       if (replyBuf[2] == 1)
+                                       {
+                                               byte handle = replyBuf[3];
+                                               // Got a connection
+                                               if (handle >= 0 && handle < Chans.length)
+                                               {
+                                                       // Assert(Chans[handle].state == CS_IDLE);
+                                                       Chans[handle].bind(handle);
+                                                       // now have one more connected
+                                                       connected++;
+                                                       ret = Chans[handle];
+                                               }
+                                       }
+                               }
+                               listening = false;
+                               cmdComplete();
+
                        }
+                       setPin(savedPin);
+                       closePort();
+                       return ret;
                }
+       }
                
-               return address;
+       public static BTConnection waitForConnection()
+       {
+               return waitForConnection(defaultPin);
        }
        
        /**
@@ -374,144 +856,192 @@ public class Bluetooth {
         * @return BTConnection Object or null
         */
        public static BTConnection connect(BTRemoteDevice remoteDevice) {
+               if (remoteDevice == null) return null;
                return connect(remoteDevice.getDeviceAddr());
        }
-       
        /**
         * Connects to a Device by it's Byte-Device-Address Array
+        * Uses default pin "1234"
         * 
         * @param device_addr byte-Array with device-Address
         * @return BTConnection Object or null
         */
        public static BTConnection connect(byte[] device_addr) {
-
-               boolean cmdMode = true;
-               byte[] msg = new byte[32];
-               byte[] reply = new byte[32];
-               byte[] dummy = new byte[32];
-               BTConnection btc = null;
-               byte[] device = new byte[7]; // remote device 
-                               
-               Bluetooth.btSetCmdMode(1);
-               Bluetooth.btStartADConverter();
-
-               // invoke BC4 Chip to connect
-               msg[0] = MSG_CONNECT;
-               for (int i = 0; i < 7; i++) {
-                       msg[i + 1] = device_addr[i];
-               }
-               sendCommand(msg, 8);
-
-               // receive connection-result
-               while (cmdMode) {
-                       receiveReply(reply, 32);
-                       
-                       if (reply[0] != 0) {
-                               //LCD.drawInt(reply[1], 0, 2);
-                               //LCD.refresh();
-                               if (reply[1] == MSG_REQUEST_PIN_CODE) {
-                                       for(int i=0;i<7;i++) device[i] = reply[i+2];
-                                       msg[0] = Bluetooth.MSG_PIN_CODE;
-                                       for(int i=0;i<7;i++) msg[i+1] = device[i];
-                                       msg[8] = '1';
-                                       msg[9] = '2';
-                                       msg[10] = '3';
-                                       msg[11] = '4';
-                                       for(int i=0;i<12;i++) msg[i+12] = 0;
-                                       sendCommand(msg, 24);                                   
-                               } else if (reply[1] == MSG_CONNECT_RESULT) {
-                                       try {
-                                               Thread.sleep(300);
-                                       } catch (InterruptedException ie) {
-                                       }
-                                         
-                                       receiveReply(dummy, 32);
-                                       if (dummy[0] == 0) {
-                                               btc = new BTConnection(reply[3]);
-                                               msg[0] = MSG_OPEN_STREAM;
-                                               msg[1] = reply[3];
-                                               sendCommand(msg, 2);
-                                               try {
-                                                       Thread.sleep(100);
-                                               } catch (InterruptedException ie) {
-                                               }
-                                               btSetCmdMode(0);
-                                               cmdMode = false;
+               return connect(device_addr, defaultPin);
+       }
+       
+       /**
+        * Connects to a Device by it's Byte-Device-Address Array
+        * 
+        * @param device_addr byte-Array with device-Address
+        * @param pin the pin to use
+        * @return BTConnection Object or null
+        */
+       public static BTConnection connect(byte[] device_addr, byte[] pin) {
+               //1 Debug.out("Connect\n");
+               synchronized(Bluetooth.sync)
+               {
+                       BTConnection ret = null;
+                       byte[] savedPin = getPin();
+                       setPin(pin);
+                       cmdStart();
+                       cmdInit(MSG_CONNECT, 8, 0, 0);
+                       System.arraycopy(device_addr, 0, cmdBuf, 2, 7);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_CONNECT_RESULT, TO_LONG) >= 0)
+                       {
+                               //1 Debug.out("Connect result " + (int)replyBuf[2] + " handle " + (int)replyBuf[3] + "\n");
+                               if (replyBuf[2] != 0)
+                               {
+                                       byte handle = replyBuf[3];
+                                       // Now need to check that the connection is not closed imm
+                                       reqState = RS_WAIT;
+                                       try{Bluetooth.sync.wait(300);}catch(Exception e){}
+                                       if (reqState == RS_WAIT && handle >= 0 && handle < Chans.length)
+                                       {
+                                               // Got a connection
+                                               Chans[handle].bind(handle);
+                                               // now have one more connected
+                                               connected++;
+                                               ret = Chans[handle];
                                        }
-                       }
+                               }
                        }
-                       Thread.yield();
+                       cmdComplete();
+                       setPin(savedPin);
+                       return ret;
                }
-               return btc;
        }
+
+       
+       /**
+        * Get the Bluetooth signal strength (link quality)
+        * Higher values mean stronger signal.
+        * 
+        * 
+        * @return link quality value 0 to 255. 
+        * 
+        */
+       public static int getSignalStrength(byte handle) {
+               //1 Debug.out("getSignalStrength\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       if (Chans[handle].state != BTConnection.CS_CONNECTED) return -1;
+                       cmdInit(MSG_GET_LINK_QUALITY, 2, handle, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_LINK_QUALITY_RESULT, TO_SHORT) >= 0)  
+                               ret = replyBuf[2] & 0xff;
+                       cmdComplete();
+                       return ret;
+               }
+       }
+       
+       
+       /**
+        * Get the friendly name of the local device
+        * @return the friendly name
+        */
+       public static byte [] getFriendlyName() {
+               byte[] result = new byte[16];
+               //1 Debug.out("getFriendlyName\n");
+               synchronized (Bluetooth.sync)
+               {
+                       // If power is off return the cached name.
+                       if (!powerOn) return cachedName;
+                       cmdStart();
+                       cmdInit(MSG_GET_FRIENDLY_NAME, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_FRIENDLY_NAME_RESULT, TO_SHORT) < 0)      
+                               result = null;
+                       else
+                               System.arraycopy(replyBuf, 2, result, 0, 16);
+                       cmdComplete();
+                       return result;
+               }
+       }
+               
+       /**
+        * Set the name of the local device
+        * @param name the friendly name for the device
+        */
+       public static boolean setFriendlyName(byte[] name) {
+               //1 Debug.out("setFriendlyName\n");
+               synchronized (Bluetooth.sync)
+               {
+                       boolean ret=false;
+                       cmdStart();
+                       cmdInit(MSG_SET_FRIENDLY_NAME, 17, 0, 0);
+                       System.arraycopy(name, 0, cmdBuf, 2, 16);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_SET_FRIENDLY_NAME_ACK, TO_LONG) >= 0) 
+                               ret = true;
+                       cmdComplete();
+                       return ret;
+               }       
+       }
+               
+       /**
+        * get the Bluetooth address of the local device
+        * @return the local address
+        */
+       public static byte[] getLocalAddress() {
+               byte[] result = new byte[7];
+               //1 Debug.out("getLocalAddress\n");
+               synchronized (Bluetooth.sync)
+               {
+                       // If power is off return cached name.
+                       if (!powerOn) return cachedAddress;
+                       cmdStart();
+                       cmdInit(MSG_GET_LOCAL_ADDR, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_LOCAL_ADDR_RESULT, TO_SHORT) < 0) 
+                               result = null;
+                       else
+                               System.arraycopy(replyBuf, 2, result, 0, 7);
+                       cmdComplete();
+                       return result;
+               }
+       }       
+       
        
        /**
         * The internal Chip has a list of already paired Devices. This Method returns a 
         * Vector-List which contains all the known Devices on the List. These need not be reachable. 
-        * To connect to a "not-known"-Device, you should use the Inquiry-Prozess. 
+        * To connect to a "not-known"-Device, you should use the Inquiry-Process. 
         * The pairing-Process can also be done with the original Lego-Firmware. The List of known 
         * devices will not get lost, when installing the LeJOS Firmware. 
+        * 
         * @return Vector with List of known Devices
         */
        public static Vector getKnownDevicesList() {
-
-               boolean cmdMode = true;
-               byte[] msg = new byte[2];
-               byte[] reply = new byte[32];
-               byte[] device = new byte[7];
-               byte[] devclass = new byte[4];
-               Vector retVec = new Vector(1);
-               BTRemoteDevice curDevice;
-
-               Bluetooth.btSetCmdMode(1);
-               Bluetooth.btStartADConverter();
-               
-               supressWait = true;
-               Thread.yield();
-
-               // invoke BC4 Chip to send the DumpList
-               msg[0] = MSG_DUMP_LIST;
-               sendCommand(msg, 1);
-
-               // receive DeviceList one by one
-               while (cmdMode) {
-                       receiveReply(reply, 32);
-
-                       if (reply[0] != 0) {
-
-                               if (reply[1] == MSG_LIST_ITEM) {
-
-                                       // Get MAC-Address
-                                       for (int i = 0; i < 7; i++)
-                                               device[i] = reply[i + 2];
-                                       
-                                       // Get the friendly Name, it is terminated by Zero
-                                       char[] c_ar = new char[16];
-                                       int ci = 0;
-                                       for (; (ci < 16 && reply[ci + 9] != 0); ci++)
-                                               c_ar[ci] = (char) reply[ci + 9];
-
-                                       // Get Device-Class
-                                       for (int i = 0; i < 4; i++)
-                                               devclass[i] = reply[i + 25];
-                                       
-                                       // create BTRemoteDevice
-                                       
-                                       curDevice = new BTRemoteDevice(c_ar, ci, device, devclass);
-
-                                       // add the Element to the Vector List
+               //1 Debug.out("getKnownDevicesList\n");
+               synchronized(Bluetooth.sync)
+               {
+                       int state = RS_CMD;
+                       byte[] device = new byte[7];
+                       byte[] devclass = new byte[4];
+                       char[] name = new char[16];
+                       Vector retVec = new Vector(1);
+                       BTRemoteDevice curDevice;
+                       cmdStart();
+                       cmdInit(MSG_DUMP_LIST, 1, 0, 0);
+                       while (cmdWait(RS_REPLY, state, MSG_ANY, TO_LONG) >= 0)
+                       {
+                               state = RS_WAIT;
+                               if (replyBuf[1] == MSG_LIST_ITEM)
+                               {
+                                       System.arraycopy(replyBuf, 2, device, 0, 7);
+                                       int nl = 0;
+                                       for(; nl < 16 && replyBuf[nl+9] != 0; nl++)
+                                               name[nl] = (char)replyBuf[nl+9];
+                                       System.arraycopy(replyBuf, 25, devclass, 0, 4);
+                                       curDevice = new BTRemoteDevice(name, nl, device, devclass);
+                                       //1 Debug.out("got name " + curDevice.getFriendlyName() + "\n");
                                        retVec.addElement(curDevice);
                                }
-
-                               if (reply[1] == MSG_LIST_DUMP_STOPPED) {
+                               else if (replyBuf[1] == MSG_LIST_DUMP_STOPPED)
                                        break;
-                               }
                        }
-                       
-                       Thread.yield();
+                       cmdComplete();
+                       return retVec;
                }
-               supressWait = false;
-               return retVec;
        }
        
        /**
@@ -532,43 +1062,33 @@ public class Bluetooth {
                                }
                        }
                }
-               return btd;
+               return null;
        }
-       
+
        /**
         * Add device to known devices
         * @param d Remote Device
         * @return true iff add was successful
         */
        public static boolean addDevice(BTRemoteDevice d) {
-               byte [] msg = new byte[28];
-               byte [] reply = new byte[32];
                byte [] addr = d.getDeviceAddr();
                String name = d.getFriendlyName();
                byte[] cod = d.getDeviceClass();
-               
-               supressWait = true;
-               Thread.yield();
-               
-               msg[0] = MSG_ADD_DEVICE;
-               for(int i=0;i<7;i++) msg[i+1] = addr[i];
-               for(int i=0;i<name.length();i++)  msg[i+8] = (byte) name.charAt(i);
-               for(int i=0;i<4;i++) msg[i+24] = cod[i];
-               
-               sendCommand(msg,28);
-               
-               boolean added = false;
-               
-               while(!added) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0 && reply[1] == MSG_LIST_RESULT) {
-                               added = true;
-                       }
-               }
-               
-               supressWait = false;
-               return reply[2] == 0x50;
+               //1 Debug.out("addDevice " + name + "\n");
+               synchronized (Bluetooth.sync)
+               {
+                       boolean ret=false;
+                       cmdStart();
+                       cmdInit(MSG_ADD_DEVICE, 28, 0, 0);
+                       System.arraycopy(addr, 0, cmdBuf, 2, 7);
+                       System.arraycopy(cod, 0, cmdBuf, 25, 4);
+                       for(int i=0;i<name.length();i++)  cmdBuf[i+9] = (byte) name.charAt(i);
+                       for(int i=name.length(); i < 16; i++) cmdBuf[i+9] = 0;
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_LIST_RESULT, TO_LONG) >= 0)   
+                               ret = replyBuf[2] == 0x50;
+                       cmdComplete();
+                       return ret;
+               }               
        }
        
        /**
@@ -577,217 +1097,419 @@ public class Bluetooth {
         * @return true iff remove was successful
         */
        public static boolean removeDevice(BTRemoteDevice d) {
-               byte [] msg = new byte[28];
-               byte [] reply = new byte[32];
                byte [] addr = d.getDeviceAddr();
-
-               supressWait = true;
-               Thread.yield();
-               
-               msg[0] = MSG_REMOVE_DEVICE;             
-               for(int i=0;i<7;i++) msg[i+1] = addr[i];
-               
-               sendCommand(msg,8);
-               
-               boolean removed = false;
-               
-               while(!removed) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0 && reply[1] == MSG_LIST_RESULT) {
-                               removed = true;
-                       }
-               }
-               
-               supressWait = false;
-               return reply[2] == 0x50;
+               synchronized (Bluetooth.sync)
+               {
+                       boolean ret = false;
+                       cmdStart();
+                       cmdInit(MSG_REMOVE_DEVICE, 8, 0, 0);
+                       System.arraycopy(addr, 0, cmdBuf, 2, 7);        
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_LIST_RESULT, TO_LONG) >= 0)   
+                               ret = replyBuf[2] == 0x53;
+                       cmdComplete();
+                       return ret;
+               }       
        }
        
+       /**
+        * Start a Bluetooth inquiry process
+        * 
+        * @param maxDevices the maximum number of devices to discover
+        * @param timeout the timeout value in units of 1.28 econds
+        * @param cod the class of device to look for
+        * @return a vector of all the devices found
+        */
        public static Vector inquire(int maxDevices,  int timeout, byte[] cod) {
                Vector retVec = new Vector();
-               byte[] msg = new byte[8];
-               byte[] reply = new byte[32];
                byte[] device = new byte[7];
                char[] name = new char[16];
-               int nameLen;
-               
-               supressWait = true;
-               Thread.yield();
-               
-               msg[0] = MSG_BEGIN_INQUIRY;
-               msg[1] = (byte) maxDevices;
-               msg[2] = 0;
-               msg[3] = (byte) timeout;
-               for(int i=0;i<4;i++) msg[4+i] = cod[i];
-               
-               sendCommand(msg, 8);
-               
-               boolean stopped = false;
-               
-               while(!stopped) {
-                       receiveReply(reply,32);
-                       
-                       if (reply[0] != 0) {
-                               if (reply[1] == MSG_INQUIRY_STOPPED) stopped = true;
-                               else if (reply[1] == MSG_INQUIRY_RESULT) {
-                                       for(int i=0;i<7;i++) device[i] = reply[2+i];
-                                       nameLen = 0;
-                                       for(int i=0;i<16 && reply[9+i] != 0;i++) {
-                                               name[i] = (char) reply[9+i];
-                                               nameLen++;
-                                       }
-                                       for(int i=0;i<4;i++) cod[i] = reply[25+i];
-
+               synchronized (Bluetooth.sync)
+               {
+                       int state = RS_CMD;
+                       cmdStart();
+                       cmdInit(MSG_BEGIN_INQUIRY, 8, maxDevices, 0);
+                       cmdBuf[4] = (byte)timeout;
+                       System.arraycopy(cod, 0, cmdBuf, 5, 4); 
+                       while (cmdWait(RS_REPLY, state, MSG_ANY, TO_LONG) >= 0)
+                       {
+                               state = RS_WAIT;
+                               if (replyBuf[1] == MSG_INQUIRY_RESULT)
+                               {
+                                       System.arraycopy(replyBuf, 2, device, 0, 7);
+                                       int nameLen = 0;
+                                       for(;nameLen<16 && replyBuf[9+nameLen] != 0;nameLen++)
+                                               name[nameLen] = (char) replyBuf[9+nameLen];
+                                       System.arraycopy(replyBuf, 25, cod, 0, 4);
                                        // add the Element to the Vector List
-                                       retVec.addElement(new BTRemoteDevice(name, nameLen, device, cod));
-                               }               
+                                       retVec.addElement(new BTRemoteDevice(name, nameLen, device, cod));                                      
+                               }
+                               else if (replyBuf[1] == MSG_INQUIRY_STOPPED)
+                               {
+                                       cmdComplete();
+                                       // Fill in the names    
+                                       for (int i = 0; i < retVec.size(); i++) {
+                                               BTRemoteDevice btrd = ((BTRemoteDevice) retVec.elementAt(i));
+                                               String s = btrd.getFriendlyName();
+                                               if (s.length() == 0) {
+                                                       String nm = lookupName(btrd.getDeviceAddr());
+                                                       btrd.setFriendlyName(nm.toCharArray(),nm.length());
+                                               }
+                                       }
+                                       return retVec;
+                               }
                        }
-                       Thread.yield();
-               }
-               
-               // Fill in the names
-               
-               for (int i = 0; i < retVec.size(); i++) {
-                       BTRemoteDevice btrd = ((BTRemoteDevice) retVec.elementAt(i));
-            String s = btrd.getFriendlyName();
-            if (s.length() == 0) {
-               String nm = lookupName(btrd.getDeviceAddr());
-               btrd.setFriendlyName(nm.toCharArray(),nm.length());
-            }
-               }
-               
-               supressWait = false;
-               
-               return retVec;          
+                       cmdComplete();
+                       return retVec;
+               }                       
        }
        
        /**
         * Look up the name of a device using its address
         * 
-        * @param deviceAddr
+        * @param addr device address
         * @return friendly name of device
         */
-       public static String lookupName(byte [] deviceAddr) {
-               byte [] msg = new byte[8];
-               byte[] reply = new byte[32];
+       public static String lookupName(byte [] addr) {
                char[] name = new char[16];
-               
-               msg[0] = MSG_LOOKUP_NAME;       
-               for(int i=0;i<7;i++) msg[i+1] = deviceAddr[i];
-               
-               sendCommand(msg,8);
-               
-               while(true) {
-                       receiveReply(reply,32);         
-                       if (reply[0] != 0) {
-                               if (reply[1] == MSG_LOOKUP_NAME_RESULT) {
-                                       int nameLen = 0;
-                                       for(int i=0;i<16 && reply[9+i] != 0;i++) {
-                                               nameLen++;
-                                               name[i] = (char) reply[9+i];
-                                       }
-                                       return new String(name,0,nameLen);
-
-                               } else if (reply[1] == MSG_LOOKUP_NAME_FAILURE) 
-                                       break;  
+               synchronized (Bluetooth.sync)
+               {
+                       String ret = "";
+                       int state = RS_CMD;
+                       cmdStart();
+                       cmdInit(MSG_LOOKUP_NAME, 8, 0, 0);
+                       System.arraycopy(addr, 0, cmdBuf, 2, 7);        
+                       while (cmdWait(RS_REPLY, state, MSG_ANY, TO_LONG) >= 0)
+                       {
+                               state = RS_WAIT;
+                               if (replyBuf[1] == MSG_LOOKUP_NAME_RESULT)
+                               {
+                                       int len = 0;
+                                       for(; len < 16 && replyBuf[len+9] != 0; len++)
+                                               name[len] = (char)replyBuf[len+9];
+                                       ret = new String(name, 0, len);
+                                       break;
+                               }
+                               else if (replyBuf[1] == MSG_LOOKUP_NAME_FAILURE)
+                                       break;
+                               
                        }
+                       cmdComplete();
+                       return ret;
+               }                       
+       }
+               
+       
+       /**
+        * Get the status of all connections
+        * 
+        * @return byte array of status for each handle
+        */
+       public static byte[] getConnectionStatus() {
+               byte[] result = new byte[4];
+               //1 Debug.out("getConnectionStatus\n");
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       cmdInit(MSG_GET_CONNECTION_STATUS, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_CONNECTION_STATUS_RESULT, TO_SHORT) < 0)      
+                               result = null;
+                       else
+                               System.arraycopy(replyBuf, 5, result, 0, 4);
+                       cmdComplete();
+                       return result;
+               }
+       }
+       
+       /**
+        * Get the major and minor version of the BlueCore code
+        * 
+        * @return an array of two bytes: major version, minor version
+        */
+       public static byte[] getVersion() {
+               byte [] version = new byte[2];
+               //1 Debug.out("getVersion\n");
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       cmdInit(MSG_GET_VERSION, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_VERSION_RESULT, TO_SHORT) < 0)    
+                               version = null;
+                       else
+                               System.arraycopy(replyBuf, 2, version, 0, 2);
+                       cmdComplete();
+                       return version;
                }
-
-               return "";
        }
        
+       /**
+        * Get the persistent status value from the BC4 chip
+        * 
+        * @return the byte value
+        */
        public static int getStatus() {
-               byte [] msg = new byte[8];
-               byte[] reply = new byte[32];
-               
-               supressWait = true;
-               Thread.yield();
-               
-               msg[0] = MSG_GET_BRICK_STATUSBYTE;      
-               
-               sendCommand(msg,1);
-               
-               while(true) {
-                       receiveReply(reply,32);         
-                       if (reply[0] != 0) {
-                               if (reply[1] == MSG_GET_BRICK_STATUSBYTE_RESULT) {
-                                       supressWait = false;
-                                       return (int) reply[2];
-                               }
-                       }
+               //1 Debug.out("getStatus\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_GET_BRICK_STATUSBYTE, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_BRICK_STATUSBYTE_RESULT, TO_SHORT) >= 0)  
+                               ret = ((int)replyBuf[2] & 0xff) | (((int)replyBuf[3] & 0xff) << 8);
+                       cmdComplete();
+                       return ret;
                }
        }
 
-       public static void setStatus(byte status) {
-               byte [] msg = new byte[8];
-               byte[] reply = new byte[32];
-               
-               supressWait = true;     
-               Thread.yield();
-               
-               msg[0] = MSG_SET_BRICK_STATUSBYTE;      
-               msg[1] = status;
-               msg[2] = 0;
-               
-               sendCommand(msg,3);
-               
-               while(true) {
-                       receiveReply(reply,32);         
-                       if (reply[0] != 0) {
-                               //LCD.drawInt(reply[1],3,0,0);
-                               //LCD.refresh();
-                               if (reply[1] == MSG_SET_BRICK_STATUSBYTE_RESULT) {
-                                       supressWait = false;
-                                       return;
-                               }
-                       }
-               }               
+       /**
+        * Set the persistent status byte for the BC4 chip
+        * 
+        * @param status the byte status value
+        * @return < 0 Error
+        */
+       public static int setStatus(int status) {
+               //1 Debug.out("setStatus\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_SET_BRICK_STATUSBYTE, 3, status & 0xff, (status >> 8) & 0xff);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_SET_BRICK_STATUSBYTE_RESULT, TO_SHORT) >= 0)  
+                               ret = 0;
+                       cmdComplete();
+                       return ret;
+               }
        }
        
+       /**
+        * Get the visibility (discoverable) status of the device
+        * 
+        * @return 1 = visible, 0 = invisible
+        */
        public static int getVisibility() {
-               byte [] msg = new byte[8];
-               byte[] reply = new byte[32];
-               
-               supressWait = true;
-               Thread.yield();
-               
-               msg[0] = MSG_GET_DISCOVERABLE;  
-               
-               sendCommand(msg,1);
-               
-               while(true) {
-                       receiveReply(reply,32);         
-                       if (reply[0] != 0) {
-                               if (reply[1] == MSG_GET_DISCOVERABLE_RESULT) {
-                                       supressWait = false;
-                                       return (int) reply[2];
-                               }
-                       }
+               //1 Debug.out("getVisibility\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_GET_DISCOVERABLE, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_DISCOVERABLE_RESULT, TO_SHORT) >= 0)      
+                               ret = replyBuf[2];
+                       cmdComplete();
+                       return ret;
+               }
+       }
+       
+       /**
+        * Get the port open status, 
+        * i.e whether connections are being accepted
+        * 
+        * @return 1 if the port is open, 0 otherwise
+        */
+       public static int getPortOpen() {
+               //1 Debug.out("getPortOpen\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_GET_PORT_OPEN, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_GET_PORT_OPEN_RESULT, TO_SHORT) >= 0) 
+                               ret = replyBuf[2];
+                       cmdComplete();
+                       return ret;
                }       
        }
        
-       public static void setVisibility(byte visible) {
-               byte [] msg = new byte[8];
-               byte[] reply = new byte[32];
-               
-               supressWait = true;     
-               Thread.yield();
-               
-               msg[0] = MSG_SET_DISCOVERABLE;  
-               msg[1] = visible;
-               
-               sendCommand(msg,2);
-               
-               while(true) {
-                       receiveReply(reply,32);         
-                       if (reply[0] != 0) {
-                               //LCD.drawInt(reply[1],3,0,0);
-                               //LCD.refresh();
-                               if (reply[1] == MSG_SET_DISCOVERABLE_ACK) {
-                                       supressWait = false;
-                                       return;
-                               }
-                       }
+       /**
+        * Get the operating mode (stream breaking or not) 
+        * 
+        * @return 0 = stream breaking mode, 1 = don't break stream mode
+        *                 < 0 Error
+        */
+       public static int getOperatingMode() {
+               //1 Debug.out("getOperatingMode\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_GET_OPERATING_MODE, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_OPERATING_MODE_RESULT, TO_SHORT) >= 0)        
+                               ret = replyBuf[2];
+                       cmdComplete();
+                       return ret;
+               }       
+       }
+       
+       /**
+        * Set Bluetooth visibility (discoverable) on or off for the local device
+        * 
+        * @param visible true to set visibility on, false to set it off
+        * @return < 0 error 
+        */
+       public static int setVisibility(byte visible) {
+               //1 Debug.out("setVisibility\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_SET_DISCOVERABLE, 2, visible, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_SET_DISCOVERABLE_ACK, TO_SHORT) >= 0) 
+                               ret = 0;
+                       cmdComplete();
+                       return ret;
+               }       
+       }
+       
+       /**
+        * Reset the settings of the BC4 chip to the factory defaults.
+        * The NXT should be restarted after this.
+        *
+        */
+       public static int setFactorySettings() {
+               //1 Debug.out("setFactorySettings\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_SET_FACTORY_SETTINGS, 1, 0, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_SET_FACTORY_SETTINGS_ACK, TO_SHORT) >= 0)     
+                               ret = 0;
+                       cmdComplete();
+                       return ret;
+               }
+       }
+       
+       /**
+        * Set the operating mode
+        * 
+        * @param mode 0 = Stream breaking, 1 don't break stream 
+        * @return      < 0 error
+        */
+       public static int setOperatingMode(byte mode) {
+               //1 Debug.out("setOperatingMode\n");
+               synchronized (Bluetooth.sync)
+               {
+                       int ret = -1;
+                       cmdStart();
+                       cmdInit(MSG_SET_OPERATING_MODE, 2, mode, 0);
+                       if (cmdWait(RS_REPLY, RS_CMD, MSG_OPERATING_MODE_RESULT, TO_SHORT) >= 0)        
+                               ret = 0;
+                       cmdComplete();
+                       return ret;
+               }
+       }
+       
+       /**
+        * Force a reset of the Bluetooth module.
+        * Notes:
+        * After this call power will be on.
+        * Any existing connections will be closed
+        * Any listening threads will be aborted
+        * 
+        */     
+       public static void reset()
+       {
+               synchronized (Bluetooth.sync)
+               {
+                       cmdStart();
+                       // Force a timeout and hence a reset
+                       cmdWait(RS_REPLY, RS_WAIT, MSG_RESET_INDICATION, TO_FORCERESET);
+                       cmdComplete();
                }               
        }
+       
+       /**
+        * Set the power to the module
+        * 
+        * @param on power on or off 
+        */
+       public static void setPower(boolean on)
+       {
+               synchronized (Bluetooth.sync)
+               {
+                       if (powerOn == on) return;
+                       if (on)
+                       {
+                               btSetResetHigh();
+                               powerOn = true;
+                               // Now make sure things have settled
+                               for(int i =0; i < 5; i++)
+                                       if (getOperatingMode() >= 0) break;
+                       }
+                       else
+                       {
+                               // Powering off. Do we need to reset things?
+                               boolean wasListening = listening;
+                               // Wait for any other commands to complete
+                               cmdStart();
+                               if (connected > 0 || listening)
+                                       reset();
+                               // Wait for the listening thread to exit
+                               if (wasListening)
+                                       try{Bluetooth.sync.wait(2000);}catch(Exception e){}
+                               //1 Debug.out("Power going off\n");
+                               btSetResetLow();
+                               powerOn = false;
+                       }
+                       publicPowerOn = powerOn;
+               }
+       }
+
+       /**
+        * Return the current state of the module power
+        * 
+        * @return power on or off 
+        */
+       public static boolean getPower()
+       {
+               synchronized(Bluetooth.sync)
+               {
+                       return publicPowerOn;
+               }
+       }
+       
+
+       public static int getResetCount()
+       {
+               return resetCnt;
+       }
+       /**
+        * The following are provided for compatibility with the old Bluetooth
+        * class. They should not be used, in new programs and should probably
+        * be removed.
+        */
+       
+       /**
+        * Read a packet from the stream. Do not block and for small packets
+        * (< 254 bytes), do not return a partial packet.
+        * @param       buf             Buffer to read data into.
+        * @param       len             Number of bytes to read.
+        * @return                      > 0 number of bytes read.
+        *                                      other values see read.
+        */
+       public static int readPacket(byte buf[], int len)
+       {
+               return Chans[3].readPacket(buf, len);
+       }
+       
+       /**
+        * Send a data packet.
+        * Must be in data mode.
+        * @param buf the data to send
+        * @param bufLen the number of bytes to send
+        */
+       public static void sendPacket(byte [] buf, int bufLen)
+       {
+               Chans[3].sendPacket(buf, bufLen);
+       }
+       
+       /**
+        * Set the BC4 mode, and wait for that mode to be confirmed by the chip.
+        *
+        * @param mode the requested mode 1 == Command mode 0 == Stream mode
+        */
+       public static void btSetCmdMode(int mode)
+       {
+               
+       }
+
 }
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/Debug.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/Debug.java
new file mode 100644 (file)
index 0000000..28c68ca
--- /dev/null
@@ -0,0 +1,87 @@
+package lejos.nxt.comm;\r
+import lejos.nxt.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * This class provides a simple way of sending debug output for viewing on a \r
+ * PC. The output is transmitted via the nxt USB connection. If open is not\r
+ * called or if the connection to the PC is timed out, then the debug output\r
+ * is dicarded.\r
+ */\r
+public class Debug {\r
+       static USBConnection conn;\r
+       static byte [] buf = new byte[100];\r
+       \r
+       public static void open(int timeout)\r
+       {\r
+               try {\r
+                       conn = new USBConnection();\r
+                       LCD.drawString("Debug waiting", 0, 0);\r
+                       LCD.refresh();\r
+                       // Wait for monitor to connect\r
+                       int end = (int) System.currentTimeMillis() + timeout;\r
+                       while ((USB.usbRead(buf, buf.length) != 1) || (buf[0] != (byte)27))\r
+                       {\r
+                               Thread.yield();\r
+                               if ((int)System.currentTimeMillis() > end)\r
+                               {\r
+                                       conn.close();\r
+                                       conn = null;\r
+                                       return;\r
+                               }\r
+                       }\r
+                       LCD.drawString("Debug starting", 0, 0);\r
+                       LCD.refresh();\r
+                       out("Debug connected...\n");\r
+               }\r
+               catch (Exception e)\r
+               {\r
+                       LCD.drawString("Debug error " + e.getMessage(), 0, 0);\r
+                       LCD.refresh();\r
+               }\r
+       }\r
+       \r
+       public static void open()\r
+       {\r
+               open(0x7fffffff);\r
+       }\r
+       \r
+       public static void out(String s)\r
+       {\r
+               if (conn == null) return;\r
+               synchronized (conn){\r
+               try\r
+               {\r
+                       for(int i = 0; i < s.length(); i++)\r
+                               buf[i+1] = (byte)s.charAt(i);\r
+\r
+                       buf[0] = (byte)s.length();\r
+                       USB.usbWrite(buf, s.length()+1);\r
+               }\r
+               catch (Exception e)\r
+               {\r
+                       LCD.drawString("Debug error " + e.getMessage(), 0, 0);\r
+                       LCD.refresh();\r
+               }\r
+               }\r
+       }\r
+       \r
+       public static void close()\r
+       {\r
+               if (conn == null) return;\r
+               try {\r
+                       buf[0] = 1;\r
+                       buf[1] = (byte)0xff;\r
+                       USB.usbWrite(buf, 2);\r
+                       conn.close();\r
+                       LCD.drawString("Debug closed        ", 0, 0);\r
+                       LCD.refresh();                  \r
+                       Thread.sleep(5000);\r
+               }\r
+               catch (Exception e)\r
+               {\r
+               }\r
+       }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/DeviceInfo.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/DeviceInfo.java
new file mode 100644 (file)
index 0000000..f3ff4c0
--- /dev/null
@@ -0,0 +1,14 @@
+package lejos.nxt.comm;\r
+\r
+/**\r
+ * \r
+ * Represents a remote NXT accessed via LCP.\r
+ *\r
+ */\r
+public class DeviceInfo {\r
+       public byte status;\r
+       public String NXTname;\r
+       public String bluetoothAddress;\r
+       public int signalStrength;\r
+       public int freeFlash;\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/FirmwareInfo.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/FirmwareInfo.java
new file mode 100644 (file)
index 0000000..d9a2aff
--- /dev/null
@@ -0,0 +1,12 @@
+package lejos.nxt.comm;\r
+\r
+/**\r
+ * \r
+ * Firmware information for a remote NXT accessed via LCP.\r
+ *\r
+ */\r
+public class FirmwareInfo {\r
+       public byte status;\r
+       public String protocolVersion;\r
+       public String firmwareVersion;\r
+}
\ No newline at end of file
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/InputValues.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/InputValues.java
new file mode 100644 (file)
index 0000000..b93bdcd
--- /dev/null
@@ -0,0 +1,37 @@
+package lejos.nxt.comm;\r
+\r
+/**\r
+ * Sensor input values for a remote NXT accessed via LCP.\r
+ * \r
+ * @author <a href="mailto:bbagnall@mts.net">Brian Bagnall</a>\r
+ */\r
+public class InputValues {\r
+       public int inputPort;\r
+       /**\r
+        * NXT indicates if it thinks the data is valid\r
+        */\r
+       public boolean valid = true;\r
+       public boolean isCalibrated;\r
+       public int sensorType;\r
+       public int sensorMode;\r
+       /**\r
+        * The raw value from the Analog to Digital (AD) converter.\r
+        */\r
+       public int rawADValue;\r
+       /**\r
+        * The normalized value from the Analog to Digital (AD) converter. I really don't\r
+        * know for sure which values are normalized yet.\r
+        * 0 to 1023\r
+        */\r
+       public int normalizedADValue;\r
+       /**\r
+        * The scaled value starts working after the first call to the sensor.\r
+        * The first value will be the raw value, but after that it produces scaled values.\r
+        * With the touch sensor, off scales to 0 and on scales to 1.\r
+        */\r
+       public short scaledValue;\r
+       /**\r
+        * Currently unused.\r
+        */\r
+       public short calibratedValue;\r
+}\r
index 784cbac..07b668f 100644 (file)
@@ -2,6 +2,7 @@ package lejos.nxt.comm;
 
 import java.io.*;
 import lejos.nxt.*;
+import java.util.*;
 
 /**
  * 
@@ -19,7 +20,9 @@ public class LCP {
     private static File file = null;
     private static FileOutputStream out = null;
     private static FileInputStream in = null;
-    private static int numFiles;
+    private static int numFiles;       
+       private static char[] charBuffer = new char[20];
+       public static Queue[] inBoxes = new Queue[20];
     
        // Command types constants. Indicates type of packet being sent or received.
        public static byte DIRECT_COMMAND_REPLY = 0x00;
@@ -47,6 +50,7 @@ public class LCP {
        public static final byte LS_WRITE = 0x0F;
        public static final byte LS_READ = 0x10;
        public static final byte GET_CURRENT_PROGRAM_NAME = 0x11;
+       public static final byte MESSAGE_READ = 0x13;
        
        // NXJ additions
        public static byte NXJ_DISCONNECT = 0x20; 
@@ -78,8 +82,14 @@ public class LCP {
        
        // Error codes
        
+       public static final byte MAILBOX_EMPTY = (byte)0x40;
        public static final byte FILE_NOT_FOUND = (byte)0x86;
+       public static final byte INSUFFICIENT_MEMORY = (byte) 0xFB;
+       public static final byte DIRECTORY_FULL = (byte) 0xFC;
+       public static final byte UNDEFINED_ERROR = (byte) 0x8A;
+       public static final byte NOT_IMPLEMENTED = (byte) 0xFD;
 
+       
        private LCP()
        {               
        }
@@ -87,7 +97,7 @@ public class LCP {
        /**
         * Emulates a Lego firmware Direct or System command
         * @param cmd the buffer containing the command
-        * @param cmdLen the legth of the command
+        * @param cmdLen the length of the command
         */
        public static int emulateCommand(byte[] cmd, int cmdLen, byte[] reply)
        {
@@ -102,17 +112,11 @@ public class LCP {
                
                // START PROGRAM
                if (cmdId == START_PROGRAM) {
-                       int filenameLength = 0;
                        init_files();
-                       for(int i=0;i<20 && cmd[i+2] != 0;i++) filenameLength++;
-                       char[] chars = new char[filenameLength];
-                       for(int i=0;i<filenameLength;i++) chars[i] = (char) cmd[i+2];
-                       currentProgram = new String(chars,0,filenameLength);
+                       currentProgram = getFile(cmd,2);
                        if (fileNames != null) {
                                for(int i=0;i<fileNames.length;i++) {
                                        if (currentProgram.equals(fileNames[i])) {
-                                               LCD.clear();
-                                               LCD.refresh();
                                                files[i].exec();
                                        }
                                }
@@ -130,17 +134,23 @@ public class LCP {
                
                // GET BATTERY LEVEL
                if (cmdId == GET_BATTERY_LEVEL) {
-                       int mv = Battery.getVoltageMilliVolt();
-
-                       reply[3] = getLSB(mv);
-                       reply[4] = getMSB(mv);
+                       setReplyShortInt(Battery.getVoltageMilliVolt(), reply, 3);
                        len = 5;                                                                        
                }
                
+               // PLAY SOUND FILE
+               if (cmdId == PLAY_SOUND_FILE)
+               {
+                       init_files();
+                       String soundFile = getFile(cmd,3);
+                       File f = new File(soundFile);
+                       Sound.playSample(f, 50);
+               }
+               
                // PLAYTONE
                if (cmdId == PLAY_TONE)
                {
-                       Sound.playTone(getInt(cmd,2), getInt(cmd,4));
+                       Sound.playTone(getShortInt(cmd,2), getShortInt(cmd,4));
                }
                
                // GET FIRMWARE VERSION
@@ -160,11 +170,7 @@ public class LCP {
             for(int i=0;i<15;i++) reply[3+i] = name[i];
             byte [] address = Bluetooth.getLocalAddress();
             for(int i=0;i<7;i++) reply[18+i] = address[i];
-            int freeMem = File.freeMemory();
-                       reply[29] = (byte) (freeMem & 0xFF);
-                       reply[30] = (byte) ((freeMem >> 8) & 0xFF);
-                       reply[31] = (byte) ((freeMem >> 16) & 0xFF);
-                       reply[32] = (byte) ((freeMem >> 24) & 0xFF);
+            setReplyInt(File.freeMemory(),reply,29);
                        len = 33;
                }       
                
@@ -206,11 +212,18 @@ public class LCP {
                        byte run_state = 0;
                        if (m.isMoving()) run_state = 0x20; // 0x20 = RUNNING
                        reply[8] = run_state; // Run state
-                       // 9 - 12 = Tacho Limit. Ignored?
-                       reply[13] = (byte) (tacho & 0xFF);
-                       reply[14] = (byte) ((tacho >> 8) & 0xFF);
-                       reply[15] = (byte) ((tacho >> 16) & 0xFF);
-                       reply[16] = (byte) ((tacho >> 24) & 0xFF);
+                       // 9 - 12 = Tacho Limit is currently ignored.
+                       // In future, it could get this from Motor if a
+                       // rotate() or rotateTo() command is in progress.
+                       
+                       // TachoCount just returns same as RotationCount:
+                       setReplyInt(tacho,reply,13);
+                       
+                       // !! Ignores BlockTacho
+                       
+                       // RotationCount:
+                       setReplyInt(tacho,reply,21);
+                       
                        len = 25;                                               
                }
                
@@ -223,17 +236,11 @@ public class LCP {
                        
                        reply[3] = port;
                        reply[4] = 1;
-                       reply[5] = 0;
                        reply[6] = (byte) SensorPort.PORTS[port].getType();
                        reply[7] = (byte) SensorPort.PORTS[port].getMode();
-                       reply[8] = getLSB(raw);
-                       reply[9] = getMSB(raw);
-                       reply[10] = getLSB(norm);
-                       reply[11] = getMSB(norm);
-                       reply[12] = getLSB(scaled);
-                       reply[13] = getMSB(scaled);
-                       reply[14] = 0;
-                       reply[15] = 0;          
+                       setReplyShortInt(raw, reply, 8);
+                       setReplyShortInt(norm, reply, 10);
+                       setReplyShortInt(scaled, reply, 12);            
                        len = 16;                                               
                }
                
@@ -254,8 +261,8 @@ public class LCP {
                        byte regMode = cmd[5];
                        byte turnRatio = cmd[6];
                        byte runState = cmd[7];
-                       int tacholimit = (0xFF & cmd[8]) | ((0xFF & cmd[9]) << 8)| ((0xFF & cmd[10]) << 16)| ((0xFF & cmd[11]) << 24);
-                       
+                       int tacholimit = getInt(cmd, 8);
+                                       
                        // Initialize motor:
                        Motor m = null;
                
@@ -291,7 +298,10 @@ public class LCP {
                // RESETMOTORPOSITION
                if (cmdId == RESET_MOTOR_POSITION)
                {
-                       MotorPort.resetTachoCountById(cmd[2]);
+                       // Check if boolean value (cmd[3]) is false. If so,
+                       // reset TachoCount (i.e. RotationCount in LEGO FW terminology)
+                       if(cmd[3] == 0)
+                               MotorPort.resetTachoCountById(cmd[2]);                          
                }
                
                // KEEPALIVE
@@ -336,19 +346,12 @@ public class LCP {
                // OPEN READ
                if (cmdId == OPEN_READ)
                {
-                       int filenameLength = 0;
                        init_files();
-                       for(int i=0;i<20 && cmd[i+2] != 0;i++) filenameLength++;
-                       char[] chars = new char[filenameLength];
-                       for(int i=0;i<filenameLength;i++) chars[i] = (char) cmd[i+2];
-                       file = new File(new String(chars,0,filenameLength));
+                       file = new File(getFile(cmd,2));
             try {
                in = new FileInputStream(file);
                int size = file.length();
-               cmd[4] = (byte) (size & 0xFF);
-                       cmd[5] = (byte) ((size >> 8) & 0xFF);
-                       cmd[6] = (byte) ((size >> 16) & 0xFF);
-                       cmd[7] = (byte) ((size >> 24) & 0xFF);                  
+               setReplyInt(size,reply,4);              
             } catch (Exception e) {
                reply[2] = FILE_NOT_FOUND;
             }
@@ -358,37 +361,46 @@ public class LCP {
                // OPEN WRITE
                if (cmdId == OPEN_WRITE)
                {
-                       int filenameLength = 0;
+                       int size = getInt(cmd, 22);
                        init_files();
-                       for(int i=0;i<20 && cmd[i+2] != 0;i++) filenameLength++;
-                       char[] chars = new char[filenameLength];
-                       for(int i=0;i<filenameLength;i++) chars[i] = (char) cmd[i+2];
-                       file = new File(new String(chars,0,filenameLength));
-                       int size = cmd[22] & 0xFF;
-                       size += ((cmd[23] & 0xFF) << 8);
-                       size += ((cmd[24] & 0xFF) << 16);
-                       size += ((cmd[25] & 0xFF) << 24);
-                       if (file.exists()) {
-                               file.delete();
-                               numFiles--;
-                       }
-                       file.createNewFile();
-                       fileNames = new String[++numFiles];
-                       for(int j=0;j<numFiles;j++) fileNames[j] = files[j].getName();
-                       out = new FileOutputStream(file);
                        
+                       // If insufficient flash memory, report an error                        
+                       if (size > File.freeMemory()) {
+                               reply[2] = INSUFFICIENT_MEMORY;
+                       } else {        
+                               try {
+                                       file = new File(getFile(cmd,2));
+                               
+                                       if (file.exists()) {
+                                               file.delete();
+                                               numFiles--;
+                                       }
+
+                                       file.createNewFile();
+                                       fileNames = new String[++numFiles];
+                                       for(int j=0;j<numFiles;j++) fileNames[j] = files[j].getName();
+                                       out = new FileOutputStream(file);
+                               } catch (Exception e) {
+                                       files = null;
+                                       File.reset(); // force read from file table
+                                       init_files();
+                                       reply[2] = DIRECTORY_FULL;
+                               }
+                       }
                        len = 4;
                }
                
                // OPEN WRITE LINEAR
                if (cmdId == OPEN_WRITE_LINEAR)
                {
+                       reply[2] = NOT_IMPLEMENTED;
                        len = 4;
                }
                
                // OPEN WRITE DATA
                if (cmdId == OPEN_WRITE_DATA)
                {
+                       reply[2] = NOT_IMPLEMENTED;
                        len = 4;
                }
                
@@ -402,7 +414,9 @@ public class LCP {
                // DEFRAG
                if (cmdId == NXJ_DEFRAG)
                {
-                       File.defrag();
+                       try {
+                               File.defrag();
+                       }catch (IOException ioe) {}
                }
 
                // FIND FIRST
@@ -420,17 +434,11 @@ public class LCP {
                                for(int i=0;i<fileNames[0].length();i++) reply[4+i] = (byte) fileNames[0].charAt(i);
                                fileIdx = 1;
                int size = files[0].length();
-               reply[24] = (byte) (size & 0xFF);
-                       reply[25] = (byte) ((size >> 8) & 0xFF);
-                       reply[26] = (byte) ((size >> 16) & 0xFF);
-                       reply[27] = (byte) ((size >> 24) & 0xFF);
+               setReplyInt(size,reply,24);
                        
                        if (cmdId == NXJ_FIND_FIRST) {
                                int startPage = files[0].getPage();
-                               reply[28] = (byte) (startPage & 0xFF);
-                               reply[29] = (byte) ((startPage >> 8) & 0xFF);
-                               reply[30] = (byte) ((startPage >> 16) & 0xFF);
-                               reply[31] = (byte) ((startPage >> 24) & 0xFF);                                  
+                               setReplyInt(startPage,reply,28);                                
                        }
                        }
                }
@@ -445,17 +453,10 @@ public class LCP {
                        {
                                for(int i=0;i<fileNames[fileIdx].length();i++) reply[4+i] = (byte) fileNames[fileIdx].charAt(i);
                int size = files[fileIdx].length();
-               reply[24] = (byte) (size & 0xFF);
-                       reply[25] = (byte) ((size >> 8) & 0xFF);
-                       reply[26] = (byte) ((size >> 16) & 0xFF);
-                       reply[27] = (byte) ((size >> 24) & 0xFF);
-                       
+               setReplyInt(size,reply,24);                     
                        if (cmdId == NXJ_FIND_NEXT) {
                                int startPage = files[fileIdx].getPage();
-                               reply[28] = (byte) (startPage & 0xFF);
-                               reply[29] = (byte) ((startPage >> 8) & 0xFF);
-                               reply[30] = (byte) ((startPage >> 16) & 0xFF);
-                               reply[31] = (byte) ((startPage >> 24) & 0xFF);                                  
+                               setReplyInt(startPage,reply,28);                                
                        }
                        
                                fileIdx++;
@@ -465,14 +466,16 @@ public class LCP {
                // READ
                if (cmdId == READ)
                {
-            int numBytes = ((cmd[4] & 0xFF) << 8) + (cmd[3] & 0xFF);
+            int numBytes = getShortInt(cmd,3);
             int bytesRead = 0;
             
             try {
-               bytesRead = in.read(reply,6, numBytes);
-            } catch (IOException ioe) {}
-                       reply[4] = (byte) (bytesRead & 0xFF);
-                       reply[5] = (byte) ((bytesRead << 8) & 0xFF);
+               bytesRead = in.read(reply, 6, numBytes);
+               setReplyShortInt(bytesRead, reply, 4);
+            } catch (IOException ioe) {
+               reply[2] = UNDEFINED_ERROR;
+            }
+
                        len = bytesRead + 6;
                }
                
@@ -482,30 +485,25 @@ public class LCP {
                        int dataLen = cmdLen - 3;
                        try {
                                out.write(cmd,3,dataLen);
+                               setReplyShortInt(dataLen, reply, 4);
                        } catch (Exception ioe) {
-                               //LCD.drawString("Exception", 0, 7);
-                               //LCD.refresh();                                                
-                       }
-                       reply[4] = (byte) (dataLen &0xFF);
-                       reply[5] = (byte) ((dataLen >> 8) & 0xFF);
+                               reply[2] = UNDEFINED_ERROR;
+                       }                                               
+
                        len = 6;
                }
                
                // DELETE
                if (cmdId == DELETE)
                {
-                       int filenameLength = 0;
                        boolean deleted = false;
                        len = 23;
-                       for(int i=0;i<20 && cmd[i+2] != 0;i++) filenameLength++;
-                       char[] chars = new char[filenameLength];
-                       for(int i=0;i<filenameLength;i++) chars[i] = (char) cmd[i+2];
-                       String fileName = new String(chars,0,filenameLength);
+                       String fileName = getFile(cmd,2);
                        if (fileNames != null) {
                                for(int i=0;i<fileNames.length;i++) {
                                        if (fileName.equals(fileNames[i])) {
                                                files[i].delete();
-                                               for(int j=0;j<filenameLength;j++) reply[j+3] = (byte) chars[j];
+                                               for(int j=0;j<fileName.length();j++) reply[j+3] = (byte) fileName.charAt(i);
                                                deleted = true;
                                                fileNames = new String[--numFiles];
                                                for(int j=0;j<numFiles;j++) fileNames[j] = files[j].getName();
@@ -524,22 +522,55 @@ public class LCP {
                                        out.flush();
                                        out.close();
                                } catch (Exception ioe) {
-                                       //LCD.drawString("Exception",0,7);
-                                       //LCD.refresh();
+                                       reply[2] = UNDEFINED_ERROR;
                                }
                                out = null;
                        }
                        len = 4;
                }
                
+               // MESSAGE READ         
+               if (cmdId == MESSAGE_READ) {
+                       Queue inBox = inBoxes[cmd[2]];
+                       reply[3] = cmd[3];
+                       if (inBox == null || inBox.empty()) {
+                               reply[2] = MAILBOX_EMPTY;
+                       } else {
+                               String msg = (String) (cmd[4] == 0 ? inBox.peek()
+                                                                          : inBox.pop());
+                               int msgLen = msg.length();
+                               reply[4] = (byte) (msgLen > 58 ? 58 : msgLen);
+                               for(int i=0;i<58 && i<msgLen;i++) {
+                                       reply[5+i] = (byte) msg.charAt(i);
+                               }
+                       }
+                       LCD.refresh();
+                       len = 64;
+               }
+               
                return len;
        }
        
-       private static int getInt(byte [] cmd, int i)
+       public static void messageWrite(int mailbox, String msg) {
+               if (mailbox < inBoxes.length) {
+                       if (inBoxes[mailbox] == null) inBoxes[mailbox] = new Queue();
+                       inBoxes[mailbox].push(msg);                     
+               }
+       }
+       
+       private static int getShortInt(byte [] cmd, int i)
        {
                return (cmd[i] & 0xFF) + ((cmd[i+1] & 0xFF) << 8);
        }
        
+       private static int getInt(byte [] cmd, int i)
+       {
+               return (cmd[i] & 0xFF) + 
+                      ((cmd[i+1] & 0xFF) << 8) +
+                      ((cmd[i+2] & 0xFF) << 16) +
+                      ((cmd[i+3] & 0xFF) << 24);
+       }
+       
        private static byte getLSB(int i)
        {
                return (byte) (i & 0xFF);
@@ -550,6 +581,28 @@ public class LCP {
                return (byte) ((i >> 8) & 0xFF);
        }
        
+       private static byte getMSB1(int i)
+       {
+               return (byte) ((i >> 16) & 0xFF);
+       }
+       
+       private static byte getMSB2(int i)
+       {
+               return (byte) ((i >> 24) & 0xFF);
+       }
+       
+       private static void setReplyInt(int n, byte [] reply, int start) {
+               reply[start] = getLSB(n);
+               reply[start+1] = getMSB(n);
+               reply[start+2] = getMSB1(n);
+               reply[start+3] = getMSB2(n);
+       }
+       
+       private static void setReplyShortInt(int n, byte [] reply, int start) {
+               reply[start] = getLSB(n);
+               reply[start+1] = getMSB(n);
+       }
+       
        private static void init_files() {
                if (files == null) {
                        files = File.listFiles();
@@ -559,5 +612,12 @@ public class LCP {
                        for(int i=0;i<numFiles;i++) fileNames[i] = files[i].getName();
                }
        }
+       
+       private static String getFile(byte [] cmd,int start) {
+               int filenameLength = 0;
+               for(int i=0;i<20 && cmd[i+start] != 0;i++) filenameLength++;
+               for(int i=0;i<filenameLength;i++) charBuffer[i] = (char) cmd[i+start];
+               return new String(charBuffer,0,filenameLength);
+       }
 }
 
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/LCPBTResponder.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/LCPBTResponder.java
new file mode 100644 (file)
index 0000000..3246a7e
--- /dev/null
@@ -0,0 +1,49 @@
+package lejos.nxt.comm;\r
+\r
+/**\r
+ * Support for LCP commands over Bluetooth in user programs.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class LCPBTResponder extends Thread {\r
+       \r
+       public void run() \r
+       {\r
+               byte[] inMsg = new byte[64];\r
+               byte [] reply = new byte[64];\r
+               boolean cmdMode = true;\r
+               BTConnection btc = null;\r
+               int len;\r
+               \r
+               // Wait for power on\r
+               while (!Bluetooth.getPower())\r
+               {\r
+                       try {\r
+                               Thread.sleep(500);\r
+                       } catch (InterruptedException e) {}                             \r
+               }\r
+               \r
+               while (true)\r
+               {       \r
+                       if (cmdMode) {\r
+                               btc = Bluetooth.waitForConnection();\r
+                               if (btc == null) continue;                      \r
+                               cmdMode = false;\r
+                       }\r
+                       \r
+                       len = btc.read(inMsg,64);\r
+                       \r
+                       if (len > 0)\r
+                       {\r
+                               int replyLen = LCP.emulateCommand(inMsg,len, reply);\r
+                               if ((inMsg[0] & 0x80) == 0) btc.write(reply, replyLen);\r
+                               if (inMsg[1] == LCP.NXJ_DISCONNECT) { \r
+                                       btc.close(); \r
+                                       cmdMode = true;\r
+                               }\r
+                       }\r
+                       Thread.yield();\r
+               }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTComm.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTComm.java
new file mode 100644 (file)
index 0000000..2c45462
--- /dev/null
@@ -0,0 +1,50 @@
+package lejos.nxt.comm;\r
+\r
+import java.io.*;\r
+\r
+/**\r
+ * \r
+ * Initiates communication to a remote NXT. Used by NXTCommand\r
+ * to implement the Lego Communications Protocol (LCP).\r
+ *\r
+ */\r
+public class NXTComm {\r
+       private static BTConnection btc;\r
+       private static DataInputStream dis;\r
+       private static DataOutputStream dos;\r
+       byte[] buf = new byte[64];\r
+       \r
+       public boolean open(String name) throws IOException {\r
+               BTRemoteDevice btrd = Bluetooth.getKnownDevice(name);   \r
+               if (btrd == null) return false;\r
+               \r
+               btc = Bluetooth.connect(btrd);\r
+               if (btc == null) return false;\r
+               \r
+               dis = btc.openDataInputStream();\r
+               dos = btc.openDataOutputStream();\r
+                       \r
+               return true;\r
+       }\r
+       \r
+       public void sendData(byte [] data) throws IOException {\r
+               dos.write(data, 0, data.length);\r
+               dos.flush();\r
+       }\r
+       \r
+       public byte[] readData() throws IOException {   \r
+               int len = 0;\r
+               \r
+               while (len == 0) len = btc.readPacket(buf, 64);\r
+               byte [] data = new byte[len];\r
+               for(int i=0;i<len;i++) data[i] = buf[i];\r
+               return data;\r
+\r
+       }\r
+       \r
+       public void close() throws IOException {\r
+               dis.close();\r
+               dos.close();\r
+               btc.close();\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTCommand.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTCommand.java
new file mode 100644 (file)
index 0000000..a2a0a92
--- /dev/null
@@ -0,0 +1,222 @@
+package lejos.nxt.comm;\r
+\r
+import java.io.*;\r
+\r
+/**\r
+ * \r
+ * Remote access to a NXT via Bluetooth using LCP.\r
+ *\r
+ */\r
+public class NXTCommand implements NXTProtocol {\r
+       \r
+       private NXTComm nxtComm = new NXTComm();\r
+       private boolean verifyCommand = false;\r
+       \r
+       public void open(String name) throws IOException {\r
+               boolean open = nxtComm.open(name);\r
+               if (!open) throw new IOException("Open failed");\r
+       }\r
+       \r
+       /**\r
+        * Small helper method to send request to NXT and return verification result.\r
+        * @param request\r
+        * @return 0 for success\r
+        */\r
+       private byte sendRequest(byte [] request) throws IOException {\r
+               byte verify = 0; // default of 0 means success\r
+               if(verifyCommand)\r
+                       request[0] = DIRECT_COMMAND_REPLY;\r
+               \r
+               nxtComm.sendData(request);\r
+               if(verifyCommand) {\r
+                       byte [] reply = nxtComm.readData();\r
+                       verify = reply[2];\r
+               }\r
+               return verify;\r
+       }\r
+       \r
+       /**\r
+        * \r
+        * @param port - Output port (0 - 2 or 0xFF for all three)\r
+        * @param power - Setpoint for power. (-100 to 100)\r
+        * @param mode - Setting the modes MOTORON, BRAKE, and/or REGULATED. This parameter is a bitfield, so to put it in brake mode and regulated, use BRAKEMODE + REGULATED\r
+        * @param regulationMode - see NXTProtocol for enumerations \r
+        * @param turnRatio - Need two motors? (-100 to 100)\r
+        * @param runState - see NXTProtocol for enumerations\r
+        * @param tachoLimit - Number of degrees(?) to rotate before stopping.\r
+        */\r
+       public byte setOutputState(int port, byte power, int mode, int regulationMode, int turnRatio, int runState, int tachoLimit) throws IOException {\r
+               synchronized(this) {\r
+                       byte [] request = {DIRECT_COMMAND_NOREPLY, SET_OUTPUT_STATE, (byte)port, power, (byte)mode, (byte)regulationMode, (byte)turnRatio, (byte)runState, (byte)tachoLimit, (byte)(tachoLimit>>>8), (byte)(tachoLimit>>>16), (byte)(tachoLimit>>>24)};\r
+                       return sendRequest(request);\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Retrieves tacho count.\r
+        * @param port - 0 to 3\r
+        * @return tacho count\r
+        */\r
+       public int getTachoCount(int port) throws IOException {\r
+               synchronized(this) {\r
+                       byte [] request = {DIRECT_COMMAND_REPLY, GET_OUTPUT_STATE, (byte)port};\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+       \r
+                       int tachoCount = (0xFF & reply[13]) | ((0xFF & reply[14]) << 8)| ((0xFF & reply[15]) << 16)| ((0xFF & reply[16]) << 24);\r
+                       return tachoCount;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Resets the tachometer\r
+        * @param port Output port (0-2)\r
+        * @param relative TRUE: position relative to last movement, FALSE: absolute position\r
+        */\r
+       public byte resetMotorPosition(int port, boolean relative) throws IOException {\r
+               synchronized(this) {\r
+                       byte boolVal = 0;\r
+                       if(relative) boolVal = (byte)0xFF;\r
+                       byte [] request = {DIRECT_COMMAND_NOREPLY, RESET_MOTOR_POSITION, (byte)port, boolVal};\r
+                       return sendRequest(request);\r
+               }\r
+       }\r
+       \r
+       public void setVerify(boolean verify) {\r
+               verifyCommand = verify;\r
+       }\r
+       \r
+       /**\r
+        * Call the close() command when your program ends, otherwise you\r
+        * will have to turn the NXT brick off/on before you run another\r
+        * program using iCommand.\r
+        *\r
+        */\r
+       public void close() throws IOException {\r
+               nxtComm.close();\r
+       }\r
+       public int getBatteryLevel() throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {DIRECT_COMMAND_REPLY, GET_BATTERY_LEVEL};\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+                       int batteryLevel = (0xFF & reply[3]) | ((0xFF & reply[4]) << 8);\r
+                       return batteryLevel;\r
+               }\r
+       }\r
+       \r
+       public InputValues getInputValues(int port) throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {DIRECT_COMMAND_REPLY, GET_INPUT_VALUES, (byte)port};\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+                       InputValues inputValues = new InputValues();\r
+                       inputValues.inputPort = reply[3];\r
+                       // 0 is false, 1 is true.\r
+                       inputValues.valid = (reply[4] != 0);\r
+                       // 0 is false, 1 is true. \r
+                       inputValues.isCalibrated = (reply[5] == 0);\r
+                       inputValues.sensorType = reply[6];\r
+                       inputValues.sensorMode = reply[7];\r
+                       inputValues.rawADValue = (0xFF & reply[8]) | ((0xFF & reply[9]) << 8);\r
+                       inputValues.normalizedADValue = (0xFF & reply[10]) | ((0xFF & reply[11]) << 8);\r
+                       inputValues.scaledValue = (short)((0xFF & reply[12]) | (reply[13] << 8));\r
+                       inputValues.calibratedValue = (short)((0xFF & reply[14]) | (reply[15] << 8));\r
+                       return inputValues;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Tells the NXT what type of sensor you are using and the mode to operate in.\r
+        * @param port - 0 to 3\r
+        * @param sensorType - Enumeration for sensor type (see NXTProtocol) \r
+        * @param sensorMode - Enumeration for sensor mode (see NXTProtocol)\r
+        */\r
+       public byte setInputMode(int port, int sensorType, int sensorMode) throws IOException {\r
+               synchronized(this) {\r
+                       byte [] request = {DIRECT_COMMAND_NOREPLY, SET_INPUT_MODE, (byte)port, (byte)sensorType, (byte)sensorMode};\r
+                       return sendRequest(request);\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Plays a tone on NXT speaker. If a new tone is sent while the previous tone is playing,\r
+        * the new tone command will stop the old tone command.\r
+        * @param frequency \r
+        * @param duration - In milliseconds.\r
+        * @return - Returns true if command worked, false if it failed.\r
+        */\r
+       public byte playTone(int frequency, int duration) throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {DIRECT_COMMAND_NOREPLY, PLAY_TONE, (byte)frequency, (byte)(frequency>>>8), (byte)duration, (byte)(duration>>>8)};\r
+                       return sendRequest(request);\r
+               }               \r
+       }\r
+       \r
+       public DeviceInfo getDeviceInfo() throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {SYSTEM_COMMAND_REPLY, GET_DEVICE_INFO};\r
+                       char[] name = new char[14];\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+                       DeviceInfo d = new DeviceInfo();\r
+                       d.status = reply[2];\r
+                       int i = 0;\r
+                       for(;reply[3+i] != 0 && i<14;i++) name[i] = (char) reply[3+i]; \r
+                       d.NXTname = new String(name,0,i);\r
+                       d.bluetoothAddress = getAddressString(reply);\r
+                       d.signalStrength = (0xFF & reply[25]) | ((0xFF & reply[26]) << 8)| ((0xFF & reply[27]) << 16)| ((0xFF & reply[28]) << 24);\r
+                       d.freeFlash = (0xFF & reply[29]) | ((0xFF & reply[30]) << 8)| ((0xFF & reply[31]) << 16)| ((0xFF & reply[32]) << 24);\r
+                       return d;\r
+               }\r
+       }\r
+       \r
+       private static final char[] cs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};\r
+\r
+       private String getAddressString(byte [] reply) {\r
+               char[] caddr = new char[20];            \r
+               int ci = 0;\r
+               \r
+               for(int i=0; i<7; i++) {\r
+                       int nr = reply[i+18] & 0xFF;    \r
+                       caddr[ci++] = cs[nr / 16];\r
+                       caddr[ci++] = cs[nr % 16];\r
+                       if (i != 6) caddr[ci++] = ':';\r
+               }\r
+               return new String(caddr, 0, 20);\r
+       }\r
+       \r
+       public FirmwareInfo getFirmwareVersion() throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {SYSTEM_COMMAND_REPLY, GET_FIRMWARE_VERSION};\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+                       FirmwareInfo info = new FirmwareInfo();\r
+                       info.status = reply[2];\r
+                       char[] cc = new char[3];\r
+                       if(info.status == 0) {\r
+                               cc[1] = '.';\r
+                               cc[0] = (char) ('0' + reply[4]);\r
+                               cc[2] = (char) ('0' + reply[3]);\r
+                               info.protocolVersion = new String(cc,0,3);\r
+                               cc[0] = (char) ('0' + reply[6]);\r
+                               cc[2] = (char) ('0' + reply[5]);\r
+                               info.firmwareVersion = new String(cc,0,3);\r
+                       }\r
+                       return info;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Deletes user flash memory (not including system modules).\r
+        * @return 0 for success\r
+        */\r
+       public byte deleteUserFlash() throws IOException {\r
+               synchronized (this) {\r
+                       byte [] request = {SYSTEM_COMMAND_REPLY, DELETE_USER_FLASH};\r
+                       nxtComm.sendData(request);\r
+                       byte [] reply = nxtComm.readData();\r
+                       return reply[2];\r
+               }\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTProtocol.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/comm/NXTProtocol.java
new file mode 100644 (file)
index 0000000..fe51002
--- /dev/null
@@ -0,0 +1,148 @@
+package lejos.nxt.comm;\r
+\r
+/**\r
+ * \r
+ * LCP constants.\r
+ *\r
+ */\r
+public interface NXTProtocol {\r
+\r
+       // Command types constants. Indicates type of packet being sent or received.\r
+       public static byte DIRECT_COMMAND_REPLY = 0x00;\r
+       public static byte SYSTEM_COMMAND_REPLY = 0x01;\r
+       public static byte REPLY_COMMAND = 0x02;\r
+       public static byte DIRECT_COMMAND_NOREPLY = (byte)0x80; // Avoids ~100ms latency\r
+       public static byte SYSTEM_COMMAND_NOREPLY = (byte)0x81; // Avoids ~100ms latency\r
+       \r
+       // System Commands:\r
+       public static byte OPEN_READ = (byte)0x80;\r
+       public static byte OPEN_WRITE = (byte)0x81;\r
+       public static byte READ = (byte)0x82;\r
+       public static byte WRITE = (byte)0x83;\r
+       public static byte CLOSE = (byte)0x84;\r
+       public static byte DELETE = (byte)0x85;\r
+       public static byte FIND_FIRST = (byte)0x86;\r
+       public static byte FIND_NEXT = (byte)0x87;\r
+       public static byte GET_FIRMWARE_VERSION = (byte)0x88;\r
+       public static byte OPEN_WRITE_LINEAR = (byte)0x89;\r
+       public static byte OPEN_READ_LINEAR = (byte)0x8A;\r
+       public static byte OPEN_WRITE_DATA = (byte)0x8B;\r
+       public static byte OPEN_APPEND_DATA = (byte)0x8C;\r
+       // Many commands could be hidden between 0x8D and 0x96!\r
+       public static byte BOOT = (byte)0x97;\r
+       public static byte SET_BRICK_NAME = (byte)0x98;\r
+       // public static byte MYSTERY_COMMAND = (byte)0x99;\r
+       // public static byte MYSTERY_COMMAND = (byte)0x9A;\r
+       public static byte GET_DEVICE_INFO = (byte)0x9B;\r
+       // commands could be hidden here...\r
+       public static byte DELETE_USER_FLASH = (byte)0xA0;\r
+       public static byte POLL_LENGTH = (byte)0xA1;\r
+       public static byte POLL = (byte)0xA2;\r
+       \r
+       // Poll constants:\r
+       public static byte POLL_BUFFER = (byte)0x00;\r
+       public static byte HIGH_SPEED_BUFFER = (byte)0x01;\r
+               \r
+       // Direct Commands\r
+       public static byte START_PROGRAM = 0x00;\r
+       public static byte STOP_PROGRAM = 0x01;\r
+       public static byte PLAY_SOUND_FILE = 0x02;\r
+       public static byte PLAY_TONE = 0x03;\r
+       public static byte SET_OUTPUT_STATE = 0x04;\r
+       public static byte SET_INPUT_MODE = 0x05;\r
+       public static byte GET_OUTPUT_STATE = 0x06;\r
+       public static byte GET_INPUT_VALUES = 0x07;\r
+       public static byte RESET_SCALED_INPUT_VALUE = 0x08;\r
+       public static byte MESSAGE_WRITE = 0x09;\r
+       public static byte RESET_MOTOR_POSITION = 0x0A; \r
+       public static byte GET_BATTERY_LEVEL = 0x0B;\r
+       public static byte STOP_SOUND_PLAYBACK = 0x0C;\r
+       public static byte KEEP_ALIVE = 0x0D;\r
+       public static byte LS_GET_STATUS = 0x0E;\r
+       public static byte LS_WRITE = 0x0F;\r
+       public static byte LS_READ = 0x10;\r
+       public static byte GET_CURRENT_PROGRAM_NAME = 0x11;\r
+       // public static byte MYSTERY_OPCODE = 0x12; // ????\r
+       public static byte MESSAGE_READ = 0x13;\r
+       // public static byte POSSIBLY_MORE_HIDDEN = 0x14; // ????\r
+               \r
+       // Output state constants \r
+       // "Mode":\r
+       /** Turn on the specified motor */\r
+       public static byte MOTORON = 0x01;\r
+       /** Use run/brake instead of run/float in PWM */\r
+       public static byte BRAKE = 0x02;\r
+       /** Turns on the regulation */\r
+       public static byte REGULATED = 0x04; \r
+\r
+       // "Regulation Mode":\r
+       /** No regulation will be enabled */\r
+       public static byte REGULATION_MODE_IDLE = 0x00;\r
+       /** Power control will be enabled on specified output */\r
+       public static byte REGULATION_MODE_MOTOR_SPEED = 0x01;\r
+       /** Synchronization will be enabled (Needs enabled on two output) */\r
+       public static byte REGULATION_MODE_MOTOR_SYNC = 0x02; \r
+\r
+       // "RunState":\r
+       /** Output will be idle */\r
+       public static byte MOTOR_RUN_STATE_IDLE = 0x00;\r
+       /** Output will ramp-up */\r
+       public static byte MOTOR_RUN_STATE_RAMPUP = 0x10;       \r
+       /** Output will be running */\r
+       public static byte MOTOR_RUN_STATE_RUNNING = 0x20; \r
+       /** Output will ramp-down */\r
+       public static byte MOTOR_RUN_STATE_RAMPDOWN = 0x40;\r
+       \r
+       // Input Mode Constants\r
+       // "Port Type":\r
+       /**  */\r
+       public static byte NO_SENSOR = 0x00;\r
+       /**  */\r
+       public static byte SWITCH = 0x01;\r
+       /**  */\r
+       public static byte TEMPERATURE = 0x02;\r
+       /**  */\r
+       public static byte REFLECTION = 0x03;\r
+       /**  */\r
+       public static byte ANGLE = 0x04;\r
+       /**  */\r
+       public static byte LIGHT_ACTIVE = 0x05;\r
+       /**  */\r
+       public static byte LIGHT_INACTIVE = 0x06;\r
+       /**  */\r
+       public static byte SOUND_DB = 0x07;\r
+       /**  */\r
+       public static byte SOUND_DBA = 0x08;\r
+       /**  */\r
+       public static byte CUSTOM = 0x09;\r
+       /**  */\r
+       public static byte LOWSPEED = 0x0A;\r
+       /**  */\r
+       public static byte LOWSPEED_9V = 0x0B;\r
+       /**  */\r
+       public static byte NO_OF_SENSOR_TYPES = 0x0C;\r
+\r
+       // "Port Mode":\r
+       /**  */\r
+       public static byte RAWMODE = 0x00;\r
+       /**  */\r
+       public static byte BOOLEANMODE = 0x20;\r
+       /**  */\r
+       public static byte TRANSITIONCNTMODE = 0x40;\r
+       /**  */\r
+       public static byte PERIODCOUNTERMODE = 0x60;\r
+       /**  */\r
+       public static byte PCTFULLSCALEMODE = (byte)0x80;\r
+       /**  */\r
+       public static byte CELSIUSMODE = (byte)0xA0;\r
+       /**  */\r
+       public static byte FAHRENHEITMODE = (byte)0xC0;\r
+       /**  */\r
+       public static byte ANGLESTEPSMODE = (byte)0xE0;\r
+       /**  */\r
+       public static byte SLOPEMASK = 0x1F;\r
+       /**  */\r
+       public static byte MODEMASK = (byte)0xE0;\r
+\r
+}\r
+\r
index 24e90d4..2b92a70 100644 (file)
@@ -1,3 +1,5 @@
+package lejos.nxt.comm;\r
+\r
 import java.io.DataInputStream;\r
 import java.io.DataOutputStream;\r
 import java.io.IOException;\r
@@ -6,6 +8,12 @@ import lejos.nxt.comm.BTConnection;
 import lejos.nxt.comm.NXTSocket;\r
 import lejos.nxt.comm.USBConnection;\r
 \r
+/**\r
+ * \r
+ * Communicates with a ServerProxy on the PC to provide a\r
+ * ServerSocket interface applications on the NXT.\r
+ *\r
+ */\r
 public class NXTServerSocket {\r
 \r
        private int port;\r
index c555fb9..2770566 100644 (file)
@@ -1,5 +1,11 @@
 package lejos.nxt.comm;
 
+/**
+ * Low-level USB access.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class USB {
 
        private USB()
index 8bfaa63..7eb740c 100644 (file)
@@ -2,6 +2,12 @@ package lejos.nxt.comm;
 
 import java.io.*;
 
+/**
+ * Implements an InputStream over USB.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class USBInputStream extends InputStream {
        private byte buf[] = new byte[64];
        private int bufIdx = -1, bufSize = -1;
index e762b72..c8b2a87 100644 (file)
@@ -2,6 +2,12 @@ package lejos.nxt.comm;
 
 import java.io.*;
 
+/**
+ * Implements an OutputStream over USB.
+ * 
+ * @author Lawrie Griffiths
+ *
+ */
 public class USBOutputStream extends OutputStream {
 
        public void write(int b) {
@@ -10,3 +16,4 @@ public class USBOutputStream extends OutputStream {
                USB.usbWrite(bb, 1);
        }
 }
+
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteBattery.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteBattery.java
new file mode 100644 (file)
index 0000000..36bf7c3
--- /dev/null
@@ -0,0 +1,40 @@
+package lejos.nxt.remote;\r
+\r
+import lejos.nxt.comm.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * Battery readings from a remote NXT.\r
+ */\r
+public class RemoteBattery implements NXTProtocol {\r
+       \r
+       private NXTCommand nxtCommand;\r
+       \r
+       public RemoteBattery(NXTCommand nxtCommand) {\r
+               this.nxtCommand = nxtCommand;\r
+       }\r
+               \r
+       /**\r
+        * The NXT uses 6 batteries of 1500 mV each.\r
+        * @return Battery voltage in mV. ~9000 = full.\r
+        */\r
+       public int getVoltageMilliVolt() {\r
+               /*\r
+            * calculation from LEGO firmware\r
+            */\r
+               try {\r
+                       return nxtCommand.getBatteryLevel();\r
+               } catch (IOException ioe) {\r
+                       return 0;\r
+               }\r
+       }\r
+\r
+       /**\r
+        * The NXT uses 6 batteries of 1.5 V each.\r
+        * @return Battery voltage in Volt. ~9V = full.\r
+        */\r
+       public float getVoltage() {\r
+          return (float)(getVoltageMilliVolt() * 0.001);\r
+       }\r
+}\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteMotorPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteMotorPort.java
new file mode 100644 (file)
index 0000000..1b770a3
--- /dev/null
@@ -0,0 +1,66 @@
+package lejos.nxt.remote;\r
+\r
+import lejos.nxt.*;\r
+import lejos.nxt.comm.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * Supports a motor connected to a remote NXT\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class RemoteMotorPort implements NXTProtocol, TachoMotorPort\r
+{\r
+       private NXTCommand nxtCommand;\r
+       private int id;\r
+       \r
+       public RemoteMotorPort(NXTCommand nxtCommand, int id) {\r
+               this.nxtCommand = nxtCommand;\r
+               this.id = id;\r
+       }\r
+       \r
+       public void controlMotor(int power, int mode)\r
+       {\r
+               int lcpMode = 0, lcpPower = power, runState = 0;\r
+               \r
+               if (mode == 1) { // forward\r
+                       lcpMode = MOTORON;\r
+                       runState = MOTOR_RUN_STATE_RUNNING;\r
+               } else if (mode == 2) { // backward\r
+                       lcpMode = MOTORON;\r
+                       lcpPower = -lcpPower;\r
+                       runState = MOTOR_RUN_STATE_RUNNING;\r
+               } else if (mode == 3) { // stop\r
+                       lcpPower = 0;\r
+                       lcpMode = BRAKE;\r
+                       runState = MOTOR_RUN_STATE_IDLE;\r
+               } else { // float\r
+                       lcpPower = 0;\r
+                       lcpMode = 0;\r
+                       runState = MOTOR_RUN_STATE_IDLE;                        \r
+               }\r
+               try {\r
+                       nxtCommand.setOutputState((byte) id, (byte) lcpPower, lcpMode, REGULATION_MODE_IDLE, 0, runState, 0);\r
+               } catch (IOException ioe) {}    \r
+       }\r
+       \r
+       public  int getTachoCount()\r
+       {\r
+               try {\r
+                       return nxtCommand.getTachoCount(id);\r
+               } catch (IOException ioe) {\r
+                       return 0;\r
+               }\r
+       }\r
+       \r
+       public void resetTachoCount()\r
+       {\r
+               try {\r
+                       nxtCommand.resetMotorPosition(id, false);\r
+               } catch (IOException ioe) { }\r
+       }\r
+       \r
+       public void setPWMMode(int mode) {\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteNXT.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteNXT.java
new file mode 100644 (file)
index 0000000..175b07d
--- /dev/null
@@ -0,0 +1,122 @@
+package lejos.nxt.remote;\r
+\r
+import lejos.nxt.comm.*;\r
+import lejos.nxt.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * \r
+ * Provides an API similar to the leJOS API for accessing\r
+ * motors, sensors etc. on a remote NXT accessed over\r
+ * Bluetooth using LCP.\r
+ *\r
+ */\r
+public class RemoteNXT {\r
+       \r
+       private NXTCommand nxtCommand = new NXTCommand();\r
+       \r
+       public Motor A, B, C; \r
+       public RemoteBattery Battery;\r
+       public RemoteSensorPort S1, S2, S3, S4;\r
+       \r
+       public RemoteNXT(String name) throws IOException {\r
+               nxtCommand.open(name);\r
+               //nxtCommand.setVerify(true);\r
+               A =  new Motor(new RemoteMotorPort(nxtCommand,0));\r
+               A.regulateSpeed(false);\r
+               A.shutdown();\r
+               B = new Motor(new RemoteMotorPort(nxtCommand,1));\r
+               B.regulateSpeed(false);\r
+               B.shutdown();\r
+               C = new Motor(new RemoteMotorPort(nxtCommand,2));\r
+               C.regulateSpeed(false);\r
+               C.shutdown();\r
+               Battery = new RemoteBattery(nxtCommand);\r
+               S1 = new RemoteSensorPort(nxtCommand, 0);\r
+               S2 = new RemoteSensorPort(nxtCommand, 1);\r
+               S3 = new RemoteSensorPort(nxtCommand, 2);\r
+               S4 = new RemoteSensorPort(nxtCommand, 3);\r
+       }\r
+       \r
+       /**\r
+        * Get the  name of the remote brick\r
+        * \r
+        * @return name of remote brick\r
+        */\r
+       public String getBrickName()  {\r
+               try {\r
+                       DeviceInfo i = nxtCommand.getDeviceInfo();\r
+                       return i.NXTname;\r
+               } catch (IOException ioe) {\r
+                       return null;\r
+               }       \r
+       }\r
+       \r
+       /**\r
+        * Get the bluetooth address of the remorte device\r
+        * \r
+        * @return address with hex pairs separated by colons\r
+        */\r
+       public String getBluetoothAddress()  {\r
+               try {\r
+                       DeviceInfo i = nxtCommand.getDeviceInfo();\r
+                       return i.bluetoothAddress;\r
+               } catch (IOException ioe) {\r
+                       return null;\r
+               }       \r
+       }\r
+       \r
+       /**\r
+        * \r
+        * @return Free memory remaining in FLASH\r
+        */\r
+       public int getFlashMemory() {\r
+               try {\r
+                       DeviceInfo i = nxtCommand.getDeviceInfo();\r
+                       return i.freeFlash; \r
+               } catch (IOException ioe) {\r
+                       return 0;\r
+               }       \r
+       }\r
+       \r
+       /**\r
+        * Return Lego firmware vserion\r
+        * \r
+        * @return <major>.<minor>\r
+        */\r
+       public String getFirmwareVersion() {\r
+               try {\r
+                       FirmwareInfo f = nxtCommand.getFirmwareVersion();\r
+                       return f.firmwareVersion;\r
+               } catch (IOException ioe) {\r
+                       return null;\r
+               }               \r
+       }\r
+       \r
+       /**\r
+        * Return LCP protocol version\r
+        * \r
+        * @return <major>.<minor>\r
+        */\r
+       public String getProtocolVersion() {\r
+               try {\r
+                       FirmwareInfo f = nxtCommand.getFirmwareVersion();\r
+                       return f.protocolVersion;\r
+               } catch (IOException ioe) {\r
+                       return null;\r
+               }               \r
+       }\r
+       \r
+       /**\r
+        * Deletes all user programs and data in FLASH memory\r
+        * @return zero for success\r
+        */\r
+       public byte deleteFlashMemory() {\r
+               try {\r
+                       return nxtCommand.deleteUserFlash(); \r
+               } catch (IOException ioe) {\r
+                       return -1;\r
+               }\r
+       }\r
+}\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteSensorPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/RemoteSensorPort.java
new file mode 100644 (file)
index 0000000..e336311
--- /dev/null
@@ -0,0 +1,97 @@
+package lejos.nxt.remote;\r
+\r
+import lejos.nxt.*;\r
+import lejos.nxt.comm.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * Emulates a Sensor Port using LCP\r
+ */\r
+public class RemoteSensorPort implements NXTProtocol, ADSensorPort {\r
+       \r
+       private int id;\r
+       private int type, mode;\r
+       private NXTCommand nxtCommand;\r
+\r
+       public RemoteSensorPort(NXTCommand nxtCommand, int id) {\r
+               this.nxtCommand = nxtCommand;\r
+               this.id = id;\r
+       }\r
+       \r
+       public int getId() {\r
+               return id;\r
+       }\r
+       \r
+       public int getType() {\r
+               return type;\r
+       }\r
+       \r
+       public int getMode() {\r
+               return mode;\r
+       }\r
+       \r
+       public void setTypeAndMode(int type, int mode) {\r
+               this.type = type;\r
+               this.mode = mode;\r
+               try {\r
+                       nxtCommand.setInputMode(id, type, mode);\r
+               } catch (IOException ioe) {}\r
+       }\r
+       \r
+       public void setType(int type) {\r
+               this.type = type;\r
+               setTypeAndMode(type, mode);\r
+       }\r
+       \r
+       public void setMode(int mode) {\r
+               this.mode = mode;\r
+               setTypeAndMode(type, mode);\r
+       }\r
+       \r
+       /**\r
+        * Reads the boolean value of the sensor.\r
+        * @return Boolean value of sensor.\r
+        */\r
+       public boolean readBooleanValue() {\r
+               try {\r
+                       InputValues vals = nxtCommand.getInputValues(id);\r
+                       return (vals.rawADValue<600);                   \r
+               } catch (IOException ioe) {\r
+                       return false;\r
+               }\r
+       }\r
+       \r
+    /**\r
+     * Reads the raw value of the sensor.\r
+     * @return Raw sensor value. Range is device dependent.\r
+     */\r
+       public int readRawValue() {\r
+               try {\r
+                       InputValues vals = nxtCommand.getInputValues(id);\r
+                       return vals.rawADValue;\r
+               } catch (IOException ioe) {\r
+                       return 0;\r
+               }\r
+       }\r
+       \r
+       /**\r
+        * Returns value compatible with Lego firmware. \r
+        */\r
+       public int readValue()\r
+         {\r
+           int rawValue = readRawValue();\r
+           \r
+           if (mode == MODE_BOOLEAN)\r
+           {\r
+               return (rawValue < 600 ? 1 : 0);\r
+           }\r
+           \r
+           if (mode == MODE_PCTFULLSCALE)\r
+           {\r
+               return ((1023 - rawValue) * 100/ 1023);\r
+           }\r
+           \r
+           return rawValue;\r
+       }\r
+}\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/package.html b/nxtOSEK/lejos_nxj/src/java/classes/lejos/nxt/remote/package.html
new file mode 100644 (file)
index 0000000..87d32a7
--- /dev/null
@@ -0,0 +1 @@
+<body>Remote NXT access over Bluetooth</body>
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLC.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLC.java
new file mode 100644 (file)
index 0000000..669a60a
--- /dev/null
@@ -0,0 +1,129 @@
+package lejos.rcxcomm;\r
+\r
+import lejos.nxt.*;\r
+\r
+/**\r
+ * Emulates RCX LLC class using the RCXLink class.\r
+ **/\r
+public class LLC {\r
+  private static RCXLink link;\r
+  private static byte[] data = new byte[1];\r
+  \r
+  private LLC() {\r
+  }\r
+\r
+  /** \r
+   * Initialize LLC and set port\r
+   **/\r
+  public static void init(SensorPort port){\r
+         link = new RCXLink(port);\r
+         link.setDefaultSpeed();\r
+         link.flush();\r
+  }\r
+  \r
+  /** \r
+   * Initialize LLC an\r
+   **/\r
+  public static void init() {\r
+         link.setDefaultSpeed();\r
+         link.flush();\r
+  }\r
+  \r
+  /** \r
+   * Set sensor port\r
+   **/\r
+  public static void setPort(SensorPort port) {\r
+         link = new RCXLink(port);\r
+  }\r
+\r
+  /**\r
+   * read a single byte, if available\r
+   * @return the byte read, or -1 if no byte is available\r
+   **/\r
+  public static int read() {\r
+         int numBytes = link.bytesAvailable();   \r
+         if (numBytes == 0) return -1;\r
+         data[0] = 0;\r
+         link.readBytes(data);\r
+         return (data[0] & 0xFF);\r
+  }\r
+\r
+  /**\r
+   * Write raw bytes\r
+   * \r
+   * @param buf the bytes to write\r
+   * @param len the number of bytes\r
+   */\r
+  private static void write(byte [] buf, int len) {\r
+         link.sendBytes(buf, len);\r
+  }\r
+\r
+  /**\r
+   * Indicate whether the last send is still active\r
+   * @return true if still sending, else false\r
+   **/\r
+  public static boolean isSending() {\r
+         return false;\r
+  }\r
+\r
+  /**\r
+   * Return the error status of the last send\r
+   * @return true if still sending, else false\r
+   **/\r
+  public static boolean isSendError() {\r
+         return false;\r
+  }\r
+\r
+  /**\r
+   * Send a number of bytes and wait for completion of transmission\r
+   * @param buf the array of bytes to send\r
+   * @param len the number of bytes to send\r
+   * @return true if the send is successful, else false\r
+   **/\r
+  public static boolean sendBytes(byte [] buf, int len) {\r
+         LLC.write(buf, len);\r
+         return true;\r
+  }\r
+\r
+  /**\r
+   * wait a little while for a byte to become available\r
+   * @return the byte received, or -1 if no byte available\r
+   **/\r
+  public static int receive() {\r
+         int r;\r
+         for(int i=0;i<10;i++) {\r
+                 r = LLC.read();\r
+                 if (r >= 0) return r; \r
+                 Thread.yield();\r
+         }\r
+         return -1;\r
+  }\r
+\r
+  /**\r
+   * Sets long range transmision.\r
+   */\r
+  public static void setRangeLong()\r
+  {\r
+         link.setRangeLong();  \r
+  }\r
+\r
+  /**\r
+   * Sets short range transmision.\r
+   */\r
+  public static void setRangeShort()\r
+  {\r
+         link.setRangeLong();    \r
+  }\r
+  \r
+  /**\r
+   * Return the RCXLink object associated with LLC\r
+   * \r
+   * @return the RCXLink used\r
+   */\r
+  public static RCXLink getLink() {\r
+         return link;\r
+  }\r
+}\r
+\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCHandler.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCHandler.java
new file mode 100644 (file)
index 0000000..4db1a9d
--- /dev/null
@@ -0,0 +1,106 @@
+package lejos.rcxcomm;\r
+\r
+import lejos.nxt.*;\r
+/**\r
+ * Packet handler than implement the LLC packet protocol.\r
+ * Deals with packets and acks. \r
+ * Supports independent streams of data in both directions.\r
+ **/\r
+public class LLCHandler extends PacketHandler {\r
+\r
+  private byte op;\r
+  private boolean gotAck = false;\r
+  private boolean gotPacket = false;\r
+  private byte [] inPacket = new byte [3];\r
+  private byte [] ackPacket = new byte [2];\r
+  private int inPacketLength;\r
+\r
+  public LLCHandler(SensorPort port) {\r
+    LLC.init(port);\r
+  }\r
+\r
+  /** Send a packet.\r
+   * @param packet the bytes to send\r
+   * @param len the number of bytes to send\r
+   * @return true if the send was successful, else false\r
+   */\r
+  public boolean sendPacket(byte [] packet, int len) {\r
+    synchronized (this) {\r
+      boolean res = LLC.sendBytes(packet, len);\r
+      try {Thread.sleep(100);} catch (InterruptedException e) {}\r
+      return res;\r
+    }\r
+  }  \r
+\r
+  /** Receive a packet.\r
+   * @param buffer the buffer to receive the packet into\r
+   * @return the number of bytes received\r
+   */\r
+  public int receivePacket(byte [] buffer) {\r
+    gotPacket = false;\r
+    for(int i=0;i<inPacketLength;i++) buffer[i] = inPacket[i];\r
+    return inPacketLength;\r
+  }\r
+\r
+  /** Receive an ack.\r
+   * @param buffer the buffer to receive the ack into\r
+   * @return the number of bytes received\r
+   */\r
+  public int receiveAck(byte [] buffer) {\r
+    gotAck = false;\r
+    for(int i=0;i<2;i++) buffer[i] = ackPacket[i];\r
+    return 2;\r
+  }\r
+\r
+  /**\r
+   * Search for the next packet or ack and read it into the relevant buffer\r
+   * and set the relevant flag to say we've got it. \r
+   **/\r
+  private void getOp() {\r
+    for(;;) {\r
+      int r = LLC.read();\r
+      if (r < 0) return;\r
+      op = (byte) r;\r
+      if ((op & 0xf7) == 0xf1) {\r
+        gotPacket = true;\r
+        inPacket[0] = op;\r
+        int extra = (op & 0x7) + 1; // Add 1 for the checksum\r
+        for(int i=0;i<extra;i++) inPacket[i+1] = (byte) LLC.receive();\r
+        inPacketLength = extra+1;\r
+        return;\r
+      }\r
+      if ((op & 0xf7) == 0xf0) {\r
+        gotAck = true;\r
+        ackPacket[0] = op;\r
+        ackPacket[1] = (byte) LLC.receive();\r
+        return;\r
+      }\r
+    }\r
+  }\r
+\r
+  /**\r
+   * Check if a packet is available\r
+   * @return true if a Packet is available, else false\r
+   */\r
+  public boolean isPacketAvailable() {\r
+    synchronized (this) {\r
+      if (gotPacket) return true;\r
+      getOp();\r
+      return gotPacket;\r
+    }\r
+  }\r
\r
+  /**\r
+   * Check if an Ack is available\r
+   * @return true if ack is available, else false\r
+   */\r
+  public boolean isAckAvailable() {\r
+    synchronized (this) {\r
+      if (gotAck) return true;\r
+      getOp();\r
+      return gotAck;\r
+    }\r
+  }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCReliableHandler.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/LLCReliableHandler.java
new file mode 100644 (file)
index 0000000..6c03a00
--- /dev/null
@@ -0,0 +1,102 @@
+package lejos.rcxcomm;\r
+\r
+/**\r
+ * A Packet handler that guarantees reliable delivery using checksums,\r
+ * acks, and a single bit sequence number.\r
+ **/ \r
+public class LLCReliableHandler extends PacketHandler {\r
+  private byte [] inPacket = new byte[3];\r
+  private byte [] outPacket = new byte[3];\r
+  private byte [] inAck = new byte[2];\r
+  private byte [] outAck = new byte [2];\r
+  private int inPacketLength = 0;\r
+\r
+  private boolean sequence = false, receiveSequence = false;\r
+\r
+  public LLCReliableHandler(PacketHandler handler) {\r
+    super(handler);\r
+  }\r
+\r
+  /**\r
+   * Reset sequence numbers.\r
+   **/\r
+  public void reset() {\r
+    sequence = false;\r
+    receiveSequence = false;\r
+  }\r
+\r
+  /** Send a packet.\r
+   * @param packet the bytes to send\r
+   * @param len the number of bytes to send\r
+   * @return true if send successful, else false\r
+   */\r
+  public boolean sendPacket(byte [] packet, int len) {\r
+    byte b = (byte) (0xf0 + len); // Send byte\r
+    if (sequence) b |= 8;\r
+    outPacket[0] = b;\r
+    int sum = b;\r
+    for(int i=0; i<len; i++) {\r
+      sum += packet[i];\r
+      outPacket[i+1] = packet[i];\r
+    }\r
+    outPacket[len+1] = (byte) sum;\r
+\r
+    for(int j=0;;j++) {\r
+      int sendTime = (int)System.currentTimeMillis();\r
+      lowerHandler.sendPacket(outPacket,len+2);\r
+      do {\r
+        Thread.yield();\r
+      } while (!(lowerHandler.isAckAvailable()) && \r
+               (int)System.currentTimeMillis() < sendTime+500);\r
+      if (lowerHandler.isAckAvailable()) {\r
+        int retLen = lowerHandler.receiveAck(inAck);\r
+        if (retLen == 2 && \r
+            inAck[0] == (byte) (b & 0xf8) &&\r
+            inAck[0] == inAck[1]) {\r
+          sequence = !sequence;\r
+          return true; \r
+        }\r
+      }\r
+    }\r
+  }\r
+\r
+  /** Receive a packet.\r
+   * @param buffer the buffer to receive the packet into\r
+   * @return the number of bytes received\r
+   */\r
+  public int receivePacket(byte [] buffer) {\r
+    int temp = inPacketLength-2;\r
+    for(int i=0;i<temp;i++) buffer[i] = inPacket[i+1];\r
+    inPacketLength = 0;\r
+    return temp;\r
+  }\r
+\r
+  /** Check if a packet is available.\r
+   * @return true if a packet is available, else false\r
+   */\r
+  public boolean isPacketAvailable() {\r
+    if (inPacketLength > 0) return true;\r
+    while (lowerHandler.isPacketAvailable()) {\r
+      int len = lowerHandler.receivePacket(inPacket);\r
+      int sum = 0;\r
+      for(int i=0; i<len-1; i++) sum += inPacket[i];\r
+      if ((byte) sum == inPacket[len-1]) {\r
+        outAck[0] = (byte) (inPacket[0] & 0xf8);\r
+        outAck[1] = outAck[0];\r
+        lowerHandler.sendPacket(outAck, 2);\r
+      } else {\r
+        continue;\r
+      }\r
+\r
+      // Check the sequence\r
+      if ((inPacket[0] & 0x8) == (receiveSequence ? 0x8 : 0x0)) {\r
+        inPacketLength = len;\r
+        receiveSequence = !receiveSequence;\r
+        return true;\r
+      }\r
+    }\r
+    return false;\r
+  }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Opcode.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Opcode.java
new file mode 100644 (file)
index 0000000..ff4cb18
--- /dev/null
@@ -0,0 +1,128 @@
+package lejos.rcxcomm;\r
+\r
+/**\r
+ * Opcode constants.\r
+ */\r
+public interface Opcode\r
+{\r
+  public static final byte OPCODE_MASK = (byte)0xf7;\r
+\r
+  public static final byte OPCODE_ALIVE = (byte)0x10;\r
+  public static final byte OPCODE_GET_VALUE = (byte)0x12;\r
+  public static final byte OPCODE_SET_MOTOR_POWER = (byte)0x13;\r
+  public static final byte OPCODE_SET_VARIABLE = (byte)0x14;\r
+  public static final byte OPCODE_GET_VERSIONS = (byte)0x15;\r
+  public static final byte OPCODE_SET_MOTOR_DIRECTION_REPLY = (byte)0x16;\r
+  public static final byte OPCODE_CALL_SUBROUTINE = (byte)0x17;\r
+\r
+  public static final byte OPCODE_GET_MEMORY_MAP = (byte)0x20;\r
+  public static final byte OPCODE_SET_MOTOR_ON_OFF = (byte)0x21;\r
+  public static final byte OPCODE_SET_TIME = (byte)0x22;\r
+  public static final byte OPCODE_PLAY_TONE = (byte)0x23;\r
+  public static final byte OPCODE_ADD_TO_VARIABLE = (byte)0x24;\r
+  public static final byte OPCODE_START_TASK_DOWNLOAD = (byte)0x25;\r
+  public static final byte OPCODE_CLEAR_SENSOR_VALUE_REPLY = (byte)0x26;\r
+  public static final byte OPCODE_BRANCH_ALWAYS_NEAR = (byte)0x27;\r
+\r
+  public static final byte OPCODE_GET_BATTERY_POWER = (byte)0x30;\r
+  public static final byte OPCODE_SET_TRANSMITTER_RANGE = (byte)0x31;\r
+  public static final byte OPCODE_SET_SENSOR_TYPE = (byte)0x32;\r
+  public static final byte OPCODE_SET_DISPLAY = (byte)0x33;\r
+  public static final byte OPCODE_SUBTRACT_FROM_VARIABLE = (byte)0x34;\r
+  public static final byte OPCODE_START_SUBROUTINE_DOWNLOAD = (byte)0x35;\r
+  public static final byte OPCODE_DELETE_SUBROUTINE_REPLY = (byte)0x36;\r
+  public static final byte OPCODE_DECREMENT_LOOP_COUNTER_NEAR = (byte)0x37;\r
+\r
+  public static final byte OPCODE_DELETE_ALL_TASKS = (byte)0x40;\r
+  public static final byte OPCODE_SET_SENSOR_MODE = (byte)0x42;\r
+  public static final byte OPCODE_WAIT = (byte)0x43;\r
+  public static final byte OPCODE_DIVIDE_VARIABLE = (byte)0x44;\r
+  public static final byte OPCODE_TRANSFER_DATA = (byte)0x45;\r
+  public static final byte OPCODE_SET_POWER_DOWN_DELAY_REPLY = (byte)0x46;\r
+\r
+  public static final byte OPCODE_STOP_ALL_TASKS = (byte)0x50;\r
+  public static final byte OPCODE_SET_DATALOG_SIZE = (byte)0x52;\r
+  public static final byte OPCODE_UNLOCK_FIRMWARE_REPLY = (byte)0x52;\r
+  public static final byte OPCODE_UPLOAD_DATALOG_REPLY = (byte)0x53;\r
+  public static final byte OPCODE_MULTIPLY_VARIABLE = (byte)0x54;\r
+  public static final byte OPCODE_CLEAR_TIMER_REPLY = (byte)0x56;\r
+\r
+  public static final byte OPCODE_POWER_OFF = (byte)0x60;\r
+  public static final byte OPCODE_DELETE_TASK = (byte)0x61;\r
+  public static final byte OPCODE_DATALOG_NEXT = (byte)0x62;\r
+  public static final byte OPCODE_OR_VARIABLE_REPLY = (byte)0x63;\r
+  public static final byte OPCODE_SIGN_VARIABLE = (byte)0x64;\r
+  public static final byte OPCODE_DELETE_FIRMWARE = (byte)0x65;\r
+  public static final byte OPCODE_SET_PROGRAM_NUMBER_REPLY = (byte)0x66;\r
+\r
+  public static final byte OPCODE_DELETE_ALL_SUBROUTINES = (byte)0x70;\r
+  public static final byte OPCODE_START_TASK = (byte)0x71;\r
+  public static final byte OPCODE_BRANCH_ALWAYS_FAR = (byte)0x72;\r
+  public static final byte OPCODE_AND_VARIABLE_REPLY = (byte)0x73;\r
+  public static final byte OPCODE_ABSOLUTE_VALUE = (byte)0x74;\r
+  public static final byte OPCODE_START_FIRMWARE_DOWNLOAD = (byte)0x75;\r
+  public static final byte OPCODE_STOP_TASK_REPLY = (byte)0x76;\r
+\r
+  public static final byte OPCODE_STOP_TASK = (byte)0x81;\r
+  public static final byte OPCODE_START_FIRMWARE_DOWNLOAD_REPLY = (byte)0x82;\r
+  public static final byte OPCODE_SET_LOOP_COUNTER = (byte)0x82;\r
+  public static final byte OPCODE_ABSOLUTE_VALUE_REPLY = (byte)0x83;\r
+  public static final byte OPCODE_AND_VARIABLE = (byte)0x84;\r
+  public static final byte OPCODE_TEST_AND_BRANCH_NEAR = (byte)0x85;\r
+  public static final byte OPCODE_START_TASK_REPLY = (byte)0x86;\r
+  public static final byte OPCODE_DELETE_ALL_SUBROUTINES_REPLY = (byte)0x87;\r
+\r
+  public static final byte OPCODE_CLEAR_MESSAGE = (byte)0x90;\r
+  public static final byte OPCODE_SET_PROGRAM_NUMBER = (byte)0x91;\r
+  public static final byte OPCODE_DELETE_FIRMWARE_REPLY = (byte)0x92;\r
+  public static final byte OPCODE_DECREMENT_LOOP_COUNTER_FAR = (byte)0x92;\r
+  public static final byte OPCODE_SIGN_VARIABLE_REPLY = (byte)0x93;\r
+  public static final byte OPCODE_OR_VARIABLE = (byte)0x94;\r
+  public static final byte OPCODE_DATALOG_NEXT_REPLY = (byte)0x95;\r
+  public static final byte OPCODE_TEST_AND_BRANCH_FAR = (byte)0x95;\r
+  public static final byte OPCODE_DELETE_TASK_REPLY = (byte)0x96;\r
+  public static final byte OPCODE_POWER_OFF_REPLY = (byte)0x97;\r
+\r
+  public static final byte OPCODE_CLEAR_TIMER = (byte)0xa1;\r
+  public static final byte OPCODE_MULTIPLY_VARIABLE_REPLY = (byte)0xa3;\r
+  public static final byte OPCODE_UPLOAD_DATALOG = (byte)0xa4;\r
+  public static final byte OPCODE_UNLOCK_FIRMWARE = (byte)0xa5;\r
+  public static final byte OPCODE_SET_DATALOG_SIZE_REPLY = (byte)0xa5;\r
+  public static final byte OPCODE_PLAY_SOUND_REPLY = (byte)0xa6;\r
+  public static final byte OPCODE_STOP_ALL_TASKS_REPLY = (byte)0xa7;\r
+\r
+  public static final byte OPCODE_SET_POWER_DOWN_DELAY = (byte)0xb1;\r
+  public static final byte OPCODE_TRANSFER_DATA_REPLY = (byte)0xb2;\r
+  public static final byte OPCODE_SEND_MESSAGE = (byte)0xb2;\r
+  public static final byte OPCODE_DIVIDE_VARIABLE_REPLY = (byte)0xb3;\r
+  public static final byte OPCODE_SET_SENSOR_MODE_REPLY = (byte)0xb5;\r
+  public static final byte OPCODE_DELETE_ALL_TASKS_REPLY = (byte)0xb7;\r
+\r
+  public static final byte OPCODE_DELETE_SUBROUTINE = (byte)0xc1;\r
+  public static final byte OPCODE_START_SUBROUTINE_DOWNLOAD_REPLY = (byte)0xc2;\r
+  public static final byte OPCODE_SUBTRACT_FROM_VARIABLE_REPLY = (byte)0xc3;\r
+  public static final byte OPCODE_SET_DISPLAY_REPLY = (byte)0xc4;\r
+  public static final byte OPCODE_SET_SENSOR_TYPE_REPLY = (byte)0xc5;\r
+  public static final byte OPCODE_SET_TRANSMITTER_RANGE_REPLY = (byte)0xc6;\r
+  public static final byte OPCODE_GET_BATTERY_POWER_REPLY = (byte)0xc7;\r
+\r
+  public static final byte OPCODE_CLEAR_SENSOR_VALUE = (byte)0xd1;\r
+  public static final byte OPCODE_START_TASK_DOWNLOAD_REPLY = (byte)0xd2;\r
+  public static final byte OPCODE_REMOTE_COMMAND = (byte)0xd2;\r
+  public static final byte OPCODE_ADD_TO_VARIABLE_REPLY = (byte)0xd3;\r
+  public static final byte OPCODE_PLAY_TONE_REPLY = (byte)0xd4;\r
+  public static final byte OPCODE_SET_TIME_REPLY = (byte)0xd5;\r
+  public static final byte OPCODE_SET_MOTOR_ON_OFF_REPLY = (byte)0xd6;\r
+  public static final byte OPCODE_GET_MEMORY_MAP_REPLY = (byte)0xd7;\r
+\r
+  public static final byte OPCODE_SET_MOTOR_DIRECTION = (byte)0xe1;\r
+  public static final byte OPCODE_GET_VERSIONS_REPLY = (byte)0xe2;\r
+  public static final byte OPCODE_SET_VARIABLE_REPLY = (byte)0xe3;\r
+  public static final byte OPCODE_SET_MOTOR_POWER_REPLY = (byte)0xe4;\r
+  public static final byte OPCODE_GET_VALUE_REPLY = (byte)0xe5;\r
+  public static final byte OPCODE_ALIVE_REPLY = (byte)0xe7;\r
+\r
+  public static final byte OPCODE_SET_MESSAGE = (byte)0xf7;\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/PacketHandler.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/PacketHandler.java
new file mode 100644 (file)
index 0000000..677811f
--- /dev/null
@@ -0,0 +1,85 @@
+package lejos.rcxcomm;\r
+\r
+/**\r
+ * Abstract packet handler. \r
+ * Implementations must include sendPacket, receivePacket and\r
+ * isPacketAvailable(). The other methods are optional.\r
+ **/\r
+public abstract class PacketHandler {\r
+  protected PacketHandler lowerHandler;\r
+\r
+  public PacketHandler() {\r
+  }\r
+\r
+  public PacketHandler(PacketHandler handler) {\r
+    lowerHandler = handler;\r
+  }\r
+   \r
+  /**\r
+   * Set the source and destination for this connection.\r
+   **/ \r
+  public void open(byte source, byte destination) {\r
+  }\r
+\r
+  /**\r
+   * Reset sequence numbers for this handler\r
+   **/\r
+  public void reset() {\r
+  }\r
+\r
+  /**\r
+   * Set or unset the listen flag to keep a PC serial tower alive\r
+   * @param listen true to set listen mode, else false\r
+   **/\r
+  public void setListen(boolean listen) {\r
+    lowerHandler.setListen(listen);\r
+  }\r
+\r
+  /** Send a packet.\r
+   * @param packet the bytes to send\r
+   * @param len the number of bytes to send\r
+   * @return true if the send was successful, else false\r
+   */\r
+  public abstract boolean sendPacket(byte [] packet, int len);\r
+\r
+  /** Receive a packet.\r
+   * @param buffer the buffer to receive the packet into\r
+   * @return the number of bytes received\r
+   */\r
+  public abstract int receivePacket(byte [] buffer);\r
+\r
+  public int receiveAck(byte [] buffer) {\r
+    return 0;\r
+  }\r
+\r
+  /**\r
+   * Check if a packet is available\r
+   * @return true if a Packet is available, else false\r
+   */\r
+  public abstract boolean isPacketAvailable();\r
+\r
+  /**\r
+   * Check if an ack is available\r
+   * @return true if a ack is available, else false\r
+   */\r
+  public boolean isAckAvailable() {\r
+    return false;\r
+  }\r
+\r
+  /**\r
+   * Close this packet handler and all lower layers.\r
+   */\r
+  public void close() {\r
+    lowerHandler.close();\r
+  }\r
+\r
+  /**\r
+   * Get the last error.\r
+   * @return the error number, or zero for success\r
+   **/\r
+  public int getError() {\r
+    return lowerHandler.getError();\r
+  }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXAbstractPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXAbstractPort.java
new file mode 100644 (file)
index 0000000..df679b6
--- /dev/null
@@ -0,0 +1,200 @@
+package lejos.rcxcomm;\r
+\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.io.OutputStream;\r
+\r
+/** RCXAbstractPort provides an interface similar to java.net.Socket\r
+ * Adapted from original code created by the LEGO3 Team at DTU-IAU\r
+ * RCXAbstractPort implements input and output stream handling and input\r
+ * buffering. It uses a packet handler for sending and receivng packets.\r
+ * This version is abstract because it has no packet handler defined.\r
+ * Specific versions of RCXAbstractPort override the constructor and\r
+ * set up the packet handler to use a specific protocol stack. \r
+ * @author Brian Bagnall\r
+ * @author Lawrie Griffiths\r
+ */\r
+public abstract class RCXAbstractPort {\r
+\r
+   private boolean portOpen = true;\r
+   private Listener listener;\r
+   private int timeOut = 0;\r
+\r
+   private RCXInputStream rcxin;\r
+   private RCXOutputStream rcxout;\r
+   protected PacketHandler packetHandler;\r
+\r
+   /**\r
+    * Constructor for the RCXAbstractPort.\r
+    * Opens the port, and sets the protocol packet handler.\r
+    * @param handler the packet handler\r
+    */\r
+   public RCXAbstractPort(PacketHandler handler) throws IOException {\r
+      packetHandler = handler;\r
+      rcxin = new RCXInputStream(this);\r
+      rcxout = new RCXOutputStream(packetHandler);\r
+      listener = new Listener();\r
+      listener.setDaemon(true);\r
+      listener.start();\r
+   }\r
+\r
+   /** Returns an input stream for this RCXPort.\r
+    * @return an input stream for reading bytes from this RCXPort.\r
+    */\r
+   public InputStream getInputStream() {\r
+      return (InputStream) rcxin;\r
+   }\r
+\r
+   /** Returns an output stream for this RCXPort.\r
+    * @return an output stream for writing bytes to this RCXPort.\r
+    */\r
+   public OutputStream getOutputStream() {\r
+      return (OutputStream) rcxout;\r
+   }\r
+\r
+   /**\r
+    * Resets sequence numbers for this port \r
+    */\r
+   public void reset() {\r
+     packetHandler.reset();\r
+   }\r
+\r
+   /** Closes this RCXPort, stopping the Listener thread.\r
+    */\r
+   public void close() {\r
+      portOpen = false;\r
+   }\r
+\r
+   /** Getter for property timeOut.\r
+    * @return Value of property timeOut.\r
+    */\r
+   public int getTimeOut() {\r
+      return timeOut;\r
+   }\r
+\r
+   /** Setter for property timeOut.\r
+    * @param timeOut New value of property timeOut.\r
+    */\r
+   public void setTimeOut(int timeOut) {\r
+      this.timeOut = timeOut;\r
+   }\r
+\r
+   private byte [] inPacket = new byte[2];\r
+\r
+   /** Listener class runs a thread that reads and buffers bytes.\r
+    * Allows a maximum of two bytes in a packet.\r
+    */\r
+   private class Listener extends Thread {\r
+      public void run() {\r
+         while (portOpen) {\r
+            if (packetHandler.isPacketAvailable()) {\r
+              int r = packetHandler.receivePacket(inPacket);\r
+              for(int i=0;i<r;i++) rcxin.add(inPacket[i]);\r
+            }\r
+            try {\r
+               Thread.sleep(10);\r
+            } catch (InterruptedException iE) { }\r
+         }\r
+      }\r
+   }\r
+\r
+   /**\r
+    * Hidden inner class extending InputStream. \r
+    */\r
+   private class RCXInputStream extends InputStream {\r
+\r
+      /** The default buffer size for the InputStream\r
+       */\r
+      public static final int bufferSize = 32;\r
+      private byte[] buffer = new byte[bufferSize];\r
+      private int current = 0, last = 0;\r
+      private RCXAbstractPort dataPort;\r
+      private IOException ioe = new IOException();\r
+\r
+      /** Creates new RCXInputStream\r
+      * @param port The RCXAbstractPort which should deliver data for to this InputStream\r
+      */\r
+      public RCXInputStream(RCXAbstractPort port) {\r
+         dataPort = port;\r
+      }\r
+\r
+      /** Checks if there is any data avaliable on the InputStream\r
+      * @throws IOException is never thrown\r
+      * @return The number of bytes avaliable on the InputStream\r
+      */\r
+      public int available() throws IOException {\r
+         if (last < current)\r
+            return bufferSize-(current-last);\r
+         else\r
+            return last-current;\r
+      }\r
+\r
+      /** Read a single byte from the InputStream. Returns value as\r
+      * an int value between 0 and 255.\r
+      * @throws IOException is thrown when the read is timed out\r
+      * @return A data byte from the stream\r
+      */\r
+      public synchronized int read() throws IOException {\r
+         int time1 = (int)System.currentTimeMillis();\r
+         int timeOut = dataPort.getTimeOut();\r
+         while (available() == 0) {\r
+            if (timeOut != 0 && ((int)System.currentTimeMillis()-time1 > timeOut)) {\r
+                  throw ioe;\r
+            }\r
+            try {\r
+               Thread.sleep(10);\r
+            } catch (InterruptedException iE) { }\r
+         }\r
+\r
+         synchronized (buffer) {\r
+            int b = buffer[current++];\r
+            if (current == bufferSize)\r
+               current = 0;\r
+\r
+            if(b < 0) b = b + 256;\r
+            return b;\r
+         }\r
+      }\r
+\r
+      /** Add a data byte to the stream\r
+      * This method should only be called by the RCXPort that\r
+      * created the RCXInputStream\r
+      * @param b The data byte\r
+      */\r
+      void add(byte b) {\r
+         synchronized (buffer) {\r
+            buffer[last++] = b;\r
+            if (last == bufferSize)\r
+               last = 0;\r
+         }\r
+      }\r
+   }\r
+\r
+   /** Hidden inner class extending OutputStream. \r
+    */\r
+   private class RCXOutputStream extends OutputStream {\r
+\r
+      private PacketHandler packetHandler;\r
+      private IOException ioe = new IOException();\r
+\r
+      /** Creates new RCXOutputStream\r
+      * @param handler the packet handler used to send data\r
+      */\r
+      public RCXOutputStream(PacketHandler handler) {\r
+         packetHandler = handler;\r
+      }\r
+\r
+      private byte [] bytePacket = new byte[1];\r
+\r
+      /** Write a byte to the OutputStream.\r
+      * @param b The byte.\r
+      * @throws IOException if the byte could not be written to the stream\r
+      */\r
+      public synchronized void write(int b) throws IOException {\r
+         bytePacket[0] = (byte) b;\r
+         if (!packetHandler.sendPacket(bytePacket,1)) throw ioe;\r
+      }\r
+   }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXPort.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/RCXPort.java
new file mode 100644 (file)
index 0000000..ad78a3a
--- /dev/null
@@ -0,0 +1,24 @@
+package lejos.rcxcomm;\r
+\r
+import lejos.nxt.*;\r
+import java.io.IOException;\r
+\r
+/** RCXPort provides an interface similar to java.net.Socket\r
+ * Adapted from original code created by the LEGO3 Team at DTU-IAU\r
+ * Uses Reliable low-level comms for communication.\r
+ * This is a two-layer comms stack consisting of LLCReliableHandler\r
+ * and LLCHandler. It ensures that all packets get through.\r
+ * Communication will stop when the IR tower is not in view or in range,\r
+ * and will resume when it comes back into view.\r
+ * RCXPort does not support addressing - it broadcasts messages to all devices.\r
+ * @author Brian Bagnall\r
+ * @author Lawrie Griffiths\r
+ */\r
+public class RCXPort extends RCXAbstractPort {\r
+  public RCXPort(SensorPort port) throws IOException {\r
+    super((PacketHandler) new LLCReliableHandler(\r
+                       (PacketHandler) new LLCHandler(port)));\r
+  }\r
+}\r
+\r
+\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Serial.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/Serial.java
new file mode 100644 (file)
index 0000000..2709ca1
--- /dev/null
@@ -0,0 +1,251 @@
+package lejos.rcxcomm;\r
+\r
+import lejos.nxt.*;\r
+\r
+/**\r
+ * Emulation of the RCX Serial class with mindstorms NRLINK adapter.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class Serial {\r
+       private static RCXLink link;\r
+       private static byte[] buf1 = new byte[1];\r
+       private static byte[] packet = new byte[32];\r
+       private static boolean gotOpcode = false;\r
+       private static boolean gotPacket = false;\r
+       private static boolean skipping = false;\r
+       private static int paramsRead;\r
+       private static int paramsRequired;\r
+       private static int checkSum;\r
+       private static byte lastOpcode = 0;\r
+               \r
+       private Serial() {              \r
+       }\r
+       \r
+       /**\r
+        * Set the sensor port\r
+        * \r
+        * @param port the sensor port the link is connected to\r
+        */\r
+       public static void setPort(SensorPort port) {\r
+               link = new RCXLink(port);\r
+               link.setDefaultSpeed();\r
+               link.flush();\r
+       }\r
+\r
+       /**\r
+        * Read an assembled packet. NRLink only seems to read\r
+        * one byte at a time reliably, and does not\r
+        * return zero bytes. \r
+        * \r
+        * @param aBuffer the buffer to return the packet into\r
+        * @return the number of bytes in the packet\r
+        */\r
+       public static int readPacket (byte[] aBuffer) {\r
+               if (!gotPacket) return 0;\r
+               gotPacket = false;\r
+               gotOpcode = false;\r
+               for(int i=0;i<paramsRequired+1;i++) aBuffer[i] = packet[i];\r
+               return paramsRequired+1;\r
+       }\r
+       \r
+       /**\r
+        * Test if a packet is available\r
+        * \r
+        * @return true iff a packiet is available\r
+        */\r
+       public static boolean isPacketAvailable() {\r
+               if (gotPacket) return true;\r
+               \r
+               int available = link.bytesAvailable();\r
+               \r
+               // After a failure, skip to next header\r
+               \r
+               if (skipping) {\r
+                       while(available> 0) {\r
+                               readByte(buf1);\r
+                               //LCD.drawInt(buf1[0] & 0xFF, 4, 8, 7);\r
+                               //LCD.refresh();\r
+                               try {Thread.sleep(50);} catch (InterruptedException e) {}\r
+                               available--;\r
+                               if (headerByte(buf1[0])) {\r
+                                       skipping = false;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if (skipping) return false;\r
+                       gotOpcode = false;\r
+                       available = link.bytesAvailable();\r
+               }\r
+               \r
+               // If we don't have the opcode yet, skip header bytes\r
+               \r
+               if (!gotOpcode) {\r
+                       byte op = 0;\r
+                       \r
+                       // skip header bytes, and check complement \r
+                       // for candidate opcode.\r
+                       \r
+                       while (available > 1) { // Need 2 bytes\r
+                               readByte(buf1);\r
+                               available--;\r
+                               op = buf1[0];\r
+                               if (!headerByte(op)) {\r
+                                       readByte(buf1);\r
+                                       available--;\r
+                                       if (complement(buf1[0], op)) {\r
+                                               gotOpcode = true;\r
+                                               break;\r
+                                       } else {                                        \r
+                                               // Skip to header if complement check failed                            \r
+                                               skipping = true;\r
+                                               return false;\r
+                                       }\r
+                               }\r
+                       }\r
+                       \r
+                       // If we have the op code, calculate number of parameters\r
+                       // and start the checksum\r
+                       \r
+                       if (!gotOpcode) return false;                   \r
+                       available = link.bytesAvailable();\r
+                       packet[0] = op;\r
+                       int pq = op & 0x7;\r
+                       paramsRequired = 0;\r
+                       if (pq > 1 && pq < 6) paramsRequired = pq; \r
+                       if (pq == 7) paramsRequired = 1;\r
+                       paramsRead = 0;\r
+                       checkSum = (op & 0xFF);\r
+                       //LCD.drawInt(opCode & 0xFF,4, 0,6);\r
+                       //LCD.drawInt(paramsRequired,4, 0,7);\r
+                       //LCD.refresh();\r
+                       //try {Thread.sleep(500);} catch (InterruptedException e) {}\r
+               }\r
+               \r
+               // If we don't have all the parameters, get them\r
+               // and check the complements\r
+               \r
+        if (paramsRead < paramsRequired) {\r
+               while (available > 1) {\r
+                       readByte(buf1);\r
+                       available--;\r
+                       byte param = buf1[0];\r
+                       readByte(buf1);\r
+                       available--;\r
+                       if (complement(buf1[0], param)) {\r
+                               paramsRead++;\r
+                               checkSum += (param & 0xFF);\r
+                               packet[paramsRead] = param;\r
+                       } else {\r
+                               skipping = true;\r
+                               //LCD.drawInt(param &0xFF, 4,  0, 4);\r
+                               //LCD.drawInt(buf1[0] & 0xFF, 4, 8, 4);\r
+                               //LCD.refresh();\r
+                               return false;\r
+                       }\r
+                       if (paramsRead == paramsRequired) break;\r
+               }\r
+               if (paramsRead != paramsRequired) return false;\r
+               available = link.bytesAvailable();\r
+        }\r
+\r
+        // Check the checksum and its complement\r
+        \r
+               if (available > 1) {\r
+                       readByte(buf1);\r
+                       available--;\r
+                       byte checkDigit = buf1[0];\r
+                       readByte(buf1);\r
+                       available--;\r
+                       //LCD.drawInt(checkDigit &0xFF, 4,  0, 5);\r
+                       //LCD.drawInt(checkSum & 0xFF, 4, 8, 5);\r
+                       //LCD.refresh();\r
+                       if (complement(buf1[0], checkDigit) &&\r
+                           (checkDigit & 0xFF) == (checkSum & 0xFF)) {\r
+                               gotPacket = true;\r
+                               lastOpcode = packet[0];\r
+                       } else {\r
+                               // Skip to header if complement check\r
+                               // or checksum fails\r
+                               skipping = true;\r
+                       }\r
+               }\r
+\r
+               return gotPacket;\r
+       }\r
+       \r
+       /**\r
+        * Send a packet\r
+        * \r
+        * @param aBuffer the buffer containing the packet\r
+        * @param aOffset the offset in the buffer - must be zero\r
+        * @param aLen the length of the packet\r
+        * @return true iff the packet was successfully sent\r
+        */\r
+       public static boolean sendPacket (byte[] aBuffer, int aOffset, int aLen) {\r
+               sleep();\r
+               link.defineAndRun(aBuffer, aLen); // assumes offset 0\r
+               sleep();\r
+               return true;\r
+       }\r
+\r
+       /**\r
+        * Set long range\r
+        *\r
+        */\r
+       public static void setRangeLong() {\r
+               link.setRangeLong();\r
+       }\r
+        \r
+       /**\r
+        * Set short range\r
+        * \r
+        */\r
+       public static void setRangeShort() {\r
+                link.setRangeLong();\r
+       }\r
+        \r
+       /**\r
+        * Reset the link - null\r
+        *\r
+        */\r
+       public static void resetSerial() {\r
+       }\r
+        \r
+       /**\r
+        * Wait until the packet is sent - null\r
+        *\r
+        */\r
+       public static void waitTillSent() {      \r
+       }\r
+        \r
+       /**\r
+        * Get the RCXLink object associated with the Serial class\r
+        * \r
+        * @return the link\r
+        */\r
+       public static RCXLink getLink() {\r
+                return link;\r
+       }\r
+\r
+       private static void sleep() {\r
+               try {\r
+                        Thread.sleep(100);\r
+                } catch (InterruptedException e) {}\r
+       }\r
+       \r
+       private static boolean headerByte(byte b) {\r
+               return(b == 0x55 || b == (byte) 0xFF || b == 0x00);\r
+               \r
+       }\r
+       \r
+       private static void readByte(byte [] b) {\r
+               b[0] = 0;\r
+               link.readBytes(b);\r
+       }\r
+       \r
+       private static boolean complement(byte b1, byte b2) {\r
+               return ((b1 &0xFF) + (b2 & 0xFF) == 0xFF);\r
+       }\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/package.html b/nxtOSEK/lejos_nxj/src/java/classes/lejos/rcxcomm/package.html
new file mode 100644 (file)
index 0000000..ec21dd8
--- /dev/null
@@ -0,0 +1 @@
+<body>Emulation of RCX communication classes</body>
\ No newline at end of file
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Arbitrator2.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Arbitrator2.java
new file mode 100644 (file)
index 0000000..d754e70
--- /dev/null
@@ -0,0 +1,96 @@
+package lejos.subsumption;
+    
+
+/**
+* Arbitrator2 controls which behavior should currently be active in 
+* a behavior control system.  This implementation is simpler than the original, but the behaviors it uses must implement 
+* the Behavior2 interface. In this architecture, when a behavior wants control, it must call  arbitrator.wantControl();
+* @author Roger Glassey  (after Brian Bagnall) 
+* @version 1  27-sept 2007
+*/
+public class Arbitrator2 {
+ /**
+  * the array of behaviors, in order of increasing priority
+  */  
+   private Behavior2 [] behavior;
+   /**
+    * The currently active behavior
+    */
+   private int active = -1;
+   /**
+    * the maximum priority number in this system. 
+    */
+   private int maxPriority = 0;
+
+   
+   /**
+   * Allocates an Arbitrator2 object and initializes it with an array of
+   * Behavior2 objects.  
+   *  The largest  index in the Behavior array will have the
+   * highest priority level, and hence will suppress all lower priority
+   * behaviors if it calls  wantContorol on this. 
+   * The new arbitrator  calls setArbitrator() on each Behavior to 
+   * establish the call back link.  The Behaviors in an Arbitrator can not
+   * be changed once the arbitrator is initialized.<br>
+   * <b>NOTE:</b> Once the Arbitrator is initialized, the method go() must be
+   * called to begin the arbitration.
+   * @param behaviors An array of Behavior objects. The behavior of largest index has the highest proiroty.
+   */
+   public Arbitrator2(Behavior2 [] behaviors)
+   {
+      this.behavior = behaviors;
+      for(int i = 0; i<behavior.length; i++) behavior[i].setArbitrator(this);    
+   }
+    
+   /**
+   * This method starts the arbitration of Behaviors.<br>
+   * It iterates over the array of behaviors, highest priority first. and calls the takeControl() method. If  true  is 
+   * returned, it calls action() on that behavior. When  the action() method returns (either because it was completed or it was suppressed) the search starts again.
+   *If no behavior returns true, this method exits. 
+   */
+   public void start() 
+   {
+      //establish call back path for all behaviors       
+      maxPriority = behavior.length - 1;
+      boolean more = true;
+      while(more)
+      {
+         int indx = -1;
+         for(int i = maxPriority; i >= 0; i--) // find highest priority behavior that wants control
+         {
+            if( behavior[i].takeControl())
+            {
+               indx = i;
+               break;
+            }
+         }  
+         if(indx >= 0)
+         {
+            active = indx;
+            behavior[active].action();  
+            active = -1;
+         }
+         else more = false;
+      }
+   }
+   
+ /**
+  * If the behavior that sent this message has higher priority than the active behavior,
+  *  the active behavior is suppressed. 
+  * @param theBehavior
+  */  
+  public void wantControl(Behavior2 theBehavior)
+  { 
+     int indx = 0;   // find index of theBehavior
+     for(indx = 0; indx <  behavior.length ; indx++)
+     {
+        if(theBehavior == behavior[indx]) break;
+     } 
+     if( indx > active && indx < behavior.length && active >= 0)
+     {
+        behavior[active].suppress(); 
+     }
+  }
+
+}
+
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Behavior2.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/subsumption/Behavior2.java
new file mode 100644 (file)
index 0000000..7bc032b
--- /dev/null
@@ -0,0 +1,36 @@
+package lejos.subsumption;
+
+/**
+ * This interface works with Aribtrator2. 
+* The Behavior2 interface represents an object embodying a specific
+* behavior belonging to a robot. Each behavior must define three things: <BR>
+* 1) The circumstances to make this behavior seize control of the robot.
+* e.g. When the touch sensor determines the robot has collided with an object.<br>
+* When this happens, the Behavior must inform the Arbitrator that is ready to take control.
+* It does this by calling  arbitrator.wantControl(this) and also by returning  true when the
+*  arbitrator calls takeControl(); <br>
+* 2) The action to exhibit when this behavior takes control. 
+* e.g. Back up and turn.  The  action() method does this. <br>
+* 3) The actions to perform when another behavior has seized control from this
+* behavior. 
+* e.g. Stop the current movement and update coordinates.   The method suprews() does this. <BR>
+* 4)establish a call back path the arbitrator by implementing the setArbitrator() method. <BR> 
+* A behavior control system has one or more Behavior objects. When you have defined
+* these objects, create an array of them and use that array to initialize an
+* Arbitrator object.
+*
+* @see Arbitrator2
+* @author Roger Glassey
+* @version 2  3-Dec - 2007 
+*/
+public interface Behavior2 extends Behavior{
+   
+
+/**
+ * call back path so  Behavior2 can call  arbitrator.wantControl(this) when its takeControl state changes to true; 
+ * @param theArbitrator
+ */
+   public void setArbitrator(Arbitrator2 theArbitrator);
+   
+   
+}
\ No newline at end of file
diff --git a/nxtOSEK/lejos_nxj/src/java/classes/lejos/util/ButtonCounter.java b/nxtOSEK/lejos_nxj/src/java/classes/lejos/util/ButtonCounter.java
new file mode 100644 (file)
index 0000000..42fe73c
--- /dev/null
@@ -0,0 +1,124 @@
+package lejos.util;
+import lejos.nxt.*;
+
+/**
+This is class is for data entry using the NXT keyboard.
+Counts number of presses of left and right buttons <br>
+Press ENTER together with together with LEFT  or RIGHT to decrease the count. 
+Press ESCAPE or ENTER alone to end counting. 
+Displays the count as it is entered, and makes a sound with each button press.
+Stores the count in public fields
+
+@author Roger Glassey 8/20/07
+*/
+public class ButtonCounter
+
+{
+/**
+       Output only not used in calculations ; use this value after count() returns;
+ */
+       public int _rightCount= 0;
+
+       /**
+       Output only not used in calculations; use after count() returns;
+        */
+       public int _leftCount= 0;
+
+/**
+ * identifies the ENTER button
+ */
+       static final byte ENTER=0x01;
+/**
+ * identifies the left button
+ */
+       static final byte LEFT=0x02;
+ /**
+ * identifies the right button
+ */
+       static final byte RIGHT = 0x04;
+       /**
+        * identifies  escape button
+        */
+       static final byte ESC = 0x08;
+       static final String BLANK = "                ";
+/**
+ * Use this method after counting is complete;
+ * @return value of right count.
+ */    
+       public int  getRightCount() { return _rightCount; }
+       /**
+        * Use this method after counting is complete;
+        * @return value of left count.
+        */ 
+       public int  getLeftCount() { return _leftCount; }
+       private boolean _reset = true;
+
+/**
+Start counting; parameter string is displayed; use it to identify this  particular call <br>
+returns when ESC or ENTER button is pressed <br>
+Hold Enter and left or right to decrease count,  otherwise it increases <br>
+counters are reset when this method is called.
+*/
+       public void count(String s)
+       {
+          LCD.drawString(BLANK, 0, 0);
+          LCD.drawString(s,0,0);
+          _reset = true;
+          count();
+       }
+/**
+ * called by count( string) 
+ */    
+       public void count()
+       {
+       if(_reset)       
+       {
+           _rightCount = 0;
+           _leftCount = 0;
+       }
+          while(Button.readButtons() > 0);// wait for release
+               boolean counting = true;
+               show();
+               while(counting)
+               {
+            int b = Button.waitForPress();
+            try {Thread.sleep(80);} catch (InterruptedException ie) {}
+            b = Button.readButtons();          
+                       Sound.playTone(880 + 100*b,200);
+                   if( b == ESC || b == ENTER)counting = false;
+                       else
+                       {
+                               if(b == LEFT) _leftCount++;
+                               if(b == RIGHT) _rightCount++;
+                               if(b == LEFT + ENTER) _leftCount--;
+                               if(b == RIGHT + ENTER) _rightCount--;                   
+                       }
+                       show(); 
+               }//end while when ESC is pressed
+       }
+/**
+ * Initializes values of left count and right count.
+ * Displays parameter   s   ; sets _leftcount = left,  _rightCount = right
+ */
+       public void count(String s, int left,int right)
+       {
+               LCD.drawString(BLANK, 0, 0);
+               LCD.drawString(s,0,0);
+               this._reset = false;
+               _leftCount = left;
+               _rightCount = right;
+               count();
+       }
+
+       private void show()
+       {
+       LCD.drawString(BLANK,0, 1);
+       LCD.drawInt(_leftCount,4,0,1);
+       LCD.drawInt(_rightCount,4, 8, 1);    
+       }
+
+
+
+}
@@ -1,8 +1,8 @@
          \r
-package lejos.nxt;\r
+package lejos.util;\r
 import javax.microedition.io.StreamConnection;\r
 import lejos.nxt.comm.*;\r
-\r
+import lejos.nxt.*;\r
 import java.io.*;\r
 /**\r
  * Datalogger class; stores float values then  then transmits  via bluetooth or usb<br>\r
@@ -16,7 +16,7 @@ public class Datalogger
    private float [] log1;\r
    private float [] log2;\r
    private float [] log3;\r
-   private int _indx = 0;  //where the data will be witten\r
+   private int _indx = 0;  //where the data will be written\r
 \r
    private final int  BLOCK = 510; // block size\r
    private int _blocks = 1; \r
@@ -130,31 +130,4 @@ public class Datalogger
        }\r
        try{dataOut.close();}catch(IOException e){}\r
     }\r
-\r
-       \r
-      \r
-          \r
-  /**\r
-   * to test the DL object\r
-   */  \r
-    public static void main(String[] args)\r
-    {\r
-       int size =600;\r
-       Datalogger dl = new Datalogger();\r
-       boolean more = true;\r
-       while(more)\r
-       {\r
-       for(int i = 0 ; i<size; i++)\r
-          {\r
-             float x = i*0.5f;\r
-             dl.writeLog(x);\r
-          }\r
-       dl.transmit(true); \r
-       dl.reset();\r
-       LCD.clear();\r
-       LCD.drawString("more?",0,2);\r
-       LCD.refresh();\r
-       more = 1 == Button.waitForPress();\r
-       }\r
-    }\r
 }\r
index 74236e6..a27cace 100644 (file)
@@ -1,32 +1,53 @@
 package js.common;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 /**
  * Abstract tool.
  */
 public class AbstractTool
 {
-   private ToolProgressMonitor _progress;
+   //private ToolProgressMonitor _progress;
+       protected Collection<ToolProgressMonitor> _monitors;
+
 
    /**
     * Constructor.
     * 
     * @param listener tool progress listener
     */
-   public AbstractTool (ToolProgressMonitor listener)
+   public AbstractTool ()
    {
-      _progress = listener;
+          _monitors = new ArrayList<ToolProgressMonitor>();
+     
    }
 
    //
    // protected interface
    //
 
+//   /**
+//    * Progress listener.
+//    */
+//   protected ToolProgressMonitor getProgressMonitor ()
+//   {
+//      assert _progress != null: "Postconditon: result != null";
+//      return _progress;
+//   }
+   
    /**
-    * Progress listener.
+    * register progress monitor
     */
-   protected ToolProgressMonitor getProgressMonitor ()
-   {
-      assert _progress != null: "Postconditon: result != null";
-      return _progress;
+   public void addProgressMonitor(ToolProgressMonitor monitor) {
+          _monitors.add(monitor);
+   }
+
+   /**
+    * deregister progress monitor
+    */
+   public void removeProgressMonitor(ToolProgressMonitor monitor) {
+          _monitors.remove(monitor);
    }
+
 }
\ No newline at end of file
index c327e5c..0573ba7 100644 (file)
@@ -1,65 +1,65 @@
 package js.common;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 /**
  * Simple implementation of ToolProgressMonitor with output to System.out.
  */
-public class CLIToolProgressMonitor implements ToolProgressMonitor
-{
-   private boolean _verbose = false;
+public class CLIToolProgressMonitor implements ToolProgressMonitor {
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see js.tools.ToolProgressMonitor#operation(java.lang.String)
-    */
-   public void operation (String message)
-   {
-      assert message != null: "Precondition: message != null";
-      System.out.println(message);
-   }
+       private boolean _verbose = false;
+       
+       /*
+        * (non-Javadoc)
+        * 
+        * @see js.tools.ToolProgressMonitor#operation(java.lang.String)
+        */
+       public void operation(String message) {
+               assert message != null : "Precondition: message != null";
+               System.out.println(message);
+       }
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see js.tools.ToolProgressMonitor#log(java.lang.String)
-    */
-   public void log (String message) {
-          if(!_verbose)
-                  return;
-      assert message != null: "Precondition: message != null";
-      System.out.println(message);
-   }
+       /*
+        * (non-Javadoc)
+        
+        * @see js.tools.ToolProgressMonitor#log(java.lang.String)
+        */
+       public void log(String message) {
+               if (!_verbose)
+                       return;
+               assert message != null : "Precondition: message != null";
+               System.out.println(message);
+       }
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see js.tools.ToolProgressMonitor#progress(int)
-    */
-   public void progress (int progress)
-   {
-      assert progress >= 0 && progress <= 1000: "Precondition: progress >= 0 && progress <= 1000";
-      System.out.print("\r  " + (progress/10) + "%\r");
-      if (progress >= 1000)
-      {
-         System.out.println();
-      }
-   }
+       /*
+        * (non-Javadoc)
+        * 
+        * @see js.tools.ToolProgressMonitor#progress(int)
+        */
+       public void progress(int progress) {
+               assert progress >= 0 && progress <= 1000 : "Precondition: progress >= 0 && progress <= 1000";
+               String message = "\r  " + (progress / 10) + "%\r";
+               System.out.print(message);
+               if (progress >= 1000) {
+                       System.out.println();
+               }
+       }
 
-   /*
-    * (non-Javadoc)
-    * 
-    * @see js.common.ToolProgressMonitor#isCanceled()
-    */
-   public boolean isCanceled ()
-   {
-      return Thread.currentThread().isInterrupted();
-   }
+       /*
+        * (non-Javadoc)
+        * 
+        * @see js.common.ToolProgressMonitor#isCanceled()
+        */
+       public boolean isCanceled() {
+               return Thread.currentThread().isInterrupted();
+       }
 
-   /**
-    * Be verbose?
-    */
-   public void setVerbose (boolean verbose)
-   {
-      _verbose = verbose;
-   }
+       /**
+        * Be verbose?
+        */
+       public void setVerbose(boolean verbose) {
+               _verbose = verbose;
+       }
+       
 }
\ No newline at end of file
index 5f92538..6d2437d 100644 (file)
@@ -38,4 +38,15 @@ public class NullToolProgressMonitor implements ToolProgressMonitor
    {
       return false;
    }
+
+   /*
+    * (non-Javadoc)
+    * 
+    * @see js.common.ToolProgressMonitor#setVerbose()
+    */
+       public void setVerbose(boolean verbose) {
+               // ignore
+       }
+   
+   
 }
\ No newline at end of file
index bdf40d4..51674f5 100644 (file)
@@ -30,4 +30,11 @@ public interface ToolProgressMonitor
     * Is tool canceled?.
     */
    public boolean isCanceled ();
+   
+       /**
+        * Be verbose?
+        */
+       public void setVerbose(boolean verbose);
+       
+
 }
\ No newline at end of file
index 1262b89..08f1164 100644 (file)
@@ -387,6 +387,14 @@ public class Binary
 
 
    public void log(ToolProgressMonitor monitor) throws TinyVMException {
+          
+     // all classes
+     for (int pIndex = 0; pIndex < iClassTable.size(); pIndex++)
+     {
+       ClassRecord pRec = (ClassRecord) iClassTable.get(pIndex);
+       monitor.log("Class " + pIndex + ": " + pRec.iName);
+     }
+     
      int pSize = iSignatures.size();
      for (int i = 0; i < pSize; i++)
      {
index e590f8d..58e74b8 100644 (file)
@@ -58,8 +58,8 @@ public interface SpecialSignatureConstants {
     "playTone(II)V",
     "btSend([BI)V",
     "btReceive([B)V",
-    "btGetCmdMode()I",
-    "btSetCmdMode(I)V",
+    "btGetBC4CmdMode()I",
+    "btSetArmCmdMode(I)V",
     "btStartADConverter()V",
     "usbRead([BI)I",
     "usbWrite([BI)V",
@@ -67,6 +67,17 @@ public interface SpecialSignatureConstants {
     "writePage([BI)V",
     "readPage([BI)V",
     "exec(II)V",
-    "playSample(IIII)V"
+    "playSample(IIII)V",
+    "getDataAddress(Ljava/lang/Object;)I",
+    "gc()V",
+    "shutDown()V",
+    "btSetResetLow()V",
+    "btSetResetHigh()V",
+    "btWrite([BII)I",
+    "btRead([BII)I",
+    "btPending()I",
+    "arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V",
+    "getDisplay()[I",
+    "setAutoRefresh(I)V"
   };
 }
index ecdee00..dd9329f 100644 (file)
@@ -4,6 +4,7 @@ import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.Collection;
 
 import js.common.CLIToolProgressMonitor;
 import js.common.ToolProgressMonitor;
@@ -14,89 +15,81 @@ import org.apache.commons.cli.CommandLine;
 /**
  * Tiny VM.
  */
-public class TinyVM extends TinyVMTool
-{
+public class TinyVM extends TinyVMTool {
        private TinyVMCommandLineParser fParser;
-       
-   /**
-    * Main entry point for command line usage.
-    * 
-    * @param args command line
-    */
-   public static void main (String[] args)
-   {
-      try
-      {
-         TinyVM tinyVM = new TinyVM(new CLIToolProgressMonitor());
-         tinyVM.start(args);
-      }
-      catch (TinyVMException e)
-      {
-         System.err.println(e.getMessage());
-         System.exit(1);
-      }
-   }
 
-   /**
-    * Constructor.
-    */
-   public TinyVM (ToolProgressMonitor monitor)
-   {
-      super(monitor);
-      fParser = new TinyVMCommandLineParser();
-   }
+       /**
+        * Main entry point for command line usage.
+        * 
+        * @param args
+        *            command line
+        */
+       public static void main(String[] args) {
+               try {
+                       //TinyVM tinyVM = new TinyVM(new CLIToolProgressMonitor());
+                       TinyVM tinyVM = new TinyVM();
+                       tinyVM.addProgressMonitor(new CLIToolProgressMonitor());
+                       tinyVM.start(args);
+               } catch (TinyVMException e) {
+                       System.err.println(e.getMessage());
+                       System.exit(1);
+               }
+       }
 
-   /**
-    * Execute tiny vm.
-    * 
-    * @param args command line
-    * @throws TinyVMException
-    */
-   public void start (String[] args) throws TinyVMException
-   {
-      assert args != null: "Precondition: args != null";
+       /**
+        * Constructor.
+        */
+       // public TinyVM (ToolProgressMonitor monitor)
+       public TinyVM() {
+               // super(monitor);
+               fParser = new TinyVMCommandLineParser();
+       }
 
-      CommandLine commandLine = fParser.parse(args);
+       /**
+        * Execute tiny vm.
+        * 
+        * @param args
+        *            command line
+        * @throws TinyVMException
+        */
+       public void start(String[] args) throws TinyVMException {
+               assert args != null : "Precondition: args != null";
 
-      // options
-      boolean verbose = commandLine.hasOption("v");
-      String classpath = commandLine.getOptionValue("cp");
-      String output = commandLine.getOptionValue("o");
-      boolean all = commandLine.hasOption("a");
-      boolean bigEndian = "be".equalsIgnoreCase(commandLine
-         .getOptionValue("wo"));
+               CommandLine commandLine = fParser.parse(args);
 
-      // files
-      String[] classes = commandLine.getArgs();
+               // options
+               boolean verbose = commandLine.hasOption("v");
+               String classpath = commandLine.getOptionValue("cp");
+               String output = commandLine.getOptionValue("o");
+               boolean all = commandLine.hasOption("a");
+               boolean bigEndian = "be".equalsIgnoreCase(commandLine
+                               .getOptionValue("wo"));
 
-      ((CLIToolProgressMonitor) getProgressMonitor()).setVerbose(verbose);
+               // files
+               String[] classes = commandLine.getArgs();
 
-      OutputStream stream = null;
-      try
-      {
-         stream = output == null
-            ? (OutputStream) System.out
-            : (OutputStream) new FileOutputStream(output);
-         link(classpath, classes, all, stream, bigEndian);
-      }
-      catch (FileNotFoundException e)
-      {
-         throw new TinyVMException(e.getMessage(), e);
-      }
-      finally
-      {
-         if (stream instanceof FileOutputStream)
-         {
-            try
-            {
-               stream.close();
-            }
-            catch (IOException e)
-            {
-               throw new TinyVMException(e);
-            }
-         }
-      }
-   }
+               // verbosity
+               for(ToolProgressMonitor monitor : _monitors) {
+                       monitor.setVerbose(verbose);
+               }
+               //((CLIToolProgressMonitor) getProgressMonitor()).setVerbose(verbose);
+
+               OutputStream stream = null;
+               try {
+                       stream = output == null ? (OutputStream) System.out
+                                       : (OutputStream) new FileOutputStream(output);
+                       link(classpath, classes, all, stream, bigEndian);
+               } catch (FileNotFoundException e) {
+                       throw new TinyVMException(e.getMessage(), e);
+               } finally {
+                       if (stream instanceof FileOutputStream) {
+                               try {
+                                       stream.close();
+                               } catch (IOException e) {
+                                       throw new TinyVMException(e);
+                               }
+                       }
+               }
+       }
 
 }
\ No newline at end of file
index 5b758f7..c789ee0 100644 (file)
@@ -17,13 +17,13 @@ import js.tinyvm.io.LEByteWriter;
  */
 public class TinyVMTool extends AbstractTool
 {
-   /**
-    * Constructor.
-    */
-   public TinyVMTool (ToolProgressMonitor monitor)
-   {
-      super(monitor);
-   }
+//   /**
+//    * Constructor.
+//    */
+//   public TinyVMTool (ToolProgressMonitor monitor)
+//   {
+//      super(monitor);
+//   }
 
    /**
     * Execute tiny vm.
@@ -43,7 +43,10 @@ public class TinyVMTool extends AbstractTool
       assert stream != null: "Precondition: stream != null";
 
       Binary binary = link(classpath, classes, all);
-      binary.log(getProgressMonitor());
+      for(ToolProgressMonitor monitor : _monitors) {
+         binary.log(monitor);
+      }
+      //binary.log(getProgressMonitor());
       dump(binary, stream, bigEndian);
 
    
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/BTOutputStream.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/BTOutputStream.java
deleted file mode 100644 (file)
index 650819c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-package lejos.pc.comm;
-
-import java.io.*;
-
-public class BTOutputStream extends OutputStream {
-       ByteArrayOutputStream baos;
-       OutputStream os;
-       
-       public BTOutputStream(OutputStream os) {
-               this.os = os;
-               baos = new ByteArrayOutputStream();
-       }
-       
-       public void write(int b) throws IOException {
-               baos.write(b);
-       }
-       
-       public void flush() throws IOException {
-               byte[] b = baos.toByteArray();          
-               byte lsb = (byte) b.length;
-               
-               baos.reset();
-               
-               os.write(lsb);
-               os.write(0);
-               os.write(b);
-               os.flush();
-       }
-}
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/InputValues.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/InputValues.java
new file mode 100644 (file)
index 0000000..5d501f2
--- /dev/null
@@ -0,0 +1,38 @@
+package lejos.pc.comm;\r
+\r
+/**\r
+ * \r
+ * @author <a href="mailto:bbagnall@mts.net">Brian Bagnall</a>\r
+ * @version 0.1 August 3, 2006\r
+ * @see NXTCommand\r
+ */\r
+public class InputValues {\r
+       public int inputPort;\r
+       /**\r
+        * NXT indicates if it thinks the data is valid (based on previous data?)\r
+        */\r
+       public boolean valid = true;\r
+       public boolean isCalibrated;\r
+       public int sensorType;\r
+       public int sensorMode;\r
+       /**\r
+        * The raw value from the Analog to Digital (AD) converter.\r
+        */\r
+       public int rawADValue;\r
+       /**\r
+        * The normalized value from the Analog to Digital (AD) converter. I really don't\r
+        * know for sure which values are normalized yet.\r
+        * 0 to 1023\r
+        */\r
+       public int normalizedADValue;\r
+       /**\r
+        * The scaled value starts working after the first call to the sensor.\r
+        * The first value will be the raw value, but after that it produces scaled values.\r
+        * With the touch sensor, off scales to 0 and on scales to 1.\r
+        */\r
+       public short scaledValue;\r
+       /**\r
+        * Currently unused.\r
+        */\r
+       public short calibratedValue;\r
+}\r
index c5973d7..73f31ae 100644 (file)
@@ -3,11 +3,12 @@ package lejos.pc.comm;
 import java.io.*;
 
 public interface NXTComm {
-       public NXTInfo[] search(String name, int protocol);
-       public boolean open(NXTInfo nxt);
+       public NXTInfo[] search(String name, int protocol) throws NXTCommException;
+       public boolean open(NXTInfo nxt) throws NXTCommException;
        public void close() throws IOException;
        public byte[] sendRequest(byte [] message, int replyLen) throws IOException;
        public byte[] read() throws IOException;
+       public int available() throws IOException;
        public void write(byte [] data) throws IOException;
        public OutputStream getOutputStream();
        public InputStream getInputStream();
index 9cf43fd..5358fb5 100644 (file)
@@ -5,10 +5,14 @@ import java.io.*;
 public class NXTCommBTInputStream extends InputStream {\r
        private NXTComm nxtComm;\r
        private byte buf[];\r
-       private int bufIdx = 0, bufSize = 0;\r
+       private int bufIdx, bufSize;\r
+       boolean endOfFile;\r
        \r
        public NXTCommBTInputStream(NXTComm nxtComm) {\r
                this.nxtComm = nxtComm;\r
+               endOfFile = false;\r
+               bufIdx = 0;\r
+               bufSize = 0;\r
        }\r
        \r
     /**\r
@@ -18,9 +22,17 @@ public class NXTCommBTInputStream extends InputStream {
      */\r
        public int read() throws IOException\r
     {\r
+          if (endOfFile) return -1;\r
           if (bufIdx >= bufSize) bufSize = 0;\r
-       while(bufSize == 0) bufSize = available();\r
-       \r
+       if (bufSize == 0) {\r
+          bufIdx = 0;\r
+          buf = nxtComm.read();\r
+          if (buf == null || buf.length ==0) {\r
+                  endOfFile = true;\r
+                  return -1;\r
+          }\r
+          bufSize = buf.length;\r
+       }\r
        return buf[bufIdx++] & 0xFF;\r
        }\r
        \r
@@ -29,13 +41,7 @@ public class NXTCommBTInputStream extends InputStream {
      */\r
     public int available() throws IOException\r
     {\r
-       if (bufIdx >= bufSize) bufSize = 0;\r
-       if (bufSize == 0) {\r
-          bufIdx = 0;\r
-          buf = nxtComm.read();\r
-          bufSize = buf.length;\r
-       }\r
-       return bufSize - bufIdx;\r
+       return nxtComm.available();\r
     }\r
     \r
     /**\r
index 903e81c..f6fa5ff 100644 (file)
@@ -6,212 +6,240 @@ import java.io.*;
 import java.util.Vector;
 import java.util.Enumeration;
 
-public class NXTCommBluecove implements NXTComm, DiscoveryListener  {
+public class NXTCommBluecove implements NXTComm, DiscoveryListener {
        private static Vector devices, nxtInfos;
        private StreamConnection con;
        private OutputStream os;
        private InputStream is;
-    private NXTInfo nxtInfo;
+       private NXTInfo nxtInfo;
+
+       public NXTInfo[] search(String name, int protocol) throws NXTCommException {
 
-       public NXTInfo[] search(String name, int protocol) {
-               
                devices = new Vector();
-        nxtInfos = new Vector();
+               nxtInfos = new Vector();
 
-        if ((protocol | NXTCommFactory.BLUETOOTH) == 0) return new NXTInfo[0];
+               if ((protocol | NXTCommFactory.BLUETOOTH) == 0)
+                       return new NXTInfo[0];
 
                synchronized (this) {
                        try {
-                               LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(DiscoveryAgent.GIAC, this);
+                               LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(
+                                               DiscoveryAgent.GIAC, this);
                                try {
                                        wait();
                                } catch (InterruptedException e) {
-                                       e.printStackTrace();
+                                       System.err.println(e.getMessage());
                                }
-                       } catch (BluetoothStateException e) {
-                               e.printStackTrace();
+                       } catch(Throwable t) {
+                               //System.err.println(e.getMessage());
+                               throw new NXTCommException("Bluetooth stack not detected",t); 
                        }
                }
 
                for (Enumeration enum_d = devices.elements(); enum_d.hasMoreElements();) {
                        RemoteDevice d = (RemoteDevice) enum_d.nextElement();
 
-                       try {   
-                nxtInfo = new NXTInfo();
+                       try {
+                               nxtInfo = new NXTInfo();
 
-                nxtInfo.name = d.getFriendlyName(false);
-                if (nxtInfo.name == null || nxtInfo.name.length() == 0)
-                       nxtInfo.name = "Unknown";
+                               nxtInfo.name = d.getFriendlyName(false);
+                               if (nxtInfo.name == null || nxtInfo.name.length() == 0)
+                                       nxtInfo.name = "Unknown";
                                nxtInfo.btDeviceAddress = d.getBluetoothAddress();
-                nxtInfo.protocol = NXTCommFactory.BLUETOOTH;
+                               nxtInfo.protocol = NXTCommFactory.BLUETOOTH;
 
-                if (name == null || name.equals(nxtInfo.name)) nxtInfos.addElement(nxtInfo);
-                               else continue;
+                               if (name == null || name.equals(nxtInfo.name))
+                                       nxtInfos.addElement(nxtInfo);
+                               else
+                                       continue;
 
-                System.out.println("Found: " + nxtInfo.name);
-                
-                       // We want additional attributes, ServiceName (0x100),
-                       // ServiceDescription (0x101) and ProviderName (0x102).                                 
+                               System.out.println("Found: " + nxtInfo.name);
+
+                               // We want additional attributes, ServiceName (0x100),
+                               // ServiceDescription (0x101) and ProviderName (0x102).
+
+                               int[] attributes = { 0x100, 0x101, 0x102 };
 
-                               int[] attributes = {0x100,0x101,0x102};
-       
                                UUID[] uuids = new UUID[1];
-                               uuids[0] = new UUID("1101",true); // Serial Port
-                       synchronized (this) {
-                               try {
-                                               LocalDevice.getLocalDevice().getDiscoveryAgent().searchServices(attributes,uuids,d,this);
+                               uuids[0] = new UUID("1101", true); // Serial Port
+                               synchronized (this) {
+                                       try {
+                                               LocalDevice.getLocalDevice().getDiscoveryAgent()
+                                                               .searchServices(attributes, uuids, d, this);
                                                try {
                                                        wait();
                                                } catch (InterruptedException e) {
-                                                       e.printStackTrace();
+                                                       System.err.println(e.getMessage());
                                                }
                                        } catch (BluetoothStateException e) {
+                                               System.err.println(e.getMessage());
                                        }
                                }
 
                                try {
                                        Thread.sleep(100);
                                } catch (InterruptedException e) {
-                                       e.printStackTrace();
+                                       System.err.println(e.getMessage());
                                }
 
                        } catch (IOException e) {
-                               e.printStackTrace();
+                               System.err.println(e.getMessage());
+
                        }
 
                }
-        NXTInfo[] nxts = new NXTInfo[nxtInfos.size()];
-        for(int i=0;i<nxts.length;i++) nxts[i] = (NXTInfo) nxtInfos.elementAt(i);
-        return nxts;
+               NXTInfo[] nxts = new NXTInfo[nxtInfos.size()];
+               for (int i = 0; i < nxts.length; i++)
+                       nxts[i] = (NXTInfo) nxtInfos.elementAt(i);
+               return nxts;
        }
 
-       public boolean open(NXTInfo nxt) {      
-               
+       public boolean open(NXTInfo nxt) throws NXTCommException {
+
                // Construct URL if not present
-               
-               if (nxt.btResourceString == null ||
-                       nxt.btResourceString.length() < 5 ||
-                       !(nxt.btResourceString.substring(0,5).equals("btspp"))) {
-                       nxt.btResourceString = "btspp://" + stripColons(nxt.btDeviceAddress) + ":1;authenticate=false;encrypt=false";
+
+               if (nxt.btResourceString == null || nxt.btResourceString.length() < 5
+                               || !(nxt.btResourceString.substring(0, 5).equals("btspp"))) {
+                       nxt.btResourceString = "btspp://"
+                                       + stripColons(nxt.btDeviceAddress)
+                                       + ":1;authenticate=false;encrypt=false";
                }
-               
+
                try {
                        con = (StreamConnection) Connector.open(nxt.btResourceString);
-               os = con.openOutputStream();
-                       is  = con.openInputStream();
+                       os = con.openOutputStream();
+                       is = con.openInputStream();
                        return true;
-               }
-               catch(IOException e){
-                       System.err.println("Open of " + nxt.name + " failed");
-                       return false;
-               } 
+               } catch (IOException e) {
+                       throw new NXTCommException("Open of " + nxt.name + " failed");
+               }
        }
 
        public void close() throws IOException {
-               if (os != null) os.close();
-               if (is != null) is.close();
-               if (con != null) con.close();
+               if (os != null)
+                       os.close();
+               if (is != null)
+                       is.close();
+               if (con != null)
+                       con.close();
        }
 
-    /**
-       * Sends a request to the NXT brick.
-       * @param message Data to send.
-       */      
-    public synchronized byte [] sendRequest(byte [] message, int replyLen) throws IOException {
-       
-       // length of packet (Least and Most significant byte)
-       // * NOTE: Bluetooth only. If do USB, doesn't need it.
-       int LSB = message.length;
+       /**
+        * Sends a request to the NXT brick.
+        * 
+        * @param message
+        *            Data to send.
+        */
+       public synchronized byte[] sendRequest(byte[] message, int replyLen)
+                       throws IOException {
+
+               // length of packet (Least and Most significant byte)
+               // * NOTE: Bluetooth only. 
+               int LSB = message.length;
                int MSB = message.length >>> 8;
-               
-        if (os == null) return new byte[0];
-
-       // Send length of packet:
-       os.write((byte)LSB);
-               os.write((byte)MSB);
-       
-       os.write(message);
-       
-               if (replyLen == 0) return new byte[0];
-               
-               byte [] reply = null;
+
+               if (os == null)
+                       return new byte[0];
+
+               // Send length of packet:
+               os.write((byte) LSB);
+               os.write((byte) MSB);
+
+               os.write(message);
+
+               if (replyLen == 0)
+                       return new byte[0];
+
+               byte[] reply = null;
                int length = -1;
-               
-        if (is == null) return new byte[0];
+
+               if (is == null)
+                       return new byte[0];
 
                do {
                        length = is.read(); // First byte specifies length of packet.
                } while (length < 0);
-               
+
                int lengthMSB = is.read(); // Most Significant Byte value
                length = (0xFF & length) | ((0xFF & lengthMSB) << 8);
                reply = new byte[length];
                is.read(reply);
-                               
+
                return (reply == null) ? new byte[0] : reply;
-    }
-    
-    public byte [] read() throws IOException {
-       
-       int lsb = is.read(); 
-               int msb = is.read();
-       if (lsb != 1 || msb != 0) throw new IOException("Packet more than 1 byte");  
-       byte[] bb = new byte[1];        
-       bb[0] = (byte) is.read();
-       
-       return bb;
-    }
-    
-    public void write(byte [] data) throws IOException {
-       os.write(data);
-       os.flush();
+       }
+
+       public byte[] read() throws IOException {
+
+               int lsb = is.read();
+               if (lsb < 0) return null;
+               int msb = is.read();
+               if (msb != 0)
+                       throw new IOException("Packet more than 255 bytes");
+               byte[] bb = new byte[lsb];
+               for (int i=0;i<lsb;i++) bb[i] = (byte) is.read();
+
+               return bb;
+       }
+       
+    public int available() throws IOException {
+       if (is.available() > 2) return is.available() -2;
+       else return 0;
     }
 
+       public void write(byte[] data) throws IOException {
+               os.write(data);
+               os.flush();
+       }
+
        public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) {
-        //System.out.println("Found Device,  class: " + cod.getMajorDeviceClass() + "/" + cod.getMinorDeviceClass());
+               // System.out.println("Found Device, class: " +
+               // cod.getMajorDeviceClass() + "/" + cod.getMinorDeviceClass());
                if (cod.getMajorDeviceClass() == 2048 && cod.getMinorDeviceClass() == 4)
                        devices.addElement(btDevice);
        }
 
-       public synchronized void inquiryCompleted(int discType) {               
-        //if (discType == INQUIRY_COMPLETED) System.out.println("Inquiry completed");
-        //else System.out.println("Inquiry Failed");
+       public synchronized void inquiryCompleted(int discType) {
+               // if (discType == INQUIRY_COMPLETED) System.out.println("Inquiry
+               // completed");
+               // else System.out.println("Inquiry Failed");
                notifyAll();
        }
 
        public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
-        //System.out.println(servRecord.length + " service(s) discovered");
-        // Should only be one service on a NXT
-        if (servRecord.length != 1) return;
-        nxtInfo.btResourceString = servRecord[0].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
-           //System.out.println("Setting url to : " + nxtInfo.btResourceString);
+               // System.out.println(servRecord.length + " service(s) discovered");
+               // Should only be one service on a NXT
+               if (servRecord.length != 1)
+                       return;
+               nxtInfo.btResourceString = servRecord[0].getConnectionURL(
+                               ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
+               // System.out.println("Setting url to : " + nxtInfo.btResourceString);
        }
 
        public synchronized void serviceSearchCompleted(int transID, int respCode) {
-               //System.out.println("Service search completed: respCode = " + respCode);
+               // System.out.println("Service search completed: respCode = " +
+               // respCode);
                notifyAll();
        }
-       
+
        public OutputStream getOutputStream() {
-               return new BTOutputStream(os);          
+               return new NXTCommBTOutputStream(this);
        }
-       
+
        public InputStream getInputStream() {
                return new NXTCommBTInputStream(this);
        }
-       
+
        public String stripColons(String s) {
                StringBuffer sb = new StringBuffer();
-               
-               for(int i=0;i<s.length();i++) {
+
+               for (int i = 0; i < s.length(); i++) {
                        char c = s.charAt(i);
-                       
+
                        if (c != ':') {
                                sb.append(c);
                        }
                }
-               
+
                return sb.toString();
        }
 }
-
index ae8a744..de65d15 100644 (file)
@@ -46,7 +46,7 @@ public class NXTCommBluez implements NXTComm {
                try {
                        rcSocketShutdown(sk);
                } catch (IOException ioe) {
-                       System.err.println("Shutdown failed");
+                       //System.err.println("Shutdown failed");
                }
                if (sk != -1) rcSocketClose(sk);
                sk = -1;
@@ -129,13 +129,35 @@ public class NXTCommBluez implements NXTComm {
        }
        
        public byte [] read () throws IOException {
-               // Currently all packets are 1-byte
-               byte [] packet = rcSocketRecv(sk);
-               byte [] data = new byte [packet.length/3];
-               for(int i=0;i<packet.length/3;i++) data[i] = packet[i*3+2];
+               byte [] packet = rcSocketRecv(sk); // Can read multiple packets
+               if (packet == null || packet.length == 0) return null;
+               int len = packet.length, dataLen = 0;
+               int i = 0, j = 0;
+               while (i < len-2) {
+                       int lsb = packet[i++];
+                       int msb = packet[i++];
+                       if (msb != 0)
+                               throw new IOException("Packet more than 255 bytes");
+            dataLen += lsb;
+            i += lsb;
+               }
+               if (i != len) throw new IOException("Incomplete packet");       
+               byte [] data = new byte [dataLen];
+               
+               i = 0;
+               while (i < len-2) {
+                       int lsb = packet[i++];
+                       i++; // Skip msb
+            for(int k = 0;k<lsb;k++) data[j++] = packet[i+k];
+            i += lsb;
+               }
                return data;
        }
        
+       public int available() throws IOException {
+               return 0;
+       }
+       
        public void write(byte[] data) throws IOException {
                rcSocketSend(sk, data);
        }
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommException.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommException.java
new file mode 100644 (file)
index 0000000..b149960
--- /dev/null
@@ -0,0 +1,30 @@
+package lejos.pc.comm;\r
+\r
+public class NXTCommException extends Exception {\r
+\r
+       private static final long serialVersionUID = 8129230555756024038L;\r
+\r
+       public NXTCommException() {\r
+               super();\r
+       }\r
+\r
+       public NXTCommException(String arg0, Throwable arg1) {\r
+               super(arg0, arg1);\r
+       }\r
+\r
+       public NXTCommException(String arg0) {\r
+               super(arg0);\r
+       }\r
+\r
+       public NXTCommException(Throwable arg0) {\r
+               super(arg0);\r
+       }\r
+\r
+       public String getMessage() {\r
+               if((getCause()!=null)&&(getCause().getMessage()!=null))\r
+                       return getCause().getMessage();\r
+               else\r
+                       return super.getMessage();\r
+       }\r
+       \r
+}\r
index 8c8530d..0e0ce82 100644 (file)
@@ -6,10 +6,10 @@ public class NXTCommFantom implements NXTComm {
        private NXTInfo nxtInfo;
        
        public native String[] jfantom_find();
-       public native int jfantom_open(String nxt);
-       public native void jfantom_close(int nxt);
-       public native void jfantom_send_data(int nxt, byte [] message, int len, int replyLen);
-       public native byte[] jfantom_read_data(int nxt, int len);
+       public native long jfantom_open(String nxt);
+       public native void jfantom_close(long nxt);
+       public native void jfantom_send_data(long nxt, byte [] message, int len, int replyLen);
+       public native byte[] jfantom_read_data(long nxt, int len);
        
        public NXTInfo[] search(String name, int protocol) {
                String[] nxtNames = jfantom_find();
@@ -56,6 +56,10 @@ public class NXTCommFantom implements NXTComm {
                throw new IOException("Not implemented");
        }
        
+       public int available() throws IOException {
+               throw new IOException("Not implemented");
+       }
+       
        public void write(byte [] data) throws IOException {
                throw new IOException("Not implemented");
        }
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommInputStream.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommInputStream.java
deleted file mode 100644 (file)
index cde3e05..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package lejos.pc.comm;
-
-import java.io.*;
-
-public class NXTCommInputStream extends InputStream {
-       private NXTComm nxtComm;
-
-       public NXTCommInputStream(NXTComm nxtComm) {
-               this.nxtComm = nxtComm;
-       }
-       
-       public int read() throws IOException {
-        byte[] buf = nxtComm.read();           
-           return buf[0] & 0xFF;
-       }
-}
index fb080da..f4ae846 100644 (file)
@@ -5,17 +5,17 @@ import java.io.*;
 public class NXTCommLibnxt implements NXTComm {
        private NXTInfo nxtInfo;
        
-       public native int jlibnxt_find();
-       public native int jlibnxt_open(int nxt);
-       public native void jlibnxt_close(int nxt);
-       public native void jlibnxt_send_data(int nxt, byte [] message) throws IOException;
-       public native byte[] jlibnxt_read_data(int nxt, int len) throws IOException;
+       public native long jlibnxt_find();
+       public native int jlibnxt_open(long nxt);
+       public native void jlibnxt_close(long nxt);
+       public native void jlibnxt_send_data(long nxt, byte [] message) throws IOException;
+       public native byte[] jlibnxt_read_data(long nxt, int len) throws IOException;
        
        public NXTInfo[] search(String name, int protocol) {
                if ((protocol | NXTCommFactory.USB) == 0) {
                        return new NXTInfo[0];
                }
-               int nxt = jlibnxt_find();
+               long nxt = jlibnxt_find();
                if (nxt != 0) {
                        NXTInfo[] nxtInfo = new NXTInfo[1];
                        nxtInfo[0] = new NXTInfo();
@@ -48,6 +48,10 @@ public class NXTCommLibnxt implements NXTComm {
                return jlibnxt_read_data(nxtInfo.nxtPtr, 1);
        }
        
+       public int available() throws IOException {
+               return 0;
+       }
+       
        public void write(byte [] data) throws IOException {
                jlibnxt_send_data(nxtInfo.nxtPtr, data);
        }
@@ -57,7 +61,7 @@ public class NXTCommLibnxt implements NXTComm {
        }
        
        public InputStream getInputStream() {
-               return new NXTCommInputStream(this);            
+               return new NXTCommUSBInputStream(this);         
        }
        
        static {
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommLogListener.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommLogListener.java
new file mode 100644 (file)
index 0000000..c65823b
--- /dev/null
@@ -0,0 +1,14 @@
+package lejos.pc.comm;\r
+\r
+/**\r
+ * \r
+ * @author scholz\r
+ * listener for log events\r
+ */\r
+\r
+public interface NXTCommLogListener {\r
+       \r
+       public void logEvent(String message);\r
+       public void logEvent(Throwable throwable);\r
+\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommUSBInputStream.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/NXTCommUSBInputStream.java
new file mode 100644 (file)
index 0000000..5920628
--- /dev/null
@@ -0,0 +1,16 @@
+package lejos.pc.comm;\r
+\r
+import java.io.*;\r
+\r
+public class NXTCommUSBInputStream extends InputStream {\r
+       private NXTComm nxtComm;\r
+\r
+       public NXTCommUSBInputStream(NXTComm nxtComm) {\r
+               this.nxtComm = nxtComm;\r
+       }\r
+       \r
+       public int read() throws IOException {\r
+        byte[] buf = nxtComm.read();\r
+           return buf[0] & 0xFF; // USB uses 1-byte packets\r
+       }\r
+}\r
index d6d38e0..9629a1d 100644 (file)
@@ -10,7 +10,7 @@ public class NXTCommUSBOutputStream extends OutputStream {
        }
        
        public void write(int b) throws IOException {
-               byte[] bb = new byte[1];
+               byte[] bb = new byte[1]; // USB uses 1-byte packets
                bb[0] = (byte) b;
                nxtComm.write( bb);
        }
index a231e62..a7fa8e1 100644 (file)
 package lejos.pc.comm;
 
-import java.util.*;
-import java.io.*;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Properties;
+
+public class NXTCommand implements NXTProtocol {
+
+       private Collection<NXTCommLogListener> fLogListeners;
+
+       private NXTComm nxtComm = null, nxtCommUSB = null, nxtCommBluetooth = null;
 
-public class NXTCommand implements NXTProtocol {       
-       private NXTComm nxtComm = null,
-                       nxtCommUSB = null,
-                       nxtCommBluetooth = null;
-       
        private static String HOME = System.getProperty("nxj.home");;
        private static String SEP = System.getProperty("file.separator");
-       private static String PROP_FILE = HOME + SEP + "bin" + SEP + "nxj.properties";
+       private static String PROP_FILE = HOME + SEP + "bin" + SEP
+                       + "nxj.properties";
        private static NXTCommand singleton = null;
-       
+
        private boolean verifyCommand = false;
-    private boolean open = false;
-    private static String hexChars = "01234567890abcdef";
-
-    public NXTInfo[] search(String name, int protocol) {
-       NXTInfo[] nxtInfos;
-       
-       if (nxtComm == null) {
-               Properties props = new Properties();
-               
-               try {
-                       //System.out.println("Loading " + PROP_FILE);
-                       props.load(new FileInputStream(PROP_FILE));
-               } catch (FileNotFoundException e) {
-                       //System.out.println("No nxj.properties file");
-               } catch (IOException e) {
-                       System.out.println("Failure to read nxj.properties file");
-               }
-
-               String os = System.getProperty("os.name");
-               boolean windows = false;
-               
-               if (os.length() >= 7 && os.substring(0,7).equals("Windows"))
-                       windows = true;
-               
-               // Look for USB comms driver first
-               
-               if ((protocol & NXTCommFactory.USB) != 0) {
-                       String nxtCommName = props.getProperty("NXTCommUSB", "lejos.pc.comm.NXTCommLibnxt");
-                       //System.out.println("NXTCommUSB = " + nxtCommName);
-                       try {
-                               Class c = Class.forName(nxtCommName);
-                               nxtCommUSB = (NXTComm) c.newInstance();
-                       } catch (Exception e) {
-                               e.printStackTrace();
-                       }
-               }
-                                               
-               // Look for a Bluetooth one
-               
-               String defaultDriver = (windows  ? "lejos.pc.comm.NXTCommBluecove"
-                                                        : "lejos.pc.comm.NXTCommBluez");
-               
-               if ((protocol & NXTCommFactory.BLUETOOTH) != 0) {
-                       String nxtCommName = props.getProperty("NXTCommBluetooth", defaultDriver);
-                       //System.out.println("NXTCommBluetooth = " + nxtCommName);
-                       try {
-                       Class c = Class.forName(nxtCommName);
-                       nxtCommBluetooth = (NXTComm) c.newInstance();
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-               }
-               
-               if (nxtCommUSB == null && nxtCommBluetooth == null) {
-                       System.out.println("Cannot load a comms driver");
-                       System.exit(1);
-               }
-
-       }
-
-       // Look for a USB one first
-       
-       if ((protocol & NXTCommFactory.USB) != 0 && nxtCommUSB != null) {
-               nxtInfos = nxtCommUSB.search(name, protocol);
-               if (nxtInfos.length > 0) {
-                       nxtComm = nxtCommUSB;
-                       return nxtInfos;
-               }
-       }
-       
-       // If not found, look for a Bluetooth one
-       
-       if ((protocol & NXTCommFactory.BLUETOOTH) != 0 && nxtCommBluetooth != null){
-               nxtInfos = nxtCommBluetooth.search(name, protocol);
-               if (nxtInfos.length > 0) {
-                       nxtComm = nxtCommBluetooth;
-                       return nxtInfos;
-               }               
-       }
-       
-       return new NXTInfo[0];
-       }
-    
-    public void setNXTCommBlueTooth() {
-       if (nxtComm == null) {
-               nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
-       }
-    }
-
-       public boolean open(NXTInfo nxt) {
+       private boolean open = false;
+       private static String hexChars = "01234567890abcdef";
+
+       private NXTCommand() {
+               fLogListeners = new ArrayList<NXTCommLogListener>();
+       }
+
+       public NXTInfo[] search(String name, int protocol) throws NXTCommException {
+               NXTInfo[] nxtInfos;
+
+               if (nxtComm == null) {
+                       Properties props = new Properties();
+
+                       try {
+                               // log("Loading " + PROP_FILE);
+                               props.load(new FileInputStream(PROP_FILE));
+                       } catch (FileNotFoundException e) {
+                       } catch (IOException e) {
+                               log("Failed to read file " + PROP_FILE + ": " + e.getMessage());
+                       }
+
+                       String os = System.getProperty("os.name");
+                       boolean windows = false;
+
+                       if (os.length() >= 7 && os.substring(0, 7).equals("Windows"))
+                               windows = true;
+
+                       // Look for USB comms driver first
+                       if ((protocol & NXTCommFactory.USB) != 0) {
+                               String nxtCommName = props.getProperty("NXTCommUSB",
+                                               "lejos.pc.comm.NXTCommLibnxt");
+                               // log("NXTCommUSB = " + nxtCommName);
+                               try {
+                                       Class c = Class.forName(nxtCommName);
+                                       nxtCommUSB = (NXTComm) c.newInstance();
+                               } catch (Throwable t) {
+                                       log(t);
+                               }
+                       }
+
+                       // Look for a Bluetooth one
+                       String defaultDriver = (windows ? "lejos.pc.comm.NXTCommBluecove"
+                                       : "lejos.pc.comm.NXTCommBluez");
+
+                       if ((protocol & NXTCommFactory.BLUETOOTH) != 0) {
+                               String nxtCommName = props.getProperty("NXTCommBluetooth",
+                                               defaultDriver);
+                               // log("NXTCommBluetooth = " + nxtCommName);
+                               try {
+                                       Class c = Class.forName(nxtCommName);
+                                       nxtCommBluetooth = (NXTComm) c.newInstance();
+                               } catch (Throwable t) {
+                                       log(t);
+                               }
+                       }
+
+                       if (nxtCommUSB == null && nxtCommBluetooth == null) {
+                               throw new NXTCommException("Cannot load a comm driver");
+                       }
+
+               }
+
+               // Look for a USB one first
+
+               if ((protocol & NXTCommFactory.USB) != 0 && nxtCommUSB != null) {
+                       nxtInfos = nxtCommUSB.search(name, protocol);
+                       if (nxtInfos.length > 0) {
+                               nxtComm = nxtCommUSB;
+                               return nxtInfos;
+                       }
+               }
+
+               // If not found, look for a Bluetooth one
+
+               if ((protocol & NXTCommFactory.BLUETOOTH) != 0
+                               && nxtCommBluetooth != null) {
+                       nxtInfos = nxtCommBluetooth.search(name, protocol);
+                       if (nxtInfos.length > 0) {
+                               nxtComm = nxtCommBluetooth;
+                               return nxtInfos;
+                       }
+               }
+
+               return new NXTInfo[0];
+       }
+
+       public void setNXTCommBlueTooth() {
+               if (nxtComm == null) {
+                       nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);
+               }
+       }
+
+       public boolean open(NXTInfo nxt) throws NXTCommException {
                return open = nxtComm.open(nxt);
        }
 
@@ -112,36 +121,41 @@ public class NXTCommand implements NXTProtocol {
        }
 
        /**
-        * Small helper method to send DIRECT COMMAND request to NXT and return verification result.
+        * Small helper method to send DIRECT COMMAND request to NXT and return
+        * verification result.
+        * 
         * @param request
         * @return
         */
-       private byte sendRequest(byte [] request, int replyLen) throws IOException {
+       private byte sendRequest(byte[] request, int replyLen) throws IOException {
                byte verify = 0; // default of 0 means success
-               if(verifyCommand)
+               if (verifyCommand)
                        request[0] = DIRECT_COMMAND_REPLY;
-               
-               byte [] reply = nxtComm.sendRequest(request,
-                                               (request[0] == DIRECT_COMMAND_REPLY ? replyLen : 0));
-               if(request[0] == DIRECT_COMMAND_REPLY) {
+
+               byte[] reply = nxtComm.sendRequest(request,
+                               (request[0] == DIRECT_COMMAND_REPLY ? replyLen : 0));
+               if (request[0] == DIRECT_COMMAND_REPLY) {
                        verify = reply[2];
                }
                return verify;
        }
-       
+
        /**
-        * Small helper method to send a SYSTEM COMMAND request to NXT and return verification result.
+        * Small helper method to send a SYSTEM COMMAND request to NXT and return
+        * verification result.
+        * 
         * @param request
         * @return
         */
-       private byte sendSystemRequest(byte [] request, int replyLen) throws IOException {
+       private byte sendSystemRequest(byte[] request, int replyLen)
+                       throws IOException {
                byte verify = 0; // default of 0 means success
-               if(verifyCommand)
+               if (verifyCommand)
                        request[0] = SYSTEM_COMMAND_REPLY;
-               
-               byte [] reply = nxtComm.sendRequest(request,
-                                               (request[0] == SYSTEM_COMMAND_REPLY ? replyLen : 0));
-               if(request[0] == SYSTEM_COMMAND_REPLY) {
+
+               byte[] reply = nxtComm.sendRequest(request,
+                               (request[0] == SYSTEM_COMMAND_REPLY ? replyLen : 0));
+               if (request[0] == SYSTEM_COMMAND_REPLY) {
                        verify = reply[2];
                }
                return verify;
@@ -149,231 +163,362 @@ public class NXTCommand implements NXTProtocol {
 
        /**
         * Starts a program already on the NXT.
+        * 
         * @param fileName
         * @return
         */
        public byte startProgram(String fileName) throws IOException {
-               byte [] request = {DIRECT_COMMAND_NOREPLY, START_PROGRAM};
+               byte[] request = { DIRECT_COMMAND_NOREPLY, START_PROGRAM };
                request = appendString(request, fileName);
-               return sendRequest(request,22);
-       }       
+               return sendRequest(request, 22);
+       }
 
        /**
-        * Opens a file on the NXT for reading. Returns a handle number and file size,
-        * enclosed in a FileInfo object.
+        * Opens a file on the NXT for reading. Returns a handle number and file
+        * size, enclosed in a FileInfo object.
         * 
-        * @param fileName e.g. "Woops.rso"
+        * @param fileName
+        *            e.g. "Woops.rso"
         * @return
         */
        public FileInfo openRead(String fileName) throws IOException {
-               byte [] request = {SYSTEM_COMMAND_REPLY, OPEN_READ};
-               request = appendString(request, fileName); // No padding required apparently
-               byte [] reply = nxtComm.sendRequest(request,8);
+               byte[] request = { SYSTEM_COMMAND_REPLY, OPEN_READ };
+               request = appendString(request, fileName); // No padding required
+                                                                                                       // apparently
+               byte[] reply = nxtComm.sendRequest(request, 8);
                FileInfo fileInfo = new FileInfo(fileName);
                fileInfo.status = reply[2];
-               if(reply.length == 8) { // Check if all data included in reply
+               if (reply.length == 8) { // Check if all data included in reply
                        fileInfo.fileHandle = reply[3];
-                       fileInfo.fileSize = (0xFF & reply[4]) | ((0xFF & reply[5]) << 8)| ((0xFF & reply[6]) << 16)| ((0xFF & reply[7]) << 24);
+                       fileInfo.fileSize = (0xFF & reply[4]) | ((0xFF & reply[5]) << 8)
+                                       | ((0xFF & reply[6]) << 16) | ((0xFF & reply[7]) << 24);
                }
                return fileInfo;
        }
 
        /**
         * Opens a file on the NXT for writing.
-        * @param fileName e.g. "Woops.rso"
+        * 
+        * @param fileName
+        *            e.g. "Woops.rso"
         * @return File Handle number
         */
        public byte openWrite(String fileName, int size) throws IOException {
-               byte [] command = {SYSTEM_COMMAND_REPLY, OPEN_WRITE};
-        byte[] asciiFileName = new byte[fileName.length()];
-        for(int i=0;i<fileName.length();i++) asciiFileName[i] = (byte) fileName.charAt(i);
+               byte[] command = { SYSTEM_COMMAND_REPLY, OPEN_WRITE };
+               byte[] asciiFileName = new byte[fileName.length()];
+               for (int i = 0; i < fileName.length(); i++)
+                       asciiFileName[i] = (byte) fileName.charAt(i);
                command = appendBytes(command, asciiFileName);
-               byte [] request = new byte[22];
+               byte[] request = new byte[22];
                System.arraycopy(command, 0, request, 0, command.length);
-               byte [] fileLength = {(byte)size, (byte)(size>>>8), (byte)(size>>>16), (byte)(size>>>24)};
+               byte[] fileLength = { (byte) size, (byte) (size >>> 8),
+                               (byte) (size >>> 16), (byte) (size >>> 24) };
                request = appendBytes(request, fileLength);
-               byte [] reply = nxtComm.sendRequest(request, 4);
+               byte[] reply = nxtComm.sendRequest(request, 4);
+               if (reply == null || reply.length != 4) {
+                       throw new IOException("Invalid return from OPEN WRITE");
+               } else if (reply[2] != 0) {
+                       if (reply[2] == (byte) 0xFB) throw new IOException("NXJ Flash Memory Full");
+                       else if (reply[2] == (byte) 0xFC) throw new IOException("NXJ Directory Full");
+                       else throw new IOException("OPEN WRITE failed");
+               }
                return reply[3]; // The handle number
        }
 
        /**
         * Closes an open file.
-        * @param handle File handle number.
+        * 
+        * @param handle
+        *            File handle number.
         * @return Error code 0 = success
         */
        public byte closeFile(byte handle) throws IOException {
-               byte [] request = {SYSTEM_COMMAND_NOREPLY, CLOSE, handle};                      
+               byte[] request = { SYSTEM_COMMAND_NOREPLY, CLOSE, handle };
                return sendSystemRequest(request, 4);
        }
-       
-       public byte delete(String fileName) throws IOException {                
-               byte [] request = {SYSTEM_COMMAND_REPLY, DELETE};
+
+       public byte delete(String fileName) throws IOException {
+               byte[] request = { SYSTEM_COMMAND_REPLY, DELETE };
                request = appendString(request, fileName);
                return sendSystemRequest(request, 23);
        }
 
        /**
-        * @param wildCard [filename].[extension], *.[extension], [filename].*, *.*
+        * @param wildCard
+        *            [filename].[extension], *.[extension], [filename].*, *.*
         * @return
         */
        public FileInfo findFirst(String wildCard) throws IOException {
 
-               byte [] request = {SYSTEM_COMMAND_REPLY, NXJ_FIND_FIRST};
+               byte[] request = { SYSTEM_COMMAND_REPLY, NXJ_FIND_FIRST };
                request = appendString(request, wildCard);
 
-               byte [] reply = nxtComm.sendRequest(request, 32);
+               byte[] reply = nxtComm.sendRequest(request, 32);
                FileInfo fileInfo = null;
-               if(reply[2] == 0  && reply.length == 32) {
-                       StringBuffer name= new StringBuffer(new String(reply)).delete(0, 4);
-                       int lastPos = name.indexOf("\0"); 
+               if (reply[2] == 0 && reply.length == 32) {
+                       StringBuffer name = new StringBuffer(new String(reply))
+                                       .delete(0, 4);
+                       int lastPos = name.indexOf("\0");
+                       if (lastPos < 0 || lastPos > 20) lastPos = 20;
                        name.delete(lastPos, name.length());
                        fileInfo = new FileInfo(name.toString());
                        fileInfo.status = 0;
                        fileInfo.fileHandle = reply[3];
-                       fileInfo.fileSize = (0xFF & reply[24]) | ((0xFF & reply[25]) << 8)| ((0xFF & reply[26]) << 16)| ((0xFF & reply[27]) << 24);
-                       fileInfo.startPage = (0xFF & reply[28]) | ((0xFF & reply[29]) << 8)| ((0xFF & reply[30]) << 16)| ((0xFF & reply[31]) << 24);
+                       fileInfo.fileSize = (0xFF & reply[24]) | ((0xFF & reply[25]) << 8)
+                                       | ((0xFF & reply[26]) << 16) | ((0xFF & reply[27]) << 24);
+                       fileInfo.startPage = (0xFF & reply[28]) | ((0xFF & reply[29]) << 8)
+                                       | ((0xFF & reply[30]) << 16) | ((0xFF & reply[31]) << 24);
 
                }
                return fileInfo;
        }
-       
+
        /**
-        * @param handle Handle number from the previous found file or fromthe Find First command.
+        * @param handle
+        *            Handle number from the previous found file or fromthe Find
+        *            First command.
         * @return
         */
        public FileInfo findNext(byte handle) throws IOException {
 
-               byte [] request = {SYSTEM_COMMAND_REPLY, NXJ_FIND_NEXT, handle};
-               
-               byte [] reply = nxtComm.sendRequest(request, 32);
+               byte[] request = { SYSTEM_COMMAND_REPLY, NXJ_FIND_NEXT, handle };
+
+               byte[] reply = nxtComm.sendRequest(request, 32);
                FileInfo fileInfo = null;
-               if(reply[2] == 0 && reply.length == 32) {
-                       StringBuffer name= new StringBuffer(new String(reply)).delete(0, 4);
+               if (reply[2] == 0 && reply.length == 32) {
+                       StringBuffer name = new StringBuffer(new String(reply))
+                                       .delete(0, 4);
                        int lastPos = name.indexOf("\0");
+                       if (lastPos < 0 || lastPos > 20) lastPos = 20;
                        name.delete(lastPos, name.length());
                        fileInfo = new FileInfo(name.toString());
                        fileInfo.status = 0;
                        fileInfo.fileHandle = reply[3];
-                       fileInfo.fileSize = (0xFF & reply[24]) | ((0xFF & reply[25]) << 8)| ((0xFF & reply[26]) << 16)| ((0xFF & reply[27]) << 24);
-                       fileInfo.startPage = (0xFF & reply[28]) | ((0xFF & reply[29]) << 8)| ((0xFF & reply[30]) << 16)| ((0xFF & reply[31]) << 24);
+                       fileInfo.fileSize = (0xFF & reply[24]) | ((0xFF & reply[25]) << 8)
+                                       | ((0xFF & reply[26]) << 16) | ((0xFF & reply[27]) << 24);
+                       fileInfo.startPage = (0xFF & reply[28]) | ((0xFF & reply[29]) << 8)
+                                       | ((0xFF & reply[30]) << 16) | ((0xFF & reply[31]) << 24);
                }
                return fileInfo;
        }
 
        /**
-        * Helper code to append a string and null terminator at the end of a command request.
-        * Should use String.concat if I could add a zero to end somehow.
+        * Helper code to append a string and null terminator at the end of a
+        * command request. Should use String.concat if I could add a zero to end
+        * somehow.
+        * 
         * @param command
         * @param str
         * @return
         */
-       private byte[] appendString(byte [] command, String str) {
+       private byte[] appendString(byte[] command, String str) {
                byte[] buff = new byte[command.length + str.length() + 1];
-               for(int i=0;i<command.length;i++) buff[i] = command[i];
-               for(int i=0;i<str.length();i++) buff[command.length+i] = (byte) str.charAt(i);
+               for (int i = 0; i < command.length; i++)
+                       buff[i] = command[i];
+               for (int i = 0; i < str.length(); i++)
+                       buff[command.length + i] = (byte) str.charAt(i);
                buff[command.length + str.length()] = 0;
                return buff;
        }
 
-       private byte[] appendBytes(byte [] array1, byte [] array2) {
-               byte [] array = new byte[array1.length + array2.length];
+       private byte[] appendBytes(byte[] array1, byte[] array2) {
+               byte[] array = new byte[array1.length + array2.length];
                System.arraycopy(array1, 0, array, 0, array1.length);
                System.arraycopy(array2, 0, array, array1.length, array2.length);
                return array;
        }
 
        public int getBatteryLevel() throws IOException {
-               byte [] request = {DIRECT_COMMAND_REPLY, GET_BATTERY_LEVEL};
-               byte [] reply = nxtComm.sendRequest(request, 5);
+               byte[] request = { DIRECT_COMMAND_REPLY, GET_BATTERY_LEVEL };
+               byte[] reply = nxtComm.sendRequest(request, 5);
                int batteryLevel = (0xFF & reply[3]) | ((0xFF & reply[4]) << 8);
                return batteryLevel;
        }
 
        /**
-        * Call the close() command when your program ends, otherwise you
-        * will have to turn the NXT brick off/on before you run another
-        * program.
-        *
+        * Call the close() command when your program ends, otherwise you will have
+        * to turn the NXT brick off/on before you run another program.
+        * 
         */
        public void close() throws IOException {
-               if (!open) return;
+               if (!open)
+                       return;
                open = false;
-               byte [] request = {DIRECT_COMMAND_NOREPLY, NXJ_DISCONNECT};
-               nxtComm.sendRequest(request,0); // Tell NXT to disconnect
+               byte[] request = { SYSTEM_COMMAND_NOREPLY, NXJ_DISCONNECT };
+               nxtComm.sendRequest(request, 0); // Tell NXT to disconnect
                nxtComm.close();
        }
 
-       public byte writeFile(byte handle, byte [] data) throws IOException {
-               byte [] request = new byte[data.length + 3];
-               byte [] command = {SYSTEM_COMMAND_NOREPLY, WRITE, handle};
+       public byte writeFile(byte handle, byte[] data) throws IOException {
+               byte[] request = new byte[data.length + 3];
+               byte[] command = { SYSTEM_COMMAND_NOREPLY, WRITE, handle };
                System.arraycopy(command, 0, request, 0, command.length);
                System.arraycopy(data, 0, request, 3, data.length);
-                                               
+
                return sendSystemRequest(request, 6);
        }
 
        /**
         * Returns requested number of bytes from a file. File must first be opened
         * using the openRead() command.
-        * @param handle File handle number (from openRead method)
-        * @param length Number of bytes to read.
+        * 
+        * @param handle
+        *            File handle number (from openRead method)
+        * @param length
+        *            Number of bytes to read.
         * @return
         */
-       public byte [] readFile(byte handle, int length) throws IOException {
-               byte [] request = {SYSTEM_COMMAND_REPLY, READ, handle, (byte)length, (byte)(length>>>8)};
-               byte [] reply1 =  nxtComm.sendRequest(request, length+6);
+       public byte[] readFile(byte handle, int length) throws IOException {
+               byte[] request = { SYSTEM_COMMAND_REPLY, READ, handle, (byte) length,
+                               (byte) (length >>> 8) };
+               byte[] reply1 = nxtComm.sendRequest(request, length + 6);
                int dataLen = (reply1[4] & 0xFF) + ((reply1[5] << 8) & 0xFF);
-               byte [] reply = new byte[dataLen];
-               for(int i=0;i<dataLen;i++) reply[i] = reply1[i+6];
+               byte[] reply = new byte[dataLen];
+               for (int i = 0; i < dataLen; i++)
+                       reply[i] = reply1[i + 6];
                return reply;
        }
-       
+
        public byte defrag() throws IOException {
-               byte [] request = {DIRECT_COMMAND_NOREPLY, NXJ_DEFRAG};         
-        return sendRequest(request,3);
+               byte[] request = { SYSTEM_COMMAND_NOREPLY, NXJ_DEFRAG };
+               return sendSystemRequest(request, 3);
        }
-       
+
        public String getFriendlyName() throws IOException {
-               byte [] request = {DIRECT_COMMAND_REPLY, GET_DEVICE_INFO};
-               
-               byte [] reply = nxtComm.sendRequest(request,33);
-               
+               byte[] request = { SYSTEM_COMMAND_REPLY, GET_DEVICE_INFO };
+
+               byte[] reply = nxtComm.sendRequest(request, 33);
+
                char nameChars[] = new char[16];
                int len = 0;
-               
-               for(int i=0;i<15 && reply[i+3] != 0;i++) {
-                       nameChars[i] = (char) reply[i+3];
+
+               for (int i = 0; i < 15 && reply[i + 3] != 0; i++) {
+                       nameChars[i] = (char) reply[i + 3];
                        len++;
                }
-               
-               return new String(nameChars,0,len);
+
+               return new String(nameChars, 0, len);
        }
-       
+
        public byte setFriendlyName(String name) throws IOException {
-               byte [] request = {DIRECT_COMMAND_NOREPLY, SET_BRICK_NAME};
+               byte[] request = { SYSTEM_COMMAND_NOREPLY, SET_BRICK_NAME };
                request = appendString(request, name);
-               
-               return sendSystemRequest(request,3);
+
+               return sendSystemRequest(request, 3);
        }
-       
+
        public String getLocalAddress() throws IOException {
-               byte [] request = {DIRECT_COMMAND_REPLY, GET_DEVICE_INFO};
-               byte [] reply = nxtComm.sendRequest(request,33);                
+               byte[] request = { SYSTEM_COMMAND_REPLY, GET_DEVICE_INFO };
+               byte[] reply = nxtComm.sendRequest(request, 33);
                char addrChars[] = new char[14];
-       
-               for(int i=0;i<7;i++) {
-                       //System.out.println("Addr char " + i + " = " + (reply[i+18] & 0xFF));
-                       addrChars[i*2] = hexChars.charAt((reply[i+18] >> 4) & 0xF);
-                       addrChars[i*2+1] = hexChars.charAt(reply[i+18] & 0xF);
+
+               for (int i = 0; i < 7; i++) {
+                       // log("Addr char " + i + " = " + (reply[i+18] &
+                       // 0xFF));
+                       addrChars[i * 2] = hexChars.charAt((reply[i + 18] >> 4) & 0xF);
+                       addrChars[i * 2 + 1] = hexChars.charAt(reply[i + 18] & 0xF);
                }
-               
+
                return new String(addrChars);
        }
-
+       
+       public InputValues getInputValues(int port) throws IOException {
+               byte [] request = {DIRECT_COMMAND_REPLY, GET_INPUT_VALUES, (byte)port};
+               byte [] reply = nxtComm.sendRequest(request, 16);
+               InputValues inputValues = new InputValues();
+               inputValues.inputPort = reply[3];
+               // 0 is false, 1 is true.
+               inputValues.valid = (reply[4] != 0);
+               // 0 is false, 1 is true. 
+               inputValues.isCalibrated = (reply[5] == 0);
+               inputValues.sensorType = reply[6];
+               inputValues.sensorMode = reply[7];
+               inputValues.rawADValue = (0xFF & reply[8]) | ((0xFF & reply[9]) << 8);
+               inputValues.normalizedADValue = (0xFF & reply[10]) | ((0xFF & reply[11]) << 8);
+               inputValues.scaledValue = (short)((0xFF & reply[12]) | (reply[13] << 8));
+               inputValues.calibratedValue = (short)((0xFF & reply[14]) | (reply[15] << 8));
+               
+               return inputValues;
+       }
+       
+       /**
+        * Retrieves the current output state for a port.
+        * @param port - 0 to 3
+        * @return OutputState - returns a container object for output state variables.
+        */
+       public OutputState getOutputState(int port) throws IOException {
+               // !! Needs to check port to verify they are correct ranges.
+               byte [] request = {DIRECT_COMMAND_REPLY, GET_OUTPUT_STATE, (byte)port};
+               byte [] reply = nxtComm.sendRequest(request,25);
+               
+               if(reply[1] != GET_OUTPUT_STATE) {
+                       System.out.println("Oops! Error in NXTCommand.getOutputState.");
+                       System.out.println("Return data did not match request.");
+                       System.out.println("reply[0] = " + reply[0] + "  reply[1] = " + reply[1] +"  reply[2] = " + reply[2]);
+               }
+               OutputState outputState = new OutputState(port);
+               outputState.status = reply[2];
+               outputState.outputPort = reply[3];
+               outputState.powerSetpoint = reply[4];
+               outputState.mode = reply[5];
+               outputState.regulationMode = reply[6];
+               outputState.turnRatio = reply[7];
+               outputState.runState = reply[8];
+               outputState.tachoLimit = (0xFF & reply[9]) | ((0xFF & reply[10]) << 8)| ((0xFF & reply[11]) << 16)| ((0xFF & reply[12]) << 24);
+               outputState.tachoCount = (0xFF & reply[13]) | ((0xFF & reply[14]) << 8)| ((0xFF & reply[15]) << 16)| ((0xFF & reply[16]) << 24);
+               outputState.blockTachoCount = (0xFF & reply[17]) | ((0xFF & reply[18]) << 8)| ((0xFF & reply[19]) << 16)| ((0xFF & reply[20]) << 24);
+               outputState.rotationCount = (0xFF & reply[21]) | ((0xFF & reply[22]) << 8)| ((0xFF & reply[23]) << 16)| ((0xFF & reply[24]) << 24);
+               return outputState;
+       }
+       
+       /**
+        * @param remoteInbox 0-9
+        * @param localInbox 0-9
+        * @param remove True clears the message from the remote inbox.
+        * @return
+        */
+       public byte[] messageRead(byte remoteInbox, byte localInbox, boolean remove) throws IOException {
+               byte [] request = {DIRECT_COMMAND_REPLY, MESSAGE_READ, remoteInbox, localInbox, (remove ? (byte) 1 : (byte) 0)};
+               byte [] reply = nxtComm.sendRequest(request, 64);
+               byte[] message = new byte[reply[4]];
+               System.arraycopy(reply, 5, message, 0, reply[4]);
+               return message;
+       }
+       
        public static NXTCommand getSingleton() {
-       if (singleton == null) singleton = new NXTCommand();
+               if (singleton == null)
+                       singleton = new NXTCommand();
                return singleton;
        }
-}
 
+       /**
+        * register log listener
+        * 
+        * @param listener
+        */
+       public void addLogListener(NXTCommLogListener listener) {
+               fLogListeners.add(listener);
+       }
+
+       /**
+        * unregister log listener
+        * 
+        * @param listener
+        */
+       public void removeLogListener(NXTCommLogListener listener) {
+               fLogListeners.remove(listener);
+       }
+
+       private void log(String message) {
+               for (NXTCommLogListener listener : fLogListeners) {
+                       listener.logEvent(message);
+               }
+       }
 
+       private void log(Throwable t) {
+               for (NXTCommLogListener listener : fLogListeners) {
+                       listener.logEvent(t);
+               }
+       }
+       
+}
index 86aba24..fd8c2ad 100644 (file)
@@ -4,12 +4,10 @@ public class NXTInfo {
        public String name;
        public String btDeviceAddress;
        public String btResourceString;
-       public int nxtPtr;
-       public int protocol = 0; // 0=URL, 1 = Bluetooth
-       
-       public NXTInfo() {
-               
-       }
+       public long nxtPtr;
+       public int protocol = 0;
+
+       public NXTInfo() {}
        
        public NXTInfo(String name, String address) {
                this.name = name;
index 055b881..66ee4bd 100644 (file)
@@ -68,7 +68,7 @@ public interface NXTProtocol {
        public static byte NXJ_DEFRAG = 0x21;
        
        // Output state constants 
-       // �Mode�:
+       // "Mode":
        /** Turn on the specified motor */
        public static byte MOTORON = 0x01;
        /** Use run/brake instead of run/float in PWM */
@@ -76,7 +76,7 @@ public interface NXTProtocol {
        /** Turns on the regulation */
        public static byte REGULATED = 0x04; 
 
-       // �Regulation Mode�:
+       // "Regulation Mode":
        /** No regulation will be enabled */
        public static byte REGULATION_MODE_IDLE = 0x00;
        /** Power control will be enabled on specified output */
@@ -84,7 +84,7 @@ public interface NXTProtocol {
        /** Synchronization will be enabled (Needs enabled on two output) */
        public static byte REGULATION_MODE_MOTOR_SYNC = 0x02; 
 
-       // �RunState�:
+       // "RunState":
        /** Output will be idle */
        public static byte MOTOR_RUN_STATE_IDLE = 0x00;
        /** Output will ramp-up */
@@ -95,7 +95,7 @@ public interface NXTProtocol {
        public static byte MOTOR_RUN_STATE_RAMPDOWN = 0x40;
        
        // Input Mode Constants
-       // �Port Type�:
+       // "Port Type":
        /**  */
        public static byte NO_SENSOR = 0x00;
        /**  */
@@ -123,7 +123,7 @@ public interface NXTProtocol {
        /**  */
        public static byte NO_OF_SENSOR_TYPES = 0x0C;
 
-       // �Port Mode�:
+       // "Port Mode":
        /**  */
        public static byte RAWMODE = 0x00;
        /**  */
diff --git a/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/OutputState.java b/nxtOSEK/lejos_nxj/src/java/pccomms/lejos/pc/comm/OutputState.java
new file mode 100644 (file)
index 0000000..f30a44b
--- /dev/null
@@ -0,0 +1,25 @@
+package lejos.pc.comm;\r
+\r
+/**\r
+ * Container for holding the output state values.\r
+ * @author <a href="mailto:bbagnall@mts.net">Brian Bagnall</a>\r
+ * @version 0.2 September 9, 2006\r
+ * @see NXTCommand\r
+ */\r
+public class OutputState {\r
+       public byte status; // Status of the NXTCommand.getOutputState command.\r
+       public int outputPort; // (Range: 0 to 2)\r
+       public byte powerSetpoint; // -100 to 100\r
+       public int mode; //(bit-field) // see NXTProtocol for enumeration\r
+       public int regulationMode; // see NXTProtocol for enumeration\r
+       public byte turnRatio; // -100 to 100\r
+       public int runState; // see NXTProtocol for enumeration\r
+       public long tachoLimit; // Current limit on a movement in progress, if any\r
+       public int tachoCount; // Internal count. Number of counts since last reset of the motor counter)\r
+       public int blockTachoCount; // Current position relative to last programmed movement\r
+       public int rotationCount; // Current position relative to last reset of the rotation sensor for this motor)\r
+\r
+       public OutputState(int port) {\r
+               outputPort = port;\r
+       }\r
+}\r
index ce2b715..db3c2a2 100644 (file)
+package lejos.pc.tools;\r
+\r
 import java.io.*;\r
-   \r
+\r
 import lejos.pc.comm.*;\r
 \r
-   /**\r
-    * conneccts to a NXT using either Bluetooth or USB  and builds  input and output data streams.\r
-    *@author  Roger Glassey  22/08/2007\r
-    */\r
-   \r
-public class Connector\r
-{\r
-   private boolean _usb = false;\r
-      DataInputStream dataIn;\r
-      DataOutputStream dataOut;\r
-      InputStream is;\r
-      OutputStream os;\r
-      NXTComm nxtComm;\r
- /**\r
-  * \r
-  * @param NXT can be the friendly name of the NXT or a 16 character address\r
-  * @param useUSB\r
-  * @return true if connection was made\r
-  */     \r
-      public  boolean  startConnector(String NXT, boolean useUSB)   \r
-      {\r
-         NXTInfo[] nxtInfo ;\r
-         _usb = useUSB;\r
-         if(_usb)\r
-         { \r
-            nxtComm = new NXTCommLibnxt();\r
-            System.out.println("searching");\r
-            nxtInfo = nxtComm.search(null, NXTCommFactory.USB);       \r
-            if (nxtInfo.length == 0) \r
-            {\r
-               System.out.println("No NXT Found");\r
-               return false;\r
-            }\r
-            nxtComm.open(nxtInfo[0]);\r
-            System.out.println(" Opened "+nxtInfo[0].name);\r
-         }\r
-         else\r
-         {\r
-            nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);\r
-            if(NXT == null || NXT == " ")\r
-            {\r
-               System.out.println("search for all");\r
-               nxtInfo = nxtComm.search(NXT, NXTCommFactory.BLUETOOTH); \r
-            }\r
-            else if(NXT.length()<8)\r
-            {\r
-               System.out.println("search for " +NXT);\r
-               nxtInfo = nxtComm.search(NXT,  NXTCommFactory.BLUETOOTH);\r
+/**\r
+ * conneccts to a NXT using either Bluetooth or USB and builds input and output\r
+ * data streams.\r
+ * \r
+ * @author Roger Glassey 22/08/2007\r
+ */\r
+\r
+public class Connector {\r
+       private boolean _usb = false;\r
+       DataInputStream dataIn;\r
+       DataOutputStream dataOut;\r
+       InputStream is;\r
+       OutputStream os;\r
+       NXTComm nxtComm;\r
+\r
+       /**\r
+        * \r
+        * @param NXT\r
+        *            can be the friendly name of the NXT or a 16 character address\r
+        * @param useUSB\r
+        * @return true if connection was made\r
+        */\r
+       public boolean startConnector(String NXT, boolean useUSB)\r
+                       throws NXTCommException {\r
+               NXTInfo[] nxtInfo;\r
+               _usb = useUSB;\r
+               if (_usb) {\r
+                       nxtComm = new NXTCommLibnxt();\r
+                       System.out.println("searching");\r
+                       nxtInfo = nxtComm.search(null, NXTCommFactory.USB);\r
+                       if (nxtInfo.length == 0) {\r
+                               System.out.println("No NXT Found");\r
+                               return false;\r
+                       }\r
+                       nxtComm.open(nxtInfo[0]);\r
+                       System.out.println(" Opened " + nxtInfo[0].name);\r
+               } else {\r
+                       nxtComm = NXTCommFactory.createNXTComm(NXTCommFactory.BLUETOOTH);\r
+                       if (NXT == null || NXT == " ") {\r
+                               System.out.println("search for all");\r
+                               nxtInfo = nxtComm.search(NXT, NXTCommFactory.BLUETOOTH);\r
+                       } else if (NXT.length() < 8) {\r
+                               System.out.println("search for " + NXT);\r
+                               nxtInfo = nxtComm.search(NXT, NXTCommFactory.BLUETOOTH);\r
 \r
-            }\r
-            else\r
-            {     \r
-               nxtInfo = new NXTInfo[1];\r
-               nxtInfo[0] = new NXTInfo("unknown ",NXT);// NXT is actually address\r
-            }\r
-            if (nxtInfo.length == 0) \r
-            {\r
-               System.out.println("No NXT Found:  is BT adatper on? is NXT on? ");\r
-               System.exit(1);\r
-            }\r
-            System.out.println("Connecting to " + nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
-            boolean opened = nxtComm.open(nxtInfo[0]);       \r
-            if (!opened) {\r
-               System.out.println("Failed to open " +  nxtInfo[0].name+" "+nxtInfo[0].btDeviceAddress);\r
-               System.exit(1);\r
-            }     \r
-            System.out.println("Connected to " + nxtInfo[0].name);\r
-         }\r
-         is = nxtComm.getInputStream();\r
-         dataIn = new DataInputStream( nxtComm.getInputStream()); \r
-         os = nxtComm.getOutputStream();\r
-         dataOut = new DataOutputStream(os);\r
-        return true;\r
-      }\r
-      /**\r
-       * @return the InputStream for this connection;\r
-       */\r
-      public InputStream getInputStream(){return is;}\r
-      \r
-      /**\r
-       * @return the DataInputStream for this connection;\r
-       */\r
-      public  DataInputStream getDataIn(){return dataIn;}\r
-      \r
-      /**\r
-       * @return the OutputSteram for this connection;\r
-       */\r
-      public OutputStream getOutputStream(){return os;}\r
-      \r
-   /**\r
-    * @return the DataOutputStream for this connection\r
-    */\r
-      public  DataOutputStream getDataOut() {return dataOut;}  \r
+                       } else {\r
+                               nxtInfo = new NXTInfo[1];\r
+                               nxtInfo[0] = new NXTInfo("unknown ", NXT);// NXT is actually\r
+                                                                                                                       // address\r
+                       }\r
+                       if (nxtInfo.length == 0) {\r
+                               System.out\r
+                                               .println("No NXT Found:  is BT adatper on? is NXT on? ");\r
+                               System.exit(1);\r
+                       }\r
+                       System.out.println("Connecting to " + nxtInfo[0].name + " "\r
+                                       + nxtInfo[0].btDeviceAddress);\r
+                       boolean opened = nxtComm.open(nxtInfo[0]);\r
+                       if (!opened) {\r
+                               System.out.println("Failed to open " + nxtInfo[0].name + " "\r
+                                               + nxtInfo[0].btDeviceAddress);\r
+                               System.exit(1);\r
+                       }\r
+                       System.out.println("Connected to " + nxtInfo[0].name);\r
+               }\r
+               is = nxtComm.getInputStream();\r
+               dataIn = new DataInputStream(nxtComm.getInputStream());\r
+               os = nxtComm.getOutputStream();\r
+               dataOut = new DataOutputStream(os);\r
+               return true;\r
+       }\r
 \r
+       /**\r
+        * @return the InputStream for this connection;\r
+        */\r
+       public InputStream getInputStream() {\r
+               return is;\r
+       }\r
 \r
-      public static void main(String[] args)\r
-      {\r
-         Connector con = new Connector();\r
-         con.startConnector("NXT",false);\r
-//         DataInputStream din= btm.getDataIn();\r
-//         while(true)\r
-//         {\r
-//           try{ System.out.println(din.readFloat());}  catch(IOException e){}\r
-//         }\r
-         \r
-      }\r
-      \r
-   }\r
+       /**\r
+        * @return the DataInputStream for this connection;\r
+        */\r
+       public DataInputStream getDataIn() {\r
+               return dataIn;\r
+       }\r
 \r
+       /**\r
+        * @return the OutputSteram for this connection;\r
+        */\r
+       public OutputStream getOutputStream() {\r
+               return os;\r
+       }\r
 \r
+       /**\r
+        * @return the DataOutputStream for this connection\r
+        */\r
+       public DataOutputStream getDataOut() {\r
+               return dataOut;\r
+       }\r
+}\r
index ad12155..186203e 100644 (file)
@@ -1,4 +1,5 @@
-\r
+package lejos.pc.tools;\r
+import lejos.pc.comm.*;\r
 import java.awt.BorderLayout;\r
 import java.awt.GridLayout;\r
 import java.awt.TextArea;\r
@@ -11,145 +12,159 @@ import javax.swing.JPanel;
 import javax.swing.JLabel;\r
 import java.io.*;\r
 \r
-\r
 /**\r
-* Downloads  data from the DataLogger running on a MXT <br>\r
-* Uses Bluetooth\r
-* The data can be copied and pasted into a spread sheet for analysis & graphing <br>\r
-* status field shows messages \r
-* @author Roger Glassey revised  07.11.2007\r
-*\r
-* \r
-*/\r
- public class DataViewer extends JFrame implements ActionListener\r
- {\r
+ * Downloads  data from the DataLogger running on a MXT <br>\r
+ * Uses Bluetooth\r
+ * The data can be copied and pasted into a spread sheet for analysis & graphing <br>\r
+ * status field shows messages \r
+ * @author Roger Glassey revised  07.11.2007\r
+ *\r
+ \r
+ */\r
+public class DataViewer extends JFrame implements ActionListener\r
+{\r
 \r
 \r
-       private JButton startButton = new JButton("Start download");\r
-    private JToggleButton usbButton = new JToggleButton("USE USB");\r
-       private TextField statusField = new TextField(20);\r
-       private TextField lengthField = new TextField(5);\r
-    private TextField nameField = new TextField(12);\r
-       private int _recordCount = 0;\r
-       private int _rowLength = 4;\r
-       private String _nxt = "NXT"; \r
-    private boolean _useUSB = false;\r
-    private DataInputStream dataIn = null;\r
-    private OutputStream os = null;\r
-    private Connector con;\r
-    \r
-       \r
-/**\r
-* screen area to hold the downloaded data\r
-*/\r
-       private TextArea theLog;\r
+   private JButton startButton = new JButton("Start download");\r
+   private JToggleButton usbButton = new JToggleButton("USE USB");\r
+   private TextField statusField = new TextField(20);\r
+   private TextField lengthField = new TextField(5);\r
+   private TextField nameField = new TextField(12);\r
+   private int _recordCount = 0;\r
+   private int _rowLength = 4;\r
+   private String _nxt = "NXT"; \r
+   private boolean _useUSB = false;\r
+   private DataInputStream dataIn = null;\r
+   private OutputStream os = null;\r
+   private Connector con;\r
+   private boolean _connected = false;\r
 \r
 \r
-/**\r
-* Constructor builds GUI\r
-*/\r
-       public DataViewer() \r
-       {               \r
-               setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
-               setTitle("View Data from NXT Datalogger");\r
-               setSize(500,600);\r
-               JPanel p1 = new JPanel();  //holds  button and text field\r
-               p1.add(new JLabel("Row Length:"));\r
-               p1.add(lengthField);\r
-        lengthField.setText("2");\r
-        p1.add(new JLabel("name or address"));\r
-        p1.add(nameField);\r
-        startButton.addActionListener(this);\r
-               JPanel p2 = new JPanel();//  holds label and text field\r
-           p2.add(usbButton);\r
-            usbButton.addActionListener(this);\r
-        p2.add(startButton);\r
-               p2.add(new JLabel("  Status:"));\r
-               p2.add(statusField);\r
+   /**\r
+    * screen area to hold the downloaded data\r
+    */\r
+   private TextArea theLog;\r
 \r
-               JPanel panel = new JPanel();  // North area of the frame\r
-               panel.setLayout(new GridLayout(2,1));\r
-               panel.add(p1);\r
-               panel.add(p2);;\r
-               add(panel,BorderLayout.NORTH);\r
-               theLog = new TextArea(40,40); // Center area of the frame\r
-               getContentPane().add(theLog,BorderLayout.CENTER);\r
-        statusField.setText("using BlueTooth");\r
 \r
-       }\r
-/**\r
-* Required by action listener; only action is generated by the get Length button\r
-*/     \r
-        public void actionPerformed(ActionEvent e)\r
-        {\r
-       if(e.getSource()== startButton)\r
-        {\r
-               _rowLength = Integer.parseInt(lengthField.getText());\r
-              _nxt = nameField.getText();\r
-               System.out.println(_rowLength  + "  "+ _nxt);   \r
-               _recordCount = 0;\r
-            startDownload();\r
-        }\r
-        if(e.getSource()==usbButton)\r
-        {\r
-           \r
-           _useUSB = !_useUSB;\r
-           if(_useUSB){\r
-              setMessage("using USB");\r
-           }\r
-           else setMessage("using Bluetooth");          \r
-        }\r
-     }\r
-/**\r
- * Initialize the display Frame <br>\r
- */            \r
-       public static void main(String[] args)\r
-       {\r
-       DataViewer frame = new DataViewer();\r
-               frame.setVisible(true);\r
+   /**\r
+    * Constructor builds GUI\r
+    */\r
+   public DataViewer() \r
+   {           \r
+      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
+      setTitle("View Data from NXT Datalogger x");\r
+      setSize(500,600);\r
+      JPanel p1 = new JPanel();  //holds  button and text field\r
+      p1.add(new JLabel("Row Length:"));\r
+      p1.add(lengthField);\r
+      lengthField.setText("2");\r
+      p1.add(new JLabel("name or address"));\r
+      p1.add(nameField);\r
+      startButton.addActionListener(this);\r
+      JPanel p2 = new JPanel();//  holds label and text field\r
+      p2.add(usbButton);\r
+      usbButton.addActionListener(this);\r
+      p2.add(startButton);\r
+      p2.add(new JLabel("  Status:"));\r
+      p2.add(statusField);\r
 \r
-       }\r
+      JPanel panel = new JPanel();  // North area of the frame\r
+      panel.setLayout(new GridLayout(2,1));\r
+      panel.add(p1);\r
+      panel.add(p2);;\r
+      add(panel,BorderLayout.NORTH);\r
+      theLog = new TextArea(40,40); // Center area of the frame\r
+      getContentPane().add(theLog,BorderLayout.CENTER);\r
+      statusField.setText("using BlueTooth");\r
 \r
-       private void startDownload()\r
-       {   \r
-          float length = 0;\r
-          _nxt = nameField.getText(); \r
-          setMessage("startDL");\r
-          System.out.println("startDL");\r
-          con = new Connector();\r
-          con.startConnector(_nxt,_useUSB);\r
-          dataIn = con.getDataIn();\r
-          os = con.getOutputStream();\r
-          // the NXT is waiting for an incoming byte before it starts transmitting\r
-          int b = 15;  \r
-          try \r
-          {     \r
-             os.write(b);\r
-             os.flush();\r
-          } catch(IOException e) {System.out.println(e+" write "); }\r
-          setMessage("write "+b);\r
-          setMessage("reading");\r
-          try {  length = dataIn.readFloat(); }\r
-          catch(IOException e) {System.out.println(e+" read dataIn "); }\r
-          setMessage("length "+ length);\r
-          float x = 0;\r
-          try\r
-          {         \r
-             for (int i = 0; i<length;i++)\r
-             {\r
-                if(0 == _recordCount%_rowLength)theLog.append("\n"); \r
-                x = dataIn.readFloat();\r
-                theLog.append(x+ "\t ");\r
-                _recordCount++;\r
-                System.out.println(""+_recordCount+" "+x);\r
-             } \r
-             dataIn.close();\r
-          } catch(IOException e) {System.out.println(e); }\r
-       }\r
+   }\r
+   /**\r
+    * Required by action listener; only action is generated by the get Length button\r
+    */ \r
+   public void actionPerformed(ActionEvent e)\r
+   {\r
+      if(e.getSource()== startButton)\r
+      {\r
+         System.out.println("call download");\r
+         _rowLength = Integer.parseInt(lengthField.getText());\r
+         _nxt = nameField.getText();\r
+         System.out.println(_rowLength  + "  "+ _nxt); \r
+         _recordCount = 0;\r
+         startDownload();\r
+      }\r
+      if(e.getSource()==usbButton)\r
+      {\r
 \r
+         _useUSB = !_useUSB;\r
+         if(_useUSB){\r
+            setMessage("using USB");\r
+         }\r
+         else setMessage("using Bluetooth");          \r
+      }\r
+   }\r
+   /**\r
+    * Initialize the display Frame <br>\r
+    */         \r
+   public static void main(String[] args)\r
+   {\r
+      DataViewer frame = new DataViewer();\r
+      frame.setVisible(true);\r
 \r
-/**\r
- *messages generated by  PCcomSerial show in the status Field\r
- */\r
-       public void  setMessage(String s){ statusField.setText(s);}\r
+   }\r
+\r
+   private void startDownload()\r
+   {  \r
+\r
+   float length = 0;\r
+   if((!_connected  && _useUSB)||!_useUSB)\r
+   {\r
+      _nxt = nameField.getText(); \r
+      setMessage("Connecting");\r
+      con = new Connector();\r
+      try { con.startConnector(_nxt,_useUSB);}\r
+      catch(NXTCommException e) \r
+      { \r
+         System.out.println( " is BT adapter plugged in? " +e);\r
+         setMessage("BT adapter not found");\r
+         return;\r
+      }\r
+   }\r
+      setMessage("ready for data");\r
+      dataIn = con.getDataIn();\r
+      if(dataIn != null)System.out.println(" dataIn OK");\r
+      os = con.getOutputStream();\r
+      // the NXT is waiting for an incoming byte before it starts transmitting \r
+      _connected = true;\r
+  \r
+   int b = 15;\r
+   try \r
+   {     \r
+      os.write(b);\r
+      os.flush();\r
+   } catch(IOException e) {System.out.println(e+" write "); }\r
+   setMessage("write "+b);\r
+   setMessage("reading");\r
+   try {  length = dataIn.readFloat(); }\r
+   catch(IOException e) {System.out.println(e+" read dataIn "); }\r
+   setMessage("length "+ length);\r
+   float x = 0;\r
+   try\r
+   {         \r
+      for (int i = 0; i<length;i++)\r
+      {\r
+         if(0 == _recordCount%_rowLength)theLog.append("\n"); \r
+         x = dataIn.readFloat();\r
+         theLog.append(x+ "\t ");\r
+         _recordCount++;\r
+         System.out.println(""+_recordCount+" "+x);\r
+      } \r
+      dataIn.close();\r
+   } catch(IOException e) {System.out.println(e); }\r
+   }\r
+\r
+\r
+   /**\r
+    *messages generated by  PCcomSerial show in the status Field\r
+    */\r
+   public void  setMessage(String s){ statusField.setText(s);}\r
 }      \r
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/DebugMonitor.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/DebugMonitor.java
new file mode 100644 (file)
index 0000000..1128c95
--- /dev/null
@@ -0,0 +1,84 @@
+package lejos.pc.tools;\r
+\r
+import lejos.pc.comm.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * Debug output monitor class.\r
+ * This class provides access to debug output from an nxt program. The program\r
+ * simply write debug strings using the nxt Debug class. These are sent to the\r
+ * PC via the USB connection.\r
+ *\r
+ * Note: The low level USB routines are used to allow for larger packet I/O. \r
+ *\r
+ */ \r
+public class DebugMonitor {\r
+       \r
+       public static void main(String[] args) {\r
+               NXTCommLibnxt nxtComm = new NXTCommLibnxt();\r
+               NXTInfo[] nxtInfo = null;\r
+               \r
+               nxtInfo = nxtComm.search(null, NXTCommFactory.USB);\r
+\r
+               \r
+               if (nxtInfo.length == 0) {\r
+                       System.out.println("No NXT Found");\r
+                       System.exit(1);\r
+               }\r
+\r
+               nxtComm.open(nxtInfo[0]);\r
+               //try {outDat.write(27);}catch(Exception e){}\r
+               byte [] hello = {(byte)27};\r
+               try {\r
+                       nxtComm.jlibnxt_send_data(nxtInfo[0].nxtPtr, hello);\r
+               } catch(Exception e)\r
+               {\r
+                       System.out.println("Exception writing hello " + e);\r
+               }\r
+               boolean connected = true;\r
+               while (connected) \r
+               {\r
+                       byte b1 = 0;\r
+                       byte b2 = 0;\r
+                       byte [] buf=null;\r
+                       int errCnt = 0;\r
+                       while(true)\r
+                       {\r
+                  try \r
+                          {\r
+                                  buf = nxtComm.jlibnxt_read_data(nxtInfo[0].nxtPtr, 64);\r
+                          } \r
+                          catch(Exception e)\r
+                          {\r
+                                  if (errCnt++ < 1000) \r
+                                          continue;\r
+                                  connected = false;\r
+                          }\r
+                          break;\r
+                       }\r
+                       if (buf != null)\r
+                       {\r
+                               for (int i = 0; i < (int) buf[0]; i++)\r
+                               {\r
+                                       char c = (char)((char)buf[i+1] & 0xff);\r
+                                       if (c == (char)0xff)\r
+                                       {\r
+                                               connected = false;\r
+                                               break;\r
+                                       }\r
+                                       else\r
+                                               System.out.print(c);\r
+                               }\r
+                       }\r
+               }\r
+               \r
+               try {\r
+                       Thread.sleep(1000);\r
+               } catch (InterruptedException ie) {}\r
+               \r
+               try {\r
+                       nxtComm.close();\r
+               } catch (IOException ioe) {}\r
+       }\r
+\r
+}\r
index e3f5c55..a8e14cd 100644 (file)
@@ -12,8 +12,11 @@ import java.awt.event.*;
 import java.io.*;
 
 /**
- *  Thus is a PC example that uses iCommand and the BTRespond example running on the NXT
- *  to implement a Bluetooth file browser for leJOS NXJ.
+ * 
+ *  Graphical file browser for leJOS NXJ.
+ *  Supports uploading,, downloading, and deleting files.
+ *  Also supports running programs, defragging the file system
+ *  and setting the name of the NXT.
  *
  *  @author Lawrie Griffiths <lawrie.griffiths@ntlworld.com>
  */
@@ -36,12 +39,12 @@ public class NXJBrowser {
        try {
                NXJBrowser instance = new NXJBrowser();
                instance.run(args);
-       } catch(js.tinyvm.TinyVMException tvexc) {
-         System.err.println("Error: " + tvexc.getMessage());
+       } catch(Throwable t) {
+         System.err.println("Error: " + t.getMessage());
        }
   }
   
-  public void run(String[] args) throws js.tinyvm.TinyVMException  {
+  public void run(String[] args) throws js.tinyvm.TinyVMException, NXTCommException  {
 
     frame = new JFrame(title);
 
@@ -77,7 +80,7 @@ public class NXJBrowser {
       System.exit(1);
     }
     
-    final NXTModel nm = new NXTModel(frame, nxts, nxts.length);
+    final NXTTableModel nm = new NXTTableModel(frame, nxts, nxts.length);
     
     final JTable nxtTable = new JTable(nm);
     
@@ -93,7 +96,12 @@ public class NXJBrowser {
         public void actionPerformed(ActionEvent ae) {
           int row = nxtTable.getSelectedRow();
           if (row >= 0) {
-                 boolean open = nxtCommand.open(nxts[row]);
+                 boolean open = false;
+                 try {
+                         open = nxtCommand.open(nxts[row]);
+                 } catch(NXTCommException n) {
+                         open = false;
+                 }
                  if (!open) {
                          JOptionPane.showMessageDialog(frame, "Failed to connect");
                  } else showFiles(frame,nxts[row]);
@@ -402,48 +410,3 @@ class FileModel extends AbstractTableModel {
   }
 }
 
-class NXTModel extends AbstractTableModel {
-  private static final String[] columnNames = {"Name","Protocol", "Address"};
-  private static final int NUM_COLUMNS = 3;
-
-  Object[][] nxtData;
-  int numNXTs;
-  JFrame frame;
-
-  public NXTModel(JFrame frame, NXTInfo[] nxts, int numNXTs) {
-    this.frame = frame;
-    setData(nxts, numNXTs);
-  }
-
-  public void setData(NXTInfo[] nxts, int numNXTs) {
-    this.numNXTs = numNXTs;
-    nxtData = new Object[numNXTs][NUM_COLUMNS];
-
-    for(int i=0;i<numNXTs;i++) {
-      nxtData[i][0]  = nxts[i].name;
-      nxtData[i][1] = (nxts[i].protocol == NXTCommFactory.USB ? "USB" : "Bluetooth");
-      nxtData[i][2] = (nxts[i].btDeviceAddress == null ? "" : nxts[i].btDeviceAddress);
-    }
-  }
-
-  public int getRowCount() {
-    return numNXTs;
-  }
-
-  public int getColumnCount() {
-    return NUM_COLUMNS;
-  }
-
-  public Object getValueAt(int row, int column) {
-    return nxtData[row][column];
-  }
-
-  public String getColumnName(int column) {
-    return columnNames[column];
-  }
-
-  public Class getColumnClass(int column) {
-    return nxtData[0][column].getClass();
-  }
-}
-
index 5813e8a..0bf01d5 100644 (file)
@@ -1,36 +1,55 @@
 package lejos.pc.tools;
 
-import org.apache.commons.cli.CommandLine;
+import java.util.ArrayList;
+import java.util.Collection;
+
 import js.common.CLIToolProgressMonitor;
+import js.common.ToolProgressMonitor;
 import js.tinyvm.TinyVM;
-import lejos.pc.comm.*;
+import lejos.pc.comm.NXTCommFactory;
+
+import org.apache.commons.cli.CommandLine;
 
 /**
  * Links and uploads NXJ programs in one call
+ * 
  * @author Lawrie Griffiths
- *
+ * 
  */
- public class NXJLinkAndUpload {
+public class NXJLinkAndUpload {
+
+       private Collection<ToolsLogListener> fLogListeners;
        private NXJCommandLineParser fParser;
+       private Upload fUpload;
+       private TinyVM fTinyVM;
+
 
        public NXJLinkAndUpload() {
                fParser = new NXJCommandLineParser();
+               fLogListeners = new ArrayList<ToolsLogListener>();
+               fUpload = new Upload(); 
+               fTinyVM = new TinyVM();
+               fTinyVM.addProgressMonitor(new CLIToolProgressMonitor());
+
        }
 
        /**
         * Main entry point for command line usage
+        * 
         * @param args
         */
        public static void main(String[] args) {
                try {
                        NXJLinkAndUpload instance = new NXJLinkAndUpload();
+                       instance.addToolsLogListener(new ToolsLogger());
                        instance.run(args);
-               } catch(js.tinyvm.TinyVMException tvexc) {
-                System.err.println("Error: " + tvexc.getMessage());
+               } catch (Throwable t) {
+                       System.err.println("an error occurred: " + t.getMessage());
                }
        }
-       
-       private void run(String[] args) throws js.tinyvm.TinyVMException {
+
+       public void run(String[] args) throws js.tinyvm.TinyVMException,
+                       NXJUploadException {
                // process arguments
                CommandLine commandLine = fParser.parse(args);
                String binName = commandLine.getOptionValue("o");
@@ -40,66 +59,142 @@ import lejos.pc.comm.*;
                String name = commandLine.getOptionValue("n");
                String address = commandLine.getOptionValue("d");
                String tinyVMArgs[];
-               
+
                String firstArg = commandLine.getArgs()[0];
-        
-        int argCount = 0;
-        
-        // Count the arguments for the linker
-               for(int i=0;i<args.length;i++) {
-                       if (args[i].equals("-b")) continue;
-                       if (args[i].equals("--bluetooth")) continue;
-                       if (args[i].equals("-u")) continue;
-                       if (args[i].equals("--usb")) continue;
-                       if (args[i].equals("-n")) {i++; continue;}
-                       if (args[i].equals("--name")) {i++; continue;}
-                       if (args[i].equals("-d")) {i++; continue;}
-                       if (args[i].equals("--address")) {i++; continue;}
-                       if (args[i].equals("-r")) continue;
-                       if (args[i].equals("--run")) continue;
+
+               int argCount = 0;
+
+               // Count the arguments for the linker
+               for (int i = 0; i < args.length; i++) {
+                       if (args[i].equals("-b"))
+                               continue;
+                       if (args[i].equals("--bluetooth"))
+                               continue;
+                       if (args[i].equals("-u"))
+                               continue;
+                       if (args[i].equals("--usb"))
+                               continue;
+                       if (args[i].equals("-n")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("--name")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("-d")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("--address")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("-r"))
+                               continue;
+                       if (args[i].equals("--run"))
+                               continue;
                        argCount++;
                }
-               
+
                // System.out.println("Arg count is " + argCount);
-               
+
                // Build the linker arguments
                int index = 0;
-           tinyVMArgs = new String[argCount+2];
-           
-           if (binName == null) binName = firstArg + ".nxj";
-           
-               for(int i=0;i<args.length;i++) {
-                       if (args[i].equals("-b")) continue;
-                       if (args[i].equals("--bluetooth")) continue;
-                       if (args[i].equals("-u")) continue;
-                       if (args[i].equals("--usb")) continue;
-                       if (args[i].equals("-n")) {i++; continue;}
-                       if (args[i].equals("--name")) {i++; continue;}
-                       if (args[i].equals("-d")) {i++; continue;}
-                       if (args[i].equals("--address")) {i++; continue;}
-                       if (args[i].equals("-r")) continue;
-                       if (args[i].equals("--run")) continue;
+               tinyVMArgs = new String[argCount + 2];
+
+               if (binName == null)
+                       binName = firstArg + ".nxj";
+
+               for (int i = 0; i < args.length; i++) {
+                       if (args[i].equals("-b"))
+                               continue;
+                       if (args[i].equals("--bluetooth"))
+                               continue;
+                       if (args[i].equals("-u"))
+                               continue;
+                       if (args[i].equals("--usb"))
+                               continue;
+                       if (args[i].equals("-n")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("--name")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("-d")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("--address")) {
+                               i++;
+                               continue;
+                       }
+                       if (args[i].equals("-r"))
+                               continue;
+                       if (args[i].equals("--run"))
+                               continue;
                        tinyVMArgs[index++] = args[i];
                }
                tinyVMArgs[argCount] = "-o";
-               tinyVMArgs[argCount+1] = binName;
-               // create progress monitor
-               CLIToolProgressMonitor monitor = new CLIToolProgressMonitor();
-               
+               tinyVMArgs[argCount + 1] = binName;
+
+
                // link
-               System.out.println("Linking..."); 
-               TinyVM tinyVM = new TinyVM(monitor);
-               tinyVM.start(tinyVMArgs);
-               
-               // upload         
-               System.out.println("Uploading...");;
+               log("Linking...");
+               fTinyVM.start(tinyVMArgs);
+
+               // upload
+               log("Uploading...");
                int protocols = 0;
-               
-               if (blueTooth) protocols |= NXTCommFactory.BLUETOOTH;
-               if (usb) protocols |= NXTCommFactory.USB;
-               
-               Upload.upload(name, address, protocols, binName, run);
+
+               if (blueTooth)
+                       protocols |= NXTCommFactory.BLUETOOTH;
+               if (usb)
+                       protocols |= NXTCommFactory.USB;
+
+               fUpload.upload(name, address, protocols, binName, run);
        }
-}
 
+       /**
+        * register log listener
+        * @param listener
+        */
+       public void addToolsLogListener(ToolsLogListener listener) {
+               fLogListeners.add(listener);
+               fUpload.addLogListener(listener);
+       }
+       
+       /**
+        * unregister log listener
+        * @param listener
+        */
+       public void removeToolsLogListener(ToolsLogListener listener) {
+               fLogListeners.remove(listener);
+               fUpload.removeLogListener(listener);
+       }
+
+       /**
+        * register monitor
+        * @param listener
+        */
+       public void addMonitor(ToolProgressMonitor monitor) {
+               fTinyVM.addProgressMonitor(monitor);
+       }
+
+       /**
+        * deregister monitor
+        * @param listener
+        */
+       public void removeMonitor(ToolProgressMonitor monitor) {
+               fTinyVM.removeProgressMonitor(monitor);
+       }
+
+       private void log(String message) {
+               for (ToolsLogListener listener : fLogListeners) {
+                       listener.logEvent(message);
+               }
+       }
+
+}
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJMonitor.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJMonitor.java
new file mode 100644 (file)
index 0000000..2dcefc0
--- /dev/null
@@ -0,0 +1,370 @@
+package lejos.pc.tools;\r
+\r
+import java.awt.*;\r
+import java.awt.event.*;\r
+\r
+import javax.swing.*;\r
+import javax.swing.table.*;\r
+import lejos.pc.comm.*;\r
+import java.io.*;\r
+\r
+/**\r
+ * Monitors sensors and motors of NXT using LCP.\r
+ * \r
+ * @author Lawrie Griffiths\r
+ *\r
+ */\r
+public class NXJMonitor extends JFrame implements ActionListener {\r
+\r
+       public static final int MODE_RAW = 0x00;\r
+       public static final int MODE_BOOLEAN = 0x20;\r
+       public static final int MODE_TRANSITIONCNT = 0x40;\r
+       public static final int MODE_PERIODCOUNTER = 0x60;\r
+       public static final int MODE_PCTFULLSCALE = 0x80;\r
+       public static final int MODE_CELSIUS = 0xA0;\r
+       public static final int MODE_FARENHEIT = 0xC0;\r
+       public static final int MODE_ANGLESTEP = 0xE0;\r
+       \r
+       public static final int TYPE_NO_SENSOR = 0x00;\r
+       public static final int TYPE_SWITCH = 0x01;\r
+       public static final int TYPE_TEMPERATURE = 0x02;\r
+       public static final int TYPE_REFLECTION = 0x03;\r
+       public static final int TYPE_ANGLE = 0x04;\r
+       public static final int TYPE_LIGHT_ACTIVE = 0x05;\r
+       public static final int TYPE_LIGHT_INACTIVE = 0x06;\r
+       public static final int TYPE_SOUND_DB = 0x07; \r
+       public static final int TYPE_SOUND_DBA = 0x08;\r
+       public static final int TYPE_CUSTOM = 0x09;\r
+       public static final int TYPE_LOWSPEED = 0x0A;\r
+       public static final int TYPE_LOWSPEED_9V = 0x0B;\r
+       \r
+       private static String[] sensorTypes = {\r
+                       "No Sensor",\r
+                       "Touch Sensor",\r
+                       "Remperature",\r
+                       "RCX Light",\r
+                       "RCX Rotation",\r
+                       "Light Active",\r
+                       "Light Inactive",\r
+                       "Sound DB",\r
+                       "Sound DBA",\r
+                       "Custom",\r
+                       "I2C",\r
+                       "I2C 9V"};\r
+       \r
+       private String title = "NXJ Monitor";\r
+       private NXTCommand nxtCommand = null;\r
+       private Timer timer;\r
+       private SensorPanel [] sensorPanels = {\r
+                       new SensorPanel("S1"),\r
+                       new SensorPanel("S2"),\r
+                       new SensorPanel("S3"),\r
+                       new SensorPanel("S4")};\r
+       private MotorPanel[] motorPanels = {\r
+                       new MotorPanel("A"),\r
+                       new MotorPanel("B"),\r
+                       new MotorPanel("C")};\r
+       private Gauge batteryGauge = new Gauge();\r
+       private JLabel batteryLabel = new JLabel("Battery");\r
+       private InputValues[] sensorValues = new InputValues[4];\r
+       private OutputState[] motorValues = new OutputState[3];\r
+       private int mv;\r
+       private JTextArea text = new JTextArea(10,58);\r
+       private String[] textStrings = new String[10];\r
+       private int numStrings = 0;\r
+       \r
+       public NXJMonitor() {\r
+               setTitle(title);\r
+               \r
+               WindowListener listener = new WindowAdapter() {\r
+               public void windowClosing(WindowEvent w) {\r
+                 try {\r
+                       if (nxtCommand != null) nxtCommand.close();\r
+                 } catch (IOException ioe) {}\r
+                 System.exit(0);\r
+               }\r
+             };\r
+             \r
+           addWindowListener(listener);      \r
+               setSize(500,300);\r
+       }\r
+       \r
+       public void run() throws NXTCommException {\r
+           nxtCommand = NXTCommand.getSingleton();\r
+           int protocols = NXTCommFactory.USB | NXTCommFactory.BLUETOOTH;\r
+           final NXTInfo[] nxts = nxtCommand.search(null, protocols);\r
+           final JFrame frame = this;\r
+          \r
+           if (nxts.length == 0) {\r
+             System.err.println("No NXT found - is it switched on and plugged in (for USB)?");\r
+             System.exit(1);\r
+           }\r
+           \r
+           final NXTTableModel nm = new NXTTableModel(this, nxts, nxts.length);\r
+           \r
+           final JTable nxtTable = new JTable(nm);\r
+           \r
+           final JScrollPane nxtTablePane = new JScrollPane(nxtTable);\r
+           \r
+           nxtTable.setRowSelectionInterval(0, 0);\r
+           \r
+           getContentPane().add(nxtTablePane, BorderLayout.CENTER);\r
+           \r
+           JButton connectButton = new JButton("Connect");\r
+           \r
+           connectButton.addActionListener(new ActionListener() {\r
+               public void actionPerformed(ActionEvent ae) {\r
+                 int row = nxtTable.getSelectedRow();\r
+                 if (row >= 0) {\r
+                         boolean open = false;\r
+                         try {\r
+                                 open = nxtCommand.open(nxts[row]);\r
+                         } catch(NXTCommException n) {\r
+                                 open = false;\r
+                         }\r
+                         if (!open) {\r
+                                 JOptionPane.showMessageDialog(frame, "Failed to connect");\r
+                         } else {\r
+                                 showMonitor(nxts[row].name);\r
+                         }\r
+                 }\r
+               }\r
+             });\r
+\r
+           JPanel buttonPanel = new JPanel();      \r
+           buttonPanel.add(connectButton);\r
+           getContentPane().add(new JScrollPane(buttonPanel), BorderLayout.SOUTH);\r
+\r
+           pack();\r
+           setVisible(true);\r
+       }\r
+       \r
+       private void showMonitor(String name) {\r
+           setTitle(title + " : " + name);\r
+\r
+               getContentPane().removeAll();\r
+               \r
+               JPanel p1 = new JPanel();\r
+               JPanel p2 = new JPanel();\r
+               JPanel p3 = new JPanel();\r
+\r
+               for(int i=0;i<4;i++) {\r
+                       p1.add(sensorPanels[i]);\r
+               }\r
+               \r
+               batteryGauge.setMaxVal(10000);\r
+               p2.add(batteryLabel);\r
+               p2.add(batteryGauge);\r
+               \r
+               for(int i=0;i<3;i++) {\r
+                       p3.add(motorPanels[i]);\r
+               }\r
+\r
+               getContentPane().add(p1, BorderLayout.NORTH);\r
+               getContentPane().add(p2, BorderLayout.WEST);\r
+               getContentPane().add(text, BorderLayout.CENTER);\r
+               getContentPane().add(p3, BorderLayout.SOUTH);\r
+               pack();\r
+           \r
+               timer = new Timer(1000, this);\r
+               timer.setInitialDelay(2000);\r
+               timer.start();\r
+       }\r
+       \r
+       public void showMessage(String msg) {\r
+               JOptionPane.showMessageDialog(this, msg);\r
+       }\r
+       \r
+       public void actionPerformed(ActionEvent e) {\r
+       getValues();\r
+       for(int i=0;i<4;i++) {\r
+               int max = 1024;\r
+               sensorPanels[i].setRawVal(sensorValues[i].rawADValue);\r
+               if (sensorValues[i].sensorMode == (byte) MODE_PCTFULLSCALE) {\r
+                       max = 100;\r
+               }\r
+               //System.out.println("Sensor mode " + i + " = " + sensorValues[i].sensorMode);\r
+               sensorPanels[i].setScaledMaxVal(max);\r
+               sensorPanels[i].setScaledVal(sensorValues[i].scaledValue);\r
+               sensorPanels[i].setType(sensorTypes[sensorValues[i].sensorType]);\r
+               sensorPanels[i].repaint();\r
+       }\r
+       for(int i=0;i<3;i++) {\r
+               motorPanels[i].setTachoVal(motorValues[i].tachoCount);\r
+               motorPanels[i].repaint();\r
+       }\r
+               batteryGauge.setVal(mv);\r
+               text.setText("");\r
+               for(int i=0;i<numStrings;i++) {\r
+                       text.append(textStrings[i] + "\n");\r
+               }\r
+               text.repaint();\r
+       repaint();\r
+       }\r
+\r
+       \r
+       public void getValues() {\r
+               try {\r
+                       for(int i=0;i<4;i++) {\r
+                               //System.out.println("Getting values for port " + i);\r
+                               sensorValues[i] = nxtCommand.getInputValues(i);\r
+                               //System.out.println("Got values for port " + i);\r
+                       }\r
+                       for(int i=0;i<3;i++) {\r
+                               //System.out.println("Getting values for motor " + i);\r
+                               motorValues[i] = nxtCommand.getOutputState(i);\r
+                               //System.out.println("Got values for motor " + i);\r
+                       }\r
+                       //System.out.println("Getting Battery value");\r
+                       mv = nxtCommand.getBatteryLevel();\r
+                       //System.out.println("Got Battery value");\r
+                       \r
+                       // Read trace messages from the NXT in mailbox 0\r
+                       while(true) {                           \r
+                               byte[] msg = nxtCommand.messageRead((byte)0, (byte) 0, true);\r
+                               if (msg.length == 0) break;\r
+                               String msgString = new String(msg);\r
+                               if (numStrings == textStrings.length) {\r
+                                       for(int i=0;i<textStrings.length-1;i++) {\r
+                                               textStrings[i] = textStrings[i+1];                                              \r
+                                       }\r
+                                       numStrings = textStrings.length-1;\r
+                               }\r
+                               textStrings[numStrings++] = msgString;\r
+                       }                       \r
+\r
+               } catch (IOException ioe) {\r
+                       System.err.println(ioe.getMessage());\r
+               }\r
+       }\r
+       \r
+       public static void main(String[] args) {\r
+       NXJMonitor frame = new NXJMonitor();\r
+               try {\r
+                       frame.run();\r
+               } catch (Exception e) {\r
+                       System.err.println(e.getMessage());\r
+               }\r
+       }\r
+}\r
+\r
+class SensorPanel  extends Panel {\r
+       Gauge rawGauge, scaledGauge;\r
+       String name;\r
+       JLabel nameLabel;\r
+       JLabel typeLabel = new JLabel("No Sensor");\r
+       \r
+       public SensorPanel(String name) {\r
+               this.name = name;\r
+               nameLabel = new JLabel(name);\r
+               rawGauge = new Gauge();\r
+               scaledGauge = new Gauge();\r
+               add(rawGauge,BorderLayout.NORTH);\r
+               add(scaledGauge,BorderLayout.CENTER);\r
+               JPanel p1 = new JPanel();\r
+               p1.add(nameLabel);\r
+               p1.add(typeLabel);\r
+               add(p1,BorderLayout.SOUTH);\r
+               Dimension size = new Dimension(110,250);\r
+               setSize(size);\r
+               setMaximumSize(size);\r
+               setPreferredSize(size);\r
+       }\r
+       \r
+       public void setRawVal(int val) {\r
+               rawGauge.setVal(val);\r
+       }\r
+       \r
+       public void setRawMaxVal(int val) {\r
+               rawGauge.setMaxVal(val);\r
+       }\r
+       \r
+       public void setScaledVal(int val) {\r
+               scaledGauge.setVal(val);\r
+       }\r
+       \r
+       public void setScaledMaxVal(int val) {\r
+               scaledGauge.setMaxVal(val);\r
+       }\r
+       \r
+       public void setType(String type) {\r
+               typeLabel.setText(type);\r
+       }\r
+}\r
+\r
+class MotorPanel  extends Panel {\r
+       Gauge tachoGauge;\r
+       String name;\r
+       JLabel nameLabel;\r
+       \r
+       public MotorPanel(String name) {\r
+               this.name = name;\r
+               nameLabel = new JLabel(name);\r
+               tachoGauge = new Gauge();\r
+               tachoGauge.setMaxVal(360);\r
+\r
+               JPanel p1 = new JPanel();\r
+               p1.add(nameLabel);\r
+               add(tachoGauge,BorderLayout.NORTH);\r
+               add(p1,BorderLayout.SOUTH);\r
+               Dimension size = new Dimension(110,150);\r
+               setSize(size);\r
+               setMaximumSize(size);\r
+               setPreferredSize(size);\r
+       }\r
+       \r
+       public void setTachoVal(int val) {\r
+               tachoGauge.setVal(val);\r
+       }\r
+}\r
+\r
+class Gauge extends JComponent {\r
+       int value = 0, MAX_VALUE = 1024;\r
+       Dimension size;\r
+       double gaugeWidth, gaugeHeight;\r
+       int    centerX,  centerY;\r
+       double zeroAngle = 225.0;\r
+       double maxAngle  = -45; \r
+       double range = zeroAngle - maxAngle;\r
+       double offsetX, offsetY;\r
+       \r
+       public Gauge() {\r
+               size = new Dimension(100,100);\r
+               gaugeWidth      = size.width  * 0.8;\r
+               gaugeHeight = size.height * 0.8;\r
+               offsetX = size.width  * 0.1;\r
+               offsetY = size.width  * 0.1;\r
+               centerX = (int) offsetX + (int)(gaugeWidth/2.0);\r
+               centerY = (int) offsetY + (int)(gaugeHeight/2.0);\r
+\r
+               setSize(size);\r
+               setMaximumSize(size);\r
+               setPreferredSize(size);\r
+       }\r
+       \r
+       public void setVal( int i ){ value = i; }\r
+       public void setMaxVal( int i) { MAX_VALUE = i; }        \r
+       \r
+       public void paint(Graphics g){\r
+               int x1 = centerX, y1 = centerY,\r
+           x2 = x1, y2 = y1;\r
+               double angle = zeroAngle - 1.0 * range *( value * 1.0 / MAX_VALUE * 1.0);\r
+               x2 += (int)( Math.cos(Math.toRadians(angle))*(gaugeWidth/2));\r
+               y2 -= (int)( Math.sin(Math.toRadians(angle))*(gaugeHeight/2));\r
+\r
+               g.setColor(Color.black);\r
+               g.fillRect(0, 0, size.width, size.height);\r
+               g.setColor(Color.white);\r
+               g.fillOval((int) offsetX, (int) offsetY, (int)gaugeWidth, (int)gaugeHeight);\r
+               g.setColor( Color.blue);\r
+               g.drawArc( (int) offsetX+10, (int) offsetY+10, (int)gaugeWidth-20, (int)gaugeHeight-20, -45, 270);\r
+               g.setColor(Color.red);\r
+               g.drawLine(x1, y1, x2, y2 );\r
+               g.setColor(Color.black);\r
+               g.drawString(""+ value, centerX - 10, centerY + 30);\r
+       }\r
+\r
+}\r
+\r
+\r
+\r
index 235043a..6759184 100644 (file)
@@ -1,25 +1,34 @@
 package lejos.pc.tools;
 
+import java.util.ArrayList;
+import java.util.Collection;
+
 import lejos.pc.comm.*;
 import org.apache.commons.cli.CommandLine;
 
 public class NXJUpload {
+
+       private Collection<ToolsLogListener> fLogListeners;
        private NXJUploadCommandLineParser fParser;
+       private Upload fUpload;
 
        public NXJUpload() {
                fParser = new NXJUploadCommandLineParser();
+               fLogListeners = new ArrayList<ToolsLogListener>();
+               fUpload = new Upload(); 
        }
 
        public static void main(String[] args) {
                try {
                        NXJUpload instance = new NXJUpload();
+                       instance.addLogListener(new ToolsLogger());
                        instance.run(args);
-               } catch(js.tinyvm.TinyVMException tvexc) {
-                System.err.println("Error: " + tvexc.getMessage());
+               } catch(Throwable t) {
+                       System.err.println("an error occurred: " + t.getMessage());
                }
        }
        
-       public void run(String[] args) throws js.tinyvm.TinyVMException {
+       public void run(String[] args) throws js.tinyvm.TinyVMException, NXJUploadException {
                int protocols = 0;
                
                CommandLine commandLine = fParser.parse(args);
@@ -34,6 +43,27 @@ public class NXJUpload {
                if (blueTooth) protocols |= NXTCommFactory.BLUETOOTH;
                if (usb) protocols |= NXTCommFactory.USB;
                
-               Upload.upload(name, address, protocols, fileName, run);
+               fUpload.upload(name, address, protocols, fileName, run);
        }       
+       
+       /**
+        * register log listener
+        * 
+        * @param listener
+        */
+       public void addLogListener(ToolsLogListener listener) {
+               fLogListeners.add(listener);
+               fUpload.addLogListener(listener);
+       }
+       
+       /**
+        * unregister log listener
+        * 
+        * @param listener
+        */
+       public void removeLogListener(ToolsLogListener listener) {
+               fLogListeners.remove(listener);
+               fUpload.removeLogListener(listener);
+       }
+
 }
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJUploadException.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXJUploadException.java
new file mode 100644 (file)
index 0000000..ae8d812
--- /dev/null
@@ -0,0 +1,30 @@
+package lejos.pc.tools;\r
+\r
+public class NXJUploadException extends Exception {\r
+\r
+       private static final long serialVersionUID = -7605663541720174844L;\r
+\r
+       public NXJUploadException() {\r
+               super();\r
+       }\r
+\r
+       public NXJUploadException(String arg0) {\r
+               super(arg0);\r
+       }\r
+\r
+       public NXJUploadException(Throwable arg0) {\r
+               super(arg0);\r
+       }\r
+\r
+       public NXJUploadException(String arg0, Throwable arg1) {\r
+               super(arg0, arg1);\r
+       }\r
+\r
+       public String getMessage() {\r
+               if((getCause()!=null)&&(getCause().getMessage()!=null))\r
+                       return getCause().getMessage();\r
+               else\r
+                       return super.getMessage();\r
+       }       \r
+\r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXTTableModel.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/NXTTableModel.java
new file mode 100644 (file)
index 0000000..871855b
--- /dev/null
@@ -0,0 +1,54 @@
+package lejos.pc.tools;\r
+\r
+import javax.swing.JFrame;\r
+import javax.swing.table.AbstractTableModel;\r
+\r
+import lejos.pc.comm.NXTCommFactory;\r
+import lejos.pc.comm.NXTInfo;\r
+\r
+public class NXTTableModel extends AbstractTableModel {\r
+  private static final String[] columnNames = {"Name","Protocol", "Address"};\r
+  private static final int NUM_COLUMNS = 3;\r
+\r
+  Object[][] nxtData;\r
+  int numNXTs;\r
+  JFrame frame;\r
+\r
+  public NXTTableModel(JFrame frame, NXTInfo[] nxts, int numNXTs) {\r
+    this.frame = frame;\r
+    setData(nxts, numNXTs);\r
+  }\r
+\r
+  public void setData(NXTInfo[] nxts, int numNXTs) {\r
+    this.numNXTs = numNXTs;\r
+    nxtData = new Object[numNXTs][NUM_COLUMNS];\r
+\r
+    for(int i=0;i<numNXTs;i++) {\r
+      nxtData[i][0]  = nxts[i].name;\r
+      nxtData[i][1] = (nxts[i].protocol == NXTCommFactory.USB ? "USB" : "Bluetooth");\r
+      nxtData[i][2] = (nxts[i].btDeviceAddress == null ? "" : nxts[i].btDeviceAddress);\r
+    }\r
+  }\r
+\r
+  public int getRowCount() {\r
+    return numNXTs;\r
+  }\r
+\r
+  public int getColumnCount() {\r
+    return NUM_COLUMNS;\r
+  }\r
+\r
+  public Object getValueAt(int row, int column) {\r
+    return nxtData[row][column];\r
+  }\r
+\r
+  public String getColumnName(int column) {\r
+    return columnNames[column];\r
+  }\r
+\r
+  public Class getColumnClass(int column) {\r
+    return nxtData[0][column].getClass();\r
+  }\r
+}\r
+\r
+\r
index 1371282..960ae19 100644 (file)
@@ -5,7 +5,7 @@ import java.io.*;
 
 public class SendFile {
 
-       public static void sendFile(NXTCommand nxtCommand, File file) throws IOException {
+       public static String sendFile(NXTCommand nxtCommand, File file) throws IOException {
            byte[] data = new byte[60];
            int len, sent = 0;
            FileInputStream in = null;
@@ -17,7 +17,7 @@ public class SendFile {
            try {
              in = new FileInputStream(file);
            } catch (FileNotFoundException e) {
-               System.out.println("File not found");
+               throw new IOException("File not found");
            }
 
            nxtCommand.openWrite(file.getName(), (int) file.length());
@@ -31,12 +31,11 @@ public class SendFile {
                nxtCommand.writeFile((byte) 0,sendData); // Handles not yet used
              }
            } catch (IOException ioe) {
-               System.out.println("Failed to upload");
-               System.exit(1);
+               throw new IOException("Failed to upload");
            }
            //System.out.println("Sent " + sent + " bytes");
            nxtCommand.setVerify(true);
            nxtCommand.closeFile((byte) 0);
-           System.out.println("Upload successful in " + (System.currentTimeMillis() - millis) + " milliseconds");
+           return "Upload successful in " + (System.currentTimeMillis() - millis) + " milliseconds";
        }
 }
index d797187..f65c02a 100644 (file)
@@ -44,7 +44,14 @@ public class SocketProxy {
                        System.out.println("Connecting to " + nxtInfo[0].btResourceString);\r
 \r
                        // check to see if NXT really exists, if not exit\r
-                       if (!nxtComm.open(nxtInfo[0])) {\r
+                       boolean isOpen = false;\r
+                       try {\r
+                               isOpen = nxtComm.open(nxtInfo[0]);\r
+                       } catch(NXTCommException n) {\r
+                               System.err.println(n.getMessage());\r
+                               isOpen = false;\r
+                       }\r
+                       if (!isOpen) {\r
                                System.out.println("Failed to open " + nxtInfo[0].name);\r
                                System.exit(1);\r
                        }\r
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogListener.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogListener.java
new file mode 100644 (file)
index 0000000..0dd19ea
--- /dev/null
@@ -0,0 +1,13 @@
+package lejos.pc.tools;\r
+\r
+import lejos.pc.comm.NXTCommLogListener;\r
+\r
+/**\r
+ * \r
+ * @author scholz\r
+ * listener for log events that arise in pctools\r
+ */\r
+\r
+public interface ToolsLogListener extends NXTCommLogListener {\r
+       \r
+}\r
diff --git a/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogger.java b/nxtOSEK/lejos_nxj/src/java/pctools/lejos/pc/tools/ToolsLogger.java
new file mode 100644 (file)
index 0000000..7321ca4
--- /dev/null
@@ -0,0 +1,14 @@
+package lejos.pc.tools;\r
+\r
+\r
+public class ToolsLogger implements ToolsLogListener {\r
+\r
+       public void logEvent(String message) {\r
+               System.out.println("leJOS NXJ> " + message);\r
+       }\r
+\r
+       public void logEvent(Throwable throwable) {\r
+               System.err.println("leJOS NXJ> " + throwable.getMessage());\r
+       }\r
+\r
+}\r
index 347576a..88ff483 100644 (file)
 package lejos.pc.tools;
 
 import java.io.*;
+import java.util.ArrayList;
+import java.util.Collection;
+
 import lejos.pc.comm.*;
 
 public class Upload {
        
-       public static void upload(String name, String address, int protocols, String fileName, boolean run) {
+       private Collection<ToolsLogListener> fLogListeners;
+       private NXTCommand fNXTCommand;
+       
+       public Upload() {
+               fLogListeners = new ArrayList<ToolsLogListener>();
+               fNXTCommand = NXTCommand.getSingleton();
+       }
+
+       public void upload(String name, String address, int protocols,
+                       String fileName, boolean run) throws NXJUploadException {
 
-               NXTCommand nxtCommand = NXTCommand.getSingleton();
-               
                File f = new File(fileName);
-               
+
                if (!f.exists()) {
-                       System.err.println("Error: No such file");
-                       System.exit(1);
+                       throw new NXJUploadException(fileName + ": No such file");
                }
-               
+
                if (f.getName().length() > 20) {
-                       System.err.println("Filename is more than 20 characters");
-                       System.exit(1);
+                       throw new NXJUploadException(fileName
+                                       + ": Filename is more than 20 characters");
                }
-               
-               if (protocols == 0) protocols = NXTCommFactory.USB | NXTCommFactory.BLUETOOTH;
-               
+
+               if (protocols == 0)
+                       protocols = NXTCommFactory.USB | NXTCommFactory.BLUETOOTH;
+
                NXTInfo[] nxtInfo;
-               
+
                if (address != null) {
-                       nxtCommand.setNXTCommBlueTooth();
+                       fNXTCommand.setNXTCommBlueTooth();
                        nxtInfo = new NXTInfo[1];
-                       nxtInfo[0] = new NXTInfo((name == null ? "Unknown" : name),address);    
-                       //System.out.println("Address: " + address);
+                       nxtInfo[0] = new NXTInfo((name == null ? "Unknown" : name), address);
                } else {
-                       nxtInfo = nxtCommand.search(name, protocols);
+                       try {
+                               nxtInfo = fNXTCommand.search(name, protocols);
+                       } catch (Throwable t) {
+                               throw new NXJUploadException(t);
+                       }
                }
-               
-               //System.out.println("Found " + nxtInfo.length + " NXTs");
-               
+
                boolean connected = false;
-               
+
                try {
-                       for(int i=0;i<nxtInfo.length;i++) {
-                               connected = nxtCommand.open(nxtInfo[i]);
-                               if (!connected) continue;
-                               SendFile.sendFile(nxtCommand, f);
+                       for (int i = 0; i < nxtInfo.length; i++) {
+                               try {
+                                       connected = fNXTCommand.open(nxtInfo[i]);
+                               } catch (NXTCommException e) {
+                                       connected = false;
+                               }
+                               if (!connected)
+                                       continue;
+                               String result = SendFile.sendFile(fNXTCommand, f);
+                               for (ToolsLogListener listener : fLogListeners) {
+                                       listener.logEvent(result);
+                               }
                                if (run) {
-                                       nxtCommand.setVerify(false);
-                                       nxtCommand.startProgram(f.getName());
+                                       fNXTCommand.setVerify(false);
+                                       fNXTCommand.startProgram(f.getName());
                                }
-                               nxtCommand.close();
+                               fNXTCommand.close();
                                break;
-                       } 
-                       if (!connected) System.err.println("No NXT found - is it switched on and plugged in (for USB)?");
-               } catch (IOException ioe) {
-                       System.err.println("IOException during upload");
+                       }
+               } catch (Throwable t) {
+                       throw new NXJUploadException("Exception during upload", t);
                }
+               if (!connected)
+                       throw new NXJUploadException(
+                                       "No NXT found - is it switched on and plugged in (for USB)?");
        }
+       
+       /**
+        * register log listener
+        * 
+        * @param listener
+        */
+       public void addLogListener(ToolsLogListener listener) {
+               fLogListeners.add(listener);
+               fNXTCommand.addLogListener(listener);
+       }
+       
+       /**
+        * unregister log listener
+        * 
+        * @param listener
+        */
+       public void removeLogListener(ToolsLogListener listener) {
+               fLogListeners.remove(listener);
+               fNXTCommand.removeLogListener(listener);
+       }
+
 }
@@ -1,3 +1,4 @@
+
 import java.io.*;
 import java.util.Vector;
 
@@ -5,7 +6,24 @@ import lejos.nxt.comm.*;
 import lejos.nxt.*;
 
 public class StartUpText {
-       static boolean update = true;
+       
+       private static boolean setBluetoothPower(boolean powerOn, boolean needReset)
+       {
+               // Set the state of the Bluetooth power to be powerOn. Also record the
+               // current state of this in the BT status bytes.
+
+               // If power is not on we need it on to check things
+               if (!Bluetooth.getPower())
+               {
+                       Bluetooth.setPower(true);
+               }
+               // First update the status bytes if needed
+               int status = Bluetooth.getStatus();
+               if (powerOn != (status == 0))
+                       Bluetooth.setStatus((powerOn ? 0 : 1));
+               Bluetooth.setPower(powerOn);
+               return powerOn;
+       }
     
        public static void main(String[] args) throws Exception {
                Indicators ind = new Indicators();
@@ -29,21 +47,35 @@ public class StartUpText {
                TextMenu fileMenu = new TextMenu(fileMenuData,2);
                String[] fileNames = new String[File.MAX_FILES];
                TextMenu menu = topMenu;
-               String[] blueMenuData = {"Devices", "Search", "On/Off","Visibility"};
+               String[] blueMenuData = {"Devices", "Search", "Power off","Visibility"};
+               String[] blueOffMenuData = {"Power on"};
                TextMenu blueMenu = new TextMenu(blueMenuData,3);
-               String[] systemMenuData = {"Defrag"};
+               TextMenu blueOffMenu = new TextMenu(blueOffMenuData,3);
+               String[] systemMenuData = {"Format"};
+
                TextMenu systemMenu = new TextMenu(systemMenuData,3);
                File[] files = null;
                boolean quit = false;
-               int blueStatus = 0, visibility = 0;
-               
+               int visibility = 0;
+               boolean btPowerOn = setBluetoothPower(Bluetooth.getStatus() == 0, false);
                ind.setDaemon(true);
                ind.start();
                usb.setDaemon(true);
+               usb.setIndicator(ind);
                usb.start();
                bt.setDaemon(true);
+               bt.setIndicator(ind);
                bt.start();
                
+               // Defrag the file system       
+               files = File.listFiles();
+               try {
+                       File.defrag();
+               }
+               catch (IOException ioe) {
+                       File.reset();
+               }
+               
                while (!quit) 
                {
                    LCD.drawInt( (int)(Runtime.getRuntime().freeMemory()),0,0);
@@ -64,15 +96,26 @@ public class StartUpText {
                        } else if (menu == blueMenu) {
                                LCD.drawString(bluetooth, 3, 1);
                                LCD.drawString(status,0,2);
-                               blueStatus = Bluetooth.getStatus();
                                visibility = Bluetooth.getVisibility();
-                               LCD.drawString(blueStatus == 0 ? on : off, 7, 2);
+                               LCD.drawString(btPowerOn ? on : off, 7, 2);
                                LCD.drawString(visibility == 1 ? visible : invisible, 11, 2);                   
                                LCD.refresh();
+                       } else if (menu == blueOffMenu) {
+                               LCD.drawString(bluetooth, 3, 1);
+                               LCD.drawString(status,0,2);
+                               LCD.drawString(btPowerOn ? on : off, 7, 2);     
+                               LCD.refresh();                  
                        } else if (menu == systemMenu) {
                                LCD.drawString(system, 4, 1);
                                LCD.drawString(freeFlash, 0, 2);
-                               LCD.drawInt(File.freeMemory(),5, 11, 2);
+                               int free = File.freeMemory();
+                               int size = 5;
+                               int pos = 11;
+                               if (free >= 100000) {
+                                       size = 6;
+                                       pos = 10;
+                               }
+                               LCD.drawInt(free,size, pos, 2);
                                LCD.refresh();                          
                        }
 
@@ -82,14 +125,14 @@ public class StartUpText {
                         if (selection == 0) {
                                 menu = filesMenu;
                         } else if (selection ==1) {
-                                menu = blueMenu;
+                                menu = (btPowerOn ? blueMenu : blueOffMenu);
                         } else if (selection == 2) {
                                 menu = systemMenu;
                         } else if (selection == -1) {
                                 quit = true;
                         }
                    } else if (menu == filesMenu) {
-                           if (selection >= 0) {
+                           if (selection >= 0 && files[selection] != null) {
                                        LCD.clear();
                                        LCD.drawString(title,6,0);
                                    LCD.drawInt( (int)(Runtime.getRuntime().freeMemory()),0,0);
@@ -98,18 +141,33 @@ public class StartUpText {
                                int subSelection = fileMenu.select();
                                if (subSelection == 0) 
                                {
-                                       Bluetooth.btSetCmdMode(1);
                                        files[selection].exec();
                                } else if (subSelection == 1)
                                {
-                                       files[selection].delete();       
+                                       files[selection].delete();
+                                               try {
+                                                       File.defrag();
+                                               } catch (IOException ioe) {
+                                                       File.reset();
+                                               }
                                        LCD.clear();
                                        LCD.refresh();
                                }
                            } if (selection == -1) {
                                menu = topMenu;
                            }
-                   } else if (menu == blueMenu) {
+                   } else if (menu == blueOffMenu) {
+                               if (selection == 0)
+                               {
+                                       LCD.clear();
+                                       LCD.drawString("Power on...", 0, 0);
+                                       LCD.refresh();
+                                   btPowerOn = setBluetoothPower(true, true);
+                                       menu = blueMenu;
+                               }
+                               else
+                                       menu = topMenu;
+                       } else if (menu == blueMenu) {
                        if (selection == 0) { //Devices
                        Vector devList = Bluetooth.getKnownDevicesList();
                                if (devList.size() > 0) {
@@ -153,7 +211,8 @@ public class StartUpText {
                                        } catch (InterruptedException e) {}
                                }
                        } else if (selection == 1) { // Search                  
-                               byte[] cod = {0,0,8,4}; // Toy, Robot
+                               //byte[] cod = {0,0,8,4}; // Toy, Robot
+                                       byte[] cod = {0,0,0,0}; // All
                                LCD.clear();
                                LCD.drawString("Searching ...", 0, 0);
                                LCD.refresh();
@@ -197,9 +256,11 @@ public class StartUpText {
                                }
                        } else if (selection == 2) // On/Off
                        {
-                               //LCD.clear();
-                               //LCD.refresh();
-                               Bluetooth.setStatus((byte) (blueStatus == 0 ? 1 : 0));
+                                       LCD.clear();
+                                       LCD.drawString("Power off...", 0, 0);
+                                       LCD.refresh();
+                                       btPowerOn = setBluetoothPower(false, true);
+                                       menu = blueOffMenu;
                        }else if (selection == 3) // Visibility
                        {
                                Bluetooth.setVisibility((byte) (visibility == 1 ? 0 : 1));
@@ -209,29 +270,48 @@ public class StartUpText {
                        
                    } else if (menu == systemMenu) {
                        if (selection == 0) {
-                               File.defrag();
+                               File.format();
                        } else if (selection == -1) {
                                menu = topMenu;
                        }
                    }
                }
+               System.shutDown();
        }
 }
 
 class Indicators extends Thread 
 {
+       private boolean io = false;
+       
+       public void ioActive()
+       {
+               io = true;
+       }
+       
        public void run() 
        {
                String dot = ".";
+               String [] ioProgress = {".  ", " . ", "  ."};
+               int ioIndex = 0;
                int millis;
                while(true) 
                {
                        try 
                        {
-                         millis = Battery.getVoltageMilliVolt() + 50;
-                         LCD.drawInt((millis - millis%1000)/1000,13,0);
-                         LCD.drawString(dot, 14, 0);
-                         LCD.drawInt((millis% 1000)/100,15,0);
+                         if (io)
+                         {
+                                 ioIndex = (ioIndex + 1) % ioProgress.length;
+                                 LCD.drawString(ioProgress[ioIndex], 13, 0);
+                                 io = false;
+                         }
+                         else
+                         {
+                                 millis = Battery.getVoltageMilliVolt() + 50;
+                                 LCD.drawInt((millis - millis%1000)/1000,13,0);
+                                 LCD.drawString(dot, 14, 0);
+                                 LCD.drawInt((millis% 1000)/100,15,0);
+                         }
                          LCD.refresh();
                          Thread.sleep(1000);
                        } catch (InterruptedException ie) {}
@@ -242,11 +322,16 @@ class Indicators extends Thread
 class USBRespond extends Thread 
 {
        TextMenu menu;
+       Indicators ind;
        
        public void setMenu(TextMenu menu) {
                this.menu = menu;
        }
        
+       public void setIndicator(Indicators ind) {
+               this.ind = ind;
+       }
+       
        public void run() {
 
                byte[] inMsg = new byte[64];
@@ -268,9 +353,17 @@ class USBRespond extends Thread
                                //LCD.drawInt(inMsg[2] & 0xFF,3,9,1);
                                //LCD.drawInt(inMsg[3] & 0xFF,3,12,1);
                                //LCD.refresh();
+                               ind.ioActive();
                                int replyLen = LCP.emulateCommand(inMsg,len, reply);
                                if ((inMsg[0] & 0x80) == 0) USB.usbWrite(reply, replyLen);
-                               if (inMsg[1] == (byte) 0x84 || inMsg[1] == (byte) 0x85) {
+                               if (inMsg[1] == LCP.CLOSE|| inMsg[1] == LCP.DELETE) {
+                                       if (inMsg[1] == LCP.DELETE) {
+                                               try {
+                                                       File.defrag();
+                                               } catch (IOException ioe) {
+                                                       File.reset();
+                                               }
+                                       }
                                        Sound.beepSequenceUp();
                                        menu.quit();
                                }
@@ -282,23 +375,33 @@ class USBRespond extends Thread
 
 class BTRespond  extends Thread {
        TextMenu menu;
+       Indicators ind;
        
        public void setMenu(TextMenu menu) {
                this.menu = menu;
        }
        
+       public void setIndicator(Indicators ind) {
+               this.ind = ind;
+       }
+       
        public void run() 
        {
-
                byte[] inMsg = new byte[64];
                byte [] reply = new byte[64];
                boolean cmdMode = true;
                BTConnection btc = null;
                int len;
-               String connected = "Connected";
                
                while (true)
                {
+                       // Wait for power on
+                       while (!Bluetooth.getPower())
+                       {
+                               try {
+                                       Thread.sleep(500);
+                               } catch (InterruptedException e) {}                             
+                       }
                        if (cmdMode) {
                                btc = Bluetooth.waitForConnection();
                                if (btc == null) {
@@ -313,29 +416,47 @@ class BTRespond  extends Thread {
                                cmdMode = false;
                        }
                        
-                       len = Bluetooth.readPacket(inMsg,64);
-                       
-                       if (len > 0)
+                       //len = Bluetooth.readPacket(inMsg,64);
+                       while(!cmdMode)
                        {
-                               //LCD.drawInt(len,3,0,1);
-                               //LCD.drawInt(inMsg[0] & 0xFF,3,3,1);
-                               //LCD.drawInt(inMsg[1] & 0xFF,3,6,1);
-                               //LCD.drawInt(inMsg[2] & 0xFF,3,9,1);
-                               //LCD.drawInt(inMsg[3] & 0xFF,3,12,1);
-                               //LCD.refresh();
-                               int replyLen = LCP.emulateCommand(inMsg,len, reply);
-                               if ((inMsg[0] & 0x80) == 0) Bluetooth.sendPacket(reply, replyLen);
-                               if (inMsg[1] == (byte) 0x84 || inMsg[1] == (byte) 0x85) {
-                                       Sound.beepSequenceUp();
-                                       menu.quit();
+                               len = btc.read(inMsg,64);
+
+                               if (len > 0)
+                               {
+                                       //LCD.drawInt(len,3,0,1);
+                                       //LCD.drawInt(inMsg[0] & 0xFF,3,3,1);
+                                       //LCD.drawInt(inMsg[1] & 0xFF,3,6,1);
+                                       //LCD.drawInt(inMsg[2] & 0xFF,3,9,1);
+                                       //LCD.drawInt(inMsg[3] & 0xFF,3,12,1);
+                                       //LCD.refresh();
+                                       ind.ioActive();
+                                       int replyLen = LCP.emulateCommand(inMsg,len, reply);
+                                       if ((inMsg[0] & 0x80) == 0) btc.write(reply, replyLen);
+                                       if (inMsg[1] == LCP.CLOSE|| inMsg[1] == LCP.DELETE) {
+                                               if (inMsg[1] == LCP.DELETE) {
+                                                       try {
+                                                               File.defrag();
+                                                       } catch (IOException ioe) {
+                                                               File.reset();
+                                                       }
+                                               }
+                                               Sound.beepSequenceUp();
+                                               menu.quit();
+                                       }
+                                       if (inMsg[1] == LCP.NXJ_DISCONNECT) { 
+                                               btc.close(); 
+                                               cmdMode = true;
+                                       }
                                }
-                               if (inMsg[1] == (byte) 0x20) { // Disconnect
-                                       Bluetooth.btSetCmdMode(1); // set Command mode
+                               else if (len < 0)
+                               {
+                                       btc.close();
                                        cmdMode = true;
                                }
+                               Thread.yield();
                        }
-                       Thread.yield();
                }
        }
 }
 
+
index c762e1a..a479a1f 100644 (file)
 
        <!-- make libnxt --> 
        <target name="libnxt" description="makes libnxt">
+               <condition property="includePath" value=".">
+                       <not>
+                               <os family="mac"/>
+                       </not>
+               </condition>
+               <condition property="includePath" value="/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/">
+                       <and>
+                               <os family="mac"/>
+                               <matches pattern="^10\.5.*" string="${os.version}"/>
+                       </and>
+               </condition>
+               <condition property="includePath" value="/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/">
+                       <and>
+                               <os family="mac"/>
+                               <matches pattern="^10\.4.*" string="${os.version}"/>
+                       </and>
+               </condition>
                <cc subsystem="console" 
                                outfile="nxt"
                                objdir="." 
                                <fileset dir=".">
                                        <include name="error.c"/>
                                        <include name="firmware.c"/>
-                                       <include name="flash_routine.c"/>                                       <include name="error.c"/>
+                                       <include name="flash_routine.c"/>                                       
+                                       <include name="error.c"/>
                                        <include name="flash.c"/> 
                                        <include name="lowlevel.c"/>
                                        <include name="samba.c"/>
                                </fileset>
                                <includepath>
-                                       <pathelement location="."/>
+                                       <pathelement location="${includePath}"/>
                                </includepath>
                                <versioninfo refid="libnxt"/>
                </cc>
                                <versioninfo refid="libnxt"/>
                </cc>
        </target>
-
 </project>
 
index b30bce4..2bc6e1f 100644 (file)
@@ -96,7 +96,11 @@ nxt_firmware_validate(char *fw_path, int max_pages)
   nxt_error_t err;
   int fd;
 
+#if defined(_WIN32) || defined(__CYGWIN32__)
+  fd = open(fw_path, O_RDONLY | O_BINARY);
+#else
   fd = open(fw_path, O_RDONLY);
+#endif
   if (fd < 0)
     return NXT_FILE_ERROR;
 
@@ -114,11 +118,15 @@ nxt_firmware_flash(nxt_t *nxt, char *fw_path,
   int fd, i, err, len = 0;
   char buf[256];
 
+#if defined(_WIN32) || defined(__CYGWIN32__)
+  fd = open(fw_path, O_RDONLY | O_BINARY);
+#else
   fd = open(fw_path, O_RDONLY);
+#endif
   if (fd < 0)
     return NXT_FILE_ERROR;
 
-  err = nxt_firmware_validate_fd(fd, max_pages * 1024);
+  err = nxt_firmware_validate_fd(fd, max_pages * 256);
   if (err != NXT_OK)
     {
       close(fd);
@@ -147,7 +155,6 @@ nxt_firmware_flash(nxt_t *nxt, char *fw_path,
         
           if (ret != -1 && write_len)
             {
-              ((unsigned *) buf)[62] = write_len; // fmcn  
               ((unsigned *) buf)[63] = len;
               NXT_ERR(nxt_flash_block(nxt,start_page + max_pages -1, buf));
             }
@@ -162,7 +169,6 @@ nxt_firmware_flash(nxt_t *nxt, char *fw_path,
   
   if (write_len) 
     { 
-      ((unsigned *) buf)[62] = write_len; // fmcn
       ((unsigned *) buf)[63] = len;
       NXT_ERR(nxt_flash_block(nxt,start_page + max_pages -1, buf));
     }
index d757ce2..d0d2932 100644 (file)
@@ -23,7 +23,6 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/mman.h>
 #include <fcntl.h>
 
 #include "error.h"
index 78956bf..82df35d 100644 (file)
@@ -10,42 +10,42 @@ extern "C" {
 /*
  * Class:     lejos_pc_comm_NXTCommLibnxt
  * Method:    jlibnxt_find
- * Signature: ()I
+ * Signature: ()J
  */
-JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1find
+JNIEXPORT jlong JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1find
   (JNIEnv *, jobject);
 
 /*
  * Class:     lejos_pc_comm_NXTCommLibnxt
  * Method:    jlibnxt_open
- * Signature: ([B)I
+ * Signature: (J)I
  */
 JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1open
-  (JNIEnv *, jobject, jint);
+  (JNIEnv *, jobject, jlong);
 
 /*
  * Class:     lejos_pc_comm_NXTCommLibnxt
  * Method:    jlibnxt_close
- * Signature: ([B)V
+ * Signature: (J)V
  */
 JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1close
-  (JNIEnv *, jobject, jint);
+  (JNIEnv *, jobject, jlong);
 
 /*
  * Class:     lejos_pc_comm_NXTCommLibnxt
  * Method:    jlibnxt_send_data
- * Signature: ([B[B)V
+ * Signature: (J[B)V
  */
 JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1send_1data
-  (JNIEnv *, jobject, jint, jbyteArray);
+  (JNIEnv *, jobject, jlong, jbyteArray);
 
 /*
  * Class:     lejos_pc_comm_NXTCommLibnxt
  * Method:    jlibnxt_read_data
- * Signature: ([B)[B
+ * Signature: (JI)[B
  */
 JNIEXPORT jbyteArray JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1read_1data
-  (JNIEnv *, jobject, jint, jint);
+  (JNIEnv *, jobject, jlong, jint);
 
 #ifdef __cplusplus
 }
index 8da949a..c95af34 100644 (file)
@@ -57,12 +57,10 @@ nxt_error_t nxt_init(nxt_t **nxt)
 nxt_error_t nxt_find(nxt_t *nxt)
 {
   struct usb_bus *busses, *bus;
-
   usb_find_busses();
   usb_find_devices();
 
   busses = usb_get_busses();
-
   for (bus = busses; bus != NULL; bus = bus->next)
     {
       struct usb_device *dev;
@@ -204,7 +202,8 @@ nxt_send_str(nxt_t *nxt, char *str)
 nxt_error_t
 nxt_recv_buf(nxt_t *nxt, char *buf, int len)
 {
-  int ret = usb_bulk_read(nxt->hdl, 0x82, buf, len, 1000);
+  // set timeout to 10 seconds to allow time for defrag
+  int ret = usb_bulk_read(nxt->hdl, 0x82, buf, len, 10000);
   if (ret < 0)
     return NXT_USB_READ_ERROR;
 
index 4b53c37..7d4fe81 100644 (file)
@@ -42,7 +42,7 @@ void throwIOException(JNIEnv *env, char *msg)
        return;
 }
 
-JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1find(JNIEnv *env, jobject obj) {
+JNIEXPORT jlong JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1find(JNIEnv *env, jobject obj) {
   nxt_t *nxt;
   nxt_error_t nxt_err;
        
@@ -51,20 +51,20 @@ JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1find(JNIEnv *en
   if (nxt_err == NXT_OK) {
     nxt_err = nxt_find(nxt);
     if (nxt_err == NXT_OK && !(nxt_in_reset_mode(nxt))) {
-      return (jint) nxt;
+      return (jlong) (unsigned long) nxt;
     }
   }
-  return 0;
+  return (jlong) 0;
 }
 
-JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1open(JNIEnv *env, jobject obj, jint nxt)  {
-  return (jint) nxt_open0( (nxt_t *) nxt); 
+JNIEXPORT jint JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1open(JNIEnv *env, jobject obj, jlong nxt)  {
+  return (jint) nxt_open0( (nxt_t *) (unsigned long) nxt); 
 }
 
-JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1close(JNIEnv *env, jobject obj, jint nxt)  {
+JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1close(JNIEnv *env, jobject obj, jlong nxt)  {
   nxt_error_t nxt_err;
   
-  nxt_err = nxt_close0( (nxt_t *) nxt); 
+  nxt_err = nxt_close0( (nxt_t *) (unsigned long) nxt); 
   
   if (nxt_err != NXT_OK) {
     throwIOException(env,"Close failed");
@@ -72,13 +72,13 @@ JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1close(JNIEnv *e
    
 }
 
-JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1send_1data(JNIEnv *env, jobject obj, jint nxt, jbyteArray data)  {
+JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1send_1data(JNIEnv *env, jobject obj, jlong nxt, jbyteArray data)  {
   nxt_error_t nxt_err;
 
   jsize len2 = (*env)->GetArrayLength(env, data);
   char *elements2 = (char *) (*env)->GetByteArrayElements(env, data, 0);  
 
-  nxt_err = nxt_send_buf((nxt_t *) nxt, elements2, len2);
+  nxt_err = nxt_send_buf((nxt_t *) (unsigned long) nxt, elements2, len2);
   
   if (nxt_err != NXT_OK) {
     throwIOException(env,"Send failed");
@@ -87,14 +87,14 @@ JNIEXPORT void JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1send_1data(JNIE
   (*env)->ReleaseByteArrayElements(env, data, (jbyte *) elements2, 0);
 }
 
-JNIEXPORT jbyteArray JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1read_1data(JNIEnv *env, jobject obj, jint nxt, jint len)  {
+JNIEXPORT jbyteArray JNICALL Java_lejos_pc_comm_NXTCommLibnxt_jlibnxt_1read_1data(JNIEnv *env, jobject obj, jlong nxt, jint len)  {
   nxt_error_t nxt_err;
   char *data;
-  jbyte *jb;
+  jbyteArray jb;
 
   data = (char *) calloc(1, len);
   
-  nxt_err = nxt_recv_buf((nxt_t *) nxt, data, len); // read data
+  nxt_err = nxt_recv_buf((nxt_t *) (unsigned long) nxt, data, len); // read data
   
   if (nxt_err != NXT_OK) {
     throwIOException(env,"Read failed");
index 5a28171..d7e27c4 100644 (file)
@@ -31,7 +31,7 @@
 #include "firmware.h"
 
 #define MAX_VM_PAGES 128
-#define MAX_MENU_PAGES 128
+#define MAX_MENU_PAGES 192
 
 #define NXT_HANDLE_ERR(expr, nxt, msg)     \
   do {                                     \
@@ -53,7 +53,6 @@ int main(int argc, char *argv[])
   nxt_t *nxt;
   nxt_error_t err;
   char *fw_file, *menu_file;
-  unsigned fmcn = 50;
   char *nxj_home;
 
   if (argc == 1)
@@ -74,11 +73,11 @@ int main(int argc, char *argv[])
       strcpy(menu_file,nxj_home);
       strcat(menu_file,"/bin/StartUpText.bin");
     }
-  else if (argc < 3 || argc > 4)
+  else if (argc != 3)
     {
-      printf("Syntax: %s <VM binary> <java menu binary> [fmcn]\n"
+      printf("Syntax: %s [<VM binary> <java menu binary>]\n"
              "\n"
-             "Example: %s lejos_nxt_rom.bin Menu.bin\n", argv[0], argv[0]);
+             "Example: %s lejos_nxt_rom.bin StartUpText.bin\n", argv[0], argv[0]);
       exit(1);
     }
   else
@@ -86,21 +85,14 @@ int main(int argc, char *argv[])
       fw_file = argv[1];     
       menu_file = argv[2];
     }
-    
-  if (argc == 4) 
-    {
-         fmcn = atoi(argv[3]);
-    }
-
-  printf("Setting fmcn to %d\n", fmcn);
   
   printf("Checking VM %s ... ", fw_file);
-  NXT_HANDLE_ERR(nxt_firmware_validate(fw_file, MAX_VM_PAGES * 256), NULL,
+  NXT_HANDLE_ERR(nxt_firmware_validate(fw_file, MAX_VM_PAGES ), NULL,
                  "Error in VM file");
   printf("VM OK.\n");
  
   printf("Checking Menu %s ... ", menu_file);
-  NXT_HANDLE_ERR(nxt_firmware_validate(menu_file, (MAX_MENU_PAGES * 256) - 4), NULL,
+  NXT_HANDLE_ERR(nxt_firmware_validate(menu_file, (MAX_MENU_PAGES ) - 4), NULL,
                  "Error in Menu file");
   printf("Menu OK.\n");
 
@@ -135,13 +127,14 @@ int main(int argc, char *argv[])
 
   printf("Starting menu flash procedure now...\n");
   
-  NXT_HANDLE_ERR(nxt_firmware_flash(nxt, menu_file, MAX_VM_PAGES, MAX_MENU_PAGES, 0, fmcn), nxt,
+  NXT_HANDLE_ERR(nxt_firmware_flash(nxt, menu_file, MAX_VM_PAGES, MAX_MENU_PAGES, 0, 1), nxt,
                  "Error flashing menu");
   printf("Menu flash complete.\n");
   
   NXT_HANDLE_ERR(nxt_jump(nxt, 0x00100000), nxt,
                  "Error booting new firmware");
   printf("New firmware started!\n");
+  printf("If battery level reads 0.0, remove and re-insert a battery\n");
 
   NXT_HANDLE_ERR(nxt_close(nxt), NULL,
                  "Error while closing connection to NXT");
index 1a96413..e4bb338 100644 (file)
 /**
  * If not 0 allow multiple heap segments
  */
-#define SEGMENTED_HEAP                 0
+#define SEGMENTED_HEAP                   0
 
 /**
- * Iff not 0, threads in the DEAD state are
+ * If not 0, threads in the DEAD state are
  * removed from the circular list. Recommended.
  */
 #define REMOVE_DEAD_THREADS              1
  */
 #define PI_AVOIDANCE                     1
 
+/**
+ * If not 0, use a garbage collector. It consumes about
+ * 1000 bytes of flash and about 1800 bytes of ram.
+ */
+#define GARBAGE_COLLECTOR                1
+
+/**
+ * Max number of VM objects that we need to protect, from the gc.
+ */
+#define MAX_VM_REFS                      8
+
+/**
+ * If not 0, leave binary in rom instead of copying it to ram.
+ */
+#define EXECUTE_FROM_FLASH               1
+
 #endif
index b02db71..4787979 100644 (file)
@@ -30,7 +30,8 @@ byte    gRequestCode;
 unsigned int gNextProgram;
 unsigned int gNextProgramSize;
 
-byte *pc;
+byte *pc, *old_pc;
+unsigned int debug_word1, debug_word2;
 STACKWORD *localsBase;
 STACKWORD *stackTop;
 
@@ -98,13 +99,15 @@ static inline Object *create_string (ConstantRecord *constantRecord,
   ref = new_object_checked (JAVA_LANG_STRING, btAddr);
   if (ref == JNULL)
     return JNULL;
+  // Guard the partially created object against the GC
+  protectedRef[0] = ref;
   arr = new_primitive_array (T_CHAR, constantRecord->constantSize);
+  protectedRef[0] = JNULL;
   if (arr == JNULL)
   {
     deallocate (obj2ptr(ref), class_size (JAVA_LANG_STRING));    
     return JNULL;
   }
-  
 //  printf ("char array at %d\n", (int) arr);
   
   store_word ((byte *) &(((String *) ref)->characters), 4, obj2word(arr));
@@ -230,6 +233,8 @@ void engine()
   printf ("OPCODE (0x%X) %s\n", (int) *pc, OPCODE_NAME[*pc]);
   #endif
 
+  old_pc = pc;
+  
   switch (*pc++)
   {
     case OP_NOP:
index c6f9314..2337789 100644 (file)
@@ -15,7 +15,8 @@ extern byte    gRequestCode;
 extern unsigned int gNextProgram;
 extern unsigned int gNextProgramSize;
 
-extern byte *pc;
+extern byte *pc, *old_pc;
+extern unsigned int debug_word1, debug_word2;
 extern STACKWORD *stackTop;
 extern STACKWORD *localsBase;
 
index b0d2b21..a78b4d7 100644 (file)
 
 void *installedBinary;
 
+#if EXECUTE_FROM_FLASH
+byte *classStaticStateBase;
+byte *classStatusBase;
+#endif
+
 // Temporary globals:
 
 // (Gotta be careful with these; a lot of stuff
index 370501a..b880a25 100644 (file)
@@ -117,6 +117,13 @@ typedef TWOBYTES STATICFIELD;
 
 extern void *installedBinary;
 
+#if EXECUTE_FROM_FLASH
+// base of static area of all classes
+extern byte *classStaticStateBase;
+// base of class status table
+extern byte *classStatusBase;
+#endif
+
 extern byte get_class_index (Object *obj);
 extern void dispatch_virtual (Object *obj, TWOBYTES signature, byte *rAddr);
 extern MethodRecord *find_method (ClassRecord *classRec, TWOBYTES signature);
@@ -150,20 +157,37 @@ extern void handle_field (byte hiByte, byte loByte, boolean doPut, boolean aStat
 
 #define class_size(CLASSIDX_)       (get_class_record(CLASSIDX_)->classSize)
 
+#if EXECUTE_FROM_FLASH
+#define get_class_status(CREC_)     (classStatusBase[ CREC_ - get_class_base()])
+#define is_initialized(CREC_)       ((get_class_status(CREC_) & C_INITIALIZED) != 0)
+#define is_initialized_idx(CIDX_)   ((classStatusBase[(CIDX_)] & C_INITIALIZED) != 0)
+#else
 #define is_initialized(CREC_)       (((CREC_)->cflags & C_INITIALIZED) != 0)
+#define is_initialized_idx(CIDX_)   ((get_class_record(CIDX_)->cflags & C_INITIALIZED) != 0)
+#endif
+
 #define is_array_class(CREC_)       (((CREC_)->cflags & C_ARRAY) != 0)
 #define has_clinit(CREC_)           (((CREC_)->cflags & C_HASCLINIT) != 0)
 #define is_interface(CREC_)         (((CREC_)->cflags & C_INTERFACE) != 0)
 
-#define set_initialized(CLASSREC_)   ((CLASSREC_)->cflags |= C_INITIALIZED)
-#define set_uninitialized(CLASSREC_) ((CLASSREC_)->cflags &= ~C_INITIALIZED)
+#if EXECUTE_FROM_FLASH
+#define set_initialized(CREC_)      (get_class_status(CREC_) |= C_INITIALIZED)
+#define set_uninitialized(CREC_)    (get_class_status(CREC_) &= ~C_INITIALIZED)
+#else
+#define set_initialized(CREC_)      ((CREC_)->cflags |= C_INITIALIZED)
+#define set_uninitialized(CREC_)    ((CREC_)->cflags &= ~C_INITIALIZED)
+#endif
 
 #define is_synchronized(MREC_)      (((MREC_)->mflags & M_SYNCHRONIZED) != 0)
 #define is_native(MREC_)            (((MREC_)->mflags & M_NATIVE) != 0)
 #define get_code_ptr(MREC_)         (get_binary_base() + (MREC_)->codeOffset)
 
 #define get_static_fields_base()    (get_binary_base() + get_master_record()->staticFieldsOffset)
+#if EXECUTE_FROM_FLASH
+#define get_static_state_base()     (classStaticStateBase)
+#else
 #define get_static_state_base()     (get_binary_base() + get_master_record()->staticStateOffset)
+#endif
 #define get_static_field_offset(R_) ((R_) & 0x0FFF)
 
 #define get_num_entry_classes()     (get_master_record()->numEntryClasses)
@@ -182,8 +206,7 @@ static inline void initialize_binary()
   printf("Offset is %d\n",(int) mrec->staticStateOffset); */
 
   /* printf("Length is %d\n",(int) mrec->staticStateLength);*/
-  zero_mem ((TWOBYTES *) (get_binary_base() + mrec->staticStateOffset),
-            mrec->staticStateLength);
+  zero_mem ((TWOBYTES *) (get_static_state_base()), mrec->staticStateLength);
 //  printf("Zeroed memory\n");
   for (i = 0; i <= mrec->lastClass; i++)
   {
index f073585..e9909d2 100644 (file)
@@ -12,6 +12,7 @@
 #include "interpreter.h"
 #include "exceptions.h"
 #include "stdlib.h"
+#include "stack.h"
 
 #include <string.h>
 
@@ -19,9 +20,9 @@
 static boolean memoryInitialized = false;
 #endif
 
-// Heap memory needs to be aligned to 8 bytes on ARM
+// Heap memory needs to be aligned to 4 bytes on ARM
 // Value is in 2-byte units and must be a power of 2
-#define MEMORY_ALIGNMENT 4
+#define MEMORY_ALIGNMENT 2
 
 #define NULL_OFFSET 0xFFFF
 
@@ -40,7 +41,10 @@ const byte typeSize[] = {
   1, // 8 == T_BYTE
   2, // 9 == T_SHORT
   4, // 10 == T_INT
-  8  // 11 == T_LONG
+  8, // 11 == T_LONG
+  0, // 12
+  0, // 13
+  4, // 14 Used for multidimensional arrays
 };
 
 typedef struct MemoryRegion_S {
@@ -65,6 +69,7 @@ static TWOBYTES memory_free;    /* total number of free words in heap */
 
 extern void deallocate (TWOBYTES *ptr, TWOBYTES size);
 extern TWOBYTES *allocate (TWOBYTES size);
+Object *protectedRef[MAX_VM_REFS];
 
 /**
  * @param numWords Number of 2-byte words used in allocating the object.
@@ -72,14 +77,25 @@ extern TWOBYTES *allocate (TWOBYTES size);
 #define initialize_state(OBJ_,NWORDS_) zero_mem(((TWOBYTES *) (OBJ_)) + NORM_OBJ_SIZE, (NWORDS_) - NORM_OBJ_SIZE)
 #define get_object_size(OBJ_)          (get_class_record(get_na_class_index(OBJ_))->classSize)
 
+#if GARBAGE_COLLECTOR
+static void set_reference( TWOBYTES* ptr);
+static void clr_reference( TWOBYTES* ptr);
+#else
+static inline void set_reference( TWOBYTES* ptr) {}
+static inline void clr_reference( TWOBYTES* ptr) {}
+#endif
+
 /**
  * Zeroes out memory.
  * @param ptr The starting address.
  * @param numWords Number of two-byte words to clear.
+ * Now slightly optmized;
  */
-void zero_mem (register TWOBYTES *ptr, register TWOBYTES numWords)
+void zero_mem( TWOBYTES *ptr, TWOBYTES numWords)
 {
-  while (numWords--)
+  TWOBYTES* end = ptr + numWords;
+
+  while( ptr < end)
     *ptr++ = 0;
 }
 
@@ -222,7 +238,7 @@ Object *new_primitive_array (const byte primitiveType, STACKWORD length)
 TWOBYTES get_array_size (Object *obj)
 {
   return comp_array_size (get_array_length (obj),
-                          get_element_type (obj));     
+                          get_element_type (obj));  
 }
 
 void free_array (Object *objectRef)
@@ -237,17 +253,17 @@ void free_array (Object *objectRef)
 #if !FIXED_STACK_SIZE
 Object *reallocate_array(Object *obj, STACKWORD newlen)
 {
-       byte elemType = get_element_type(obj);
-       Object *newArray = new_primitive_array(elemType, newlen);
-       
-       // If can't allocate new array, give in!
+  byte elemType = get_element_type(obj);
+  Object *newArray = new_primitive_array(elemType, newlen);
+    
+    // If can't allocate new array, give in!
     if (newArray != JNULL)
     {
-       // Copy old array to new
-       memcpy(((byte *) newArray + HEADER_SIZE), ((byte *) obj + HEADER_SIZE), get_array_length(obj) * typeSize[elemType]);
+      // Copy old array to new
+      memcpy(((byte *) newArray + HEADER_SIZE), ((byte *) obj + HEADER_SIZE), get_array_length(obj) * typeSize[elemType]);
     
-               // Free old array
-               free_array(obj);
+      // Free old array
+      free_array(obj);
     }
     
     return newArray;
@@ -267,8 +283,8 @@ Object *new_multi_array (byte elemType, byte totalDimensions,
 
   #ifdef WIMPY_MATH
   Object *aux;
-  TWOBYTES ne;
   #endif
+  TWOBYTES ne;
 
   #ifdef VERIFY
   assert (totalDimensions >= 1, MEMORY6);
@@ -278,13 +294,17 @@ Object *new_multi_array (byte elemType, byte totalDimensions,
   #if 0
   printf ("new_multi_array (%d, %d, %d)\n", (int) elemType, (int) totalDimensions, (int) reqDimensions);
   #endif
-
   if (reqDimensions == 0)
     return JNULL;
 
   #if 0
   printf ("num elements: %d\n", (int) *numElemPtr);
   #endif
+  if (totalDimensions >= MAX_VM_REFS)
+  {
+    throw_exception (outOfMemoryError);
+    return JNULL;
+  }
 
   if (totalDimensions == 1)
     return new_primitive_array (elemType, *numElemPtr);
@@ -293,26 +313,58 @@ Object *new_multi_array (byte elemType, byte totalDimensions,
   ref = new_primitive_array (T_REFERENCE, *numElemPtr);
   if (ref == JNULL)
     return JNULL;
-
-  while ((*numElemPtr)--)
+  // Make sure we protect each level from the gc. Once we have returned
+  // the ref it will be protected by the level above.
+  protectedRef[totalDimensions] = ref;
+  
+  ne = *numElemPtr;
+  while (ne--)
   {
     #ifdef WIMPY_MATH
 
     aux = new_multi_array (elemType, totalDimensions - 1, reqDimensions - 1,
       numElemPtr + 1);
-    ne = *numElemPtr;
     ref_array(ref)[ne] = ptr2word (aux);
 
     #else
 
-    ref_array(ref)[*numElemPtr] = ptr2word (new_multi_array (elemType, totalDimensions - 1, reqDimensions - 1, numElemPtr + 1));
+    ref_array(ref)[ne] = ptr2word (new_multi_array (elemType, totalDimensions - 1, reqDimensions - 1, numElemPtr + 1));
 
     #endif // WIMPY_MATH
   }
-
+  protectedRef[totalDimensions] = JNULL;
 
   return ref;
 }
+/**
+ * Native array copy method,
+ * Copy the (partial) contents of one array to another
+ * Placed here tp allow access to element size information.
+ */
+void arraycopy(Object *src, int srcOff, Object *dst, int dstOff, int len)
+{
+  // validate things
+  if (src == null || dst == null)
+  {
+    throw_exception(nullPointerException);
+    return;
+  }
+  if (!is_array(src) || !is_array(dst) || (get_element_type(src) != get_element_type(dst)))
+  {
+    throw_exception(illegalArgumentException);
+    return;
+  }
+  if (srcOff < 0 || (srcOff + len > get_array_length(src)) ||
+      dstOff < 0 || (dstOff + len > get_array_length(dst)))
+  {
+    throw_exception(arrayIndexOutOfBoundsException);
+    return;
+  }
+  // and finally do the copy!
+  int elemSize = typeSize[get_element_type(src)];
+  memcpy(((byte *) dst + HEADER_SIZE) + dstOff*elemSize , ((byte *) src + HEADER_SIZE) + srcOff*elemSize, len*elemSize);
+}
+
 
 #ifdef WIMPY_MATH
 
@@ -337,26 +389,34 @@ void store_word (byte *ptr, byte aSize, STACKWORD aWord)
 /**
  * Problem here is bigendian v. littleendian. Java has its
  * words stored bigendian, intel is littleendian.
+ * Now slightly optmized;
  */
-STACKWORD get_word(byte *ptr, byte aSize)
+
+STACKWORD get_word( byte *ptr, int aSize)
 {
   STACKWORD aWord = 0;
-  while (aSize--)
+  byte *end = ptr + aSize;
+
+  do
   {
     aWord = (aWord << 8) | (STACKWORD)(*ptr++);
-  }
+  } while( ptr < end);
   
   return aWord;
 }
 
-void store_word (byte *ptr, byte aSize, STACKWORD aWord)
+void store_word( byte *ptr, int aSize, STACKWORD aWord)
 {
-  ptr += aSize-1;
-  while (aSize--)
+  byte* base = ptr;
+  
+  ptr += aSize;
+
+  do
   {
-    *ptr-- = (byte) aWord;
-    aWord = aWord >> 8;
+    *--ptr = (byte) aWord;
+    aWord >>= 8;
   }
+  while( ptr > base);
 }
 
 #endif // WIMPY_MATH
@@ -373,7 +433,7 @@ typedef union
   STACKWORD word;
 } AuxStackUnion;
 
-void make_word (byte *ptr, byte aSize, STACKWORD *aWordPtr)
+void make_word (byte *ptr, int aSize, STACKWORD *aWordPtr)
 {
   // This switch statement is 
   // a workaround for a h8300-gcc bug.
@@ -449,6 +509,21 @@ void memory_add_region (byte *start, byte *end)
   region->end = (TWOBYTES *) ((unsigned int)end & ~1); /* 16-bit align
  downwards */
 
+#if GARBAGE_COLLECTOR
+  {
+    /* To be able to quickly identify a reference like stack slot
+       we use a dedicated referance bitmap. With alignment of 4 bytes
+       the map is 32 times smaller then the heap. Let's allocate
+       the map by lowering the region->end pointer by the map size.
+       The map must be zeroed. */
+    TWOBYTES bitmap_size;
+    contents_size = region->end - &(region->contents);
+    bitmap_size = (contents_size / (((MEMORY_ALIGNMENT * 2) * 8) + 1) + 2) & ~1;
+    region->end -= bitmap_size;
+    zero_mem( region->end, bitmap_size);
+  }
+#endif
+
   /* create free block in region */
   contents_size = region->end - &(region->contents);
   ((Object*)&(region->contents))->flags.all = contents_size;
@@ -475,16 +550,15 @@ void memory_add_region (byte *start, byte *end)
 /**
  * @param size Size of block including header in 2-byte words.
  */
-TWOBYTES *allocate (TWOBYTES size)
+static TWOBYTES *try_allocate (TWOBYTES size)
 {
-  // Align memory to boundary appropriate for system   
-  size = (size + (MEMORY_ALIGNMENT-1)) & ~(MEMORY_ALIGNMENT-1);
-
 #if SEGMENTED_HEAP
   MemoryRegion *region;
-
 #endif
 
+  // Align memory to boundary appropriate for system  
+  size = (size + (MEMORY_ALIGNMENT-1)) & ~(MEMORY_ALIGNMENT-1);
+
 #if DEBUG_MEMORY
   printf("Allocate %d - free %d\n", size, memory_free-size);
 #endif
@@ -499,7 +573,6 @@ TWOBYTES *allocate (TWOBYTES size)
     while (ptr < regionTop) {
       TWOBYTES blockHeader = *ptr;
 
-
       if (blockHeader & IS_ALLOCATED_MASK) {
         /* jump over allocated block */
         TWOBYTES s = (blockHeader & IS_ARRAY_MASK) 
@@ -514,7 +587,7 @@ TWOBYTES *allocate (TWOBYTES size)
       {
         if (size <= blockHeader) {
           /* allocate from this block */
-
+#if GARBAGE_COLLECTOR == 0
 #if COALESCE
           {
             TWOBYTES nextBlockHeader;
@@ -539,6 +612,7 @@ TWOBYTES *allocate (TWOBYTES size)
             }
           }
 #endif
+#endif
           if (size < blockHeader) {
             /* cut into two blocks */
             blockHeader -= size; /* first block gets remaining free space */
@@ -552,6 +626,9 @@ TWOBYTES *allocate (TWOBYTES size)
           }
           memory_free -= size;
 
+          /* set the corresponding bit of the reference map */
+          set_reference( ptr);
+
           return ptr;
         } else {
           /* continue searching */
@@ -564,12 +641,42 @@ TWOBYTES *allocate (TWOBYTES size)
   return JNULL;
 }
 
+#if GARBAGE_COLLECTOR
+
+TWOBYTES *allocate (TWOBYTES size)
+{
+  TWOBYTES *ptr = try_allocate( size);
+
+  if( ptr == JNULL)
+  {
+    /* no memory left so run the garbage collector */
+    garbage_collect();
+
+    /* now try to allocate object again */
+    ptr = try_allocate( size);
+  }
+
+  return ptr;
+}
+
+#else
+
+TWOBYTES *allocate (TWOBYTES size)
+{
+  return try_allocate( size);
+}
+
+#endif
+
 /**
  * @param size Must be exactly same size used in allocation.
  */
 void deallocate (TWOBYTES *p, TWOBYTES size)
 {
-  // Align memory to boundary appropriate for system   
+  /* clear the corresponding bit of the reference map */
+  clr_reference( p);
+
+  // Align memory to boundary appropriate for system  
   size = (size + (MEMORY_ALIGNMENT-1)) & ~(MEMORY_ALIGNMENT-1);
   
   #ifdef VERIFY
@@ -585,12 +692,10 @@ void deallocate (TWOBYTES *p, TWOBYTES size)
   ((Object*)p)->flags.all = size;
 }
 
-
 int getHeapSize() {
   return ((int)memory_size) << 1;
 }
 
-
 int getHeapFree() {
   return ((int)memory_free) << 1;
 }
@@ -598,8 +703,431 @@ int getHeapFree() {
 int getRegionAddress()
 {
 #if SEGMENTED_HEAP
-       return 0xf002;
+  return 0xf002;
 #else
-       return (int)region;
+  return (int)region;
 #endif
 }
+
+#if GARBAGE_COLLECTOR
+
+/**
+ * The garbage collector implementation starts here.
+ * It is a classic mark and sweep implementation.
+ * The garbage collection triggers automaticly only
+ * after runing out of memory or by a java gc method
+ * invocation. Thus, if a program is a "well behaving" one,
+ * the garbage collector remains dormant. It consumes 
+ * about 1000 bytes of flash and about 1800 bytes of ram.
+ * Although the algorithm used is simple, it's pretty fast.
+ * A typical single gc run should take no more then 10 ms
+ * to complete. Besides, the presence of garbage collector
+ * does not impair the speed of program execution.
+ * There is no reference tracing on writes and no stack
+ * or object size increase.
+ * Potential problems: long linked list may cause
+ * processor stack overflow due to recursion.
+ */
+
+/**
+ * Just a forward declaration.
+ */
+static void mark_object( Object *obj);
+
+/**
+ * "Mark" flag manipulation functions.
+ */
+static inline void set_gc_marked( Object* obj)
+{
+  obj->flags.objects.mark = 1;
+}
+
+static inline void clr_gc_marked( Object* obj)
+{
+  obj->flags.objects.mark = 0;
+}
+
+static inline boolean is_gc_marked( Object* obj)
+{
+  return obj->flags.objects.mark != 0;
+}
+
+/**
+ * Reference bitmap manipulation functions.
+ * The bitmap is allocated at the end of the region.
+ */
+static void set_reference( TWOBYTES* ptr)
+{
+#if SEGMENTED_HEAP
+  MemoryRegion *region;
+  for (region = memory_regions; region != null; region = region->next)
+  {
+    TWOBYTES* regBottom = &(region->contents);
+    TWOBYTES* regTop = region->end;
+
+    if( ptr >= regBottom && ptr < regTop)
+    {
+#endif
+      int refIndex = ((byte*) ptr - (byte*)&(region->contents)) / (MEMORY_ALIGNMENT * 2);
+
+      ((byte*) region->end)[ refIndex >> 3] |= 1 << (refIndex & 7);
+
+#if SEGMENTED_HEAP
+      return;
+    }
+  }
+#endif
+}
+
+static void clr_reference( TWOBYTES* ptr)
+{
+#if SEGMENTED_HEAP
+  MemoryRegion *region;
+  for (region = memory_regions; region != null; region = region->next)
+  {
+    TWOBYTES* regBottom = &(region->contents);
+    TWOBYTES* regTop = region->end;
+
+    if( ptr >= regBottom && ptr < regTop)
+    {
+#endif
+      int refIndex = ((byte*) ptr - (byte*)&(region->contents)) / (MEMORY_ALIGNMENT * 2);
+
+      ((byte*) region->end)[ refIndex >> 3] &= ~ (1 << (refIndex & 7));
+
+#if SEGMENTED_HEAP
+      return;
+    }
+  }
+#endif
+}
+
+static boolean is_reference( TWOBYTES* ptr)
+{
+#if SEGMENTED_HEAP
+  MemoryRegion *region;
+  for (region = memory_regions; region != null; region = region->next)
+#endif
+  {
+    /* The reference must belong to a memory region. */
+    TWOBYTES* regBottom = &(region->contents);
+    TWOBYTES* regTop = region->end;
+
+    if( ptr >= regBottom && ptr < regTop)
+    {
+      /* It must be properly aligned */
+      if( ((int)ptr & ((MEMORY_ALIGNMENT * 2) - 1)) == 0)
+      {
+        /* Now we can safely check the corresponding bit in the reference bitmap. */
+        int refIndex = ((byte*) ptr - (byte*)&(region->contents)) / (MEMORY_ALIGNMENT * 2);
+
+        return (((byte*) region->end)[ refIndex >> 3] & (1 << (refIndex & 7))) != 0;
+      }
+
+      return false;
+    }
+  }
+
+  return false;
+}
+
+/**
+ * Scan static area of all classes. For every non-null reference field
+ * call mark_object function.
+ */
+static void mark_static_objects( void)
+{
+  MasterRecord* mrec = get_master_record();
+  STATICFIELD* staticFieldBase = (STATICFIELD*) get_static_fields_base();
+  byte* staticStateBase = get_static_state_base();
+  byte* staticState = staticStateBase;
+  byte* staticEnd = staticStateBase + mrec->staticStateLength * 2 - 1;
+  int idx = 0;
+
+  while( staticState < staticEnd)
+  {
+    STATICFIELD fieldRecord = staticFieldBase[ idx ++];
+    byte fieldType = (fieldRecord >> 12) & 0x0F;
+    byte fieldSize = typeSize[ fieldType];
+
+    if( fieldType == T_REFERENCE)
+    {
+      Object* obj = (Object*) get_word( staticState, 4);
+      if( obj != NULL)
+        mark_object( obj);
+    }
+
+    staticState += fieldSize;
+  }
+}
+
+/**
+ * Scan slot stacks of threads (local variables and method params).
+ * For every slot containing reference value call the mark_object
+ * function. Additionally, call this function for the thread itself,
+ * for both its stacks and optionly for monitor object. This allows
+ * avoiding garbage-collecting them.
+ */
+static void mark_local_objects()
+{
+  int i;
+  // Make sure the stack frame for the current thread is up to date.
+  StackFrame *currentFrame = current_stackframe();
+  if (currentFrame != null) update_stack_frame(currentFrame);
+  // If needed make sure we protect the VM temporary references
+  for(i=0; i < MAX_VM_REFS; i++)
+    if (protectedRef[i] != JNULL) mark_object(protectedRef[i]);
+
+  for( i = 0; i < MAX_PRIORITY; i ++)
+  {
+    Thread* th0 = threadQ[ i];
+    Thread* th = th0;
+
+    while( th != NULL)
+    {
+      byte arraySize;
+
+      mark_object( (Object*) th);
+      mark_object( (Object*) th->stackArray);
+      mark_object( (Object*) th->stackFrameArray);
+
+      if( th->waitingOn != 0)
+        mark_object( (Object*) th->waitingOn);
+
+      arraySize = th->stackFrameArraySize;
+      if( arraySize != 0)
+      {
+        Object* sfObj = word2ptr( th->stackFrameArray);
+        StackFrame* stackFrame = ((StackFrame*) array_start( sfObj)) + (arraySize - 1);
+        Object* saObj = word2ptr( th->stackArray);
+        STACKWORD* stackBottom = (STACKWORD*) jint_array( saObj);
+        STACKWORD* stackTop = stackFrame->stackTop;
+        STACKWORD* sp;
+    
+        for( sp = stackBottom; sp <= stackTop; sp ++)
+        {
+          TWOBYTES* ptr = word2ptr( *sp);
+
+          if( is_reference( ptr))
+          {
+            /* Now we know that ptr points to a valid allocated object.
+               It does not mean, that this slot contains a reference variable.
+               It may be an integer or float variable, which has exactly the
+               same value as a reference of one of the allocated objects.
+               But it is no harm. We can safely "mark" it, In such a case
+               we may just leave an unreachable object uncollected. */
+
+            mark_object( (Object*) ptr);
+          }
+        }
+      }
+
+      th = word2ptr( th->nextThread);
+      if( th == th0)
+        break;
+    }
+  }
+}
+
+/**
+ * Scan member fields of class instance, and for every
+ * non-null reference field call the mark_object function.
+ */
+static void mark_reference_fields( Object* obj)
+{
+  byte classIndex = get_na_class_index( obj);
+  ClassRecord* classRecord;
+  byte classIndexTable[ 16];
+  int classIndexTableIndex = 0;
+  byte* statePtr;
+
+  /* first we need to prepare a reversed order of inheritance */
+
+  for(;;)
+  {
+    if( classIndex == JAVA_LANG_OBJECT)
+      break;
+
+    classRecord = get_class_record( classIndex);
+
+    if( classRecord->numInstanceFields)
+      classIndexTable[ classIndexTableIndex ++] = classIndex;
+
+    classIndex = classRecord->parentClass;
+  } 
+
+  /* now we can scan the member fields */
+
+  statePtr = (byte*) (((TWOBYTES *) (obj)) + NORM_OBJ_SIZE);
+
+  while( -- classIndexTableIndex >= 0)
+  {
+    classIndex = classIndexTable[ classIndexTableIndex];
+    classRecord = get_class_record (classIndex);
+
+    if( classRecord->numInstanceFields)
+    {
+      int i;
+
+      for( i = 0; i < classRecord->numInstanceFields; i++)
+      {
+        byte fieldType = get_field_type( classRecord, i);
+        byte fieldSize = typeSize[ fieldType];
+
+        if( fieldType == T_REFERENCE)
+        {
+          /* omit nextThread field of Thread class */
+
+          if( ! (classIndex == JAVA_LANG_THREAD && i == 0))
+          {
+            Object* robj = (Object*) get_word( statePtr, 4);
+            if( robj != NULL)
+              mark_object( robj);
+          }
+        }
+
+        statePtr += fieldSize;
+      }
+    }
+  }
+}
+
+/**
+ * A function which performs a "mark" operation for an object.
+ * If it is an array of references recursively call mark_object
+ * for every non-null array element.
+ * Otherwise "mark" every non-null reference field of that object.
+ */
+static void mark_object( Object *obj)
+{
+  if( is_gc_marked( obj))
+    return;
+
+  set_gc_marked( obj);
+
+  if( is_array( obj))
+  {
+    if( get_element_type( obj) == T_REFERENCE)
+    {
+      REFERENCE* refarr = ref_array( obj);
+      REFERENCE* refarrend = refarr + get_array_length( obj);
+      
+      while( refarr < refarrend)
+      {
+        Object* obj = (Object*) (*refarr ++);
+        if( obj != NULL)
+          mark_object( obj);
+      }
+    }
+  }
+  else
+    mark_reference_fields( obj);
+}
+
+/**
+ * A function which performs a "sweep" operation for an object.
+ * If it's "marked" clear the mark. Otherwise delete the object.
+ * For safety omit objects with active monitor.
+ */
+static void sweep_object( Object *obj, TWOBYTES size)
+{
+  if( is_gc_marked( obj))
+    clr_gc_marked( obj);
+  else
+  if( get_monitor_count( obj) == 0)
+    deallocate( (TWOBYTES*) obj, size);
+}
+
+/**
+ * Scan heap objects and for every allocated object call
+ * the sweep_object function.
+ */
+static void sweep_heap_objects( void)
+{
+#if SEGMENTED_HEAP
+  MemoryRegion *region;
+  for (region = memory_regions; region != null; region = region->next)
+#endif
+  {
+    TWOBYTES* ptr = &(region->contents);
+    TWOBYTES* fptr = null;
+    TWOBYTES* regionTop = region->end;
+    while( ptr < regionTop)
+    {
+      TWOBYTES blockHeader = *ptr;
+      TWOBYTES size;
+
+      if( blockHeader & IS_ALLOCATED_MASK)
+      {
+        /* jump over allocated block */
+        size = (blockHeader & IS_ARRAY_MASK) ? get_array_size ((Object *) ptr)
+                                             : get_object_size ((Object *) ptr);
+          
+        // Round up according to alignment
+        size = (size + (MEMORY_ALIGNMENT-1)) & ~(MEMORY_ALIGNMENT-1);
+        sweep_object( (Object*) ptr, size);
+        blockHeader = *ptr;
+      }
+      else
+      {
+        /* continue searching */
+        size = blockHeader;
+      }
+      if( !(blockHeader & IS_ALLOCATED_MASK))
+      {
+        // Got a free block can we merge?
+        if (fptr != null)
+          *fptr += size;
+        else
+          fptr = ptr;
+      }
+      else
+          fptr = null;
+      ptr += size;
+    }
+  }
+}
+
+/**
+ * "Mark" preallocated instances of exception objects
+ * to avoid garbage-collecting them.
+ */
+static void mark_exception_objects( void)
+{
+  mark_object( outOfMemoryError);
+  mark_object( noSuchMethodError);
+  mark_object( stackOverflowError);
+  mark_object( nullPointerException);
+  mark_object( classCastException);
+  mark_object( arithmeticException);
+  mark_object( arrayIndexOutOfBoundsException);
+  mark_object( illegalArgumentException);
+  mark_object( interruptedException);
+  mark_object( illegalStateException);
+  mark_object( illegalMonitorStateException);
+  mark_object( error);
+}
+
+/**
+ * Main garbage collecting function.
+ * Perform "mark" operation for internal objects,
+ * class static areas and thread local areas.
+ * After that perform a "sweep" operation for
+ * every "unmarked" heap object.
+ */
+void garbage_collect( void)
+{
+  mark_exception_objects();
+  mark_static_objects();
+  mark_local_objects();
+  sweep_heap_objects();
+}
+
+#else
+
+void garbage_collect( void)
+{
+}
+
+#endif // GARBAGE_COLLECTOR
+
index 0f301a6..dd0bce5 100644 (file)
@@ -8,24 +8,26 @@
 #define DEBUG_RCX_MEMORY 0
 
 extern const byte typeSize[];
-
+extern Object *protectedRef[];
 extern void memory_init ();
 extern void memory_add_region (byte *region, byte *end);
 
 extern void free_array (Object *objectRef);
 extern void deallocate (TWOBYTES *ptr, TWOBYTES size);
 extern Object *new_object_checked (const byte classIndex, byte *btAddr);
-extern Object *new_object_for_class (byte classIndex);
+extern Object *new_object_for_class (const byte classIndex);
 extern Object *new_primitive_array (const byte primitiveType, STACKWORD length);
 extern Object *reallocate_array(Object *obj, STACKWORD newlen);
 extern Object *new_multi_array (byte elemType, byte totalDimensions, byte reqDimensions, STACKWORD *numElemPtr);
-extern void make_word (byte *ptr, byte aSize, STACKWORD *aWordPtr);
-extern void store_word (byte *ptr, byte aSize, STACKWORD aWord);
-extern STACKWORD get_word(byte *ptr, byte aSize);
+extern void arraycopy(Object *src, int srcOff, Object *dst, int dstOff, int len);
+extern void make_word (byte *ptr, int aSize, STACKWORD *aWordPtr);
+extern void store_word (byte *ptr, int aSize, STACKWORD aWord);
+extern STACKWORD get_word(byte *ptr, int aSize);
 extern void zero_mem (TWOBYTES *ptr, TWOBYTES numWords);
 extern int getHeapSize();
 extern int getHeapFree();
 extern int getRegionAddress();
+extern void garbage_collect(void);
 
 #if DEBUG_RCX_MEMORY
 extern void scan_memory (TWOBYTES *numNodes, TWOBYTES *biggest, TWOBYTES *freeMem);
index 0d8fef2..bd6a8d4 100644 (file)
@@ -5,7 +5,10 @@
 case OP_NEWARRAY:
   // Stack size: unchanged
   // Arguments: 1
-  set_top_ref (obj2ref(new_primitive_array (*pc++, get_top_word())));
+  tempStackWord = obj2ref(new_primitive_array (*pc++, get_top_word()));
+  // Do not modify the stack if an exception has been thrown
+  if (tempStackWord != JNULL)
+    set_top_ref(tempStackWord);
   // Exceptions are taken care of
   goto LABEL_ENGINELOOP;
 case OP_MULTIANEWARRAY:
@@ -13,9 +16,13 @@ case OP_MULTIANEWARRAY:
   // Arguments: 3
   tempByte = pc[2] - 1;
   tempBytePtr = (byte *) new_multi_array (pc[0], pc[1], pc[2], get_stack_ptr() - tempByte);
-  pop_words (tempByte);
-  set_top_ref (ptr2ref (tempBytePtr));
-  pc += 3;
+  // Must not modify either the stack or the pc if an exception has been thrown
+  if (tempBytePtr != JNULL)
+  {
+    pop_words (tempByte);
+    pc += 3;
+    set_top_ref (ptr2ref (tempBytePtr));
+  }
   goto LABEL_ENGINELOOP;
 case OP_AALOAD:
   // Stack size: -2 + 1
index 1d7396f..b7bbafe 100644 (file)
@@ -36,8 +36,11 @@ case OP_PUTSTATIC:
     printf ("---  GET/PUTSTATIC --- (%d, %d)\n", (int) pc[0], (int) pc[1]);
     #endif
 
-    if (dispatch_static_initializer (get_class_record (pc[0]), pc - 1))
-      goto LABEL_ENGINELOOP;
+#if EXECUTE_FROM_FLASH
+    if (!is_initialized_idx (pc[0]))
+#endif
+      if (dispatch_static_initializer (get_class_record (pc[0]), pc - 1))
+        goto LABEL_ENGINELOOP;
 
     fieldRecord = ((STATICFIELD *) get_static_fields_base())[pc[1]];
 
index be27fb9..a8865db 100644 (file)
@@ -100,8 +100,8 @@ playTone(II)V
 #lejos.nxt.comm.Bluetooth
 btSend([BI)V
 btReceive([B)V
-btGetCmdMode()I
-btSetCmdMode(I)V
+btGetBC4CmdMode()I
+btSetArmCmdMode(I)V
 btStartADConverter()V
 
 #lejos.nxt.comm.USB
@@ -117,8 +117,26 @@ exec(II)V
 #lejos.nxt.Sound
 playSample(IIII)V
 
+#java.lang.Object
+getDataAddress(Ljava/lang/Object;)I
 
+#java.lang.System
+gc()V
+shutDown()V
 
+#lejos.nxt.comm.Bluetooth
+btSetResetLow()V
+btSetResetHigh()V
+btWrite([BII)I
+btRead([BII)I
+btPending()I
+
+#java.lang.System
+arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
+
+#lejos.nxt.LCD
+getDisplay()[I
+setAutoRefresh(I)V
 
 
 
index 25f5d31..7d76d36 100644 (file)
@@ -57,8 +57,8 @@
 #define playTone_4II_5V 50
 #define btSend_4_1BI_5V 51
 #define btReceive_4_1B_5V 52
-#define btGetCmdMode_4_5I 53
-#define btSetCmdMode_4I_5V 54
+#define btGetBC4CmdMode_4_5I 53
+#define btSetArmCmdMode_4I_5V 54
 #define btStartADConverter_4_5V 55
 #define usbRead_4_1BI_5I 56
 #define usbWrite_4_1BI_5V 57
 #define readPage_4_1BI_5V 60
 #define exec_4II_5V 61
 #define playSample_4IIII_5V 62
+#define getDataAddress_4Ljava_3lang_3Object_2_5I 63
+#define gc_4_5V 64
+#define shutDown_4_5V 65
+#define btSetResetLow_4_5V 66
+#define btSetResetHigh_4_5V 67
+#define btWrite_4_1BII_5I 68
+#define btRead_4_1BII_5I 69
+#define btPending_4_5I 70
+#define arraycopy_4Ljava_3lang_3Object_2ILjava_3lang_3Object_2II_5V 71
+#define getDisplay_4_5_1I 72
+#define setAutoRefresh_4I_5V 73
 #endif // _SPECIALSIGNATURES_H
index da37941..9200b0b 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef _TYPES_H
 #define _TYPES_H
 
+#include "configure.h"
+
 #include "platform_config.h"
 
 typedef byte boolean;
@@ -38,8 +40,14 @@ typedef struct
 #error LITTLE_ENDIAN not defined in platform_config.h
 #endif
 
+#ifndef jfloat2word
 #define jfloat2word(FLOAT_) (((AuxConvUnion1) (FLOAT_)).sword)
+#endif
+
+#ifndef word2jfloat
 #define word2jfloat(WORD_)  (((AuxConvUnion1) (WORD_)).fnum)
+#endif
+
 #define byte2jint(BYTE_)    ((JINT) (signed char) (BYTE_))
 #define word2jint(WORD_)    ((JINT) (WORD_))
 #define word2jshort(WORD_)  ((JSHORT) (WORD_))
index cd3918c..2a57247 100644 (file)
@@ -4,6 +4,8 @@
 #include "bt.h"
 #include "aic.h"
 #include  <string.h>
+#include "display.h"
+#include "systick.h"
 
 static U8 in_buf[2][128];
 static U8 in_buf_in_ptr, out_buf_ptr;
@@ -15,11 +17,12 @@ static int in_buf_idx = 0;
 
 #define BAUD_RATE 460800
 #define CLOCK_RATE 48054850
+
        
 void bt_init(void)
 {
   U8 trash;
-  
+  U32 trash2;
   in_buf_in_ptr = out_buf_ptr = 0; 
   in_buf_idx = 0;
   
@@ -62,8 +65,20 @@ void bt_init(void)
   *AT91C_PIOA_PER   = BT_ARM7_CMD_PIN; 
   *AT91C_PIOA_CODR  = BT_ARM7_CMD_PIN;
   *AT91C_PIOA_OER   = BT_ARM7_CMD_PIN; 
+  // Configure timer 01 as trigger for ADC, sample every 0.5ms
+  *AT91C_PMC_PCER = (1 << AT91C_PERIPHERAL_ID_TC1); 
+  *AT91C_TC1_CCR = AT91C_TC_CLKDIS;
+  *AT91C_TC1_IDR = ~0;
+  trash2 = *AT91C_TC1_SR;
+  *AT91C_TC1_CMR = AT91C_TC_WAVE | AT91C_TC_WAVESEL_UP_AUTO | AT91C_TC_ACPA_SET | AT91C_TC_ACPC_CLEAR | AT91C_TC_ASWTRG_SET; /* MCLK/2, wave mode 10 */
+  *AT91C_TC1_RC = (CLOCK_FREQUENCY/2)/(2000);
+  *AT91C_TC1_RA = (CLOCK_FREQUENCY/2)/(4000);
+  *AT91C_TC1_CCR = AT91C_TC_CLKEN;
+  *AT91C_TC1_CCR = AT91C_TC_SWTRG;
 
+  *AT91C_PMC_PCER = (1 << AT91C_PERIPHERAL_ID_ADC); 
   *AT91C_ADC_MR  = 0;
+  *AT91C_ADC_MR |= AT91C_ADC_TRGEN_EN | AT91C_ADC_TRGSEL_TIOA1;
   *AT91C_ADC_MR |= 0x00003F00;
   *AT91C_ADC_MR |= 0x00020000;
   *AT91C_ADC_MR |= 0x09000000;
@@ -74,18 +89,20 @@ void bt_init(void)
 
 void bt_start_ad_converter()
 {
-  *AT91C_ADC_CR = AT91C_ADC_START;
+  // This method is no longer required. The ADC is started automatically
+  // by the hardware timer.
 }
 
 U32 bt_get_mode()
 {
+  // return the bt4 mode value.
   return (U32) *AT91C_ADC_CDR6;
 }
 
 void bt_send(U8 *buf, U32 len)
 {
   if (*AT91C_US1_TNCR == 0)
-  {    
+  {
     memcpy(&(out_buf[out_buf_ptr][0]), buf, len);
     *AT91C_US1_TNPR = (unsigned int) &(out_buf[out_buf_ptr][0]);
     *AT91C_US1_TNCR = len;
@@ -93,6 +110,38 @@ void bt_send(U8 *buf, U32 len)
   }
 }
 
+U32 bt_write(U8 *buf, U32 off, U32 len)
+{
+  if (*AT91C_US1_TNCR == 0)
+  {    
+    if (len > 256) len = 256;  
+    memcpy(&(out_buf[out_buf_ptr][0]), buf+off, len);
+    *AT91C_US1_TNPR = (unsigned int) &(out_buf[out_buf_ptr][0]);
+    *AT91C_US1_TNCR = len;
+    out_buf_ptr = (out_buf_ptr+1) % 2;
+    return len;
+  }
+  else
+    return 0;
+}
+
+U32 bt_pending()
+{
+  // return the state of any pending i/o requests one bit for input one bit
+  // for output.
+  // First check for any input
+  int ret = 0;
+  int bytes_ready;
+  if (*AT91C_US1_RNCR == 0) 
+    bytes_ready = 256 - *AT91C_US1_RCR;
+  else 
+    bytes_ready = 128 - *AT91C_US1_RCR;
+  if (bytes_ready  > in_buf_idx) ret |= 1;
+  if ((*AT91C_US1_TCR != 0) || (*AT91C_US1_TNCR != 0)) ret |= 2;
+  return ret;
+}
+
+
 void bt_clear_arm7_cmd(void)
 {
   *AT91C_PIOA_CODR  = BT_ARM7_CMD_PIN;
@@ -175,8 +224,102 @@ void bt_receive(U8 * buf)
   }   
 }
 
+U32 bt_read(U8 * buf, U32 off, U32 len)
+{
+  int bytes_ready, total_bytes_ready;
+  int cmd_len, i;
+  U8* tmp_ptr;
+  
+  cmd_len = 0;
+  if (*AT91C_US1_RNCR == 0) {
+    bytes_ready = 128;
+    total_bytes_ready = 256 - *AT91C_US1_RCR;
+  }
+  else
+    total_bytes_ready = bytes_ready = 128 - *AT91C_US1_RCR;
+  
+  if (total_bytes_ready > in_buf_idx)
+  {
+    cmd_len = (int) (total_bytes_ready - in_buf_idx);
+    if (cmd_len > len) cmd_len = len;
+       
+    if (bytes_ready >= in_buf_idx + cmd_len)
+    {  
+      for(i=0;i<cmd_len;i++) buf[off+i] = buf_ptr[in_buf_idx++];
+    }
+    else
+    {
+      for(i=0;i<cmd_len && in_buf_idx < 128;i++) buf[off+i] = buf_ptr[in_buf_idx++];
+      in_buf_idx = 0;
+      tmp_ptr = &(in_buf[(in_buf_in_ptr+1)%2][0]);
+      for(;i<cmd_len;i++) buf[off+i] = tmp_ptr[in_buf_idx++];
+      in_buf_idx += 128;
+    } 
+  }
+  
+  // Current buffer full and fully processed
+  
+  if (in_buf_idx >= 128 && *AT91C_US1_RNCR == 0)
+  {    
+       // Switch current buffer, and set up next 
+       
+       in_buf_idx -= 128;
+       *AT91C_US1_RNPR = (unsigned int) buf_ptr;
+       *AT91C_US1_RNCR = 128;
+       in_buf_in_ptr = (in_buf_in_ptr+1) % 2;
+       buf_ptr = &(in_buf[in_buf_in_ptr][0]);
+  }
+  return cmd_len;   
+}
+
 void bt_set_reset_low(void)
 {
   *AT91C_PIOA_CODR = BT_RST_PIN;
 }
-       
+
+void bt_reset(void)
+{
+  // Perform hardware reset. This function has some relatively long
+  // delays in it and so should probably only be called during application
+  // initialisation and termination. Calling it at other times may cause
+  // problems for other real time tasks.
+
+  // If power is currently off to the BC4 do not reset it!
+  if ((*AT91C_PIOA_ODSR & BT_RST_PIN) == 0) return; 
+  //display_goto_xy(0, 1);
+  //display_string("BT Reset....");
+  //display_update();
+  //systick_wait_ms(10000);
+  // Ask for command mode
+  bt_clear_arm7_cmd();
+  // BC4 reset sequence. First take the reset line low for 100ms
+  bt_set_reset_low();
+  // Wait and discard any packets that may be around
+  int cnt = 100;
+  U8 *buf = out_buf[0];
+  while (cnt-- > 0)
+  {
+    bt_receive(buf);
+    systick_wait_ms(1);
+  }
+  bt_set_reset_high();
+  // Now wait either for 5000ms or for the BC4 chip to signal reset
+  // complete. Note we use the out buffer as a scratch area here
+  // this id safe since we are forcing a reset.
+  cnt = 5000;
+  while (cnt-- > 0)
+  {
+    bt_receive(buf);
+    // Look for the reset indication and the checksum
+    if ((buf[0] == 3) && (buf[1] == MSG_RESET_INDICATION) && 
+        (buf[2] == 0xff) && (buf[3] == 0xe9))
+        break;
+    systick_wait_ms(1);
+  }
+  // Force command mode
+  bt_clear_arm7_cmd();
+  //display_goto_xy(10, 1);
+  //display_int(cnt, 5);
+  //display_update();
+  //systick_wait_ms(10000);
+}
index b92b8d4..8d74ca7 100644 (file)
@@ -75,5 +75,9 @@ void bt_start_ad_converter(void);
 void bt_send(U8 *buf, U32 len);
 void bt_receive(U8 * buf);
 U32 bt_get_mode(void);
+void bt_reset(void);
+U32 bt_write(U8 *buf, U32 off, U32 len);
+U32 bt_read(U8 * buf, U32 off, U32 len);
+U32 bt_pending(void);
 
 #endif /*BT_H_*/
index ad6e32c..325ed0a 100644 (file)
@@ -1,11 +1,15 @@
 #include "display.h"
 #include "AT91SAM7.h"
+#include "interpreter.h"
+#include "nxt_spi.h"
 
 U32 data_abort_pc;
 
 void
 data_abort_C(void)
 {
+  // Need to reset the link to the display to see any output
+  nxt_spi_init();
   display_clear(0);
   display_goto_xy(0, 0);
   display_string("Data abort");
@@ -18,8 +22,17 @@ data_abort_C(void)
   display_goto_xy(0, 3);
   display_string("ASR  ");
   display_hex(*AT91C_MC_ASR, 8);
+  display_goto_xy(0, 4);
+  display_string("OPCODE ");
+  display_int((int) *old_pc, 4);
+  display_goto_xy(0,5);
+  display_string("DEBUG1 ");
+  display_hex(debug_word1,8);
+  display_goto_xy(0,6);
+  display_string("DEBUG2 ");
+  display_hex(debug_word2,8);
 
-  display_update();
+  display_force_update();
 
   while (1) {
   }
index 263084a..0a79950 100644 (file)
@@ -1,14 +1,27 @@
 #include "display.h"
 #include "nxt_lcd.h"
 #include "systick.h"
-
+#include "constants.h"
+#include "classes.h"
 #include <string.h>
 
 
 #define DISPLAY_WIDTH (NXT_LCD_WIDTH)
 #define DISPLAY_DEPTH (NXT_LCD_DEPTH)
 
-static U8 display_buffer[DISPLAY_DEPTH][DISPLAY_WIDTH];
+/* NOTE
+ * The following buffer is declared with one extra line (the +1).
+ * This is to allow fast dma update of the screen (see nxt_spi.c
+ * for details). The buffer is now created wrapped inside of a Java
+ * array. This allows the buffer to be shared with Java applications.
+ */
+//static U8 display_buffer[DISPLAY_DEPTH+1][DISPLAY_WIDTH];
+static struct
+{
+  Object hdr;
+  U8 display[DISPLAY_DEPTH+1][DISPLAY_WIDTH];
+} __attribute__((packed)) display_array;
+static U8 (*display_buffer)[DISPLAY_WIDTH] = display_array.display;
 
 /* Font table for a 5x8 font. 1 pixel spacing between chars */
 #define N_CHARS 128
@@ -148,19 +161,35 @@ static const U8 font[N_CHARS][FONT_WIDTH] = {
 /* 0x7F */ {0x3E, 0x36, 0x2A, 0x36, 0x3E},
 };
 
-
+int display_tick = 0;
+int display_auto_update = 1;
 
 void
 display_update(void)
 {
-  nxt_lcd_data((U8 *) display_buffer);
+  display_tick = 0;
+  nxt_lcd_update();
+}
+
+void display_set_auto_update(int mode)
+{
+  // Enable/disable automatic refresh of the display.
+  display_auto_update = mode;
+}
+  
+
+void display_force_update(void)
+{
+  // Force a display update even if interrupts are disabled
+  nxt_lcd_force_update();
 }
 
 
 void
 display_clear(U32 updateToo)
 {
-  memset(display_buffer, 0, sizeof(display_buffer));
+  //memset(display_buffer, 0, sizeof(display_buffer));
+  memset(display_buffer, 0, DISPLAY_WIDTH*DISPLAY_DEPTH);
   if (updateToo)
     display_update();
 }
@@ -318,14 +347,32 @@ display_bitmap_copy(const U8 *data, U32 width, U32 depth, U32 x, U32 y)
 U8 *
 display_get_buffer(void)
 {
-  return display_buffer;
+  return (U8 *)display_buffer;
+}
+
+STACKWORD
+display_get_array(void)
+{
+  return (STACKWORD)ptr2word(&display_array);
 }
 
 void
 display_init(void)
 {
-  nxt_lcd_init();
-  display_clear(1);
+  // Initialise the array parameters so that the display can
+  // be memory mapped into the Java address space
+  display_array.hdr.flags.arrays.isArray = 1;
+  // NOTE This object must always be marked, otherwise very, very bad
+  // things will happen!
+  display_array.hdr.flags.arrays.mark = 1;
+  display_array.hdr.flags.arrays.length = 200;
+  display_array.hdr.flags.arrays.isAllocated = 1;
+  display_array.hdr.flags.arrays.type = T_INT;
+  display_array.hdr.monitorCount = 0;
+  display_array.hdr.threadId = 0;
+  display_clear(0);
+  display_auto_update = 1;
+  nxt_lcd_init((U8 *)display_buffer);
 }
 
 void
@@ -333,7 +380,7 @@ display_test(void)
 {
   int iterator = 0;
 
-  nxt_lcd_init();
+  nxt_lcd_init((U8 *)display_buffer);
   while (1) {
     display_clear(0);
     display_goto_xy(iterator, 0);
index d5826be..fa32cb4 100644 (file)
@@ -7,6 +7,8 @@ void display_init(void);
 
 void display_update(void);
 
+void display_force_update(void);
+
 void display_clear(U32 updateToo);
 
 void display_goto_xy(int x, int y);
@@ -26,4 +28,9 @@ void display_test(void);
 
 U8 *display_get_buffer(void);
 
+void display_set_auto_update(int);
+
+extern int display_tick;
+extern int display_auto_update;
+
 #endif
index 672daf4..adee3ba 100644 (file)
@@ -10,7 +10,7 @@ void flash_set_mode(U32 fmcn);
 #define VINTPTR(addr) ((volatile unsigned int *)(addr))
 #define VINT(addr) (*(VINTPTR(addr)))
 
-#define FLASH_START_PAGE 256
+#define FLASH_START_PAGE 320
 #define FLASH_BASE VINTPTR(0x00100000 + (FLASH_START_PAGE * 256))
 #define FLASH_MODE_REG VINT(0xFFFFFF60)
 #define FLASH_CMD_REG VINT(0xFFFFFF64)
index 51d2e6f..923a30e 100644 (file)
@@ -59,6 +59,19 @@ static const struct i2c_pin_pair i2c_pin[4] = {
 //
 // Note: It appears that the Lego ultrasonic sensor needs a 
 // stop and an extra clock before the restart.
+//
+// Additional changes made by Andy Shaw...
+//
+// Port 4 on the nxt is a little odd. It has extra hardware to implement
+// an RS485 interface. However this interacts with the digital I/O lines
+// which means that the original open collector driver used in this code
+// did not work. The code now uses a combination of open collector drive
+// on the clock lines (with pull up resistors enabled), plus a fully
+// driven ineterface on the data lines. This differs from the Lego
+// firmware which uses a fully driven clock inetrface. However doing so
+// means that it is hard (or impossible), to operate with the devices
+// that make use of clock stretching. It is hoped that the compromise
+// implemented here will work with all devices.
 
 
 struct i2c_partial_transaction {
@@ -156,6 +169,8 @@ i2c_timer_isr_C(void)
 
   U32 codr = 0;
   U32 sodr = 0;
+  U32 oer = 0;
+  U32 odr = 0;
   U32 inputs = *AT91C_PIOA_PDSR;
 
   struct i2c_port_struct *p = i2c_port;
@@ -177,6 +192,8 @@ i2c_timer_isr_C(void)
     case I2C_BEGIN:            
       // Start the current partial transaction
       p->pt_begun |= (1 << p->pt_num);
+      oer |= p->sda_pin;
+      oer |= p->scl_pin;
       
       if(p->current_pt && p->current_pt->nbytes){
         p->data = p->current_pt->data;
@@ -251,14 +268,18 @@ i2c_timer_isr_C(void)
         if(p->ack_slot) {
         
           if(p->transmitting)
-            sodr |= p->sda_pin;
+            odr |= p->sda_pin;
           else
+          {
+            oer |= p->sda_pin;
             codr |= p->sda_pin;
+          }
         
         } else if(!p->transmitting)
-          sodr |= p->sda_pin;
+          odr |= p->sda_pin;
         else {
           // Transmitting, and not an ack slot so send next bit
+          oer |= p->sda_pin;
           p->nbits--;
           if(((*(p->data)) >> (p->nbits & 7)) & 0x01)
             sodr |= p->sda_pin;
@@ -335,6 +356,7 @@ i2c_timer_isr_C(void)
       break;
     case I2C_STOP0:
       // Take SDA low (SCL is already low)
+      oer |= p->sda_pin;
       codr |= p->sda_pin;
       p->state = I2C_STOP1;
       break;  
@@ -366,6 +388,10 @@ i2c_timer_isr_C(void)
     *AT91C_PIOA_CODR = codr;
   if (sodr)
     *AT91C_PIOA_SODR = sodr;
+  if (oer)
+    *AT91C_PIOA_OER = oer;
+  if (odr)
+    *AT91C_PIOA_ODR = odr;
 }
 
 
@@ -389,10 +415,15 @@ i2c_enable(int port)
     struct i2c_port_struct *p = &i2c_port[port];
     U32 pinmask = p->scl_pin | p->sda_pin;
     p->state = I2C_IDLE;
-    /* Set pins for output, open collector driver */
+    /* Set clock pin for output, open collector driver, with
+     * pullups enabled. Set data to be enabled for output with
+     * pullups disabled.
+     */
     *AT91C_PIOA_SODR  = pinmask;
     *AT91C_PIOA_OER   = pinmask;
-    *AT91C_PIOA_MDER  = pinmask;
+    *AT91C_PIOA_MDER  = p->scl_pin;
+    *AT91C_PIOA_PPUDR = p->sda_pin;
+    *AT91C_PIOA_PPUER = p->scl_pin;
   }
 }
 
@@ -484,7 +515,8 @@ i2c_start_transaction(int port,
     // Set up first partial transaction: start address and internal address if required
 
     pt->start = 1;
-    pt->stop = 1;
+    // We add an extra stop for the odd Lego i2c sensor, but only on a read
+    pt->stop = (write ? 0 : 1);;
     pt->tx = 1;
     pt->data = p->addr_int;
     pt->nbytes = 2;
index 9476d8b..387973d 100644 (file)
@@ -72,6 +72,7 @@ handle_uncaught_exception(Object * exception,
                          const MethodRecord * methodRecord,
                          const MethodRecord * rootMethod, byte * pc)
 {
+  sound_freq(100,500); // buzz
   display_clear(0);
   display_goto_xy(0, 0);
   display_string("Java Exception:");
@@ -120,10 +121,32 @@ assert_hook(boolean aCond, int aCode)
 void
 run(int jsize)
 {
+  byte *ram_end = (byte *) (&__free_ram_end__);
+  byte *ram_start = (byte *) (&__free_ram_start__);
+
   init_poller();
 
   //printf("Initializing Binary\n");
 
+#if EXECUTE_FROM_FLASH
+  {
+    MasterRecord *mrec = get_master_record();
+    int staticSize = mrec->staticStateLength;
+    int statusSize = (mrec->lastClass + 1) * sizeof( classStatusBase[0]);
+
+    staticSize = (staticSize + 1) & ~(1);
+    statusSize = (statusSize + 3) & ~(3);
+
+    ram_end -= staticSize * 2;
+    classStaticStateBase = ram_end;
+
+    ram_end -= statusSize;
+    classStatusBase = ram_end;
+
+    memset( classStatusBase, 0, statusSize);
+  }
+#endif
+
   // Initialize binary image state
   initialize_binary();
 
@@ -131,15 +154,15 @@ run(int jsize)
 
   // Initialize memory
   {
-    byte *ram_end = (byte *) (&__free_ram_end__);
-    byte *ram_start = (byte *) (&__free_ram_start__);
-    int size, i;
+    //int size;
 
+#if ! EXECUTE_FROM_FLASH
     // Skip java binary if it is an top of ram
-
     if (jsize > 0)
       ram_end -= (jsize + 4);
-    size = ((unsigned) ram_end) - ((unsigned) ram_start);
+#endif
+
+    //size = ((unsigned) ram_end) - ((unsigned) ram_start);
 
     memory_init();
 
@@ -147,9 +170,9 @@ run(int jsize)
     memory_add_region(region, (byte *) ram_end);
 
     /*Add extra RAM if available */
-    ram_end = (byte *) (&__extra_ram_end__);
-    ram_start = (byte *) (&__extra_ram_start__);
-    size = ((unsigned) ram_end) - ((unsigned) ram_start);
+    //ram_end = (byte *) (&__extra_ram_end__);
+    //ram_start = (byte *) (&__extra_ram_start__);
+    //size = ((unsigned) ram_end) - ((unsigned) ram_start);
 
     //if(size > 0)
     //  memory_add_region(ram_start, ram_end);
@@ -187,6 +210,21 @@ nxt_main(int bin, int size)
   const char *binary; 
   unsigned *temp;
 
+#if EXECUTE_FROM_FLASH
+  if (bin > 0) {
+    size = (size + 3) & ~3;
+       binary = (char *) bin;
+       jsize = size - 4;
+  } else {
+    // Execute flash menu
+
+    bin = (unsigned *) 0x00108000;
+    size = *((unsigned *) 0x00113ffc);
+    size = (size + 3) & ~3;
+       binary = (char *) bin;
+    jsize = size - 4;
+  }
+#else
   if (bin > 0) {
     size = (size + 3) & ~3;
        temp = ((unsigned *) (&__free_ram_end__)) - (size >> 2);
@@ -197,16 +235,22 @@ nxt_main(int bin, int size)
     // Execute flash menu
 
     bin = (unsigned *) 0x00108000;
-    size = *((unsigned *) 0x0010fffc);
+    size = *((unsigned *) 0x00113ffc);
     size = (size + 3) & ~3;
     temp = ((unsigned *) (&__free_ram_end__)) - (size >> 2);   
     memcpy(temp,bin,size);
     binary = ((char *) temp);
     jsize = size - 4;
   }
+#endif
+  
+  // reset all motors, sensors and devices
 
   init_sensors();
-
+  nxt_motor_reset_all();
+  bt_reset(); 
+  display_clear(1);
+  display_set_auto_update(1);
   //       printf("Installing Binary\n");
 
   install_binary(binary);
@@ -397,6 +441,7 @@ main(void)
   nxt_motor_init();
   i2c_init();
   bt_init();
+  systick_wait_ms(1000); // wait for LCD to stabilize
   display_init();
   
   //flash_set_mode(*((unsigned *) 0x0010fff8));
@@ -410,13 +455,9 @@ main(void)
   {
        int next = gNextProgram;
        gNextProgram = 0;
-        
-    display_clear(1);
        nxt_main(next, gNextProgramSize);
   }
-  while (gNextProgram != 0);
-  
-  systick_wait_ms(5000);
+  while (true);
 
   while (1) {
     nxt_avr_power_down();
index 155bbba..d0ab176 100644 (file)
 #include "bt.h"
 #include "udp.h"
 #include "flashprog.h"
-
+int pos = 0;
+// Declared below to avoid needing STACKWORD everywhere we use display
+extern STACKWORD display_get_array(void);
 /**
  * NOTE: The technique is not the same as that used in TinyVM.
  */
 void
 dispatch_native(TWOBYTES signature, STACKWORD * paramBase)
 {
-
   switch (signature) {
   case wait_4_5V:
     monitor_wait((Object *) word2ptr(paramBase[0]), 0);
@@ -195,6 +196,12 @@ dispatch_native(TWOBYTES signature, STACKWORD * paramBase)
        display_buffer[i] = intArray[i];
     }
     return;
+  case getDisplay_4_5_1I:
+    push_word(display_get_array());
+    return;
+  case setAutoRefresh_4I_5V:
+    display_set_auto_update(paramBase[0]);
+    return;
   case getVoltageMilliVolt_4_5I:
     push_word(battery_voltage());
     return;
@@ -249,37 +256,62 @@ dispatch_native(TWOBYTES signature, STACKWORD * paramBase)
       bt_receive(byteArray);                      
     }
     return;
-  case btGetCmdMode_4_5I:
+  case btGetBC4CmdMode_4_5I:
     push_word(bt_get_mode());
-    break;
-  case btSetCmdMode_4I_5V:
+    return;
+  case btSetArmCmdMode_4I_5V:
     if (paramBase[0] == 0) bt_set_arm7_cmd();
     else bt_clear_arm7_cmd(); 
-    break;
+    return;
   case btStartADConverter_4_5V:
     bt_start_ad_converter();
-    break;
+    return;
+  case btSetResetLow_4_5V:
+    bt_set_reset_low();
+    return;
+  case btSetResetHigh_4_5V:
+    bt_set_reset_high();
+    return;
+  case btWrite_4_1BII_5I:
+    {
+      Object *p = word2ptr(paramBase[0]);
+      byte *byteArray = (((byte *) p) + HEADER_SIZE);
+      push_word(bt_write(byteArray, paramBase[1], paramBase[2]));                      
+    }
+    return;
+  case btRead_4_1BII_5I:
+    {
+      Object *p = word2ptr(paramBase[0]);
+      byte *byteArray = (((byte *) p) + HEADER_SIZE);
+      push_word(bt_read(byteArray, paramBase[1], paramBase[2]));                      
+    }
+    return;
+  case btPending_4_5I:
+    {
+      push_word(bt_pending());
+    }
+    return;
   case usbRead_4_1BI_5I:
      {
       Object *p = word2ptr(paramBase[0]);
       byte *byteArray = (((byte *) p) + HEADER_SIZE);
       push_word(udp_read(byteArray,paramBase[1]));                      
     } 
-    break;
+    return;
   case usbWrite_4_1BI_5V:
      {
       Object *p = word2ptr(paramBase[0]);
       byte *byteArray = (((byte *) p) + HEADER_SIZE);
       udp_write(byteArray,paramBase[1]);                      
     }
-    break
+    return
   case writePage_4_1BI_5V:
     {
       Object *p = word2ptr(paramBase[0]);
       unsigned long *intArray = (unsigned long *) (((byte *) p) + HEADER_SIZE);
       flash_write_page(intArray,paramBase[1]);                      
     }
-    break;
+    return;
   case readPage_4_1BI_5V:
     {
       int i;
@@ -287,18 +319,33 @@ dispatch_native(TWOBYTES signature, STACKWORD * paramBase)
       unsigned long *intArray = (unsigned long *) (((byte *) p) + HEADER_SIZE);
       for(i=0;i<64;i++) intArray[i] = FLASH_BASE[(paramBase[1]*64)+i];                       
     }
-    break;
+    return;
   case exec_4II_5V:
     gNextProgram = (unsigned int) &FLASH_BASE[(paramBase[0]*64)];
     gNextProgramSize = paramBase[1];
     schedule_request(REQUEST_EXIT);
-    break;
+    return;
   case usbReset_4_5V:
     udp_reset();
-    break
+    return
   case playSample_4IIII_5V:
     sound_play_sample((unsigned char *) &FLASH_BASE[(paramBase[0]*64)],paramBase[1],paramBase[2],paramBase[3]);
-    break;
+    return;
+  case getDataAddress_4Ljava_3lang_3Object_2_5I:
+    push_word (ptr2word (((byte *) word2ptr (paramBase[0])) + HEADER_SIZE));
+    return;
+  case gc_4_5V:
+    garbage_collect();
+    return;
+  case shutDown_4_5V:
+    while (1) nxt_avr_power_down(); // does not return
+  case arraycopy_4Ljava_3lang_3Object_2ILjava_3lang_3Object_2II_5V:
+    {
+      Object *p1 = word2ptr(paramBase[0]);
+      Object *p2 = word2ptr(paramBase[2]);
+      arraycopy(p1, paramBase[1], p2, paramBase[3], paramBase[4]);
+    }
+    return;
   default:
     throw_exception(noSuchMethodError);
   }
index 9e1e872..6c2c258 100644 (file)
@@ -280,11 +280,19 @@ nxt_avr_set_motor(U32 n, int power_percent, int brake)
 void
 nxt_avr_set_input_power(U32 n, U32 power_type)
 {
-  // This does not correspond to the spec.
-  // It is unclear how to set power always on.
-  // Lego code has a bug in it.
-  if (n < NXT_AVR_N_INPUTS && power_type <= 1) {
-    io_to_avr.input_power &= ~(0x1 << (n));
-    io_to_avr.input_power |= (power_type << (n));
+  // The power to the sensor is controlled by a bit in
+  // each of the two nibbles of the byte. There is one
+  // bit for each of the four sensors. if the low nibble
+  // bit is set then the sensor is "ACTIVE" and 9v is
+  // supplied to it but it will be pulsed off to allow
+  // the sensor to be be read. A 1 in the high nibble
+  // indicates that it is a 9v always on sensor and
+  // 9v will be supplied constantly. If both bits are
+  // clear then 9v is not supplied to the sensor. 
+  // Having both bits set is currently not supported.
+  if (n < NXT_AVR_N_INPUTS && power_type <= 2) {
+    U8 val = (power_type & 0x2 ? 0x10 << n : 0) | ((power_type & 1) << n);
+    io_to_avr.input_power &= ~(0x11 << n);
+    io_to_avr.input_power |= val;
   }
 }
index 359207c..39a3220 100644 (file)
@@ -3,7 +3,7 @@
 #include "systick.h"
 #include "string.h"
 
-
+static U8 *display = (U8 *)0;
 
 void
 nxt_lcd_command(U8 cmd)
@@ -117,21 +117,34 @@ nxt_lcd_set_cursor_update(U32 on)
   nxt_lcd_command(0xEE | ((on) ? 1 : 0));
 }
 
-
 void
-nxt_lcd_data(const U8 *data)
+nxt_lcd_force_update()
 {
+  // Update the screen the slow way. Works with interrupts disabled
   int i;
+  U8 *disp = display;
 
   for (i = 0; i < NXT_LCD_DEPTH; i++) {
     nxt_lcd_set_col(0);
     nxt_lcd_set_page_address(i);
 
-    nxt_spi_write(1, data, NXT_LCD_WIDTH);
-    data += NXT_LCD_WIDTH;
+    nxt_spi_write(1, disp, NXT_LCD_WIDTH);
+    disp += NXT_LCD_WIDTH;
   }
 }
 
+
+void
+nxt_lcd_update()
+{
+#define DMA_REFRESH
+#ifdef DMA_REFRESH
+  nxt_spi_refresh();
+#else
+  nxt_lcd_force_update();
+#endif
+}
+
 void
 nxt_lcd_power_up(void)
 {
@@ -143,18 +156,18 @@ nxt_lcd_power_up(void)
   nxt_lcd_set_bias_ratio(3);   // 1/9
   nxt_lcd_set_pot(0x60);       // ?? 9V??
 
-  nxt_lcd_set_ram_address_control(0);
-  nxt_lcd_set_map_control(0x02);
+  nxt_lcd_set_ram_address_control(1); // auto wrap
+  nxt_lcd_set_map_control(0x02); // mirror in y
 
+  nxt_spi_set_display(display);
   nxt_lcd_enable(1);
 
 }
 
 void
-nxt_lcd_init(void)
+nxt_lcd_init(const U8 *disp)
 {
-  systick_wait_ms(1000);
-  
+  display = disp;
   nxt_spi_init();
 
   nxt_lcd_power_up();
index 76ff3b2..3b03d25 100644 (file)
@@ -6,10 +6,11 @@
 #  define NXT_LCD_WIDTH 100
 #  define NXT_LCD_DEPTH 8
 
-void nxt_lcd_init(void);
+void nxt_lcd_init(const U8 *disp);
 void nxt_lcd_power_up(void);
 void nxt_lcd_power_down(void);
-void nxt_lcd_data(const U8 *buffer);
+void nxt_lcd_update();
+void nxt_lcd_force_update();
 
 
 #endif
index 7414f04..21a6765 100644 (file)
@@ -56,6 +56,17 @@ nxt_motor_set_speed(U32 n, int speed_percent, int brake)
   }
 }
 
+void nxt_motor_reset_all() 
+{
+  int i;
+       
+  for(i=0;i<NXT_N_MOTORS;i++)
+  {
+    nxt_motor_set_speed(i,0,1);
+    nxt_motor_set_count(i,0);   
+  }    
+}
+
 void
 nxt_motor_command(U32 n, int cmd, int target_count, int speed_percent)
 {
index 720a477..833c37c 100644 (file)
@@ -14,8 +14,9 @@ void nxt_motor_command(U32 n, int cmd, int target_count, int speed_percent);
 
 void nxt_motor_init(void);
 
-
 // ISR points used by motor processing
 void nxt_motor_1kHz_process(void);
 
+void nxt_motor_reset_all(void);
+
 #endif
index 41c3f74..30044d8 100644 (file)
  *
  * Instead, the MISO pin is not used by the SPI
  * and is instead driven as a PIO pin for controlling CD.
+ *
+ * Addional notes from Andy Shaw
+ * The following code now contains the capability to perform display
+ * updates using dma, This code was inspired by the nxos lcd/spi code
+ * (Thanks guys). More details of nxos can be found at:
+ * http://nxt.natulte.net/nxos/trac
+ *
  */
 
 
 #define CS_PIN (1<<10)
 #define CD_PIN  (1<<12)
+const U8 *display = (U8 *) 0;
+volatile U8 dirty = 0;
+volatile U8 page = 0;
+volatile const U8 *data = (U8 *) 0;
+U8 mode = 0xff;
 
 extern void spi_isr_entry(void);
 
+static void spi_set_mode(U8 m)
+{
+  U32 status;
+
+  /* nothing to do if we are already in the correct mode */
+  if (m == mode) return;
+  
+  /* Wait until all bytes have been sent */
+  do {
+    status = *AT91C_SPI_SR;
+  } while (!(status & 0x200));
+  /* Set command or data mode */
+  if (m)
+    *AT91C_PIOA_SODR = CD_PIN;
+  else
+    *AT91C_PIOA_CODR = CD_PIN;
+  /* remember the current mode */
+  mode = m;
+}
+
+
 void
 spi_isr_C(void)
 {
+  if (page == 0)
+  {
+    /* Check to see if we have data to display */
+    if (dirty != 0)
+    {
+      data = display;
+      dirty = 0;
+    }
+    else
+    {
+      /* No so turn things off. It will get re-set if we ever have anything
+         to display
+      */
+      *AT91C_SPI_IDR = AT91C_SPI_ENDTX;
+      return;
+    }
+  }
+  /* Make sure we are in data mode */
+  spi_set_mode(1);
+  /* now do the transfer. We make use of the auto-wrap function so simply
+   * need to send 8*132 bytes to get back to where we started. However the
+   * display buffer is structured as series of 100 byte lines, so we need to
+   * get tricky. I've made the display one line longer (9 lines) and so when we
+   * send the data we send 100 bytes from the actual line plus 32 padding bytes
+   * (that are not actually seen), from the next line. The extra line means
+   * that this is safe to do. If we can redefine the display as a 8*132 then
+   * we could just use a single dma transfer (instead of 8, 132 byte ones).
+   * However I'm not sure if this would be safe.
+   */
+  *AT91C_SPI_TNPR = (U32) data;
+  *AT91C_SPI_TNCR = 132;
+  page = (page + 1) % 8;
+  data += 100;
 }
 
 
@@ -36,33 +102,58 @@ void
 nxt_spi_init(void)
 {
   int i_state = interrupts_get_and_disable();
-
-  /* Get clock */
-  *AT91C_PMC_PCER = (1 << AT91C_PERIPHERAL_ID_PIOA) |  /* Need PIO too */
-    (1 << AT91C_PERIPHERAL_ID_SPI);    /* SPI clock domain */
-  /* Get pins, oly MOSI and clock */
-  *AT91C_PIOA_PDR = /* (1<< 12) | */ (1 << 13) | (1 << 14);
-  *AT91C_PIOA_ASR = /* (1<< 12) | */ (1 << 13) | (1 << 14);
-
-
-  /* Set up MISO as an output to control CD.
-   * Set up CS pin
-   */
-  *AT91C_PIOA_SODR = CS_PIN | CD_PIN;
-  *AT91C_PIOA_PER = CS_PIN | CD_PIN;
-  *AT91C_PIOA_OER = CS_PIN | CD_PIN;
-
-
-  /* Set up SPI peripheral */
-  *AT91C_SPI_CR = 1;           /* Enable */
-  *AT91C_SPI_MR = 0x06000001;
-  *AT91C_SPI_IDR = ~0;         /* Disable all interrupts */
-  AT91C_SPI_CSR[0] = 0x18181801;
-  AT91C_SPI_CSR[1] = 0x18181801;
-  AT91C_SPI_CSR[2] = 0x18181801;
-  AT91C_SPI_CSR[3] = 0x18181801;
-
-  /* Todo set up interrupt */
+#define OSC 48054805
+#define SPI_BITRATE 2000000
+
+  *AT91C_PMC_PCER  =  (1L << AT91C_ID_SPI);       /* Enable MCK clock     */
+  *AT91C_PIOA_PER = AT91C_PIO_PA12;/*EnableA0onPA12*/
+  *AT91C_PIOA_OER = AT91C_PIO_PA12;
+  *AT91C_PIOA_CODR = AT91C_PIO_PA12;
+  *AT91C_PIOA_PDR = AT91C_PA14_SPCK;/*EnableSPCKonPA14*/
+  *AT91C_PIOA_ASR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_ODR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_OWER = AT91C_PA14_SPCK;
+  *AT91C_PIOA_MDDR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_PPUDR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_IFDR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_CODR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_IDR = AT91C_PA14_SPCK;
+  *AT91C_PIOA_PDR = AT91C_PA13_MOSI;/*EnablemosionPA13*/
+  *AT91C_PIOA_ASR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_ODR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_OWER = AT91C_PA13_MOSI;
+  *AT91C_PIOA_MDDR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_PPUDR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_IFDR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_CODR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_IDR = AT91C_PA13_MOSI;
+  *AT91C_PIOA_PDR = AT91C_PA10_NPCS2;/*Enablenpcs0onPA10*/
+  *AT91C_PIOA_BSR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_ODR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_OWER = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_MDDR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_PPUDR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_IFDR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_CODR = AT91C_PA10_NPCS2;
+  *AT91C_PIOA_IDR = AT91C_PA10_NPCS2;
+  *AT91C_SPI_CR = AT91C_SPI_SWRST;/*Softreset*/
+  *AT91C_SPI_CR = AT91C_SPI_SPIEN;/*Enablespi*/
+  *AT91C_SPI_MR = AT91C_SPI_MSTR|AT91C_SPI_MODFDIS | (0xB<<16);
+  AT91C_SPI_CSR[2] = ((OSC/SPI_BITRATE)<<8) | AT91C_SPI_CPOL;
+
+  /* Set mode to unknown */
+  mode = 0xff;
+
+  /* Set up safe dma refresh state */
+  data = display = (U8 *) 0;
+  dirty = 0;
+  page = 0;
+
+  /* Install the interrupt handler */
+  aic_mask_off(AT91C_PERIPHERAL_ID_SPI);
+  aic_set_vector(AT91C_PERIPHERAL_ID_SPI, AIC_INT_LEVEL_NORMAL, (U32)spi_isr_entry);
+  aic_mask_on(AT91C_PERIPHERAL_ID_SPI);
+  *AT91C_SPI_PTCR = AT91C_PDC_TXTEN;
 
   if (i_state)
     interrupts_enable();
@@ -75,16 +166,7 @@ nxt_spi_write(U32 CD, const U8 *data, U32 nBytes)
   U32 status;
   U32 cd_mask = (CD ? 0x100 : 0);
 
-  *AT91C_PIOA_PER = CS_PIN;
-  *AT91C_PIOA_SODR = CS_PIN;   /* Set high */
-  *AT91C_PIOA_CODR = CS_PIN;   /* Set Low */
-
-  if (CD)
-    *AT91C_PIOA_SODR = CD_PIN;
-  else
-    *AT91C_PIOA_CODR = CD_PIN;
-
-
+  spi_set_mode(CD);
   while (nBytes) {
     *AT91C_SPI_TDR = (*data | cd_mask);
     data++;
@@ -95,6 +177,27 @@ nxt_spi_write(U32 CD, const U8 *data, U32 nBytes)
     } while (!(status & 0x200));
 
   }
-  *AT91C_PIOA_SODR = CS_PIN;   /* Set high */
+}
 
+void
+nxt_spi_set_display(const U8 *disp)
+{
+  /* Set the display buffer to be used for dma refresh.
+   * it is really only safe to set the display once. Should probably
+   * sort this out so that it is set separately from requesting a refresh
+   */
+  if (!display) display = disp;
+}
+
+void
+nxt_spi_refresh(void)
+{
+  /* Request the start of a dma refresh of the display 
+   */
+  // If the display is not set nothing to do.
+  if (!display) return;
+  // Say we have changes
+  dirty = 1;
+  // Start the DMA refresh
+  *AT91C_SPI_IER = AT91C_SPI_ENDTX;
 }
index 5807127..73dbf11 100644 (file)
@@ -17,5 +17,7 @@
 
 void nxt_spi_init(void);
 void nxt_spi_write(U32 CD, const U8 *data, U32 nBytes);
+void nxt_spi_set_display(const U8 *disp);
+void nxt_spi_refresh(void);
 
 #endif
index 1ff38c7..3253282 100644 (file)
@@ -10,6 +10,7 @@
 #  include "interpreter.h"
 
 #  include "poll.h"
+#  include "display.h"
 
 extern void poll_sensors(void);
 
@@ -33,6 +34,11 @@ tick_hook(void)
     poll_sensors();
     poll_inputs();
   }
+  if (display_tick++ > 250)
+  {
+    display_tick = 0;
+    if (display_auto_update) display_update();
+  }
 }
 
 static inline void
index a8943ae..26a97ed 100644 (file)
@@ -29,6 +29,13 @@ init_sensors(void)
     unset_digi1(i);
     nxt_avr_set_input_power(i, 0);
   }
+  /* Ensure RS485 is inactive. Otherwise it can interfere with
+   * the operation of port 4.
+   */
+  *AT91C_PIOA_PER |= AT91C_PIO_PA5 | AT91C_PIO_PA6 | AT91C_PIO_PA7;
+  *AT91C_PIOA_PPUDR |= AT91C_PIO_PA5 | AT91C_PIO_PA6 | AT91C_PIO_PA7;
+  *AT91C_PIOA_OER |= AT91C_PIO_PA5 | AT91C_PIO_PA6 | AT91C_PIO_PA7;
+  *AT91C_PIOA_CODR |= AT91C_PIO_PA5 | AT91C_PIO_PA6 | AT91C_PIO_PA7;
 }
 
 /**
index bae6eec..ab8644d 100644 (file)
@@ -5,7 +5,8 @@
 #include "nxt_avr.h"
 #include <string.h>
 
-#define PWM_BUFFER_LENGTH 16 /* Must be a multiple of 8 and at most 64 */
+/* Buffer length must be a multiple of 8 and at most 64 (preferably as long as possible) */
+#define PWM_BUFFER_LENGTH 64
 
 extern void sound_isr_entry(void);
 
@@ -102,14 +103,20 @@ U8 sound_mode = SOUND_MODE_NONE;
 struct {
   // The number of samples ahead
   S32 count;
-  // 0 or 1, identifies the current buffer
-  U8 buf_id;
   // Pointer to the next sample
   U8* ptr;
+  // 0 or 1, identifies the current buffer
+  U8 buf_id;
   // Double buffer
   U32 buf1[PWM_BUFFER_LENGTH], buf2[PWM_BUFFER_LENGTH];
   // Amplification LUT
   U8 amp[256];
+  // Chosen frequency (1/1024 Hz)
+  S32 cfreq;
+  // Actual frequency (1/1024 Hz)
+  S32 afreq;
+  // Frequency counter
+  S32 fcnt;
 } sample;
 
 void sound_init()
@@ -206,22 +213,11 @@ void sound_fill_sample_buffer() {
       *sbuf++ = msb;
     */
 
-    /*
-      Good old Bresenham would help here to produce arbitrary sample
-      rates:
-       
-      for (fcnt += chosen_freq; fcnt > base_freq; fcnt -= base_freq) {
-        sample.ptr++;
-       sample.count--;
-      }
-
-      Where chosen_freq is the one we'd like to hear, base_freq is the
-      one set in hardware (could be an eternal constant) and fcnt is
-      an S32 fraction counter that's initialised with zero when the
-      sample starts playing.
-     */
-    sample.ptr++;
-    sample.count--;
+    /* Bresenham to the save */
+    for (sample.fcnt += sample.cfreq; sample.fcnt >= sample.afreq; sample.fcnt -= sample.afreq) {
+      sample.ptr++;
+      sample.count--;
+    }
   }
 }
 
@@ -229,18 +225,23 @@ void sound_play_sample(U8 *data, U32 length, U32 freq, U32 amp)
 {
   S16 i;
 
-  /*
-    Note: instead of setting the frequency this way, it should be the
-    highest possible constant, and sound_fill_sample_buffer() should
-    take care of the scaling, because hardware fine tuning is not
-    possible (the high frequency range allows only very crude steps).
-  */
-  *AT91C_SSC_CMR = ((96109714 / 1024) / (freq << 2)) + 1;
+  //U32 cdiv = 96109714 / 2048 / freq;
+  //if (cdiv < 4) cdiv = 4;
+
+  /* Constant hardware frequency */
+  U32 cdiv = 4;
+
+  *AT91C_SSC_CMR = cdiv;
   *AT91C_SSC_PTCR = AT91C_PDC_TXTEN;
   sample.count = length;
   sample.buf_id = 0;
   sample.ptr = data;
 
+  /* Frequency correction */
+  sample.cfreq = freq << 10;
+  sample.afreq = 96109714 / cdiv;
+  sample.fcnt = 0;
+
   /* Simple linear amplification */
   for (i = 0; i < 256; i++) {
     S32 a = (i - 128) * (S32)amp / 1000 + 128;
@@ -270,7 +271,7 @@ void sound_isr_C()
     }
     break;
   case SOUND_MODE_PCM:
-    if (sample.count > -(PWM_BUFFER_LENGTH >> 3)) {
+    if (sample.count > 0) {
       *AT91C_SSC_TNPR = (unsigned int)(sample.buf_id ? sample.buf1 : sample.buf2);
       *AT91C_SSC_TNCR = PWM_BUFFER_LENGTH;
       sample.buf_id ^= 1;
index 2fc1704..2eb2e57 100644 (file)
@@ -129,6 +129,7 @@ udp_isr_C(void)
 {
 }
 
+void
 udp_check_interrupt()
 {
   if (*AT91C_UDP_ISR & END_OF_BUS_RESET) 
@@ -139,8 +140,8 @@ udp_check_interrupt()
        *AT91C_UDP_ICR = END_OF_BUS_RESET;          
        *AT91C_UDP_ICR = SUSPEND_RESUME;      
        *AT91C_UDP_ICR = WAKEUP;              
-    configured = 0;
-    currentConfig = 0;
+       configured = 0;
+       currentConfig = 0;
        *AT91C_UDP_RSTEP = 0xFFFFFFFF;
        *AT91C_UDP_RSTEP = 0x0; 
        currentRxBank = AT91C_UDP_RX_DATA_BK0;
@@ -177,7 +178,7 @@ udp_check_interrupt()
 int
 udp_init(void)
 {
-  int i_state;
+  //int i_state;
 
   /* Make sure the USB PLL and clock are set up */
   *AT91C_CKGR_PLLR |= AT91C_CKGR_USBDIV_1;
@@ -332,7 +333,7 @@ void udp_send_stall()
   while ((*AT91C_UDP_CSR0) & (AT91C_UDP_FORCESTALL | AT91C_UDP_ISOERROR));
 }
 
-void udp_send_control(U8* p, int len)
+void udp_send_control(U8* p, int len, int send_null)
 {
   int i = 0, j, tmp;
   
@@ -348,7 +349,7 @@ void udp_send_control(U8* p, int len)
        // Packet ready to send 
        
        (*AT91C_UDP_CSR0) |= AT91C_UDP_TXPKTRDY;
-    udp_reset_timeout();       
+       udp_reset_timeout();    
     
        do 
        {
@@ -371,7 +372,8 @@ void udp_send_control(U8* p, int len)
 
   }
   while (i < len);
-       
+  // If needed send the null terminating data 
+  if (send_null) udp_send_null();
   udp_reset_timeout();
 
   while(!((*AT91C_UDP_CSR0) & AT91C_UDP_RX_DATA_BK0) && !udp_timed_out());
@@ -417,7 +419,8 @@ udp_enumerate()
 
   req = br << 8 | bt;
   
-  /*if (1) {
+  /*
+  if (1) {
        display_goto_xy(0,0);
     display_string(hex4(req));
     display_goto_xy(4,0);
@@ -426,30 +429,33 @@ udp_enumerate()
     display_string(hex4(ind));
     display_goto_xy(12,0);
     display_string(hex4(len));
+    display_goto_xy(0,1);
+    display_string("   ");
     display_update();
-  }*/
+  }
+  */
     
   switch(req)
   {
     case STD_GET_DESCRIPTOR: 
       if (val == 0x100) // Get device descriptor
       {
-        udp_send_control(dd, sizeof(dd));
+        udp_send_control((U8 *)dd, sizeof(dd), 0);
       }
       else if (val == 0x200) // Configuration descriptor
       {     
-        udp_send_control(cfd, (len < sizeof(cfd) ? len : sizeof(cfd)));
-        if (len > sizeof(cfd)) udp_send_null();
+        udp_send_control((U8 *)cfd, (len < sizeof(cfd) ? len : sizeof(cfd)), (len > sizeof(cfd) ? 1 : 0));
+        //if (len > sizeof(cfd)) udp_send_null();
       }        
       else if ((val & 0xF00) == 0x300)
       {
         switch(val & 0xFF)
         {
           case 0x00:
-               udp_send_control(ld, sizeof(ld));
+               udp_send_control((U8 *)ld, sizeof(ld), 0);
             break;
           case 0x01:
-                   udp_send_control(snd, sizeof(snd));
+                   udp_send_control(snd, sizeof(snd), 0);
             break;
           default:
                        udp_send_stall();
@@ -537,19 +543,19 @@ udp_enumerate()
       
     case STD_GET_CONFIGURATION:                                   
 
-      udp_send_control((U8 *) &(currentConfig), sizeof(currentConfig));
+      udp_send_control((U8 *) &(currentConfig), sizeof(currentConfig), 0);
       break;
 
     case STD_GET_STATUS_ZERO:
     
       status = 0x01; 
-      udp_send_control((U8 *) &status, sizeof(status));
+      udp_send_control((U8 *) &status, sizeof(status), 0);
       break;
       
     case STD_GET_STATUS_INTERFACE:
 
       status = 0;
-      udp_send_control((U8 *) &status, sizeof(status));
+      udp_send_control((U8 *) &status, sizeof(status), 0);
       break;
 
     case STD_GET_STATUS_ENDPOINT:
@@ -571,12 +577,12 @@ udp_enumerate()
             status = ((*AT91C_UDP_CSR3) & AT91C_UDP_EPEDS) ? 0 : 1;
             break;
         }
-        udp_send_control((U8 *) &status, sizeof(status));
+        udp_send_control((U8 *) &status, sizeof(status), 0);
       }
       else if (((*AT91C_UDP_GLBSTATE) & AT91C_UDP_FADDEN) && (ind == 0))
       {
         status = ((*AT91C_UDP_CSR0) & AT91C_UDP_EPEDS) ? 0 : 1;
-        udp_send_control((U8 *) &status, sizeof(status));
+        udp_send_control((U8 *) &status, sizeof(status), 0);
       }
       else udp_send_stall();                                // Illegal request :-(
 
index d345fb2..7996c06 100644 (file)
@@ -15,7 +15,7 @@ int udp_short_timed_out(void);
 void udp_short_reset_timeout(void);
 void udp_write(U8* buf, int len);
 void udp_enumerate(void);
-void udp_send_control(U8* p,int len);
+void udp_send_control(U8* p,int len, int send_null);
 void udp_send_null(void);
 void udp_send_stall(void);
 int udp_configured(void);
index da6e05b..207a141 100644 (file)
@@ -47,7 +47,7 @@
                                        <pathelement location="."/>
                                        <pathelement location="../../javavm"/>
                                </includepath>
-                               <versioninfo refid="lejos nxt 0.1"/>
+                               <versioninfo refid="leJOS NXJ 0.5"/>
                </cc>
        </target>
 
@@ -68,7 +68,7 @@
                                <includepath>
                                        <pathelement location="."/>
                                </includepath>
-                               <versioninfo refid="lejos nxt 0.1"/>
+                               <versioninfo refid="leJOS NXJ 0.5"/>
                </cc>
                <exec executable="${basedir}/dump_config" failonerror="true" dir=".">
                        <redirector outputproperty="platform_config.h">
                                        <pathelement location="."/>
                                        <pathelement location="../../javavm"/>
                                </includepath>
-                               <versioninfo refid="lejos nxt 0.1"/>
+                               <versioninfo refid="leJOS NXJ 0.5"/>
                </cc>
        </target>
 
index e053c0d..d5f9922 100644 (file)
 
 void *installedBinary;
 
+#if EXECUTE_FROM_FLASH
+byte *classStaticStateBase;
+byte *classStatusBase;
+#endif
+
 void dumpCommon()
 {
   MasterRecord *pRec;
index 8db49f3..6c2e3a9 100644 (file)
@@ -38,6 +38,30 @@ static char *sensorSetTypes[5] = {
   "ROT"
 };
 
+#define DISPLAY_WIDTH 100
+#define DISPLAY_DEPTH 8
+
+static struct
+{
+  Object hdr;
+  unsigned char display[DISPLAY_DEPTH+1][DISPLAY_WIDTH];
+} __attribute__((packed)) display_array;
+
+static char display_init() 
+{
+  // Initialise the array parameters so that the display can
+  // be memory mapped into the Java address space
+  display_array.hdr.flags.arrays.isArray = 1;
+  // NOTE This object must always be marked, otherwise very, very bad
+  // things will happen!
+  display_array.hdr.flags.arrays.mark = 1;
+  display_array.hdr.flags.arrays.length = 200;
+  display_array.hdr.flags.arrays.isAllocated = 1;
+  display_array.hdr.flags.arrays.type = T_INT;
+  display_array.hdr.monitorCount = 0;
+  display_array.hdr.threadId = 0;
+}
+
 static char *getSensorMode(byte code)
 {
   static char smBuffer[256];
@@ -218,7 +242,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
          printf("> ");
       else
          printf("& ");
-      printf("Reading sensor %ld, returned value %d\n",sensors[paramBase[0]].value);
+      printf("Reading sensor %d, returned value %d\n",paramBase[0], sensors[paramBase[0]].value);
       push_word (sensors[paramBase[0]].value);
       return;
     case setADTypeById_4II_5V:
@@ -281,7 +305,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
            printf("> ");
          else
            printf("& ");
-         printf("drawString called with parameters %s,%d,%d\n",buff,paramBase[1],paramBase[2]);
+         printf("drawString called with parameters %s, %d, %d\n",buff,paramBase[1],paramBase[2]);
         }
       }
       return;
@@ -304,7 +328,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
          printf("> ");
       else
          printf("& ");
-      printf("controlMotor called with parameters %d,%d,%d\n",paramBase[0],paramBase[1],paramBase[2]);
+      printf("controlMotor called with parameters %d, %d, %d\n",paramBase[0],paramBase[1],paramBase[2]);
       return; 
     case refresh_4_5V:
       if (verbose)
@@ -321,12 +345,28 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
       printf("Display cleared\n");
       return;
     case setDisplay_4_1I_5V:
-       if (verbose)
+      if (verbose)
          printf("> ");
       else
          printf("& ");
       printf("Display set\n");
       return;  
+    case getDisplay_4_5_1I:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("Get display\n");
+      display_init();
+      push_word((STACKWORD) ptr2word(&display_array));
+      return;
+    case setAutoRefresh_4I_5V:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("Set autodisplay to %d\n", paramBase[0]);
+    return;
     case getVoltageMilliVolt_4_5I:
       if (verbose)
          printf("> ");
@@ -337,10 +377,10 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
       return;
     case readButtons_4_5I:
       if (verbose)
+      {
          printf("> ");
-      else
-         printf("& ");
-      printf("readButtons returning 0\n");
+         printf("readButtons returning 0\n");
+      }     
       push_word(0);
       return;
     case getTachoCountById_4I_5I:
@@ -414,37 +454,86 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
           printf("> ");
         else
           printf("& "); 
-          printf("btSend with parameter &d\n", byteArray);                       
+          printf("btSend called with parameters %x, %d\n", byteArray, paramBase[1]);                       
       }
       return;
     case btReceive_4_1B_5V:
       {
         Object *p = word2ptr(paramBase[0]);
         byte *byteArray = (((byte *) p) + HEADER_SIZE);
-        if (verbose) 
-        {
+        if (verbose)
           printf("> ");
-          printf("btReceive called with parameter %x\n", byteArray);                                           
-        }
+        else
+          printf("& "); 
+        printf("btReceive called with parameter %x\n", byteArray);                                           
       }
       return;
-    case btGetCmdMode_4_5I:
+    case btGetBC4CmdMode_4_5I:
       if (verbose)
          printf("> ");
       else
          printf("& ");
-         printf("btGetCmdMode returning 1\n");
+         printf("btGetBC4CmdMode returning 1\n");
       push_word(1);
-      break;
-    case btSetCmdMode_4I_5V:
+      return;
+    case btSetArmCmdMode_4I_5V:
       if (verbose)
          printf("> ");
       else
          printf("& ");
-      printf("btSetCmdMode\n");
-      break;
+      printf("btSetArmCmdMode\n");
+      return;
     case btStartADConverter_4_5V:
-      break;
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("btStartAdConverter\n");
+      return;
+    case btSetResetLow_4_5V:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("btSetResetLow\n");
+      return;
+    case btSetResetHigh_4_5V:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("btSetResetHigh\n");
+    return;
+    case btWrite_4_1BII_5I:
+      {
+        Object *p = word2ptr(paramBase[0]);
+        byte *byteArray = (((byte *) p) + HEADER_SIZE);
+        if (verbose)
+          printf("> ");
+        else
+          printf("& "); 
+        printf("btWrite called with parameters %x, %d, %d\n", byteArray,paramBase[1],paramBase[2]);                                           
+      }
+      return;
+    case btRead_4_1BII_5I:
+      {
+        Object *p = word2ptr(paramBase[0]);
+        byte *byteArray = (((byte *) p) + HEADER_SIZE);
+        if (verbose)
+          printf("> ");
+        else
+          printf("& "); 
+        printf("btRead called with parameters %x, %d, %d\n", byteArray,paramBase[1],paramBase[2]);                                                               
+      }
+      return;
+    case btPending_4_5I:
+      if (verbose) 
+      {
+        printf("> ");
+        printf("btPending called\n");                                           
+      }
+      push_word(0);
+      return;
     case usbRead_4_1BI_5I:
       {
         Object *p = word2ptr(paramBase[0]);
@@ -456,7 +545,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
         }
         push_word(0);                      
       } 
-      break;
+      return;
     case usbWrite_4_1BI_5V:
       {
         Object *p = word2ptr(paramBase[0]);
@@ -467,7 +556,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
           printf("usbWrite called with parameters %x, %d\n", byteArray, paramBase[1]);                                           
         }                     
       }
-      break
+      return
     case writePage_4_1BI_5V:
       {
         Object *p = word2ptr(paramBase[0]);
@@ -478,7 +567,7 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
           printf("writePage called with parameters %x, %d\n", intArray, paramBase[1]);                                           
         }                       
       }
-      break;
+      return;
     case readPage_4_1BI_5V:
       {
         int i;
@@ -490,28 +579,56 @@ void dispatch_native (TWOBYTES signature, STACKWORD *paramBase)
           printf("readPage called with parameters %x, %d\n", intArray, paramBase[1]);                                           
         }                       
       }
-      break;
+      return;
     case exec_4II_5V:
       if (verbose) 
       {
         printf("> ");
         printf("exec called\n");                                           
       }
-      break;
+      return;
     case usbReset_4_5V :
       if (verbose) 
       {
         printf("> ");
         printf("udpReset called\n");                                           
       }
-      break;
+      return;
     case playSample_4IIII_5V:
-     if (verbose)
+      if (verbose)
          printf("> ");
       else
          printf("& ");
       printf("Playing sound sample\n");
-    break;
+      return;
+    case getDataAddress_4Ljava_3lang_3Object_2_5I:
+     if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("Data address is %x\n",ptr2word (((byte *) word2ptr (paramBase[0])) + HEADER_SIZE));
+      return;
+    case gc_4_5V:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("Collecting garbage\n");
+      return;
+    case shutDown_4_5V:
+      if (verbose)
+         printf("> ");
+      else
+         printf("& ");
+      printf("Shutting down\n");
+      exit(0);
+    case arraycopy_4Ljava_3lang_3Object_2ILjava_3lang_3Object_2II_5V:
+      {
+        Object *p1 = word2ptr(paramBase[0]);
+        Object *p2 = word2ptr(paramBase[2]);
+        arraycopy(p1, paramBase[1], p2, paramBase[3], paramBase[4]);
+      }
+      return;
     default:
 #ifdef DEBUG_METHODS
       printf("Received bad native method code: %d\n", signature);
index 76e34ee..66e6374 100644 (file)
@@ -87,6 +87,23 @@ void run(void)
   #endif
 
   init_poller();
+
+#if EXECUTE_FROM_FLASH
+  {
+    MasterRecord *mrec = get_master_record();
+    int staticSize = mrec->staticStateLength;
+    int statusSize = (mrec->lastClass + 1) * sizeof( classStatusBase[0]);
+
+    staticSize = (staticSize + 1) & ~(1);
+    statusSize = (statusSize + 3) & ~(3);
+
+    classStaticStateBase = malloc( staticSize * 2);
+    classStatusBase = malloc( statusSize);
+
+    memset( classStatusBase, 0, statusSize);
+  }
+#endif
+
   // Initialize binary image state
   initialize_binary();