|  | @@ -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);
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  |  }
 |  |  }
 |