浏览代码

修复结合部分代码

zhuoning 4 年之前
父节点
当前提交
5c147a9417

+ 1 - 1
ear_tag/huimv-eartag-monitor/src/main/java/com/huimv/eartag/monitor/service/IClientDataPacketService.java

@@ -5,5 +5,5 @@ import java.text.ParseException;
 public interface IClientDataPacketService {
 
     // 解析客户端数据包
-    public String parseClientSendPacket(String clientMessage) throws ParseException;
+    public String handleClientSendPacket(String clientMessage) throws ParseException;
 }

+ 4 - 3
ear_tag/huimv-eartag-monitor/src/main/java/com/huimv/eartag/monitor/service/impl/ClientDataPacketServiceImpl.java

@@ -25,15 +25,16 @@ public class ClientDataPacketServiceImpl implements IClientDataPacketService {
     private SendPackageService sendPackageService;
 
     @Override
-    public String parseClientSendPacket(String clientMessageTxt) throws ParseException {
+    public String handleClientSendPacket(String clientMessageTxt) throws ParseException {
         if (clientMessageTxt == null || clientMessageTxt.isEmpty()) {
-
+            log.error("本地提交数据包为空.");
+            return null;
         }
         String matcher = "[+]";
 //        String matcher = "\\+";
         String[] clientMessageArray = clientMessageTxt.split(matcher);
         String cmd = clientMessageArray[2];
-        log.info("命令>>" + cmd);
+        log.info("本次执行命令>>" + cmd);
         StringBuilder echoResultSb = new StringBuilder();
         // 校验后边再做;
         if (Integer.parseInt(cmd) == 1) {

+ 37 - 30
ear_tag/huimv-eartag-monitor/src/main/java/com/huimv/eartag/monitor/socket/ServerThread.java

@@ -1,10 +1,13 @@
 package com.huimv.eartag.monitor.socket;
 
 
+import com.huimv.eartag.monitor.service.IClientDataPacketService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.io.*;
 import java.net.Socket;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -12,6 +15,8 @@ import java.util.Date;
 public class ServerThread extends Thread {
 
     private Socket socket;
+    @Autowired
+    private IClientDataPacketService iClientDataPacketService;
 
     public ServerThread(Socket socket) {
         this.socket = socket;
@@ -34,42 +39,44 @@ public class ServerThread extends Thread {
             inputStream = socket.getInputStream();
             byte[] b = new byte[1024];
             inputStream.read(b);
-            String line = new String(b);
+            String packet = new String(b);
 
-            int i = line.indexOf("+", line.indexOf("+") + 1);
-            int ver = Integer.parseInt(line.substring(i + 1, i + 2));
+            int i = packet.indexOf("+", packet.indexOf("+") + 1);
+            int ver = Integer.parseInt(packet.substring(i + 1, i + 2));
             outputStream = socket.getOutputStream();
 
-
-            //首次应答返回机器ID
-            if (ver == 1){
-
-            }
-
-            if (ver == 2) {
-                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
-                String time = "hm+2+" + sdf.format(new Date()) + "+4+end";
-                outputStream.write(time.getBytes());
-            }
-            if (ver == 6) {
-                outputStream.write("hm+6+0+6+end".getBytes());
-            }
-            if (ver == 3) {
-                outputStream.write("hm+3+0+6+end".getBytes());
-
-            }
-
-            if (ver == 4) {
-                outputStream.write("hm+4+0+7+end".getBytes());
-
-            }
-            if (ver == 8) {
-                outputStream.write("hm+5+0+8+end".getBytes());
-            }
+            // 处理数据包
+            iClientDataPacketService.handleClientSendPacket(packet);
+
+//            //首次应答返回机器ID
+//            if (ver == 1){
+//
+//            }
+//
+//            if (ver == 2) {
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+//                String time = "hm+2+" + sdf.format(new Date()) + "+4+end";
+//                outputStream.write(time.getBytes());
+//            }
+//            if (ver == 6) {
+//                outputStream.write("hm+6+0+6+end".getBytes());
+//            }
+//            if (ver == 3) {
+//                outputStream.write("hm+3+0+6+end".getBytes());
+//
+//            }
+//
+//            if (ver == 4) {
+//                outputStream.write("hm+4+0+7+end".getBytes());
+//
+//            }
+//            if (ver == 8) {
+//                outputStream.write("hm+5+0+8+end".getBytes());
+//            }
 
             socket.shutdownInput();
 
-        } catch (IOException e) {
+        } catch (IOException | ParseException e) {
             e.printStackTrace();
         } finally {
             // 关闭资源

+ 5 - 5
ear_tag/huimv-eartag-monitor/src/test/java/com/huimv/eartag/monitor/service/ParseClientMessageTest.java

@@ -26,21 +26,21 @@ public class ParseClientMessageTest {
     @Test
     public void testParseClientMessage() throws ParseException {
         String clientMessage = "hm+123456789012345+1+7+end";
-        String t = iParseClientPacket.parseClientSendPacket(clientMessage);
+        String t = iParseClientPacket.handleClientSendPacket(clientMessage);
         System.out.println("t>>" + t);
     }
 
     @Test
     public void testHandleEartagData() throws ParseException {
         String clientMessage = "hm+0+6+1.0+002d4895+668519+89+2100+10902+1550+2+84+20201230175903+9+end";
-        String t = iParseClientPacket.parseClientSendPacket(clientMessage).toString();
+        String t = iParseClientPacket.handleClientSendPacket(clientMessage).toString();
         System.out.println("测试结果>>" + t);
     }
 
     @Test
     public void testGetServerDateTime() throws ParseException {
     String clientMessage = "hm+158+2+9+end";
-    String t = iParseClientPacket.parseClientSendPacket(clientMessage).toString();
+    String t = iParseClientPacket.handleClientSendPacket(clientMessage).toString();
         System.out.println("测试结果>>"+t);
     }
 
@@ -57,14 +57,14 @@ public class ParseClientMessageTest {
     @Test
     public void testGetDeviceId() throws ParseException {
         String clientMessage = "hm+123456789012345+1+7+end";
-        String t = iParseClientPacket.parseClientSendPacket(clientMessage).toString();
+        String t = iParseClientPacket.handleClientSendPacket(clientMessage).toString();
         System.out.println("测试结果>>"+t);
     }
 
     @Test
     public void testHandleEartagTemperature() throws ParseException {
         String clientMessage = "hm+158+4+1+289+20170208152300+6+end";
-        String t = iParseClientPacket.parseClientSendPacket(clientMessage).toString();
+        String t = iParseClientPacket.handleClientSendPacket(clientMessage).toString();
         System.out.println("测试结果>>"+t);
     }
 }