|
@@ -21,7 +21,6 @@ import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @author Administrator
|
|
* @author Administrator
|
|
@@ -70,6 +69,13 @@ public class DeJuRFIDServerImpl implements IService {
|
|
|
}
|
|
}
|
|
|
if (client.openTcp(ipAddress, TIME_OUT)) {
|
|
if (client.openTcp(ipAddress, TIME_OUT)) {
|
|
|
stopMsg(client);
|
|
stopMsg(client);
|
|
|
|
|
+ boolean change = setGpi(client);
|
|
|
|
|
+ if (!change){
|
|
|
|
|
+ log.info("GPI epc error.");
|
|
|
|
|
+ close(hardware);
|
|
|
|
|
+ open(hardware);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
MsgBaseSetBaseband msgBaseSetBaseband = setSession(hardware, client);
|
|
MsgBaseSetBaseband msgBaseSetBaseband = setSession(hardware, client);
|
|
|
if (0 != msgBaseSetBaseband.getRtCode()) {
|
|
if (0 != msgBaseSetBaseband.getRtCode()) {
|
|
|
log.info("Session epc error.");
|
|
log.info("Session epc error.");
|
|
@@ -213,6 +219,37 @@ public class DeJuRFIDServerImpl implements IService {
|
|
|
return msgBaseSetBaseband;
|
|
return msgBaseSetBaseband;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public static boolean setGpi(GClient client) {
|
|
|
|
|
+ MsgAppGetGpiState gpiState=new MsgAppGetGpiState();
|
|
|
|
|
+ client.sendSynMsg(gpiState);
|
|
|
|
|
+ HashMap<Integer, Integer> hashMap = gpiState.getHpGpiState();
|
|
|
|
|
+ boolean change=true;
|
|
|
|
|
+ for (Map.Entry<Integer,Integer> entry:hashMap.entrySet()) {
|
|
|
|
|
+ Integer k = entry.getKey();
|
|
|
|
|
+ MsgAppGetGpiTrigger getGpiTrigger = new MsgAppGetGpiTrigger();
|
|
|
|
|
+ getGpiTrigger.setGpiPort(k-1);
|
|
|
|
|
+ client.sendSynMsg(getGpiTrigger);
|
|
|
|
|
+ if (getGpiTrigger.getRtCode()==0){
|
|
|
|
|
+ int triggerOver = getGpiTrigger.getTriggerOver();
|
|
|
|
|
+ int triggerStart = getGpiTrigger.getTriggerStart();
|
|
|
|
|
+ if (triggerStart!=0|| triggerOver!=0){
|
|
|
|
|
+ MsgAppSetGpiTrigger gpiTrigger = new MsgAppSetGpiTrigger();
|
|
|
|
|
+ gpiTrigger.setGpiPort(getGpiTrigger.getGpiPort());
|
|
|
|
|
+ gpiTrigger.setTriggerOver(0);
|
|
|
|
|
+ gpiTrigger.setTriggerStart(0);
|
|
|
|
|
+ client.sendSynMsg(gpiTrigger);
|
|
|
|
|
+ if (0 != gpiTrigger.getRtCode()) {
|
|
|
|
|
+ log.info("GPI epc error.");
|
|
|
|
|
+ change=false;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.info("GPI epc success.");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return change;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public void disconnect(RemoteLabHardware hardware) {
|
|
public void disconnect(RemoteLabHardware hardware) {
|
|
|
close(hardware);
|
|
close(hardware);
|
|
@@ -333,6 +370,10 @@ public class DeJuRFIDServerImpl implements IService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
- client.onTagEpcOver = (s, logBaseEpcOver) -> log.info("HandlerTagEpcOver");
|
|
|
|
|
|
|
+ client.onTagEpcOver= (s, logBaseEpcInfo) -> {
|
|
|
|
|
+ log.info("HandlerTagEpcOver:"+s);
|
|
|
|
|
+ close(hardware);
|
|
|
|
|
+ open(hardware);
|
|
|
|
|
+ };
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|