当前位置:编程学习 > JAVA >>

java串口通讯,经过GPRS,总是不返回数据怎么回事?

各位大牛,我用java做了一个串口通信程序,对现场的温度巡检仪进行温度监测,一共有4个仪器,每个仪器有16个传感器,通讯模式是我发出请求后返回数据,例如:
发送: 0203000C0001443A(端口4)  返回:020304008000011B09,
因为现场比较偏远,所以采用GPRS进行数据转发,然后降GPRS虚拟成一个串口,
问题就在这儿出现了,我发送请求后怎么都不返回,等待一段时间后重新发送请求,还是不返回,
具体的处理是
一直发送七八遍都不返回,

if (!isreadfinished) {
sp.getInputStream().close();
outputStream1.write(msg, 0, msg.length);
outputStream1.flush();
System.out.println(Hex2StringUtils .byte2HexStr(msg) + "第一次补发请求  ");
Thread.sleep(3500);
}


但是当我发送别的请求的时候则可能会返回,
这个问题怎么解决,有知道的大牛请指点下!
谢谢了!

--------------------编程问答-------------------- 你接受是如何接受的? --------------------编程问答-------------------- 帮lz顶 --------------------编程问答-------------------- 我接受是采用监听模式啊,
public void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
System.out.println("通讯中断");
break;
case SerialPortEvent.OE:
System.out.println("溢位错误");
break;
case SerialPortEvent.FE:
System.out.println("帧错误");
break;
case SerialPortEvent.PE:
System.out.println("奇偶校验错误");
break;
case SerialPortEvent.CD:
System.out.println("载波检测");
break;
case SerialPortEvent.CTS:
System.out.println("清除以传送");
break;
case SerialPortEvent.DSR:
System.out.println("数据备妥 ");

case SerialPortEvent.RI:
System.out.println("响铃侦测");
break;
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:

//System.out.println("输出缓冲区空");
//Test.getINSTANCE().isreadfinished = true;
break;
case SerialPortEvent.DATA_AVAILABLE:

//System.out.println();
//System.out.print("有数据: \t ");
byte[] readBuffer = new byte[9];

int numBytes = 0;
int newData;

try {
// while (inputStream.available() > 0) {
// numBytes = inputStream.read(readBuffer);
//       
// }
// inputStream.read(readBuffer);
for (int i = 0; i < 9; i++) {
 if( (newData = inputStream.read()) != -1){ 
// 入力ストリームから読み込み
readBuffer[i] = (byte) newData;
// System.out.print(i+"  ");
 }
}




inputStream.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  

break;
}

} --------------------编程问答-------------------- 期待高手指点啊, --------------------编程问答-------------------- 上午GPRS DTU厂家的技术人员帮我换了个服务器,稍微好了些,申请了个花生壳,下午等配置完了再看看效果, --------------------编程问答-------------------- 请问楼主是怎么样给GPRS模块发数据并接受回传的数据的
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,