Bladeren bron

完善正式的执行流程逻辑、参数;

scbc.sat2 5 jaren geleden
bovenliggende
commit
91b1a9d2ef

+ 7 - 0
SATService/SATService/Global.cpp

@@ -191,7 +191,14 @@ namespace GLOBAL
 
 		// »ñÈ¡·þÎñÆ÷¶ËÐÅÏ¢;
 		GetPrivateProfileString(_T("SATService"), _T("ScriptDir"), _T(""), g_stSATConfig.szScriptDir, MAX_PATH, szIniPath);
+		if ( g_stSATConfig.szScriptDir[_tcslen(g_stSATConfig.szScriptDir)-1] != '\\')
+		{
+			_tcscat_s(g_stSATConfig.szScriptDir, MAX_PATH, "\\");
+			WritePrivateProfileString(_T("SATService"), _T("ScriptDir"), g_stSATConfig.szScriptDir, szIniPath);
+		}
+
 		g_stSATConfig.nAdbTimeout = GetPrivateProfileInt(_T("SATService"), _T("AdbTimeout"), 120, szIniPath);
+		g_stSATConfig.dwTCPSvrPort = GetPrivateProfileInt(_T("SATService"), _T("TCPSvrPort"), 5588, szIniPath);
 		GetPrivateProfileString(_T("SATService"), _T("ExecuteServer"), _T(""), g_stSATConfig.szExecuteServer, MAX_PATH, szIniPath);
 		GetPrivateProfileString(_T("SATService"), _T("ExecuteSyscode"), _T(""), g_stSATConfig.szExecuteSysCode, MAX_PATH, szIniPath);
 

+ 12 - 9
SATService/SATService/Global.h

@@ -35,24 +35,28 @@ namespace GLOBAL
 {
 	typedef struct __ST_SAT_CFG__ 
 	{
+		// adb超时断线时长;
 		int nAdbTimeout;
-		TCHAR szScriptDir[MAX_PATH];		// 脚本路径;
+		// 脚本路径;
+		TCHAR szScriptDir[MAX_PATH];
+		// Apk接口地址;
 		TCHAR szApkServer[MAX_PATH];
 		TCHAR szApkSysCode[MAX_PATH];
-
+		// 用例接口地址;
 		TCHAR szCaseServer[MAX_PATH];
 		TCHAR szCaseSysCode[MAX_PATH];
-
+		// 任务接口地址;
 		TCHAR szTaskServer[MAX_PATH];
 		TCHAR szTaskSysCode[MAX_PATH];
-
+		// 结果接口地址;
 		TCHAR szResultServer[MAX_PATH];
-		//TCHAR szResultSysCode[MAX_PATH];
-
+		TCHAR szResultExcelDir[MAX_PATH];
+		// 执行器接口地址;
 		TCHAR szExecuteServer[MAX_PATH];
 		TCHAR szExecuteSysCode[MAX_PATH];
-
-		TCHAR szResultExcelDir[MAX_PATH];
+		// TCP服务端接口;
+		DWORD dwTCPSvrPort;
+		// 这个可以忽略不要;
 		typedef struct  __ST_LD__
 		{
 			TCHAR szDevice[MAX_PATH];
@@ -60,7 +64,6 @@ namespace GLOBAL
 			TCHAR szHardwareVersion[MAX_PATH];
 			TCHAR szModel[MAX_PATH];
 		}STLinuxDevice, *pSTLinuxDevice;
-
 		STLinuxDevice stLinuxDevice;
 	}STSATConfig, *pSTSATConfig;
 

+ 14 - 38
SATService/SATService/SATExecutor.cpp

@@ -235,44 +235,25 @@ bool CSATExecutor::Logout(std::string user, std::string password)
 
 bool CSATExecutor::UpdateDevice()
 {
-	SATHTTP::STDevice stDevice;
-	stDevice.strStatus = "0";	// 0表示设备空闲; 1表示设备忙碌
-	stDevice.strDeviceSerial = "192.168.1.119:5555";
-	stDevice.strHardwareVersion = "SATHardwareVersion";
-	stDevice.strManu = "SATManu";
-	stDevice.strDeviceMac = "";
-	stDevice.strLastJobStartTime = "";
-	stDevice.strLastTimeBreak = "";
-	stDevice.strComments = "";
-	stDevice.strCPU = "";
-	stDevice.strSoftwareVersion = "0123456789";
-	stDevice.strPhoneNumber = "";
-	stDevice.strLastJobFinishTime = "";
-	stDevice.strMemory = "";
-	stDevice.strModel = "SATModel";
-	stDevice.strLastJob = "";
-	stDevice.strLastTimeConnected = "2019-12-16 10:16:01";
-	stDevice.strElectric = "";
-
 	SATHTTP::STUpdateDeviceReq stUpdateDeviceReq;
 	SATHTTP::STUpdateDeviceResp stUpdateDeviceResp;
 	std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
 	url.append("/ajaxInteractiveManage!updateDeviceMessage.action");
-	
+	// 这个状态值要怎么设置?// 此处统一为0;
 	stUpdateDeviceReq.strStatus = "0";
 	stUpdateDeviceReq.strUserName = m_stLoginReq.strUserName;		
 	stUpdateDeviceReq.strIP = GLOBAL::g_strIPAddress;
-	stUpdateDeviceReq.strStorage = "228092536KB";
-	stUpdateDeviceReq.strRunnerName = "SAT-Admin";
+	stUpdateDeviceReq.strStorage = "";
+	stUpdateDeviceReq.strRunnerName = m_strActuatorName;
 	// 这里使用PC物理地址;
 	stUpdateDeviceReq.strMAC = GLOBAL::g_strMacs;
+	// 这个reportType具体意义不明;
 	stUpdateDeviceReq.strReportType = "1";
-	stUpdateDeviceReq.strStartTime = "2019-12-16 19:15:30";
-	stUpdateDeviceReq.strMemory = "8938544KB";
+	stUpdateDeviceReq.strStartTime = CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S"));
+	stUpdateDeviceReq.strMemory = "";
 	stUpdateDeviceReq.strEndTime = "";
-	stUpdateDeviceReq.strCPU = "24.7%";
-	stUpdateDeviceReq.devicelist.push_back(stDevice);
-	m_vtDevice.push_back(stDevice);
+	stUpdateDeviceReq.strCPU = "";
+	stUpdateDeviceReq.devicelist.assign(m_vtDevice.begin(), m_vtDevice.end());
 	if ( !::UpdateDeviceMessage(url, stUpdateDeviceReq, stUpdateDeviceResp) )
 	{
 		return false;
@@ -305,7 +286,8 @@ bool CSATExecutor::NotifyTaskStart(SATHTTP::STTask* pTask)
 	//_itoa_s(pTask->nTaskId, szValue, 10);
 	stNotifyJobStartReq.strTaskId = pTask->Job.strTaskId;
 
-	stNotifyJobStartReq.strSignalImageUrl = "D:\\\\SAT\\\\Runner\\\\btc_runner_se\\\\runner\\\\output\\\\";//ODF_NPI_RT2841\\\\20191216101613370\\\\192.168.1.119_5555";
+	// 这个映像路径有何用?
+	stNotifyJobStartReq.strSignalImageUrl = GLOBAL::g_stSATConfig.szScriptDir;
 	stNotifyJobStartReq.strSignalImageUrl.append(pTask->strTaskName+"\\\\");
 	stNotifyJobStartReq.strSignalImageUrl.append(pTask->Job.strUniqueId+"\\\\");
 	stNotifyJobStartReq.strSignalImageUrl.append(pTask->Job.strDeviceId);
@@ -915,6 +897,9 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 	do {
 		// 没有登录成功,不查询;
 		if ( !that->m_bLogin ) continue;
+
+		// 更新设备;
+		that->UpdateDevice();
 		
 		SATHTTP::STHeartbeatReq stHeartbeatReq;
 		SATHTTP::STHeartbeatResp stHeartbeatResp;
@@ -925,10 +910,6 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 		stHeartbeatReq.strRunnerMac = that->m_stLoginReq.strMAC;
 		stHeartbeatReq.devicelist.assign(that->m_vtDevice.begin(), that->m_vtDevice.end());
 		if ( Heartbeat(url, stHeartbeatReq, stHeartbeatResp) ) {
-#ifdef _DEBUG
-			OutputDebugString("心跳查询成功\n");
-#endif
-			GLOBAL::WriteTextLog("心跳查询成功");
 			std::vector<SATHTTP::STTask>::iterator it = stHeartbeatResp.vtTask.begin();
 			for ( ; it != stHeartbeatResp.vtTask.end(); it++ ) {
 				if (!that->IsTaskExist(*it)) {
@@ -939,6 +920,7 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 					std::string url = host + "/ajaxInteractiveManage!getCaseFileListUrl.action";
 					std::vector<SATHTTP::STCase>::iterator _case = it->Job.vtCases.begin();
 					for ( int i = 1; _case != it->Job.vtCases.end(); _case++) {
+						// 下载脚本;
 						_case->_nCaseStep = i++;
 						SATHTTP::STScriptUrlResp stScriptUrlResp;
 						if ( DownloadScript(url, _case->strId, GLOBAL::g_stSATConfig.szScriptDir, stScriptUrlResp) ) {
@@ -946,12 +928,6 @@ DWORD CSATExecutor::HearbeatThread(LPVOID lpVoid)
 							_case->_strFileName = stScriptUrlResp._strFileName;
 							_case->_strScriptPath = stScriptUrlResp._strScripFile;
 						}
-#ifdef _DEBUG
-						else
-						{
-							OutputDebugString("下载脚本失败\n");
-						}
-#endif
 					}
 
 					that->m_vtTask.push_back(*it);

+ 6 - 22
SATService/SATService/SATService.cpp

@@ -24,16 +24,11 @@ extern int test();
 void CALLBACK WorkStart()
 {
 	WindowsService::GetDebugPriv();
-
-#ifdef _DEBUG
-	CSATExecutor::GetInstance()->Login("superAdmin", "123456", "SAT-Admin");
-	CSATExecutor::GetInstance()->UpdateDevice();
-#endif
 	// 启用SAT执行器;
 	CSATExecutor::GetInstance()->StartWork();
 	// 启动SAT TCP服务端;
 	CSATTCPServer::GetInstance()->LoadSocketLib();
-	CSATTCPServer::GetInstance()->Start(5588);
+	CSATTCPServer::GetInstance()->Start(GLOBAL::g_stSATConfig.dwTCPSvrPort);
 	// 启动设备扫描器;
 	CSATDevices::GetInstance()->StartWork();
 }
@@ -73,36 +68,25 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
 		GLOBAL::GetLocalAddress();
 		GLOBAL::WriteTextLog("SATService goto start");
 #ifdef _DEBUG
-
-#if 0
-		// 启用SAT执行器;
-		CSATExecutor::GetInstance()->Login("superAdmin", "123456");
-		CSATExecutor::GetInstance()->UpdateDevice();
+		// 启动执行器;
 		CSATExecutor::GetInstance()->StartWork();
-#endif
-
-#if 1
 		// 启动SAT TCP服务端;
 		CSATTCPServer::GetInstance()->LoadSocketLib();
-		CSATTCPServer::GetInstance()->Start(5599);
-#endif
-
-#if 1
+		CSATTCPServer::GetInstance()->Start(GLOBAL::g_stSATConfig.dwTCPSvrPort);
+		// 启动设备管理;
 		CSATDevices::GetInstance()->StartWork();
-#endif
 
 		// 指定时间停止;
 		ULONGLONG ulTickCount = GetTickCount64();
 		//while (GetTickCount64() - ulTickCount < 1800000 )
 		while(1)
 		{
-			//CSATExecutor::GetInstance()->Login("superAdmin", "123456");
 			//printf("倒计时:%ld\n",GetTickCount64() - ulTickCount);
 			Sleep(1000);
 		}
 
-		CSATTCPServer::GetInstance()->Stop();
-		
+		// 关闭TCP服务;
+		CSATTCPServer::GetInstance()->Stop();		
 		return 0;
 #endif
 		// 进程存在,直接退出;