ty130316261 пре 3 година
родитељ
комит
e52b795e4b
1 измењених фајлова са 46 додато и 12 уклоњено
  1. 46 12
      zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDService.java

+ 46 - 12
zd-modules/zd-netty/src/main/java/com/zd/netty/sdk/DeJuRFIDService.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.Hashtable;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Slf4j
@@ -42,25 +43,58 @@ public class DeJuRFIDService implements IService {
             subscribeHandler(client);
 
             // 功率配置, 将4个天线功率都设置为30dBm.
-            //todo 持久化配置,断电保存 ,请勿做重复配置操作,需要频繁配置时,请先查询校验
-            MsgBaseSetPower msgBaseSetPower = new MsgBaseSetPower();
-            Hashtable<Integer, Integer> hashtable = new Hashtable<>();
             Integer uniformPower = hardware.getUniformPower();
-            hashtable.put(1, uniformPower);
-            hashtable.put(2, uniformPower);
-            hashtable.put(3, uniformPower);
-            hashtable.put(4, uniformPower);
-            msgBaseSetPower.setDicPower(hashtable);
-            client.sendSynMsg(msgBaseSetPower);
-            if (0 == msgBaseSetPower.getRtCode()) {
-                log.info("Power configuration successful.");
+            MsgBaseGetPower msgBaseGetPower=new MsgBaseGetPower();
+            client.sendSynMsg(msgBaseGetPower);
+            if (0 == msgBaseGetPower.getRtCode()) {
+                Hashtable<Integer, Integer> dicPower = msgBaseGetPower.getDicPower();
+                Integer integer = dicPower.get(0);
+                if (!Objects.equals(integer, uniformPower)){
+                    MsgBaseSetPower msgBaseSetPower = new MsgBaseSetPower();
+                    Hashtable<Integer, Integer> hashtable = new Hashtable<>();
+
+                    Integer channels = hardware.getChannels();
+                    for (int i = 1; i <= channels; i++) {
+                        hashtable.put(i,uniformPower);
+                    }
+                    msgBaseSetPower.setDicPower(hashtable);
+                    client.sendSynMsg(msgBaseSetPower);
+                    if (0 == msgBaseSetPower.getRtCode()) {
+                        log.info("Power configuration successful.");
+                    } else {
+                        log.info("Power configuration error.");
+                    }
+                }
             } else {
                 log.info("Power configuration error.");
             }
 
+            MsgAppSetBeep msgAppSetBeep=new MsgAppSetBeep();
+            msgAppSetBeep.setBeepMode(hardware.getSessionIndex()>1?1:0);
+            msgAppSetBeep.setBeepStatus(1);
+            client.sendSynMsg(msgAppSetBeep);
+
+            if (0 == msgAppSetBeep.getRtCode()) {
+                log.info("Beep epc successful.");
+            } else {
+                log.info("Beep epc error.");
+            }
             // 4个天线读卡, 读取EPC数据区以及TID数据区
             MsgBaseInventoryEpc msgBaseInventoryEpc = new MsgBaseInventoryEpc();
-            msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1 | EnumG.AntennaNo_2 | EnumG.AntennaNo_3 | EnumG.AntennaNo_4);
+            switch (hardware.getChannels()){
+                case 4:
+                    msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_3);
+                    break;
+                case 8:
+                    msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_4);
+                    break;
+                case 16:
+                    msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_5);
+                    break;
+                case 1:
+                default:
+                    msgBaseInventoryEpc.setAntennaEnable(EnumG.AntennaNo_1);
+            }
             msgBaseInventoryEpc.setInventoryMode(EnumG.InventoryMode_Inventory);
 
             client.sendSynMsg(msgBaseInventoryEpc);