質問

i'm trying to use the RXTX java library to send strings by click listeners in my gui, but i can't edit the code of the RXTX to send strings , where it only responds to input from the console, so how can i edit the code to not only send data that is input from the console?

i'm using the same code here:

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

I have tried writing this extra function and called it from other classes:

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();
    }
}

But I get this error in the console:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TwoWaySerialComm.writetoport(TwoWaySerialComm.java:121)
役に立ちましたか?

解決

in the twowaycommuncation class, you can do something like this in that if statement:

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();

        }

then from anywhere in this class you send a string like this:

  public void writetoport(String send) {

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

or whatever way you want to do.

so now you can send strings you have defined in you code or by inputting it in the console.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top