您好,我有以下代码:
if(!serialPort.isOpened()) {
// ouverture du port
serialPort.openPort();
System.out.println("JSSC -> initPort() : Ouverture du port");
//config billet
serialPort.setParams(SerialPort.BAUDRATE_9600, SerialPort.DATABITS_7, SerialPort.STOPBITS_1, SerialPort.PARITY_EVEN);
// on crée une ecoute sur le port pour recuperer la reponse
serialPort.addEventListener(new SerialPortEventListener() {
@Override
public void serialEvent(SerialPortEvent event) {
if(event.isRXCHAR() && event.getEventValue() > 0) {
try {
String dataReceived = serialPort.readHexString(event.getEventValue());
System.out.println("JSSC -> initPort() : Received response hexstring: " + dataReceived);
CashSorterSend.getInstance().renvoyerReponse(dataReceived);
System.out.println("----------------------------------");
}
catch (SerialPortException ex) {
System.out.println("JSSC -> initPort() : Error in receiving string from COM-port: " + ex);
}
}
}
});
}
如果我在单击按钮时发送一条消息,则串行端口发送数据应答。但是我,我想重复一条消息,使用以下代码:
// on declare la tache de fond qui interrogera la compteuse a billet
taskDetailBillets = new Task<Void>() {
@Override
protected Void call() throws Exception {
while (true) {
Thread.sleep(300);
CashSorterSend.getInstance().detailBillets();
}
}
};
// on demarre notre thread
threadDetailBillets = new Thread(taskDetailBillets);
threadDetailBillets.start();
以及以下课程:
public class DetailBillets implements Runnable {
@Override
public void run() {
System.out.println("DetailBillets -> run() : Thread DetailBillets");
try {
Thread.sleep(600);
JSSC.getInstance().sendMessage(Constants.COMMAND_HEXA_BILLET_DETAILS, true);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我的问题是端口不发送答案...消息在线程中无限发送,但端口不发送答案...在线程中发送到端口答案的速度如此之快??如何循环发送消息?
感谢并为错误感到抱歉。