|
@@ -22,8 +22,13 @@ bool CSATExecutor::IsTaskExist(SATHTTP::STTask &task)
|
|
|
bool found = false;
|
|
|
std::list<SATHTTP::STTask>::iterator it = m_vtTask.begin();
|
|
|
for ( ; it != m_vtTask.end(); it++ ) {
|
|
|
-
|
|
|
- if ( it->Id == task.Id ) {
|
|
|
+
|
|
|
+ if ( it->nInstanceId == task.nInstanceId ) {
|
|
|
+
|
|
|
+ if ( _tcsicmp(task.strTaskType.c_str(), "3") == 0 ) {
|
|
|
+ it->_nExecutionState = SATHTTP::EXECUTED;
|
|
|
+ it->_nExecutionResult = SATHTTP::FAIL;
|
|
|
+ }
|
|
|
found = true;
|
|
|
break;
|
|
|
}
|
|
@@ -65,14 +70,23 @@ void CSATExecutor::DelFinishedTask()
|
|
|
for ( ; it != m_vtTask.end(); it++ ) {
|
|
|
|
|
|
if ( it->_nExecutionState == SATHTTP::EXECUTED ) {
|
|
|
- GLOBAL::WriteTextLog("\n<===============================================>\nend.删除已完成任务:%s\n<===============================================>\n", it->Job.strUniqueId.c_str());
|
|
|
|
|
|
+ CPythonExecutor *pExecutor = NULL;
|
|
|
for (std::vector<SATHTTP::STCase>::iterator _case = it->Job.vtCases.begin(); _case != it->Job.vtCases.end(); _case++ ) {
|
|
|
- if ( _case->_pExcutor )
|
|
|
- delete _case->_pExcutor;
|
|
|
- _case->_pExcutor = NULL;
|
|
|
+ pExecutor = (CPythonExecutor *)_case->_pExcutor;
|
|
|
+ if ( pExecutor ) {
|
|
|
+
|
|
|
+ pExecutor->EndThread();
|
|
|
+
|
|
|
+ delete pExecutor;
|
|
|
+ pExecutor = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ SetDeviceStatus(it->Job.strDeviceId, SATDEV::Idle);
|
|
|
+
|
|
|
m_vtTask.erase(it);
|
|
|
+ GLOBAL::WriteTextLog("\n<===============================================>\nend.删除已完成任务:%s\n<===============================================>\n", it->Job.strUniqueId.c_str());
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -159,7 +173,7 @@ void CSATExecutor::AddDevices(const SATDEV::STDevice &stDevice)
|
|
|
if ( stDevice.nStatus == SATDEV::Idle )
|
|
|
http_dev.strStatus = "0";
|
|
|
else if ( stDevice.nStatus == SATDEV::InUse )
|
|
|
- http_dev.strStatus = "1";
|
|
|
+ http_dev.strStatus = "2";
|
|
|
|
|
|
http_dev.strDeviceSerial = stDevice.strName;
|
|
|
|
|
@@ -193,7 +207,7 @@ void CSATExecutor::DelDevices(const SATDEV::STDevice &stDevice)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void CSATExecutor::SynchDeviceStatus(std::string strDevName, SATDEV::DEVICE_USAGE_STATUS status)
|
|
|
+void CSATExecutor::SetDeviceStatus(std::string strDevName, SATDEV::DEVICE_USAGE_STATUS status)
|
|
|
{
|
|
|
std::vector<SATHTTP::STDevice>::iterator it = m_vtDevice.begin();
|
|
|
for ( ; it != m_vtDevice.end(); it++ ) {
|
|
@@ -201,11 +215,12 @@ void CSATExecutor::SynchDeviceStatus(std::string strDevName, SATDEV::DEVICE_USAG
|
|
|
if ( status == SATDEV::Idle )
|
|
|
it->strStatus = "0";
|
|
|
else if ( status == SATDEV::InUse )
|
|
|
- it->strStatus = "1";
|
|
|
+ it->strStatus = "2";
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
CSATDevices::SetDeviceUsageStatus(strDevName, status);
|
|
|
}
|
|
|
|
|
@@ -223,6 +238,7 @@ bool CSATExecutor::IsDeviceExist(std::string strDevName)
|
|
|
return bExist;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
bool CSATExecutor::Login(std::string user, std::string password, std::string actuator, bool bLogin )
|
|
|
{
|
|
|
std::string url = GLOBAL::g_stSATConfig.szExecuteServer;
|
|
@@ -1212,6 +1228,9 @@ DWORD CSATExecutor::ExecuteScriptThread(LPVOID lpVoid)
|
|
|
|
|
|
|
|
|
that->ReportTaskStart(pTask);
|
|
|
+
|
|
|
+
|
|
|
+ that->SetDeviceStatus(pTask->Job.strDeviceId, SATDEV::InUse);
|
|
|
}
|
|
|
}
|
|
|
} while ( WaitForSingleObject(that->m_hEventExcuteScript, 10000) == WAIT_TIMEOUT );
|