Browse Source

1、修复添加网络adb时,offline的设备被重要添加;
2、脚本失败时,上传添加失败原因描述;

scbc.sat2 5 years ago
parent
commit
56115e1fe9
2 changed files with 29 additions and 7 deletions
  1. 20 3
      SATService/SATService/SATDevices.cpp
  2. 9 4
      SATService/SATService/SATExecutor.cpp

+ 20 - 3
SATService/SATService/SATDevices.cpp

@@ -164,9 +164,10 @@ DWORD CSATDevices::WorkThread(LPVOID lpVoid)
 					if ( it->nType == SATDEV::Reticle ) {
 						if ( it->nStatus == SATDEV::Offline ) {
 							// offline只能reconnect才能重连;
-							std::string str = "adb reconnect ";
-							str.append(it->strName);
+							std::string str = "adb reconnect offline";
 							WinExec(str.c_str(), SW_HIDE);
+							// 重连后,break此次循环;
+							break;
 						} 
 						else if ( it->nStatus == SATDEV::Dropline ) {
 							std::string str = "adb connect ";
@@ -174,10 +175,18 @@ DWORD CSATDevices::WorkThread(LPVOID lpVoid)
 							WinExec(str.c_str(), SW_HIDE);
 						}
 					} else if ( it->nType == SATDEV::Usb ) {
+#if 0
+						// offline只能reconnect才能重连;
+						std::string str = "adb reconnect offline";
+						WinExec(str.c_str(), SW_HIDE);
+#else
 						// 如果是usb的话,可能要kill-server,再全部重连接;
 						WinExec("adb kill-server", SW_HIDE);
 						// 重连所有;
 						ReConnectAllDevices();
+						// 重连后,break此次循环;
+#endif
+						break;
 					}
 
 					it++;
@@ -323,7 +332,9 @@ void CSATDevices::GetCurrentDevices(std::vector<SATDEV::STDevice> &vtDevices)
 	// offline设备也要加入,不区分usb或reticle;
 	for ( std::vector<std::string>::iterator it = vtLine.begin(); it != vtLine.end(); it++ ) {
 		//if ( _tcsicmp("List of devices attached ", it->c_str()) == 0 )
-		if ( it->find("List of devices attached") != std::string::npos )
+		if ( it->find("List of devices attached") != std::string::npos ||
+			 it->find("* daemon started successfully") != std::string::npos ||
+			 it->find("* daemon not running; starting now at tcp:") != std::string::npos )
 			continue;
 		SATDEV::STDevice stDevice;
 		// 设备类型;
@@ -339,6 +350,12 @@ void CSATDevices::GetCurrentDevices(std::vector<SATDEV::STDevice> &vtDevices)
 			stDevice.nStatus = SATDEV::Offline;
 		// 获取设备名;
 		stDevice.strName = it->substr(0, npos);
+		// 如果是网络,去掉5555;
+		if ( stDevice.nType == SATDEV::Reticle ) {
+			npos = stDevice.strName.find(":5555");
+			stDevice.strName = stDevice.strName.substr(0, npos);
+		}
+
 		// 新设备否(一般用于usb设备)
 		IsNewDevices(stDevice);
 		// 压入容器保存;

+ 9 - 4
SATService/SATService/SATExecutor.cpp

@@ -536,11 +536,15 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 
 	// 上报用例结果:0表示脚本成功执行,	1表示脚本出错或超时;
 	if ( pCase->_nExecutionState == SATHTTP::EXECUTED ) {
-		if ( pCase->_nExecutionResult == SATHTTP::SUCCESS )
-			stJobProcessReq.strResultState = "0";	// 脚本未执行完成;
+		if ( pCase->_nExecutionResult == SATHTTP::SUCCESS ) {
+			stJobProcessReq.strResultState = "0";
+			stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本执行成功");
+		}
 		else {
 			if ( pCase->_nExecutionResult == SATHTTP::ABNORMAL )
-				stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本异常结束");
+				stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本执行异常");
+			else
+				stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本执行失败");
 			stJobProcessReq.strResultState = "1";
 			// 同时标记任务失败;
 			pTask->_nExecutionResult = SATHTTP::FAIL;
@@ -550,6 +554,7 @@ bool CSATExecutor::ReportCaseFinish(SATHTTP::STTask* pTask, SATHTTP::STCase *pCa
 		stJobProcessReq.strResultState = "1";	// 脚本执行未完成,认为fail;
 		// 同时标记任务失败;
 		pTask->_nExecutionResult = SATHTTP::FAIL;
+		stJobProcessReq.strFailedReason = CharEncoding::ASCII2UTF8("脚本未执行");
 	}
 	
 	stJobProcessReq.strCaseScene = "";
@@ -1107,7 +1112,7 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 			}
 		}
 
-	} while ( WaitForSingleObject(that->m_hEventHearbeat, 5000) == WAIT_TIMEOUT );
+	} while ( WaitForSingleObject(that->m_hEventHearbeat, 10000) == WAIT_TIMEOUT );
 
 	return 0;
 }