From 6c12dd77bc481aeabec568bfed3dd68e81b80f8b Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 20 十月 2025 08:56:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao
---
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
index 54fcdac..fcac3d4 100644
--- a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/main/MainActivity.java
@@ -8,6 +8,8 @@
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.hardware.Camera;
+import android.hardware.usb.UsbDevice;
+import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -75,6 +77,9 @@
import com.doumee.keyCabinet.utils.face.ImportFileManager;
import com.doumee.keyCabinet.utils.face.RegisterConfigUtils;
import com.doumee.keyCabinet.utils.face.model.SingleBaseConfig;
+import com.doumee.keyCabinet.utils.i485.SerialPortModel;
+import com.doumee.keyCabinet.utils.i485.SerialPortReadObserver;
+import com.doumee.keyCabinet.utils.i485.SportUtils;
import com.doumee.keyCabinet.utils.update.PermissionUtils;
import com.doumee.keyCabinet.utils.update.PermissiondDialog;
import com.doumee.keyCabinet.utils.update.UpdateUtil;
@@ -101,6 +106,7 @@
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.Timer;
@@ -182,6 +188,7 @@
startService(intent2);
getPermission();
Timber.tag("====>").d(LMobileInfo.getDeviceUniqueId());
+ initPort();
}
private void initM(){
@@ -388,6 +395,8 @@
handler = null;
faceHandler.removeCallbacksAndMessages(null);
faceHandler = null;
+ portHandler.removeCallbacksAndMessages(null);
+ portHandler = null;
}
private void restartApp(){
@@ -1042,4 +1051,136 @@
}
}
+ private SerialPortModel gridPort;
+ private SerialPortReadObserver gridReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(gridPort!=null && !gridPort.isOk()){
+ gridPort.setOk(true);
+ }
+ }
+ };
+ private SerialPortModel keyPort;
+ private SerialPortReadObserver keyReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(keyPort!=null && !keyPort.isOk()){
+ keyPort.setOk(true);
+ }
+ }
+ };
+ private SerialPortModel jiuPort;
+ private SerialPortReadObserver jiuReadObserver = new SerialPortReadObserver() {
+ @Override
+ public void onResult(String result) {
+
+ }
+
+ @Override
+ public void onResultBytes(byte[] bytes) {
+ if(jiuPort!=null && !jiuPort.isOk()){
+ jiuPort.setOk(true);
+ }
+ }
+ };
+
+ List<String> ports;
+ private int index = 0;
+ private Handler portHandler = new Handler(){
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ switch (msg.what){
+ case 0:
+ if(index>=1&&!checkEnd()){
+ index--;
+ chosePort(ports.get(index));
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ };
+ //鍒濆鍖栦覆鍙�
+ private void initPort(){
+ ports = SportUtils.getSerialPortPaths(this);
+ if(ports.size()>0){
+ index = ports.size()-1;
+ chosePort(ports.get(ports.size()-1));
+ }
+ }
+
+ private void chosePort(String path){
+ if(gridPort==null||!gridPort.isOk()){
+ closePort(gridPort);
+ gridPort = new SerialPortModel(path,9600 ,8
+ ,1 , 0);
+ boolean isSucc = gridPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ gridPort.startRead(gridReadObserver);
+ //todo 鍙戦�佹煖鏍兼牎楠屼俊鎭�
+ }
+ }
+ if(keyPort==null||!keyPort.isOk()){
+ closePort(keyPort);
+ keyPort = new SerialPortModel(path,115200 ,8
+ ,1 , 0);
+ boolean isSucc = keyPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ keyPort.startRead(keyReadObserver);
+ //todo 鍙戦�侀挜鍖欐牎楠屼俊鎭�
+ }
+ }
+ if(jiuPort==null||!jiuPort.isOk()){
+ closePort(jiuPort);
+ jiuPort = new SerialPortModel(path,9600 ,8
+ ,1 , 0);
+ boolean isSucc = jiuPort.open();
+ if(isSucc) {
+ String msg = isSucc ? "鎴愬姛" : "澶辫触";
+ //getVM().append("涓插彛 "+ settingBean.getDevicePath() + " -杩炴帴"+msg);
+ jiuPort.startRead(jiuReadObserver);
+ //todo 鍙戦�侀厭绮炬牎楠屼俊鎭�
+ }
+ }
+
+ portHandler.sendEmptyMessageDelayed(0,2000);
+ }
+
+ private void closePort(SerialPortModel port){
+ if(port==null){
+ return;
+ }
+ port.startRead(null);
+ port.stopRead();
+ port.close();
+ port = null;
+ }
+
+ private boolean checkEnd(){
+ if(gridPort==null||!gridPort.isOk()){
+ return false;
+ }
+ if(keyPort==null||!keyPort.isOk()){
+ return false;
+ }
+ if(jiuPort==null||!jiuPort.isOk()){
+ return false;
+ }
+ return true;
+ }
}
--
Gitblit v1.9.3