1

こんにちはみんな私は次の問題を抱えています。コマンドで対処しているスキャナーを持っており、いくつかの行を受け取ります。現時点では、完全に機能するハイパーターミナルでこれまで試しました。しかし、今はプログラムでこれらの行が必要なので、Java Comm API と RXTX をセットアップしました (Comm API で動作させることができなかったからです)。

私はすでにフォーラムで多くのことを読みましたが、それを機能させることができませんでした。

つまり、パートは3つしかありません。最初に、正常に動作する Port、InputStream、および OutputStream をセットアップします。

    portList = CommPortIdentifier.getPortIdentifiers();
    int i;
    while (portList.hasMoreElements()) {
        portId = (CommPortIdentifier) portList.nextElement();
        if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                 if (portId.getName().equals("COM3")) {
           // if (portId.getName().equals("/dev/term/a")) {

    try {
                    serialPort = (SerialPort)
                        portId.open("SimpleWriteApp", 2000);
                } catch (PortInUseException e) {System.out.println(e);}
                try {
                    outputStream = serialPort.getOutputStream();
                    inputStream = serialPort.getInputStream();
                } catch (IOException e) {System.out.println(e);}
                try {
                    serialPort.setSerialPortParams(9600,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
                    serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_XONXOFF_IN);

                } catch (UnsupportedCommOperationException e) {System.out.println(e);}

そして、outputStream.write("xYZ".getByteS()); でコマンドを送信したい これもうまくいくはずです。しかし、私は応答を返すことができません。

応答は 02349234235883 NOK のようになりますが、スタックします。コードは次のようになります

                            try {               
                    System.out.println(messageString);
                    outputStream.write(messageString.getBytes());
                    BufferedReader portReader = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));
                    String line = portReader.readLine();
                    System.out.println(line);


                    if (inputStream != null) inputStream.close();
                    if (outputStream != null) outputStream.close();
                    if (serialPort != null) serialPort.close();
                } catch (IOException e) {System.out.println(e);}    

誰かが私を助けることができますか?あなたの努力に感謝します

4

1 に答える 1