Отправить строку в последовательный порт как команду для встроенного устройства

Я работаю над проектом, который включает встроенное устройство. Ожидается, что я отправлю команду на это устройство. Эта команда представляет собой строку: "LAMP1_ON\r\n";

Я использую RXTX с java и отправляю данные через последовательный порт. Но когда я отправляю команду String, устройство получает «AMP_N» и какую-то другую разрозненную строку.

Я понятия не имею, почему это так, и как я могу это исправить.

Мой код ниже:

public class SerialWriter implements Runnable {

    OutputStream out;
    String str;
    public SerialWriter(OutputStream out, String str) {
        this.out = out;
        this.str = str;
    }

    public void run() {
        try {

            byte[] array = this.str.getBytes();

                this.out.write(array);
                this.out.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Я ожидаю отправить строку в порт с помощью метода записи. Он работает, но не отправляет точную строку, содержащуюся в this.str, вместо этого отправляет «AMP_N» и «AMP» и разрозненные строки.


person Chimebuka Okwuokenye    schedule 18.02.2014    source источник
comment
Я видел проблему. Я неправильно установил свойство FLOWCONTROL. Спасибо. Этот код работает нормально   -  person Chimebuka Okwuokenye    schedule 18.02.2014
comment
Добавьте это как ответ и примите его, чтобы другие люди могли видеть его более четко.   -  person DeadChex    schedule 18.02.2014


Ответы (1)


Я видел проблему. Я неправильно установил свойство FLOWCONTROL. Спасибо. Этот код работает нормально

serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
            serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
person Chimebuka Okwuokenye    schedule 18.02.2014