hecheng пре 3 година
родитељ
комит
de1f114079

+ 18 - 0
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDClientImpl.java

@@ -100,11 +100,29 @@ public class DeJuRFIDClientImpl implements IService {
             client.setPrint(true);
             reSet(hardware, client);
             service.subscribeHandler(client, hardware);
+            subscribeHandlerTagEpcOver(client);
             remoteLaboratoryService.update(HardwareOperate.OPEN, hardware.getIpAddress());
             log.info(client.getName() + "---监听成功");
         };
     }
 
+    /**
+     * 订阅6c标签信息上报停止事件
+     *
+     * @param client   客户端
+     */
+    public void subscribeHandlerTagEpcOver(GClient client) {
+        client.onTagEpcOver= (s, logBaseEpcInfo) -> {
+            log.info("HandlerTagEpcOver:"+s);
+            RemoteLabHardware labHardware = redisTemplate.opsForValue().get(client.getSerialNumber());
+            if (labHardware==null){
+                return;
+            }
+            disconnect(labHardware);
+            start(labHardware);
+        };
+    }
+
     private void reSet(RemoteLabHardware hardware, GClient client) {
         MsgBaseSetBaseband msgBaseSetBaseband = DeJuRFIDServerImpl.setSession(hardware, client);
         if (0 != msgBaseSetBaseband.getRtCode()) {

+ 10 - 0
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDServerImpl.java

@@ -102,6 +102,7 @@ public class DeJuRFIDServerImpl implements IService {
 
             // 订阅标签上报事件
             subscribeHandler(client, hardware);
+            subscribeHandlerTagEpcOver(client,hardware);
             String serialNumber = client.getSerialNumber();
             if (StringUtils.hasLength(serialNumber)){
                 redisTemplate.opsForValue().set(serialNumber, hardware);
@@ -370,6 +371,15 @@ public class DeJuRFIDServerImpl implements IService {
                 }
             }
         };
+    }
+
+    /**
+     * 订阅6c标签信息上报停止事件
+     *
+     * @param client   客户端
+     * @param hardware 设备数据
+     */
+    public void subscribeHandlerTagEpcOver(GClient client, RemoteLabHardware hardware) {
         client.onTagEpcOver= (s, logBaseEpcInfo) -> {
             log.info("HandlerTagEpcOver:"+s);
             close(hardware);