From d4feb21868458d2db8275a7e8440922e5807ed0f Mon Sep 17 00:00:00 2001
From: lzw <lzw@github.aaej.cn>
Date: 星期三, 28 二月 2024 16:09:16 +0800
Subject: [PATCH] 两次枚举 usb ,防止枚举不出来设备
---
app/src/main/java/com/fwupgrade/saymanss/FwUpgradeService.java | 42 +++++++++++++++++++++++++++---------------
1 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/app/src/main/java/com/fwupgrade/saymanss/FwUpgradeService.java b/app/src/main/java/com/fwupgrade/saymanss/FwUpgradeService.java
index e0ce41b..e45618b 100644
--- a/app/src/main/java/com/fwupgrade/saymanss/FwUpgradeService.java
+++ b/app/src/main/java/com/fwupgrade/saymanss/FwUpgradeService.java
@@ -61,6 +61,7 @@
private static final int UPGRADE_FAIL = 3;
private static final int UPGRADE_SUCCESS = 4;
+
private CameraInfo mCamInfo = null;
private static final String TAG = FwUpgradeService.class.getCanonicalName();
private IFwAidlInterface.Stub mBinder = new IFwAidlInterface.Stub() {
@@ -83,6 +84,7 @@
super.onCreate();
Log.i(TAG,"onCreate");
initTarget();
+
initData();
initDeviceSDK();
UStorageTestModule.getInstance().initUStorageDeviceModuleWithVirtualDisk(AppPathInfo.getLogPath());
@@ -117,13 +119,17 @@
case USB_DEVICE_DETACHED:
- boolean isSuccessful1 = (boolean) msg.obj;
- if (isSuccessful1) {
- Toast.makeText(FwUpgradeService.this, "USB璁惧鏉冮檺鐢宠鎴愬姛", Toast.LENGTH_SHORT).show();
- } else {
- Log.i(TAG,"鍙戦�佸け璐ョ粨鏋滃箍鎾粰椹惧煿");
- sendToDriveTrainByBroadCast(0,1);
- sendToNewDriveTrainByBroadCast(0,1);
+ int count = (int) msg.obj;
+ Log.i(TAG,"count="+count);
+ if (count<2) {
+ tty.clear();
+ initTarget();
+ int ret = UstorageDeviceInstance.getInstance().tryAgain(FwUpgradeService.this);
+ if (ret==1){
+ Log.i(TAG,"鍙戦�佸け璐ョ粨鏋滃箍鎾粰椹惧煿");
+ sendToDriveTrainByBroadCast(0,1);
+ sendToNewDriveTrainByBroadCast(0,1);
+ }
}
break;
@@ -150,7 +156,7 @@
int errCode = msg.arg1;
int succ_num = 0, fail_num = 0;
- Log.d("fwup","Upgrade result:" + devName + ", errCode: " + errCode);
+ Log.d("fwup","Upgrade result:" + devName + ", errCode: " + errCode+".ttySize="+tty.size());
if (tty.containsKey(devName)) {
tty.put(devName, errCode == 0? UPGRADE_SUCCESS:UPGRADE_FAIL);
@@ -207,8 +213,10 @@
for (UsbDevice usbDevice: targets) {
if (usbDevice.getDeviceName().compareTo(min) < 0) {
min = usbDevice.getDeviceName();
+
}
}
+ Log.i(TAG,"min="+min);
tty.put(min, UPGRADE_PRESET);
}
@@ -244,16 +252,19 @@
* UstorageDeviceSDK鍒濆鍖�.
*/
private void initDeviceSDK() {
+ int count = 0 ;
int ret = UstorageDeviceInstance.getInstance().tryAttcheDeviceHandle(FwUpgradeService.this, FwUpgradeService.this);
Log.i(TAG,"initDeviceSDk,ret="+ret);
if (ret==1){
+
+ ++count;
+ Log.i(TAG,"鍐嶆鐨勫垵濮嬪寲");
Message message = Message.obtain();
- message.obj = false;
+ message.obj = count;
message.what = USB_DEVICE_DETACHED;
mHander.sendMessageDelayed(message,1000);
-
-
}
+
}
@Override
@@ -298,7 +309,7 @@
String serial = ctrlBlock.getSerial();
- Log.d(TAG,"sonixCamInit " + String.format("vendorId:%d productId:%d fileDescriptor:%d busNum:%d devNum:%d usbfsName:%s devName:%s serial:%s", vendorId, productId, fileDescriptor, busNum, devNum, usbfsName, devName, serial));
+ Log.d(TAG,"sonixCamInit " + String.format("vendorId:%d productId:%d fileDescriptor:%d busNum:%d devNum:%d usbfsName:%s devName:%s serial:%s,tty.size=%d", vendorId, productId, fileDescriptor, busNum, devNum, usbfsName, devName, serial,tty.size()));
if (tty.containsKey(devName) && tty.get(devName) == 0) {
@@ -306,16 +317,17 @@
tty.put(devName, 1);
}
+
+
if (!isTarget) {
+
Log.d(TAG,"Not sonixCam, close");
ctrlBlock.close();
- sendToDriveTrainByBroadCast(0,1);
- sendToNewDriveTrainByBroadCast(0,1);
+
return;
}
Log.d(TAG,"Is sonixCam, upgrade!");
-
Message msg = Message.obtain();
//msg.obj = errCode == 0;
msg.obj = new CameraInfo(vendorId, productId, fileDescriptor, busNum, devNum, usbfsName, devName);
--
Gitblit v1.8.0