diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 72f4639..5fd4203 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; +import java.text.DecimalFormat; import java.util.*; /** @@ -352,30 +353,30 @@ * * 方舱通过Socket发送短信给203后台,然后203后台将短信内容加密之后用卫星发送给203自己的岸基软件,然后解密之后再传给西工大岸基软件 * */ - String decodeSMS = DecodeData.decodeSMS(data); - saveDataLog(0, String.valueOf(robotId), decodeSMS, "0"); + String sms = DecodeData.decodeSMS(data); + saveDataLog(0, String.valueOf(robotId), sms, "0"); byte[] bytes; - if (decodeSMS.startsWith("*") || decodeSMS.startsWith("?")) { + if (sms.startsWith("*") || sms.startsWith("?")) { /** * 查看配置等直接通信即可 * */ - bytes = decodeSMS.getBytes(StandardCharsets.UTF_8); + bytes = sms.getBytes(StandardCharsets.UTF_8); } else { /** * 数据加密之后再与卫星通信 * */ if (isClient) { - bytes = CommandManager.createClientMessageCmd(decodeSMS); + bytes = CommandManager.createClientMessageCmd(sms); } else { bytes = CommandManager.createServerMessageCmd( - decodeSMS, serverAccount, serverPassword, clientAccount + sms, serverAccount, serverPassword, clientAccount ); } } if (serialPort != null && serialPort.isConnected()) { SerialPortManager.sendToPort(serialPort, bytes); - saveDataLog(3, String.valueOf(robotId), decodeSMS, "0"); + saveDataLog(3, String.valueOf(robotId), sms, "0"); } break; case 0x05: @@ -428,7 +429,7 @@ case 0x06: String aisRequest = DecodeData.decodeAISRequest(data); saveDataLog(0, String.valueOf(robotId), aisRequest, "0"); - //{"radius":58,"lng":109.32222199129043,"lat":17.39223199775081,"age":12} + //{"radius":50,"lng":109.32219994688509,"lat":17.392199978880676,"age":30} JSONObject aisJsonObject = JSON.parseObject(aisRequest); int radius = aisJsonObject.getInteger("radius"); @@ -444,7 +445,13 @@ if (age < Constant.MIN_AGE) { age = Constant.MIN_AGE; } - String requestValue = aisLat * 600000 + "," + aisLng * 600000 + "," + radius; + + //AIS不能有小数 + DecimalFormat df = new DecimalFormat("#"); + String requestValue = + df.format(aisLat * 600000) + "," + + df.format(aisLng * 600000) + "," + + radius; List ships = shipService.shipsInCircle(requestValue, age); Map map = EncodeData.encodeAIS(aisLng, aisLat, ships); @@ -460,7 +467,7 @@ break; } } else { - saveDataLog(0, "", null, "1"); + saveDataLog(0, "", "数据格式不对,无法解析", "1"); } }