|
@@ -40,13 +40,13 @@ public class AutoRfidReaderTask {
|
|
|
/**
|
|
|
* 关门次数,每次关门会累加一次,但是开门会初始化为0
|
|
|
*/
|
|
|
- private int closeOutDoorNum = 10;
|
|
|
- private int closeInDoorNum = 10;
|
|
|
+ private int closeOutDoorNum = 5;
|
|
|
+ private int closeInDoorNum = 5;
|
|
|
|
|
|
/**
|
|
|
* 关门上限,因为大部分时间都是读不到标签的 所以关门的指令不能一直重复下发
|
|
|
*/
|
|
|
- private int closeDoorMax = 10;
|
|
|
+ private int closeDoorMax = 5;
|
|
|
|
|
|
/**
|
|
|
* RFID读取任务(墙外)
|
|
@@ -79,10 +79,22 @@ public class AutoRfidReaderTask {
|
|
|
*/
|
|
|
public void execute(String[] tagIds, List<String> tagList, AutoDoorClient.AUTO_DOOR_NO doorNo, boolean isOutdoor) {
|
|
|
if (tagList == null) {
|
|
|
+ // 自动门打开之后的五秒钟之内不可以关门
|
|
|
+ if (isOutdoor) {
|
|
|
+ if (redisCache.getCacheObject("OUT_DOOR_OPEN") != null) {
|
|
|
+ log.error("自动门打开之后的五秒钟之内不可以关门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if (redisCache.getCacheObject("IN_DOOR_OPEN") != null) {
|
|
|
+ log.error("自动门打开之后的五秒钟之内不可以关门!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
// 如果没有读到标签 关闭自动门
|
|
|
// 因为大部分时间都是读不到标签的 所以关门的指令不能一直重复下发
|
|
|
- // 记录关门的次数 超过10次 就不再重复关门
|
|
|
- if (isOutdoor ? closeOutDoorNum < 10 : closeInDoorNum < 10) {
|
|
|
+ // 记录关门的次数 超过5次 就不再重复关门
|
|
|
+ if (isOutdoor ? closeOutDoorNum < closeDoorMax : closeInDoorNum < closeDoorMax) {
|
|
|
autoDoorClient.sendClose(doorNo);
|
|
|
// log.info("发送关门指令!{},{}", isOutdoor, isOutdoor ? closeOutDoorNum : closeInDoorNum);
|
|
|
if (isOutdoor) {
|
|
@@ -115,10 +127,14 @@ public class AutoRfidReaderTask {
|
|
|
closeOutDoorNum = 0;
|
|
|
// 设置按钮盒有效时间
|
|
|
redisCache.setCacheObject("BUTTON_BOX_VALID","",10, TimeUnit.MINUTES);
|
|
|
+ // 设定开门有效时间 这个时间内就算RFID没有扫描到标签,门也不可以关上
|
|
|
+ redisCache.setCacheObject("OUT_DOOR_OPEN","",5, TimeUnit.SECONDS);
|
|
|
} else {
|
|
|
closeInDoorNum = 0;
|
|
|
// 关闭警报灯
|
|
|
warningLightClient.closeWarningLight();
|
|
|
+ // 设定开门有效时间 这个时间内就算RFID没有扫描到标签,门也不可以关上
|
|
|
+ redisCache.setCacheObject("IN_DOOR_OPEN","",5, TimeUnit.SECONDS);
|
|
|
}
|
|
|
} else {
|
|
|
// 如果没有读到标签 关闭自动门
|