523096025 2 lat temu
rodzic
commit
29fb7a1251

+ 1 - 1
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java

@@ -250,7 +250,7 @@ public class DeviceServiceImpl implements IDeviceService {
         EnvAmmoniaEntity envAmmoniaEntity = new EnvAmmoniaEntity();
         envAmmoniaEntity.setDeviceCode(dataJo.getString("deviceCode"));
         envAmmoniaEntity.setSensorSn(dataJo.getInteger("sensorSn"));
-        envAmmoniaEntity.setAmmonia(new BigDecimal(dataJo.getIntValue("value")));
+        envAmmoniaEntity.setAmmonia(new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))));
         envAmmoniaEntity.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
         envAmmoniaEntity.setAddTime(nowTimestamp);
         envAmmoniaEntity.setAddDate(todayDate);

+ 46 - 27
huimv-env-platform/huimv-env-lamp/src/main/java/com/huimv/env/lamp/server/LampInputServerHandler.java

@@ -94,6 +94,8 @@ public class LampInputServerHandler extends ChannelInboundHandlerAdapter {
     @Override
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
        log.info("连接断开");
+        channelReadComplete(ctx);
+        ctx.close();
     }
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
@@ -101,6 +103,7 @@ public class LampInputServerHandler extends ChannelInboundHandlerAdapter {
             log.info("相关采集器设备正在重启:" + cause.toString());
         }
 //        cause.printStackTrace();
+        channelReadComplete(ctx);
         ctx.close();
     }
 
@@ -140,36 +143,52 @@ public class LampInputServerHandler extends ChannelInboundHandlerAdapter {
      * @Date : 2022/3/23
      * @Time : 18:08
      */
+    public static void main(String[] args) {
+       String s = "hm+87021038+2+1+3hm+87021038+2+1+306+2023022005731+6+end";
+        for (String hm : s.split("hm")) {
+            System.out.println("0  "+hm);
+        }
+        for (String hm : s.split("end")) {
+            System.out.println("1  "+hm);
+        }
+    }
     private void askCmdActuator(String askText, ChannelHandlerContext ctx) throws ParseException, IOException {
         System.out.println("======>接收设备请求:" + askText);
-        String[] dataArray = askText.split("\\+");
-        String cmdHeader = dataArray[0];
-        if (!cmdHeader.trim().equalsIgnoreCase("hm")) {
-            log.info("当前命令是非hm命令[" + askText + "]");
-            return;
-        }
-        //芯片id/设备编码
-        String idCode = dataArray[1];
-        String cmd = dataArray[2];
-        Map map = new HashMap();
-        map.put("askText", askText);
-        switch (cmd) {
-            case "1":
-                //同步时间
-                lampInputHandleService.synchronizationTime(askText, idCode, ctx);
-                break;
-            case "2":
-                //上传温度
-                lampInputHandleService.getLampTemp(askText, idCode, ctx);
-                break;
-            case "3":
-                //获取保温箱配置
-                lampInputHandleService.getLampConfig(askText, idCode, ctx);
-                break;
-            default:
-                System.out.println("==>未知命令");
-                log.error(">>当前数据为非法数据-未知命令>>" + askText);
+        String[] hms = askText.split("hm");
+        String[] ends = askText.split("end");
+        if (hms.length<=2 && ends.length <=1){
+            String[] dataArray = askText.split("\\+");
+            String cmdHeader = dataArray[0];
+            if (!cmdHeader.trim().equalsIgnoreCase("hm")) {
+                log.info("当前命令是非hm命令[" + askText + "]");
+                return;
+            }
+            //芯片id/设备编码
+            String idCode = dataArray[1];
+            String cmd = dataArray[2];
+            Map map = new HashMap();
+            map.put("askText", askText);
+            switch (cmd) {
+                case "1":
+                    //同步时间
+                    lampInputHandleService.synchronizationTime(askText, idCode, ctx);
+                    break;
+                case "2":
+                    //上传温度
+                    lampInputHandleService.getLampTemp(askText, idCode, ctx);
+                    break;
+                case "3":
+                    //获取保温箱配置
+                    lampInputHandleService.getLampConfig(askText, idCode, ctx);
+                    break;
+                default:
+                    System.out.println("==>未知命令");
+                    log.error(">>当前数据为非法数据-未知命令>>" + askText);
+            }
+        }else {
+            lampInputHandleService.getLampTempError(askText,ctx);
         }
+
     }
 
     //拆分粘包数据

+ 2 - 0
huimv-env-platform/huimv-env-lamp/src/main/java/com/huimv/env/lamp/service/LampInputHandleService.java

@@ -11,4 +11,6 @@ public interface LampInputHandleService {
     void getLampTemp(String askText, String idCode, ChannelHandlerContext ctx) throws ParseException;
 
     void getLampConfig(String askText, String idCode, ChannelHandlerContext ctx);
+
+    void getLampTempError(String askText, ChannelHandlerContext ctx);
 }

+ 6 - 0
huimv-env-platform/huimv-env-lamp/src/main/java/com/huimv/env/lamp/service/impl/LampInputHandleServiceImpl.java

@@ -81,6 +81,12 @@ public class LampInputHandleServiceImpl implements LampInputHandleService {
         answerCmd(answerText, ctx);
     }
 
+    @Override
+    public void getLampTempError(String askText , ChannelHandlerContext ctx) {
+        String answerText = "hm+"+0+"+2+0+7+end";
+        answerCmd(answerText, ctx);
+    }
+
     //应答
     public void answerCmd(String answerText, ChannelHandlerContext ctx) {
         ctx.writeAndFlush(Unpooled.copiedBuffer(answerText.getBytes()));