다음과 같이 코드 코드를 복사합니다.
gnu.io.* 가져오기;
import java.util.*;
import java.io.*;
공개 클래스 CommTest
{
정적 CommPortIdentifier portId;
정적 열거 portList;
static int bauds[] = { 9600, 19200, 57600, 115200 } //포트에서 지원하는 전송 속도를 감지합니다.
공개 정적 무효 메인(문자열[] 인수)
{
portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("SMS 장치 포트 연결 테스트...");
동안(portList.hasMoreElements())
{
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL)
{
System.out.println("직렬 포트를 찾았습니다: " + portId.getName());
for (int i = 0; i < bauds.length; i++)
{
System.out.print(" 시도 중 " + bauds[i] + "...");
노력하다
{
SerialPort serialPort;
입력스트림 인스트림;
OutputStream outStream;
정수 c;
문자열 응답;
serialPort = (SerialPort) portId.open("SMSLibCommTester", 1971);
serialPort.setFlowControlMode(SerialPort.FLOWControl_RTSCTS_IN);
serialPort.setSerialPortParams(bauds[i], SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
inStream = serialPort.getInputStream();
outStream = serialPort.getOutputStream();
serialPort.enableReceiveTimeout(1000);
c = inStream.read();
동안 (c != -1)
c = inStream.read();
outStream.write('A');
outStream.write('T');
outStream.write('/r');
노력하다
{
Thread.sleep(1000);
}
잡기 (예외 e)
{
}
응답 = "";
c = inStream.read();
동안 (c != -1)
{
응답 += (문자) c;
c = inStream.read();
}
if (response.indexOf("OK") >= 0)
{
노력하다
{
System.out.print("장치 정보 가져오기...");
outStream.write('A');
outStream.write('T');
outStream.write('+');
outStream.write('C');
outStream.write('G');
outStream.write('M');
outStream.write('M');
outStream.write('/r');
응답 = "";
c = inStream.read();
동안 (c != -1)
{
응답 += (문자) c;
c = inStream.read();
}
System.out.println(" 장치 발견: " + response.replaceAll("//s+OK//s+", "").replaceAll("/n", "").replaceAll("/r", " "));
}
잡기 (예외 e)
{
System.out.println("장치를 찾을 수 없습니다!");
}
}
else System.out.println("장치를 찾을 수 없습니다!");
serialPort.close();
}
잡기 (예외 e)
{
System.out.println("장치를 찾을 수 없습니다!");
}
}
}
}
}
}