JSSC - добавление SerialPortEventListener в JFrame
Мне нужна помощь о том, как EventListeners работают в Java. Я буду честен, единственный слушатель, которого я знаю, как использовать ActionListeners, так что прости меня за то, что я не знал как. Для начала я хотел бы привести некоторые ссылки.
Я работаю над настольным приложением RFID Scanner на Java, и EPOCH дал мне это: JSSC
JSSC смог предоставить мне инструменты, необходимые для чтения моего RFID, но на этот раз я выпустил документ "Реализация его в моем приложении".
Вот мой текущий код:
Во-первых, импорт
import jssc.SerialPort;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException;
Теперь для класса:
class SerialPortReader implements SerialPortEventListener {
SerialPort serialPort;
@Override
public void serialEvent(SerialPortEvent event) {
if(event.isRXCHAR()){//If data is available
if(event.getEventValue() == 10){//Check bytes count in the input buffer
//Read data, if 10 bytes available
try {
byte buffer[] = serialPort.readBytes(10);
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}else if(event.isCTS()){//If CTS line has changed state
if(event.getEventValue() == 1){//If line is ON
System.out.println("CTS - ON");
}
else {
System.out.println("CTS - OFF");
}
}else if(event.isDSR()){///If DSR line has changed state
if(event.getEventValue() == 1){//If line is ON
System.out.println("DSR - ON");
}else {
System.out.println("DSR - OFF");
}
}
}
}
public class TestRF extends javax.swing.JFrame implements SerialPortEventListener{
SerialPort serialPort;
public TestRF() {
initComponents();
setSerialPort();
}
public void setSerialPort(){
SerialPort serialPort = new SerialPort("COM7");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(9600, 8, 1, 0);//Set params.
byte[] buffer = serialPort.readBytes(10);//Read 10 bytes from serial port
//serialPort.closePort();//Close serial port
serialPort.addEventListener(this);//Add SerialPortEventListener
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
и, наконец, абстрактный метод.. (Я не знаю, что это делает, если честно, и я собираю книги прямо сейчас.)
@Override
public void serialEvent(SerialPortEvent spe) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
проще говоря. Мне нужно, чтобы мой RFID считывал и передавал это значение в любом месте моего проекта. Я даже думал о попытке расширить мои классы JFrame до файла классов, но пока что безуспешно. учебники кто-нибудь?
1 ответ
Вы можете создать 2 темы. 1-й поток считывает данные из последовательного порта (RFID), в то время как 2-й поток выполняет задачи, специфичные для приложения. Также рассмотрите возможность использования библиотеки менеджера последовательной связи для связи через последовательный порт в Java.
Пожалуйста, поделитесь информацией об оборудовании RFID, чтобы мы могли придумать лучший дизайн приложения для его использования.