lejos.pc.comm
Class NXTCommLibnxt

java.lang.Object
  extended by lejos.pc.comm.NXTCommLibnxt
All Implemented Interfaces:
NXTComm

public class NXTCommLibnxt
extends java.lang.Object
implements NXTComm

Implementation of NXTComm over USB using libnxt. Should not be used directly - use NXTCommFactory to create an appropriate NXTComm object for your system and the protocol you are using.


Constructor Summary
NXTCommLibnxt()
           
 
Method Summary
 int available()
          Request the number of bytes available to read.
 void close()
          Closes the connection to the NXT.
 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.
 void jlibnxt_close(long nxt)
           
 long jlibnxt_find(int idx)
           
 java.lang.String jlibnxt_name(long nxt)
           
 int jlibnxt_open(long nxt)
           
 byte[] jlibnxt_read_data(long nxt, int len)
           
 void jlibnxt_send_data(long nxt, byte[] message)
           
 java.lang.String jlibnxt_serial(long nxt)
           
 boolean open(NXTInfo nxtInfo)
          Connect to a NXT found by a search or created from mname and address.
 byte[] read()
          Read data from a NXT that has an open connection.
 NXTInfo[] search(java.lang.String name, int protocol)
          Search for NXTs over USB, Bluetooth or both
 byte[] sendRequest(byte[] data, int replyLen)
          Send an LCP message to the NXT and receive a reply
 void write(byte[] data)
          Write data to a NXT that has an open connection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NXTCommLibnxt

public NXTCommLibnxt()
Method Detail

jlibnxt_find

public long jlibnxt_find(int idx)

jlibnxt_open

public int jlibnxt_open(long nxt)

jlibnxt_close

public void jlibnxt_close(long nxt)

jlibnxt_send_data

public void jlibnxt_send_data(long nxt,
                              byte[] message)
                       throws java.io.IOException
Throws:
java.io.IOException

jlibnxt_read_data

public byte[] jlibnxt_read_data(long nxt,
                                int len)
                         throws java.io.IOException
Throws:
java.io.IOException

jlibnxt_serial

public java.lang.String jlibnxt_serial(long nxt)

jlibnxt_name

public java.lang.String jlibnxt_name(long nxt)

search

public NXTInfo[] search(java.lang.String name,
                        int protocol)
Description copied from interface: NXTComm
Search for NXTs over USB, Bluetooth or both

Specified by:
search in interface NXTComm
Parameters:
name - name of the NXT or null
protocol - bitwise combination of NXTCommFactory.BLUETOOTH and NXTCommFactory.USB
Returns:
a NXTInfo object describing the NXt found and the connection to it

open

public boolean open(NXTInfo nxtInfo)
Description copied from interface: NXTComm
Connect to a NXT found by a search or created from mname and address.

Specified by:
open in interface NXTComm
Parameters:
nxtInfo - the NXTInfo object for the NXT
Returns:
true iff the open succeeded

close

public void close()
           throws java.io.IOException
Description copied from interface: NXTComm
Closes the connection to the NXT.

Specified by:
close in interface NXTComm
Throws:
java.io.IOException

sendRequest

public byte[] sendRequest(byte[] data,
                          int replyLen)
                   throws java.io.IOException
Description copied from interface: NXTComm
Send an LCP message to the NXT and receive a reply

Specified by:
sendRequest in interface NXTComm
Parameters:
data - the LCP message
replyLen - the reply length expected
Returns:
the reply
Throws:
java.io.IOException

read

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

Specified by:
read in interface NXTComm
Returns:
the data
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Description copied from interface: NXTComm
Request the number of bytes available to read.

Specified by:
available in interface NXTComm
Returns:
the number of bytes available
Throws:
java.io.IOException

write

public void write(byte[] data)
           throws java.io.IOException
Description copied from interface: NXTComm
Write data to a NXT that has an open connection.

Specified by:
write in interface NXTComm
Parameters:
data - the data to be written. Used for stream connections.
Throws:
java.io.IOException

getOutputStream

public java.io.OutputStream getOutputStream()
Description copied from interface: NXTComm
Return an OutputStream for writing a stream of data to the NXT over this connection.

Specified by:
getOutputStream in interface NXTComm
Returns:
the OutputStream object

getInputStream

public java.io.InputStream getInputStream()
Description copied from interface: NXTComm
Return an InputStream for reading a stream of data from the NXT over this connection.

Specified by:
getInputStream in interface NXTComm
Returns:
the InputStream object