lejos.pc.comm
Interface NXTComm

All Superinterfaces:
NXTCommRequest
All Known Implementing Classes:
NXTCommBluecove, NXTCommBluez, NXTCommFantom, NXTCommLibnxt, NXTCommUSB

public interface NXTComm
extends NXTCommRequest

Interface that all NXTComm implementation classes must implement for low-level communication with the NXT.


Field Summary
static int LCP
          Lego Communications Protocol (LCP) I/O mode.
static int PACKET
          PACKET I/O mode.
static int RAW
          RAW I/O mode.
 
Method Summary
 int available()
          Request the number of bytes available to read.
 java.io.InputStream getInputStream()
          Return an InputStream for reading a stream of data from the NXT over this connection.
 java.io.OutputStream getOutputStream()
          Return an OutputStream for writing a stream of data to the NXT over this connection.
 boolean open(NXTInfo nxt)
          Connect to a NXT found by a search or created from name and address.
 boolean open(NXTInfo nxt, int mode)
          Connect to a NXT found by a search or created from name and address.
 byte[] read()
          Read data from a NXT that has an open connection.
 NXTInfo[] search(java.lang.String name)
          Search for NXTs over USB, Bluetooth or both
 void write(byte[] data)
          Write data to a NXT that has an open connection.
 
Methods inherited from interface lejos.nxt.remote.NXTCommRequest
close, sendRequest
 

Field Detail

LCP

static final int LCP
Lego Communications Protocol (LCP) I/O mode. The LCP is defined by The Lego Company to allow limited remote command control of a NXT brick. See the Lego Mindstorms Site. Look for the Bluetooth Developer Kit in Support | Files | Advanced

See Also:
Constant Field Values

PACKET

static final int PACKET
PACKET I/O mode. This is default and is probably the best mode to use if you are talking to a NXT using the leJOS classes. Headers are included for each packet of data sent and received.

See Also:
Constant Field Values

RAW

static final int RAW
RAW I/O mode. This mode is just that and omits any headers. It is used normally for connections to non-NXT devices such as cell phones, etc.

See Also:
Constant Field Values
Method Detail

search

NXTInfo[] search(java.lang.String name)
                 throws NXTCommException
Search for NXTs over USB, Bluetooth or both

Parameters:
name - name of the NXT or null
Returns:
a NXTInfo object describing the NXt found and the connection to it
Throws:
NXTCommException

open

boolean open(NXTInfo nxt,
             int mode)
             throws NXTCommException
Connect to a NXT found by a search or created from name and address.

Parameters:
nxt - the NXTInfo object for the NXT
mode - the mode for the connection: LCP, PACKET or RAW
Returns:
true if the open succeeded
Throws:
NXTCommException

open

boolean open(NXTInfo nxt)
             throws NXTCommException
Connect to a NXT found by a search or created from name and address.

Parameters:
nxt - the NXTInfo object for the NXT
Returns:
true if the open succeeded
Throws:
NXTCommException

read

byte[] read()
            throws java.io.IOException
Read data from a NXT that has an open connection. Used for stream connections.

Returns:
the data in a byte[] array
Throws:
java.io.IOException

available

int available()
              throws java.io.IOException
Request the number of bytes available to read.

Returns:
the number of bytes available
Throws:
java.io.IOException

write

void write(byte[] data)
           throws java.io.IOException
Write data to a NXT that has an open connection.

Parameters:
data - the data to be written. Used for stream connections.
Throws:
java.io.IOException

getOutputStream

java.io.OutputStream getOutputStream()
Return an OutputStream for writing a stream of data to the NXT over this connection.

Returns:
the OutputStream object

getInputStream

java.io.InputStream getInputStream()
Return an InputStream for reading a stream of data from the NXT over this connection.

Returns:
the InputStream object