2016-09-11 7 views
0

Мне нужно отправить команду на USB-устройство. Я пробовал много примеров, но без результата. Я не знаю, находится ли проблема в структуре команды или отправить команду. Структура выглядит следующим образом \ x1B COMMAND \ n (без пробелов между командами и отметками).Отправьте команду с ASCII на порт USB

Спасибо за любые советы или лучшее решение

public static void main(String[] args) { 

    char ESC = (char) 27; 
    char LN = (char) 10; 
    String cmd = "command"; 
    String cmdString = ESC + cmd + LN; 

    portList = CommPortIdentifier.getPortIdentifiers(); 
    while (portList.hasMoreElements()) { 
     portId = (CommPortIdentifier) portList.nextElement(); 
     System.out.println(portList); 
     if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { 
      if (portId.getName().equals("/dev/ttyUSB0")) { 

       try { 
        serialPort = (SerialPort) portId.open("SimpleWriteApp", 2000); 
       } catch (PortInUseException e) { 

       } 
       try { 
        outputStream = serialPort.getOutputStream(); 
       } catch (IOException e) { 

       } 
       try { 
        serialPort.setSerialPortParams(57600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, 
          SerialPort.PARITY_NONE); 
       } catch (UnsupportedCommOperationException e) { 
        ; 
       } 
       try { 
        outputStream.write(cmdString.getBytes()); 
        outputStream.flush(); 

       } catch (IOException e) { 

       } 
      } 
     } 
    } 
} 

}

ответ

0

Проблема была решена. Я использовал библиотеку JSSC https://github.com/scream3r/java-simple-serial-connector Простой исходный код:

public static void main(String[] args) { 
    char ESC = (char) 27; // Ascii character for Escape 
    char LN = (char) 10; 
    String message = "TX ENROLL:0 PGX:0 PGY:0 ALARM:0 BEEP:NONE"; 
    String cmd = ESC + message + LN; 
    SerialPort serialPort = new SerialPort("/dev/ttyUSB0"); 
    try { 

     serialPort.openPort(); 
     serialPort.setParams(SerialPort.BAUDRATE_57600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, 
       SerialPort.PARITY_NONE); 
     serialPort.writeString(cmd); 

     serialPort.closePort(); 
    } catch (SerialPortException ex) { 
     System.out.println(ex); 
    } 
} 
Смежные вопросы