Go Down

Topic: Arduino + java addeventlissener issue (Read 1 time) previous topic - next topic

Thyvo

Hey,
I'm followed/copypasted this arduino tutorial about java http://www.arduino.cc/playground/Interfacing/Java

I setted everthing right for my system(the port and my classname is different) but I'm getting a error on the line:
serialPort.addEventListener(this); //line 69

I'm getting this error in netbeans

method addEventListener in class gnu.io.SerialPort cannot be applied to given types;
required: gnu.io.SerialPortEventListener
found: serial.reader.SerialReader
reason: actual argument serial.reader.SerialReader cannot be converted to gnu.io.SerialPortEventListener by method invocation conversion
                         
the code I have right now is
Code: [Select]

package serial.reader;

import java.io.InputStream;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.util.Enumeration;


public class SerialReader {
    SerialPort serialPort;
   
    private static final String PORT_NAMES[] = {
"/dev/tty.usbmodemfa131", // Mac OS X
"/dev/ttyUSB0", // Linux
"COM3", // Windows
};
    /** Buffered input stream from the port */
private InputStream input;
/** The output stream to the port */
private OutputStream output;
/** Milliseconds to block while waiting for port open */
private static final int TIME_OUT = 2000;
/** Default bits per second for COM port. */
private static final int DATA_RATE = 9600;
    /**
     * @param args the command line arguments
     */
        public void initialize() {
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

// iterate through, looking for the port
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
for (String portName : PORT_NAMES) {
if (currPortId.getName().equals(portName)) {
portId = currPortId;
break;
}
}
}

if (portId == null) {
System.out.println("Could not find COM port.");
return;
}

try {
// open serial port, and use class name for the appName.
serialPort = (SerialPort) portId.open(this.getClass().getName(),
TIME_OUT);

// set port parameters
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);

// open the streams
input = serialPort.getInputStream();
output = serialPort.getOutputStream();

// add event listeners
                       
                        //Getting error on this line,
serialPort.addEventListener(this);
                       
                 
                        /*
                         * method addEventListener in class gnu.io.SerialPort cannot be applied to given types;
                         * required: gnu.io.SerialPortEventListener
                         * found: serial.reader.SerialReader
                         * reason: actual argument serial.reader.SerialReader cannot be converted to gnu.io.SerialPortEventListener by method invocation conversion
                         */
                       
 
                       
                       
serialPort.notifyOnDataAvailable(true);
} catch (Exception e) {
System.err.println(e.toString());
}
}

/**
* This should be called when you stop using the port.
* This will prevent port locking on platforms like Linux.
*/
public synchronized void close() {
if (serialPort != null) {
serialPort.removeEventListener();
serialPort.close();
}
}

/**
* Handle an event on the serial port. Read the data and print it.
*/
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
int available = input.available();
byte chunk[] = new byte[available];
input.read(chunk, 0, available);

// Displayed results are codepage dependent
System.out.print(new String(chunk));
} catch (Exception e) {
System.err.println(e.toString());
}
}
// Ignore all the other eventTypes, but you should consider the other ones.
}

public static void main(String[] args) throws Exception {
SerialReader main = new SerialReader();
               
main.initialize();
System.out.println("Started");
}
}


I don't have any super java powers (yet)
kind off beginner with java
I'm using netbeans on a Mac OSX 10.7.2 (OSX Lion)

can someone tell me whats wrong with this line and how I can fix it?

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy