|
@@ -167,25 +167,42 @@ DWORD CSATDevices::WorkThread(LPVOID lpVoid)
|
|
// offline只能reconnect才能重连;
|
|
// offline只能reconnect才能重连;
|
|
std::string str = "adb reconnect offline";
|
|
std::string str = "adb reconnect offline";
|
|
WinExec(str.c_str(), SW_HIDE);
|
|
WinExec(str.c_str(), SW_HIDE);
|
|
- // 重连后,break此次循环;
|
|
|
|
- GLOBAL::WriteTextLog("offline重连->设备类型:%d, 设备名称:%s, 状态:%d, 命名:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
|
|
- // 等待重连;
|
|
|
|
- Sleep(3500);
|
|
|
|
- break;
|
|
|
|
|
|
+ GLOBAL::WriteTextLog("offline重连->设备类型:%d, 设备名称:%s, 状态:%d, 命令:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
}
|
|
}
|
|
else if ( it->nStatus == SATDEV::Dropline ) {
|
|
else if ( it->nStatus == SATDEV::Dropline ) {
|
|
std::string str = "adb connect ";
|
|
std::string str = "adb connect ";
|
|
str.append(it->strName);
|
|
str.append(it->strName);
|
|
WinExec(str.c_str(), SW_HIDE);
|
|
WinExec(str.c_str(), SW_HIDE);
|
|
- GLOBAL::WriteTextLog("dropline重连->设备类型:%d, 设备名称:%s, 状态:%d, 命名:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
|
|
- // 等待重连;
|
|
|
|
- Sleep(3500);
|
|
|
|
|
|
+ GLOBAL::WriteTextLog("dropline重连->设备类型:%d, 设备名称:%s, 状态:%d, 命令:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
}
|
|
}
|
|
|
|
+ // 等待adb重连完成;
|
|
|
|
+ Sleep(2500);
|
|
} else if ( it->nType == SATDEV::Usb ) {
|
|
} else if ( it->nType == SATDEV::Usb ) {
|
|
-#if 0
|
|
|
|
- // offline只能reconnect才能重连;
|
|
|
|
- std::string str = "adb reconnect offline";
|
|
|
|
- WinExec(str.c_str(), SW_HIDE);
|
|
|
|
|
|
+#if 1
|
|
|
|
+ if ( it->nStatus == SATDEV::Offline ) {
|
|
|
|
+ // offline需要reconnect才能重连;
|
|
|
|
+ std::string str = "adb reconnect offline";
|
|
|
|
+ WinExec(str.c_str(), SW_HIDE);
|
|
|
|
+ GLOBAL::WriteTextLog("usb重连->设备类型:%d, 设备名称:%s, 状态:%d, 命令:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
|
|
+ // 等待adb启动;
|
|
|
|
+ Sleep(2500);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ // 是否需要kill=当时间达到掉线时长的1/2,则开启kill;
|
|
|
|
+ if ( GetTickCount64() - it->ulOfflineTime > 9000 ) { // 1/2掉线时长太久,固定9秒时间,大概3次重连;
|
|
|
|
+ std::string str = "adb kill-server";
|
|
|
|
+ // 如果是usb的话,可能要kill-server,再全部重连接;
|
|
|
|
+ WinExec(str.c_str(), SW_HIDE);
|
|
|
|
+ // 重连所有;
|
|
|
|
+ ReConnectAllDevices();
|
|
|
|
+ // 重连后,break此次循环;
|
|
|
|
+ GLOBAL::WriteTextLog("usb重连->设备类型:%d, 设备名称:%s, 状态:%d, 命令:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
|
|
+ // 等待adb启动;
|
|
|
|
+ Sleep(3500);
|
|
|
|
+ // kill后,需要重新GetCurrentDevices查询;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
#else
|
|
#else
|
|
std::string str = "adb kill-server";
|
|
std::string str = "adb kill-server";
|
|
// 如果是usb的话,可能要kill-server,再全部重连接;
|
|
// 如果是usb的话,可能要kill-server,再全部重连接;
|
|
@@ -193,11 +210,12 @@ DWORD CSATDevices::WorkThread(LPVOID lpVoid)
|
|
// 重连所有;
|
|
// 重连所有;
|
|
ReConnectAllDevices();
|
|
ReConnectAllDevices();
|
|
// 重连后,break此次循环;
|
|
// 重连后,break此次循环;
|
|
- GLOBAL::WriteTextLog("usb重连->设备类型:%d, 设备名称:%s, 状态:%d, 命名:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
|
|
-#endif
|
|
|
|
|
|
+ GLOBAL::WriteTextLog("usb重连->设备类型:%d, 设备名称:%s, 状态:%d, 命令:%s", it->nType, it->strName.c_str(), it->nStatus, str.c_str());
|
|
// 等待adb启动;
|
|
// 等待adb启动;
|
|
Sleep(3500);
|
|
Sleep(3500);
|
|
|
|
+ // kill后,需要重新GetCurrentDevices查询;
|
|
break;
|
|
break;
|
|
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
|
|
it++;
|
|
it++;
|
|
@@ -320,6 +338,9 @@ bool CSATDevices::IsDevicesOffline(SATDEV::STDevice &stDevice, std::vector<SATDE
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 将设备状态保存到配置文件中;
|
|
|
|
+ SaveDeviceStatus2Config(stDevice);
|
|
|
|
+
|
|
return bOffline;
|
|
return bOffline;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -427,4 +448,19 @@ int CSATDevices::AttachDeviceName2Buffer(SATPROTO::Device (&pbuff)[SATPROTO::MAX
|
|
}
|
|
}
|
|
|
|
|
|
return count;
|
|
return count;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CSATDevices::SaveDeviceStatus2Config(SATDEV::STDevice &stDevice)
|
|
|
|
+{
|
|
|
|
+ if ( stDevice.nType == SATDEV::Usb ) {
|
|
|
|
+ // 如果是usb设备重连成功,写入文件中;
|
|
|
|
+ TCHAR szIniPath[MAX_PATH] = {0};
|
|
|
|
+ _stprintf_s(szIniPath, _T("%s%s"), GLOBAL::g_szPython27Dir, "Lib\\site-packages\\ssat_sdk\\config\\resource_run.cfg");
|
|
|
|
+ if ( stDevice.nStatus == SATDEV::Online )
|
|
|
|
+ WritePrivateProfileString(_T("ADBSTATUS"), stDevice.strName.c_str(), _T("Online"), szIniPath);
|
|
|
|
+ else if ( stDevice.nStatus == SATDEV::Offline )
|
|
|
|
+ WritePrivateProfileString(_T("ADBSTATUS"), stDevice.strName.c_str(), _T("Offline"), szIniPath);
|
|
|
|
+ else if ( stDevice.nStatus == SATDEV::Dropline )
|
|
|
|
+ WritePrivateProfileString(_T("ADBSTATUS"), stDevice.strName.c_str(), _T("Dropline"), szIniPath);
|
|
|
|
+ }
|
|
}
|
|
}
|