Я разрабатываю приложение Java, которое необходимо обмениваться данными с терминалом, связанным с конвертером usb-to-rs232!Получение данных с терминала, связанного с USB-> RS232
Прямо сейчас я могу подключиться к устройству и отправить данные! Я могу быть уверен, что терминал получит данные, отправленные, потому что светодиод светится, когда терминал что-то получает!
Я использую JSSC (Ссылка: https://code.google.com/p/java-simple-serial-connector/wiki/jSSC_examples) ... но по какой-то причине я никогда не получаю никаких данных от терминала.
Мой код (JSSC код):
public class Main
{
static SerialPort serialPort;
public static void main(String[] args) throws InterruptedException
{
serialPort = new SerialPort("COM7");
try
{
serialPort.openPort();//Open port
serialPort.setParams(9600, 8, 1, 0);//Set params
int mask = SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS + SerialPort.MASK_DSR;//Prepare mask
serialPort.setEventsMask(mask);//Set mask
serialPort.addEventListener(new SerialPortReader());//Add SerialPortEventListener
serialPort.writeByte((byte)0x02);
TimeUnit.SECONDS.sleep(10);
byte[] b = serialPort.readBytes();
System.out.println("bytes " + b);
}
catch (SerialPortException ex)
{
System.out.println(ex);
}
}
/*
* In this class must implement the method serialEvent, through it we learn about
* events that happened to our port. But we will not report on all events but only
* those that we put in the mask. In this case the arrival of the data and change the
* status lines CTS and DSR
*/
static class SerialPortReader implements SerialPortEventListener
{
public void serialEvent(SerialPortEvent event)
{
System.out.println("Event raised!");
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");
}
}
}
}
}
Может кто-нибудь помочь мне с этим вопросом?