次のようにコードをコピーします。
gnu.io.* をインポートします。
java.util.* をインポートします。
java.io.* をインポートします。
パブリック クラス CommTest
{
静的 CommPortIdentifier ポート ID。
静的な列挙型 portList;
static int bauds[] = { 9600, 19200, 57600, 115200 }; //ポートがサポートするボーレートを検出します。
public static void main(String[] args)
{
portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("SMS デバイス ポート接続テスト...");
while (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] + "...");
試す
{
シリアルポートシリアルポート;
入力ストリームインストリーム;
出力ストリームoutStream;
int c;
文字列応答。
シリアルポート = (シリアルポート) portId.open("SMSLibCommTester", 1971);
SerialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN);
SerialPort.setSerialPortParams(bauds[i], SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
inStream = シリアルポート.getInputStream();
outStream = シリアルポート.getOutputStream();
シリアルポート.enableReceiveTimeout(1000);
c = inStream.read();
while (c != -1)
c = inStream.read();
outStream.write('A');
outStream.write('T');
outStream.write('/r');
試す
{
Thread.sleep(1000);
}
catch (例外 e)
{
}
応答 = "";
c = inStream.read();
while (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();
while (c != -1)
{
応答 += (文字) c;
c = inStream.read();
}
System.out.println(" デバイスが見つかりました: " + response.replaceAll("//s+OK//s+", "").replaceAll("/n", "").replaceAll("/r", " "));
}
catch (例外 e)
{
System.out.println("デバイスが見つかりません!");
}
}
else System.out.println("デバイスが見つかりません!");
シリアルポート.close();
}
catch (例外 e)
{
System.out.println("デバイスが見つかりません!");
}
}
}
}
}
}