Browse Source

fix 485

dev
MTing 3 weeks ago
parent
commit
c657af5183
  1. 18
      app/src/main/java/com/ouxuan/oxface/DebugActivity.java
  2. 3
      app/src/main/java/com/ouxuan/oxface/MainActivity.java
  3. 2
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  4. 18
      app/src/main/java/com/ouxuan/oxface/debug/Ox485DebugHelper.java
  5. 9
      app/src/main/java/com/ouxuan/oxface/device/GateABController.java
  6. 41
      app/src/main/java/com/ouxuan/oxface/device/Ox485.java

18
app/src/main/java/com/ouxuan/oxface/DebugActivity.java

@ -967,6 +967,24 @@ public class DebugActivity extends Activity {
} }
try { try {
// 获取并显示设备类型信息
int deviceType = com.ouxuan.oxface.data.DeviceSelectDataManager.getInstance(this).getDeviceType();
logMessage("当前设备类型: " + deviceType + " (5=第6批设备ttyS6, 其他=ttyS4)");
// 根据设备类型切换485串口路径
com.ouxuan.oxface.device.Ox485.switch485ByDeviceType(deviceType);
logMessage("已根据设备类型设置485串口路径");
// 显示当前串口路径
String currentSerialPath = ox485.getCurrentSerialPortPath();
logMessage("当前485串口路径: " + currentSerialPath);
// 强制启用485模式进行测试
if (ox485 != null) {
ox485.setGateCamera485OxOn(true);
logMessage("已强制启用485模式进行测试");
}
// 获取当前配置信息 // 获取当前配置信息
GateABController.GateABConfig config = gateABController.getCurrentConfig(); GateABController.GateABConfig config = gateABController.getCurrentConfig();
logMessage("AB门当前配置 - 485模式: " + config.gateCamera485OXOn); logMessage("AB门当前配置 - 485模式: " + config.gateCamera485OXOn);

3
app/src/main/java/com/ouxuan/oxface/MainActivity.java

@ -890,6 +890,9 @@ public class MainActivity extends AppCompatActivity {
Log.d(TAG, "选择设备后获取设备类型: " + deviceType); Log.d(TAG, "选择设备后获取设备类型: " + deviceType);
switchCameraByDeviceType(deviceType); switchCameraByDeviceType(deviceType);
// 根据设备类型切换485串口路径
com.ouxuan.oxface.device.Ox485.switch485ByDeviceType(deviceType);
// 新增调用获取小程序码接口和上传人脸小程序码接口 // 新增调用获取小程序码接口和上传人脸小程序码接口
// 使用计数器确保两个请求都完成后再进入人脸识别界面 // 使用计数器确保两个请求都完成后再进入人脸识别界面
final int[] completedRequests = {0}; final int[] completedRequests = {0};

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

@ -1213,7 +1213,7 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
@Override @Override
public void onGetCameraData(byte[] data, Camera camera, int width, int height) { public void onGetCameraData(byte[] data, Camera camera, int width, int height) {
try { try {
Log.d(TAG, "45466: 444:"+isNeedCamera);
// Log.d(TAG, "45466: 444:"+isNeedCamera);
// 摄像头预览数据进行人脸检测 // 摄像头预览数据进行人脸检测
if (isNeedCamera) { if (isNeedCamera) {
// 增加帧计数器和时间间隔控制 // 增加帧计数器和时间间隔控制

18
app/src/main/java/com/ouxuan/oxface/debug/Ox485DebugHelper.java

@ -25,6 +25,15 @@ public class Ox485DebugHelper {
Ox485 ox485 = Ox485.getInstance(); Ox485 ox485 = Ox485.getInstance();
// 根据设备类型切换485串口路径
try {
int deviceType = com.ouxuan.oxface.data.DeviceSelectDataManager.getInstance(null).getDeviceType();
Ox485.switch485ByDeviceType(deviceType);
LogManager.logInfo(TAG, "已根据设备类型(" + deviceType + ")设置485串口路径");
} catch (Exception e) {
LogManager.logWarning(TAG, "获取设备类型失败,使用默认串口路径: " + e.getMessage());
}
// 1. 基础状态检查 // 1. 基础状态检查
LogManager.logInfo(TAG, "步骤1: 基础状态检查"); LogManager.logInfo(TAG, "步骤1: 基础状态检查");
String status = ox485.get485Status(); String status = ox485.get485Status();
@ -165,6 +174,15 @@ public class Ox485DebugHelper {
Ox485 ox485 = Ox485.getInstance(); Ox485 ox485 = Ox485.getInstance();
// 根据设备类型切换485串口路径
try {
int deviceType = com.ouxuan.oxface.data.DeviceSelectDataManager.getInstance(null).getDeviceType();
Ox485.switch485ByDeviceType(deviceType);
LogManager.logInfo(TAG, "已根据设备类型(" + deviceType + ")设置485串口路径");
} catch (Exception e) {
LogManager.logWarning(TAG, "获取设备类型失败,使用默认串口路径: " + e.getMessage());
}
// 如果485模式未开启则开启 // 如果485模式未开启则开启
if (!ox485.isGateCamera485OxOn()) { if (!ox485.isGateCamera485OxOn()) {
LogManager.logInfo(TAG, "485模式未开启,正在开启..."); LogManager.logInfo(TAG, "485模式未开启,正在开启...");

9
app/src/main/java/com/ouxuan/oxface/device/GateABController.java

@ -947,6 +947,15 @@ public class GateABController {
return; return;
} }
// 根据设备类型切换485串口路径
try {
int deviceType = com.ouxuan.oxface.data.DeviceSelectDataManager.getInstance(null).getDeviceType();
com.ouxuan.oxface.device.Ox485.switch485ByDeviceType(deviceType);
LogManager.logInfo(TAG, "已根据设备类型(" + deviceType + ")设置485串口路径");
} catch (Exception e) {
LogManager.logWarning(TAG, "获取设备类型失败,使用默认串口路径: " + e.getMessage());
}
// 调用Ox485获取人数 // 调用Ox485获取人数
ox485.sendHex485ForPeopleNum(new Ox485.PeopleNumCallback() { ox485.sendHex485ForPeopleNum(new Ox485.PeopleNumCallback() {
@Override @Override

41
app/src/main/java/com/ouxuan/oxface/device/Ox485.java

@ -30,7 +30,10 @@ public class Ox485 {
// 485通信配置 // 485通信配置
// private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS6"; //第6批设备 // private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS6"; //第6批设备
private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS4"; //第7批设备
// private static final String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS4"; //第7批设备
// 动态串口路径配置
private static String DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS4"; // 默认第7批设备
private static final int DEFAULT_BAUD_RATE = 9600; private static final int DEFAULT_BAUD_RATE = 9600;
private static final int DEFAULT_STOP_BITS = 1; private static final int DEFAULT_STOP_BITS = 1;
@ -92,6 +95,34 @@ public class Ox485 {
} }
/** /**
* 根据设备类型切换485串口路径
* @param deviceType 设备类型5表示第6批设备其他值表示非第6批设备
*/
public static void switch485ByDeviceType(int deviceType) {
try {
String oldPath = DEFAULT_SERIAL_PORT_PATH;
if (deviceType == 5) {
// 第6批设备使用ttyS6
DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS6";
} else {
// 其他设备包括第7批使用ttyS4
DEFAULT_SERIAL_PORT_PATH = "/dev/ttyS4";
}
String logMessage = "已根据设备类型(" + deviceType + ")切换485串口路径: " + oldPath + " -> " + DEFAULT_SERIAL_PORT_PATH;
Log.d(TAG, logMessage);
LogManager.logInfo(TAG, logMessage);
// 额外记录当前串口路径状态
LogManager.logInfo(TAG, "当前485串口状态 - 设备类型: " + deviceType + ", 串口路径: " + DEFAULT_SERIAL_PORT_PATH);
} catch (Exception e) {
String errorMessage = "切换485串口路径失败: " + e.getMessage();
Log.e(TAG, errorMessage, e);
LogManager.logError(TAG, errorMessage, e);
}
}
/**
* 设置485模式开关 * 设置485模式开关
* @param enabled 是否启用485模式 * @param enabled 是否启用485模式
*/ */
@ -431,6 +462,14 @@ public class Ox485 {
} }
/** /**
* 获取当前使用的串口路径
* @return 当前串口路径
*/
public String getCurrentSerialPortPath() {
return DEFAULT_SERIAL_PORT_PATH;
}
/**
* 关闭485串口兼容旧接口 * 关闭485串口兼容旧接口
*/ */
public void close485SerialPort() { public void close485SerialPort() {

Loading…
Cancel
Save