Methodenaufruf funktioniert nicht
-
hallo,
ich bin hier ziemlich neu und mache die ersten JAVA Schritte.
Habe eine Programm, welche das Beispielprogramm SimpleRead von der seriellen Schnittstelle von SUN benutzen will.
Dazu habe ich die Methode main umbenannt (in readcomm) und rufe diese dann in meiner Applikation in der main Methode auf.
Leider funktioniert es nicht, bzw nur die Hälfte . Es gibt keine Fehlermeldung. Meine Erkenntnis ist bis jetzt, daß die Thread- Methode nicht ausgeführt wird.
Ich denke , daß der Fehler im Konstruktor von SimpleRead liegt.
Außerdem verstehe ich nicht , warum ein neues Objekt reader von SimpleRead erzeugt wird. wie wird dieses ausgeführt???Das Beispielprogramm SimpleRead im Original funktioniert einwandfrei.
ich hoffe ihr habt paar Tips , die ein Anfänger auch versteht.
EDIT: das habe nicht ich geschrieben (original Hotblack), sondern mein Vater. Ich hab mal codetags reingemacht, helfen kann ich aber nicht
beste Grüße
Hier noch mein Code:
in der Klasse DD steht ff.
..
..
SimpleRead comport = new SimpleRead();
..
in der main steht ff.
..DD dat = new DD(); dat.comport.commread; .. public class SimpleRead implements Runnable, SerialPortEventListener { static CommPortIdentifier portId; static Enumeration portList; InputStream inputStream; SerialPort serialPort; Thread readThread; public SimpleRead() { try { serialPort = (SerialPort) portId.open("SimpleReadApp", 2000); } catch (PortInUseException e) {} try { inputStream = serialPort.getInputStream(); } catch (IOException e) {} try { serialPort.addEventListener(this); } catch (TooManyListenersException e) {} serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} readThread = new Thread(this); readThread.start(); } public static void readcomm() { boolean portFound = false; String defaultPort = "COM1"; portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { System.out.println("Found port " + portId.getName()); if (portId.getName().equals(defaultPort)) { System.out.println("Found port: "+defaultPort); portFound = true; SimpleRead reader = new SimpleRead(); } } } if (!portFound) { System.out.println("port " + defaultPort + " not found."); } } public void run() { try { Thread.sleep(20000); } catch (InterruptedException e) {} } public void serialEvent(SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[20]; try { while (inputStream.available() > 0) { int numBytes = inputStream.read(readBuffer); System.out.print(numBytes); } System.out.print(new String(readBuffer)); } catch (IOException e) {} break; } } }
-
Ich habs gefunden