String atComm="at+cclk?";
outputStream.write(atComm.getBytes());
outputStream.flush();
int ch=0;
while (ch != -1) {
ch = inputStream.read();
inputBuffer.append((char)ch);
System.out.println(inputBuffer.toString());
if (ch == -1) {
break;
}
}
为什么输出结果始终是"at+cclk?",任何命令都是这样.串口设备打开正常.
outputStream.write(atComm.getBytes());
outputStream.flush();
int ch=0;
while (ch != -1) {
ch = inputStream.read();
inputBuffer.append((char)ch);
System.out.println(inputBuffer.toString());
if (ch == -1) {
break;
}
}
为什么输出结果始终是"at+cclk?",任何命令都是这样.串口设备打开正常.
public static void main(String[] args) throws IOException
{
StringBuffer inputBuffer = new StringBuffer();
OutputStream outputStream = new ByteArrayOutputStream();
String atComm="at+cclk?";
outputStream.write(atComm.getBytes());
outputStream.flush();
// 接收流
InputStream inputStream = new ByteArrayInputStream(((ByteArrayOutputStream)outputStream).toByteArray());
int ch=inputStream.read();
while (ch != -1)
{
inputBuffer.append((char)ch);
System.out.println(inputBuffer.toString());
ch = inputStream.read();
}
}
}运行如下:
F:\>javac Test.javaF:\>java Test
a
at
at+
at+c
at+cc
at+ccl
at+cclk
at+cclk?
int ch=0;
while (ch != -1)
{
ch = inputStream.read();
inputBuffer.append((char)ch);
System.out.println(inputBuffer.toString());
if (ch == -1)
{
break;
}
}也不会出现打印一样的情况,和上面结果类似,只是多了一个:
at+cclk??(这个原因很简单,查看代码便知)
outputStream.write(atComm.getBytes());
outputStream.flush();
int ch= inputStream.read();
while (ch != -1) {
inputBuffer.append((char)ch);
ch = inputStream.read();
}
System.out.println(inputBuffer.toString());
在段代码在GSM Modem中的正确输出结果应该为"2005/12/31,15:01:21"
可是在CDMA Modem中的输出结果却变成了"at+ccld?"
将"at+cclk?\n "换成"at+cclk?"+(char)13便OK啦