java RXTX发送字符串

时间:2013-06-15 12:50:54

标签: java rxtx

我正在尝试使用RXTX java库通过我的gui中的单击侦听器发送字符串,但我无法编辑RXTX的代码来发送字符串,它只响应来自控制台的输入,所以如何我可以编辑代码,不仅发送从控制台输入的数据吗?

我在这里使用相同的代码:

http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port

我尝试编写这个额外的函数并从其他类调用它:

         public void writetoport() {
        String serialMessage = "test";

             try {
        // i have made 'out' as a global variable// 
            this.out.write(serialMessage.getBytes());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

                 }

但我在控制台中收到此错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TwoWaySerialComm.writetoport(TwoWaySerialComm.java:121)

1 个答案:

答案 0 :(得分:1)

在twowaycommuncation类中,您可以在if语句中执行类似的操作:

if ( commPort instanceof SerialPort )
        {
            SerialPort serialPort = (SerialPort) commPort;
            serialPort.setSerialPortParams(115200,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
            InputStream in = serialPort.getInputStream();
            OutputStream out = serialPort.getOutputStream();
out1=out;  //add this line, where out1 is a global variable//  
            (new Thread(new SerialReader(in))).start();
         (new Thread(new SerialWriter(out))).start();

        }

然后从这个类的任何地方你发送一个这样的字符串:

  public void writetoport(String send) {

    try {
            out1.write(send.getBytes());
            out1.flush();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

或以你想做的任何方式。

所以现在你可以发送你在代码中定义的字符串或者在控制台中输入它。