MTing 4 weeks ago
parent
commit
988ff1ccff
  1. 70
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  2. 20
      app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java

70
app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java

@ -1712,68 +1712,6 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
return; return;
} }
// 新增离场场景下gate_open_enable为true时直接开门
if (isLeaveScene) {
VenueSceneUtils.GateConfig gateConfig = VenueSceneUtils.getGateConfig(this);
// gate_enter_open_enable
if (gateConfig != null && gateConfig.gateEnterOpenEnable) {
LogManager.logInfo(TAG, "检测到离场场景且gate_open_enable为true,直接执行openGateAB开门");
// 直接执行AB门开门操作
if (gateABController != null) {
// 暂停摄像头预览10秒后再恢复避免频繁执行开门操作
pauseCamera();
LogManager.logInfo(TAG, "暂停摄像头预览10秒,避免频繁执行开门操作");
// 10秒后恢复摄像头预览
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
resumeCamera();
LogManager.logInfo(TAG, "10秒后恢复摄像头预览");
}
}, 10000);
gateABController.openGateAB(new GateABController.GateControlCallback() {
@Override
public void onSuccess(String message) {
LogManager.logInfo(TAG, "离场场景gate_open_enable直接开门成功: " + message);
// 显示简单的成功提示
runOnUiThread(() -> {
showLoadingStatus("开门成功");
// 5秒后隐藏提示
new Handler().postDelayed(() -> {
hideLoadingStatus();
}, 5000);
});
}
@Override
public void onError(String errorMessage) {
LogManager.logError(TAG, "离场场景gate_open_enable直接开门失败: " + errorMessage);
// 显示错误提示
runOnUiThread(() -> {
showLoadingStatus("开门失败: " + errorMessage);
// 5秒后隐藏提示
new Handler().postDelayed(() -> {
hideLoadingStatus();
}, 5000);
});
}
});
} else {
LogManager.logError(TAG, "gateABController为空,无法执行开门操作");
}
// 直接返回不再继续执行后续逻辑
return;
}
}
LogManager.logInfo(TAG, "继续执行正常的人脸识别流程 - 场景: " + (isLeaveScene ? "离场" : "进场") + ", 网络: " + (isNetworkAvailable ? "可用" : "不可用")); LogManager.logInfo(TAG, "继续执行正常的人脸识别流程 - 场景: " + (isLeaveScene ? "离场" : "进场") + ", 网络: " + (isNetworkAvailable ? "可用" : "不可用"));
} catch (Exception e) { } catch (Exception e) {
@ -1887,8 +1825,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
if (VenueSceneUtils.isLeaveScene(OXFaceOnlineActivity.this)) { if (VenueSceneUtils.isLeaveScene(OXFaceOnlineActivity.this)) {
// 离场场景检查gate_enter_open_enable配置 // 离场场景检查gate_enter_open_enable配置
VenueSceneUtils.GateConfig gateConfig = VenueSceneUtils.getGateConfig(OXFaceOnlineActivity.this); VenueSceneUtils.GateConfig gateConfig = VenueSceneUtils.getGateConfig(OXFaceOnlineActivity.this);
if (gateConfig != null && gateConfig.gateEnterOpenEnable) {
// 如果 gate_enter_open_enable true直接开门不进行网络核销
// gateOpenEnable
if (gateConfig != null && gateConfig.gateOpenEnable) {
// 如果 gate_open_enable true直接开门不进行网络核销
LogManager.logInfo(TAG, "检测到离场场景,gate_enter_open_enable为true,直接开启B门"); LogManager.logInfo(TAG, "检测到离场场景,gate_enter_open_enable为true,直接开启B门");
showLoadingStatus("离场验证成功"); showLoadingStatus("离场验证成功");
@ -1910,7 +1849,8 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
if (isNetworkAvailable()) { if (isNetworkAvailable()) {
LogManager.logInfo(TAG, "检测到离场场景,网络可用,执行离场校验"); LogManager.logInfo(TAG, "检测到离场场景,网络可用,执行离场校验");
performLeaveVerification(base64img); performLeaveVerification(base64img);
} else {
}
else {
LogManager.logWarning(TAG, "检测到离场场景,但网络不可用,直接开启B门"); LogManager.logWarning(TAG, "检测到离场场景,但网络不可用,直接开启B门");
showLoadingStatus("网络不可用,直接开门"); showLoadingStatus("网络不可用,直接开门");

20
app/src/main/java/com/ouxuan/oxface/utils/VenueSceneUtils.java

@ -133,9 +133,9 @@ public class VenueSceneUtils {
padConfig.getExtension().getPadSetting() != null && padConfig.getExtension().getPadSetting() != null &&
padConfig.getExtension().getPadSetting().isGateEnterOpenEnable(); padConfig.getExtension().getPadSetting().isGateEnterOpenEnable();
gateConfig.gateEnterOpenEnable = padConfig.getExtension() != null &&
gateConfig.gateAbEnable = padConfig.getExtension() != null &&
padConfig.getExtension().getPadSetting() != null && padConfig.getExtension().getPadSetting() != null &&
padConfig.getExtension().getPadSetting().gateAbEnable();
padConfig.getExtension().getPadSetting().isGateAbEnable();
gateConfig.gateAbGpio = padConfig.getExtension() != null && gateConfig.gateAbGpio = padConfig.getExtension() != null &&
padConfig.getExtension().getPadSetting() != null && padConfig.getExtension().getPadSetting() != null &&
@ -144,16 +144,13 @@ public class VenueSceneUtils {
gateConfig.gateAbUdp = padConfig.getExtension() != null && gateConfig.gateAbUdp = padConfig.getExtension() != null &&
padConfig.getExtension().getPadSetting() != null && padConfig.getExtension().getPadSetting() != null &&
padConfig.getExtension().getPadSetting().isGateAbUdp(); padConfig.getExtension().getPadSetting().isGateAbUdp();
// 添加gate_open_enable配置
// 添加gate_open_enable配置
gateConfig.gateOpenEnable = padConfig.getExtension() != null && gateConfig.gateOpenEnable = padConfig.getExtension() != null &&
padConfig.getExtension().getPadSetting() != null && padConfig.getExtension().getPadSetting() != null &&
padConfig.getExtension().getPadSetting().isGateOpenEnable(); padConfig.getExtension().getPadSetting().isGateOpenEnable();
Log.d(TAG, "门禁配置 - EnterOpenEnable: " + gateConfig.gateEnterOpenEnable + Log.d(TAG, "门禁配置 - EnterOpenEnable: " + gateConfig.gateEnterOpenEnable +
", AbGpio: " + gateConfig.gateAbGpio + ", AbGpio: " + gateConfig.gateAbGpio +
", AbUdp: " + gateConfig.gateAbUdp +
", OpenEnable: " + gateConfig.gateOpenEnable);
", AbUdp: " + gateConfig.gateAbUdp);
return gateConfig; return gateConfig;
} else { } else {
@ -170,18 +167,19 @@ public class VenueSceneUtils {
* 门禁配置信息类 * 门禁配置信息类
*/ */
public static class GateConfig { public static class GateConfig {
public boolean gateEnterOpenEnable = false; // 门禁进入开启使能
public boolean gateEnterOpenEnable = false; // 门禁进入开启使能暂时未知
public boolean gateAbGpio = false; // 门禁AB GPIO public boolean gateAbGpio = false; // 门禁AB GPIO
public boolean gateAbUdp = false; // 门禁AB UDP public boolean gateAbUdp = false; // 门禁AB UDP
public boolean gateOpenEnable = false; // 离场核销直接开门使能
public boolean gateAbEnable = false; // ab门总开关
public boolean gateOpenEnable = false; //离场核销直接开门
@Override @Override
public String toString() { public String toString() {
return "GateConfig{" + return "GateConfig{" +
"gateEnterOpenEnable=" + gateEnterOpenEnable +
"gateOpenEnable=" + gateOpenEnable +
", gateAbGpio=" + gateAbGpio + ", gateAbGpio=" + gateAbGpio +
", gateAbUdp=" + gateAbUdp + ", gateAbUdp=" + gateAbUdp +
", gateOpenEnable=" + gateOpenEnable +
'}'; '}';
} }
} }

Loading…
Cancel
Save