Java 从特定端口获取数据
这就是方法,我想从这个方法中获取变量数据,以便在另一个方法中使用Java 从特定端口获取数据,java,methods,serial-port,Java,Methods,Serial Port,这就是方法,我想从这个方法中获取变量数据,以便在另一个方法中使用 public synchronized void serialEvent(SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { int available = input.available(); byte chunk
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
data =new String(chunk);
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
这取决于您试图实现什么,最简单的方法是直接从
serialEvent
调用另一个方法(比如它的名称processData
),并将您从COM
端口收到的数据传递给它,例如processData(新字符串(块))代码>
这种方法的问题是,如果您的方法processData
执行一些繁重的操作,它将阻止serialEvent
另一种方法是使用一个单独的线程
来处理该数据,您可以将其与并发.BlockingQueue
的实现进行通信。因此,在serialEvent
中,您只需将数据推送到队列并继续,而无需等待processData
完成
只需使用BlockingQueue搜索生产者/消费者模式,您将找到大量代码示例。请正确表述您的问题。您面临的问题是什么?这是由其他线程/方法读取数据的问题吗?此方法读取我想在另一个类中用于进行身份验证等的数据。