そのため、JSSC ライブラリを使用してデバイスにコマンドを送信しようとしていますが、まだ成功していません。これは私のコードで、オンラインのいくつかの例から構築されています:
static SerialPort tPort = new SerialPort("/dev/ttyUSB0");
public static void main(String[] args) {
String[] portNames = SerialPortList.getPortNames();
for (String tPortName : portNames) {
System.out.println(tPortName);
}
try {
tPort.openPort();
tPort.setParams(
SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
tPort.setFlowControlMode(SerialPort.FLOWCONTROL_XONXOFF_IN|SerialPort.FLOWCONTROL_XONXOFF_OUT);
int mask = SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS + SerialPort.MASK_DSR; //Prepare mask
tPort.writeBytes("AT".getBytes()); //Write data to port
tPort.setEventsMask(mask); //Set mask
tPort.addEventListener(new SerialPortReader()); //Add SerialPortEventListener
} catch (SerialPortException ex) {
ex.printStackTrace(System.out);
}
}
static class SerialPortReader implements SerialPortEventListener {
public void serialEvent(SerialPortEvent event) {
if(event.isRXCHAR()){//If data is available
System.out.println("available!");
if(event.getEventValue() == 10){//Check bytes count in the input buffer
//Read data, if 10 bytes available
try {
byte buffer[] = tPort.readBytes(10);
} catch (SerialPortException ex) {
System.out.println(ex);
}
}
} else if(event.isCTS()){//If CTS line has changed state
if(event.getEventValue() == 1){//If line is ON
System.out.println("CTS - ON");
} else {
System.out.println("CTS - OFF");
}
} else if(event.isDSR()){ //If DSR line has changed state
if(event.getEventValue() == 1){ //If line is ON
System.out.println("DSR - ON");
} else {
System.out.println("DSR - OFF");
}
}
}
}
私がそれを実行したとき、私が得た唯一の出力は
CTS - OFF
DSR - OFF
デバイスから明らかな応答がありません。しかし、この構成を使用してminicomを使用すると
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x A - Serial Device : /dev/ttyUSB0 x
x B - Lockfile Location : /var/lock x
x C - Callin Program : x
x D - Callout Program : x
x E - Bps/Par/Bits : 9600 8N1 x
x F - Hardware Flow Control : No x
x G - Software Flow Control : No x
x x
x Change which setting? x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
デバイスは何かを返します。
私は何を間違えましたか?
編集:タイムアウトメソッドで読み込もうとしましたが、メソッドはタイムアウトをスローし続けます。