javax seriel problem
HejJeg har et problem med javax, jeg får et input fra seriel, der skal bruges som en renset streng. efter jeg har renset strengen har jeg prøvet at udskrive den, men der kommer ikke noget ud, den skriver kun test1 = ,test2 = osv. og det bliver den så ved med...om og om igen. Jeg skal have den ud som en streng da jeg skal kontrollere den i en database.
Jeg har arbejdet videre på et eksempel fra javax api'et, de originale indstillinger er lavet til kommentarer.
import java.io.*;
import java.util.*;
import javax.comm.*;
public class SimpleRead implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;
InputStream inputStream;
SerialPort serialPort;
Thread readThread;
public static void main(String[] args) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
if (portId.getName().equals("COM1")) {
//if (portId.getName().equals("/dev/term/a")) {
SimpleRead reader = new SimpleRead();
}//if
}//if
}//while
}//main
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 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];
StringBuffer readBuffer = new StringBuffer();
try {
while (inputStream.available() > 0) {
//int numBytes = inputStream.read(readBuffer);
String output = readBuffer.toString();
String ny1 = output.replaceAll("","");
String ny2 = ny1.replaceAll("","");
String ny3 = ny2.replaceAll(" ","");
System.out.println ("test1 = " + output);
System.out.println ("test2 = " + ny2);
System.out.println ("test3 = " + ny3);
}//while
//System.out.print(new String(readBuffer));
} //try
catch (IOException e) {}
break;
}//geteventtype
}//serialevent
}