|
@@ -30,10 +30,12 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
|
|
|
else
|
|
|
{
|
|
|
// TODO: 在此处为应用程序的行为编写代码。
|
|
|
+ std::string host = "10.118.158.52:8580";//"http://10.118.158.198:8090";
|
|
|
+ //////////////////////////////////////////////////////////////////////////
|
|
|
SATParameters::STLoginReq stLoginReq;
|
|
|
SATParameters::STLoginResp stLoginResp;
|
|
|
- std::string url = "http://10.118.158.198:8090/btc_execute_se/ajaxInteractiveManage!executeLogin.action";
|
|
|
-
|
|
|
+ std::string url = host + "/btc_execute_se/ajaxInteractiveManage!executeLogin.action";
|
|
|
+
|
|
|
// 示例值;
|
|
|
stLoginReq.strUserName = "superAdmin";
|
|
|
stLoginReq.strStatus = "0";
|
|
@@ -47,16 +49,91 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
|
|
|
stLoginReq.strPassword = "123456";
|
|
|
stLoginReq.strCPU = "";
|
|
|
|
|
|
- if ( Login(url, stLoginReq, stLoginResp) )
|
|
|
+ // ##########################先登录##############################;
|
|
|
+ if ( !Login(url, stLoginReq, stLoginResp) )
|
|
|
+ {
|
|
|
+ system("pause");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ printf("登录返回:code=%s, msg=%s, str=%s, portCount=%d, companyid=%d, runnertoken=%s\n",
|
|
|
+ stLoginResp.strCode.c_str(),
|
|
|
+ stLoginResp.strMessage.c_str(),
|
|
|
+ stLoginResp.strStr.c_str(),
|
|
|
+ stLoginResp.nPortCount,
|
|
|
+ stLoginResp.nCompanyId,
|
|
|
+ stLoginResp.strRunnerToken.c_str());
|
|
|
+
|
|
|
+ SATParameters::STDevice stDevice;
|
|
|
+ stDevice.strStatus = "0";
|
|
|
+ stDevice.strDeviceSerial = "192.168.1.119:5555";
|
|
|
+
|
|
|
+ // ##########################更新设备信息##############################;
|
|
|
+ SATParameters::STUpdateDeviceReq stUpdateDeviceReq;
|
|
|
+ SATParameters::STUpdateDeviceResp stUpdateDeviceResp;
|
|
|
+ __if_not_exists(url)
|
|
|
+ {
|
|
|
+ std::string url = host + "/btc_execute_se/ajaxInteractiveManage!updateDeviceMessage.action";
|
|
|
+ }
|
|
|
+ __if_exists(url)
|
|
|
+ {
|
|
|
+ url = host + "/btc_execute_se/ajaxInteractiveManage!updateDeviceMessage.action";
|
|
|
+ }
|
|
|
+
|
|
|
+ stUpdateDeviceReq.strStatus = "0";
|
|
|
+ stUpdateDeviceReq.strUserName = "superAdmin";
|
|
|
+ stUpdateDeviceReq.strIP = "10.118.158.175";
|
|
|
+ stUpdateDeviceReq.strStorage = "228092536KB";
|
|
|
+ stUpdateDeviceReq.strRunnerName = "SAT-Admin";
|
|
|
+ stUpdateDeviceReq.strMAC = "40:16:7e:23:10:53";
|
|
|
+ stUpdateDeviceReq.strReportType = "1";
|
|
|
+ stUpdateDeviceReq.strStartTime = "2019-12-16 19:15:30";
|
|
|
+ stUpdateDeviceReq.strMemory = "8938544KB";
|
|
|
+ stUpdateDeviceReq.strEndTime = "";
|
|
|
+ stUpdateDeviceReq.strCPU = "24.7%";
|
|
|
+ if ( UpdateDeviceMessage(url, stUpdateDeviceReq, stUpdateDeviceResp) )
|
|
|
+ {
|
|
|
+ printf("更新设备信息成功:code=%s, msg=%s, str=%s\n",
|
|
|
+ stLoginResp.strCode.c_str(),
|
|
|
+ stLoginResp.strMessage.c_str(),
|
|
|
+ stLoginResp.strStr.c_str());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ printf("更新设备信息失败!\n");
|
|
|
+ }
|
|
|
+
|
|
|
+ // ##########################心跳包机制##############################;
|
|
|
+ SATParameters::STHeartbeatReq stHeartbeatReq;
|
|
|
+ SATParameters::STHeartbeatResp stHeartbeatResp;
|
|
|
+ __if_not_exists(url)
|
|
|
+ {
|
|
|
+ std::string url = host + "/btc_execute_se/ajaxInteractiveManage!executeHeartbeat.action";
|
|
|
+ }
|
|
|
+ __if_exists(url)
|
|
|
+ {
|
|
|
+ url = host + "/btc_execute_se/ajaxInteractiveManage!executeHeartbeat.action";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 示例值;
|
|
|
+ stDevice.strStatus = "0";
|
|
|
+ stDevice.strDeviceSerial = "192.168.1.119:5555";
|
|
|
+
|
|
|
+ stHeartbeatReq.strUserName = "superAdmin";
|
|
|
+ stHeartbeatReq.strRunnerMac = "40:16:7e:23:10:53";
|
|
|
+ stHeartbeatReq.devicelist.push_back(stDevice);
|
|
|
+ if ( Heartbeat(url, stHeartbeatReq, stHeartbeatResp) )
|
|
|
{
|
|
|
printf("登录返回:code=%s, msg=%s, str=%s, portCount=%d, companyid=%d, runnertoken=%s\n",
|
|
|
stLoginResp.strCode.c_str(),
|
|
|
stLoginResp.strMessage.c_str(),
|
|
|
- stLoginResp.strDesc.c_str(),
|
|
|
+ stLoginResp.strStr.c_str(),
|
|
|
stLoginResp.nPortCount,
|
|
|
stLoginResp.nCompanyId,
|
|
|
stLoginResp.strRunnerToken.c_str());
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
system("pause");
|
|
@@ -101,7 +178,7 @@ SATHTTP_API int Login(std::string url, const SATParameters::STLoginReq &stLoginR
|
|
|
|
|
|
char *pText = cJSON_Print(pRoot);
|
|
|
std::string post_data = "requestMsg=";
|
|
|
- post_data.append(pText);
|
|
|
+ post_data.append(pText, strlen(pText));
|
|
|
|
|
|
// 释放堆内存;
|
|
|
if (pText)
|
|
@@ -120,7 +197,7 @@ SATHTTP_API int Login(std::string url, const SATParameters::STLoginReq &stLoginR
|
|
|
if (_tcsstr(url.c_str(), "https://") || _tcsstr(url.c_str(), "HTTPS://") )
|
|
|
curlCode = curl.Posts(url, post_data, reponse);
|
|
|
else
|
|
|
- curlCode = curl.Posts(url, post_data, reponse);
|
|
|
+ curlCode = curl.Post(url, post_data, reponse);
|
|
|
|
|
|
if ( curlCode == CURLE_OK )
|
|
|
{
|
|
@@ -135,7 +212,7 @@ SATHTTP_API int Login(std::string url, const SATParameters::STLoginReq &stLoginR
|
|
|
{
|
|
|
stLoginResp.strCode = cJSON_GetObjectItem(pMsg, "code") ? cJSON_GetObjectItem(pMsg, "code")->valuestring : "";
|
|
|
stLoginResp.strMessage = cJSON_GetObjectItem(pMsg, "message") ? cJSON_GetObjectItem(pMsg, "message")->valuestring : "";
|
|
|
- stLoginResp.strDesc = cJSON_GetObjectItem(pMsg, "str") ? (cJSON_GetObjectItem(pMsg, "str")->valuestring ? cJSON_GetObjectItem(pMsg, "str")->valuestring : "") : "";
|
|
|
+ stLoginResp.strStr = cJSON_GetObjectItem(pMsg, "str") ? (cJSON_GetObjectItem(pMsg, "str")->valuestring ? cJSON_GetObjectItem(pMsg, "str")->valuestring : "") : "";
|
|
|
if ( stLoginResp.strCode == "00" )
|
|
|
{
|
|
|
cJSON *pObj = cJSON_GetObjectItem(pMsg, "data");
|
|
@@ -152,7 +229,333 @@ SATHTTP_API int Login(std::string url, const SATParameters::STLoginReq &stLoginR
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ // 错误产生,可输出msg方便查询;
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return FALSE;
|
|
|
+}
|
|
|
+
|
|
|
+SATHTTP_API int UpdateDeviceMessage(std::string url, const SATParameters::STUpdateDeviceReq &stUpdateDeviceReq, SATParameters::STUpdateDeviceResp &stUpdateDeviceResp)
|
|
|
+{
|
|
|
+ // 转化为Json;
|
|
|
+ cJSON *pRoot = cJSON_CreateObject();
|
|
|
+ if ( pRoot == NULL )
|
|
|
+ {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ ASSERT(cJSON_AddStringToObject(pRoot, "sysCode", "Execute"));
|
|
|
+ cJSON *pData = cJSON_CreateObject();
|
|
|
+ if ( pData )
|
|
|
+ {
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "status", stUpdateDeviceReq.strStatus.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "userName", stUpdateDeviceReq.strUserName.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "ip", stUpdateDeviceReq.strIP.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "storage", stUpdateDeviceReq.strStorage.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "runnerName", stUpdateDeviceReq.strRunnerName.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "mac", stUpdateDeviceReq.strMAC.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "reportType", stUpdateDeviceReq.strReportType.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "startTime", stUpdateDeviceReq.strStartTime.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "memory", stUpdateDeviceReq.strMemory.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "endTime", stUpdateDeviceReq.strEndTime.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "cpu", stUpdateDeviceReq.strCPU.c_str()));
|
|
|
+ cJSON *pDeviceList = cJSON_CreateArray();
|
|
|
+ if ( pDeviceList )
|
|
|
+ {
|
|
|
+ cJSON_AddItemToObject(pData, "devicelist", pDeviceList);
|
|
|
+ for ( std::vector<SATParameters::STDevice>::const_iterator it = stUpdateDeviceReq.devicelist.begin(); it != stUpdateDeviceReq.devicelist.end(); it++ )
|
|
|
+ {
|
|
|
+ cJSON *pObj = cJSON_CreateObject();
|
|
|
+ if ( pObj )
|
|
|
+ {
|
|
|
+ ASSERT(cJSON_AddStringToObject(pObj, "status", it->strStatus.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pObj, "deviceSerial", it->strDeviceSerial.c_str()));
|
|
|
+
|
|
|
+ cJSON_AddItemToObject(pDeviceList, "", pObj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加到根结点中;
|
|
|
+ cJSON_AddItemToObject(pRoot, "data", pData);
|
|
|
+ }
|
|
|
+
|
|
|
+ char *pText = cJSON_Print(pRoot);
|
|
|
+ std::string post_data = "requestMsg=";
|
|
|
+ post_data.append(pText, strlen(pText));
|
|
|
+
|
|
|
+ // 释放堆内存;
|
|
|
+ if (pText)
|
|
|
+ delete pText;
|
|
|
+ pText = NULL;
|
|
|
+
|
|
|
+ if ( pRoot )
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+ pRoot = NULL;
|
|
|
+
|
|
|
+ CCurlClient curl;
|
|
|
+ std::string reponse;
|
|
|
+ CURLcode curlCode = CURLE_OK;
|
|
|
+ if ( CURLE_OK == curl.Initialize() )
|
|
|
+ {
|
|
|
+ //curl.SetHeaders("Content-Type: application/json");
|
|
|
+ curl.SetHeaders("Accept: */*");
|
|
|
+ curl.SetHeaders("Connection: Keep-Alive");
|
|
|
+ //curl.SetHeaders("Accept-Encoding: gzip, deflate");
|
|
|
+ curl.SetHeaders("user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|
|
+ //post_data = CharEncoding::EnCode_UTF8URL(post_data.c_str());
|
|
|
+ //post_data = CharEncoding::EnCode_UNICODEURL(post_data.c_str());
|
|
|
+ //post_data = CharEncoding::EnCode_GB2312URL(post_data.c_str());
|
|
|
+ if (_tcsstr(url.c_str(), "https://") || _tcsstr(url.c_str(), "HTTPS://") )
|
|
|
+ curlCode = curl.Posts(url, post_data, reponse);
|
|
|
+ else
|
|
|
+ curlCode = curl.Post(url, post_data, reponse);
|
|
|
+
|
|
|
+ if ( curlCode == CURLE_OK )
|
|
|
+ {
|
|
|
+ reponse = CharEncoding::DeCode_URLUTF8(reponse.c_str());
|
|
|
+
|
|
|
+ // 解析返回值;
|
|
|
+ pRoot = cJSON_Parse(reponse.c_str());
|
|
|
+ if (pRoot != NULL)
|
|
|
+ {
|
|
|
+ cJSON *pMsg = cJSON_GetObjectItem(pRoot, "responseMsg");
|
|
|
+ if ( pMsg )
|
|
|
+ {
|
|
|
+ stUpdateDeviceResp.strCode = cJSON_GetObjectItem(pMsg, "code") ? cJSON_GetObjectItem(pMsg, "code")->valuestring : "";
|
|
|
+ stUpdateDeviceResp.strMessage = cJSON_GetObjectItem(pMsg, "message") ? cJSON_GetObjectItem(pMsg, "message")->valuestring : "";
|
|
|
+ stUpdateDeviceResp.strStr = cJSON_GetObjectItem(pMsg, "str") ? (cJSON_GetObjectItem(pMsg, "str")->valuestring ? cJSON_GetObjectItem(pMsg, "str")->valuestring : "") : "";
|
|
|
+ if ( stUpdateDeviceResp.strCode == "00" )
|
|
|
+ {
|
|
|
+ cJSON *pObj = cJSON_GetObjectItem(pMsg, "data");
|
|
|
+ if (pObj != NULL)
|
|
|
+ {
|
|
|
+ //stLoginResp.nPortCount = cJSON_GetObjectItem(pObj, "portCount") ? cJSON_GetObjectItem(pObj, "portCount")->valueint : -1;
|
|
|
+ //stLoginResp.nCompanyId = cJSON_GetObjectItem(pObj, "companyId") ? cJSON_GetObjectItem(pObj, "companyId")->valueint : -1;
|
|
|
+ //stLoginResp.strRunnerToken = cJSON_GetObjectItem(pObj, "runnerToken") ? cJSON_GetObjectItem(pObj, "runnerToken")->valuestring : "";
|
|
|
+ // 释放内存;
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+
|
|
|
+ // 返回结果;
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 错误产生,可输出msg方便查询;
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return FALSE;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SATHTTP_API int Heartbeat(std::string url, const SATParameters::STHeartbeatReq &stHeartbeatReq, SATParameters::STHeartbeatResp &stHeartbeatResp)
|
|
|
+{
|
|
|
+ // 转化为Json;
|
|
|
+ cJSON *pRoot = cJSON_CreateObject();
|
|
|
+ if ( pRoot == NULL )
|
|
|
+ {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ ASSERT(cJSON_AddStringToObject(pRoot, "sysCode", "EXECUTE"));
|
|
|
+ cJSON *pData = cJSON_CreateObject();
|
|
|
+ if ( pData )
|
|
|
+ {
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "userName", stHeartbeatReq.strUserName.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pData, "runnerMac", stHeartbeatReq.strRunnerMac.c_str()));
|
|
|
+ cJSON *pDeviceList = cJSON_CreateArray();
|
|
|
+ if ( pDeviceList )
|
|
|
+ {
|
|
|
+ cJSON_AddItemToObject(pData, "deviceList", pDeviceList);
|
|
|
+ for ( std::vector<SATParameters::STDevice>::const_iterator it = stHeartbeatReq.devicelist.begin(); it != stHeartbeatReq.devicelist.end(); it++ )
|
|
|
+ {
|
|
|
+ cJSON *pObj = cJSON_CreateObject();
|
|
|
+ if ( pObj )
|
|
|
+ {
|
|
|
+ ASSERT(cJSON_AddStringToObject(pObj, "status", it->strStatus.c_str()));
|
|
|
+ ASSERT(cJSON_AddStringToObject(pObj, "deviceSerial", it->strDeviceSerial.c_str()));
|
|
|
+
|
|
|
+ cJSON_AddItemToObject(pDeviceList, "", pObj);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加到根结点中;
|
|
|
+ cJSON_AddItemToObject(pRoot, "data", pData);
|
|
|
+ }
|
|
|
+
|
|
|
+ char *pText = cJSON_Print(pRoot);
|
|
|
+ std::string post_data = "requestMsg=";
|
|
|
+ post_data.append(pText);
|
|
|
+
|
|
|
+ // 释放堆内存;
|
|
|
+ if (pText)
|
|
|
+ delete pText;
|
|
|
+ pText = NULL;
|
|
|
+
|
|
|
+ if ( pRoot )
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+ pRoot = NULL;
|
|
|
+
|
|
|
+ CCurlClient curl;
|
|
|
+ std::string reponse;
|
|
|
+ CURLcode curlCode = CURLE_OK;
|
|
|
+ if ( CURLE_OK == curl.Initialize() )
|
|
|
+ {
|
|
|
+ if (_tcsstr(url.c_str(), "https://") || _tcsstr(url.c_str(), "HTTPS://") )
|
|
|
+ curlCode = curl.Posts(url, post_data, reponse);
|
|
|
+ else
|
|
|
+ curlCode = curl.Post(url, post_data, reponse);
|
|
|
+
|
|
|
+ if ( curlCode == CURLE_OK )
|
|
|
+ {
|
|
|
+ reponse = CharEncoding::DeCode_URLUTF8(reponse.c_str());
|
|
|
+
|
|
|
+ // 解析返回值;
|
|
|
+ pRoot = cJSON_Parse(reponse.c_str());
|
|
|
+ if (pRoot != NULL)
|
|
|
+ {
|
|
|
+ cJSON *pMsg = cJSON_GetObjectItem(pRoot, "responseMsg");
|
|
|
+ if ( pMsg )
|
|
|
+ {
|
|
|
+ stHeartbeatResp.strCode = cJSON_GetObjectItem(pMsg, "code") ? cJSON_GetObjectItem(pMsg, "code")->valuestring : "";
|
|
|
+ stHeartbeatResp.strMessage = cJSON_GetObjectItem(pMsg, "message") ? cJSON_GetObjectItem(pMsg, "message")->valuestring : "";
|
|
|
+ stHeartbeatResp.strStr = cJSON_GetObjectItem(pMsg, "str") ? (cJSON_GetObjectItem(pMsg, "str")->valuestring ? cJSON_GetObjectItem(pMsg, "str")->valuestring : "") : "";
|
|
|
+ if ( stHeartbeatResp.strCode == "00" )
|
|
|
+ {
|
|
|
+ cJSON *pObj = cJSON_GetObjectItem(pMsg, "data");
|
|
|
+ if (pObj != NULL)
|
|
|
+ {
|
|
|
+ int nSise = cJSON_GetArraySize(pObj);
|
|
|
+ for ( int i = 0; i < nSise; i++ )
|
|
|
+ {
|
|
|
+ cJSON *pTask = cJSON_GetArrayItem(pObj, i);
|
|
|
+ if ( pTask )
|
|
|
+ {
|
|
|
+ SATParameters::STTask stTask;
|
|
|
+ stTask.strInstanceName = cJSON_GetObjectItem(pTask, "instanceName") ? cJSON_GetObjectItem(pTask, "instanceName")->valuestring : "";
|
|
|
+ stTask.strExecutionStatus = cJSON_GetObjectItem(pTask, "executionStatus") ? cJSON_GetObjectItem(pTask, "executionStatus")->valuestring : "";
|
|
|
+ stTask.strInstanceType = cJSON_GetObjectItem(pTask, "instanceType") ? cJSON_GetObjectItem(pTask, "instanceType")->valuestring : "";
|
|
|
+ stTask.nExecuteId = cJSON_GetObjectItem(pTask, "executeId") ? cJSON_GetObjectItem(pTask, "executeId")->valueint : -1;
|
|
|
+ stTask.strRequestIP = cJSON_GetObjectItem(pTask, "requestIp") ? cJSON_GetObjectItem(pTask, "requestIp")->valuestring : "";
|
|
|
+ stTask.strTaskUseType = cJSON_GetObjectItem(pTask, "taskUseType") ? cJSON_GetObjectItem(pTask, "taskUseType")->valuestring : "";
|
|
|
+ stTask.nDeviceId = cJSON_GetObjectItem(pTask, "deviceId") ? cJSON_GetObjectItem(pTask, "deviceId")->valueint : -1;
|
|
|
+ stTask.strDiffTaskInstanceFlag = cJSON_GetObjectItem(pTask, "diffTaskInstanceFlag") ? cJSON_GetObjectItem(pTask, "diffTaskInstanceFlag")->valuestring : "";
|
|
|
+ stTask.strTaskType = cJSON_GetObjectItem(pTask, "taskType") ? cJSON_GetObjectItem(pTask, "taskType")->valuestring : "";
|
|
|
+ stTask.nInstanceId = cJSON_GetObjectItem(pTask, "instanceId") ? cJSON_GetObjectItem(pTask, "instanceId")->valueint : -1;
|
|
|
+ stTask.strProgress = cJSON_GetObjectItem(pTask, "progress") ? cJSON_GetObjectItem(pTask, "progress")->valuestring : "";
|
|
|
+ stTask.strStartTime = cJSON_GetObjectItem(pTask, "startTime") ? cJSON_GetObjectItem(pTask, "startTime")->valuestring : "";
|
|
|
+ stTask.strStopTime = cJSON_GetObjectItem(pTask, "stopTime") ? cJSON_GetObjectItem(pTask, "stopTime")->valuestring : "";
|
|
|
+ stTask.strTaskName = cJSON_GetObjectItem(pTask, "taskName") ? cJSON_GetObjectItem(pTask, "taskName")->valuestring : "";
|
|
|
+ stTask.Id = cJSON_GetObjectItem(pTask, "id") ? cJSON_GetObjectItem(pTask, "id")->valueint : -1;
|
|
|
+ stTask.fd = cJSON_GetObjectItem(pTask, "fd") ? cJSON_GetObjectItem(pTask, "fd")->valueint : -1;
|
|
|
+ stTask.nTaskId = cJSON_GetObjectItem(pTask, "taskId") ? cJSON_GetObjectItem(pTask, "taskId")->valueint : -1;
|
|
|
+ // email其实可忽略;
|
|
|
+ cJSON *pEmals = cJSON_GetObjectItem(pTask, "emails");
|
|
|
+ if ( pEmals )
|
|
|
+ {
|
|
|
+ int nEmailSize = cJSON_GetArraySize(pEmals);
|
|
|
+ for ( int ii = 0; ii < nEmailSize; ii++ )
|
|
|
+ {
|
|
|
+ cJSON *pEmail = cJSON_GetArrayItem(pEmals, ii);
|
|
|
+ if ( pEmail )
|
|
|
+ {
|
|
|
+ std::string email = pEmail->valuestring;
|
|
|
+ stTask.vtEmails.push_back(email);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // Job内容;
|
|
|
+ cJSON *pJob = cJSON_GetObjectItem(pTask, "taskJson");
|
|
|
+ if ( pJob )
|
|
|
+ {
|
|
|
+ pJob = cJSON_GetObjectItem(pJob, "job");
|
|
|
+ if ( pJob )
|
|
|
+ {
|
|
|
+ stTask.Job.strCloudPort = cJSON_GetObjectItem(pJob, "cloudPort") ? cJSON_GetObjectItem(pJob, "cloudPort")->valuestring : "";
|
|
|
+ stTask.Job.strExecuteIP = cJSON_GetObjectItem(pJob, "executeIp") ? cJSON_GetObjectItem(pJob, "executeIp")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyPctSysKeys = cJSON_GetObjectItem(pJob, "monkeyPctSyskeys") ? cJSON_GetObjectItem(pJob, "monkeyPctSyskeys")->valuestring : "";
|
|
|
+ stTask.Job.strRedRatDeviceName = cJSON_GetObjectItem(pJob, "redRatDeviceName") ? cJSON_GetObjectItem(pJob, "redRatDeviceName")->valuestring : "";
|
|
|
+ stTask.Job.strExecuteId = cJSON_GetObjectItem(pJob, "executeId") ? cJSON_GetObjectItem(pJob, "executeId")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyPctAppSwitch = cJSON_GetObjectItem(pJob, "monkeyPctAppswitch") ? cJSON_GetObjectItem(pJob, "monkeyPctAppswitch")->valuestring : "";
|
|
|
+ stTask.Job.strDeviceId = cJSON_GetObjectItem(pJob, "deviceId") ? cJSON_GetObjectItem(pJob, "deviceId")->valuestring : "";
|
|
|
+ stTask.Job.strLoopNumber = cJSON_GetObjectItem(pJob, "loopNumber") ? cJSON_GetObjectItem(pJob, "loopNumber")->valuestring : "";
|
|
|
+ stTask.Job.strTaskType = cJSON_GetObjectItem(pJob, "taskType") ? cJSON_GetObjectItem(pJob, "taskType")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyFrequency = cJSON_GetObjectItem(pJob, "monkeyFrequency") ? cJSON_GetObjectItem(pJob, "monkeyFrequency")->valuestring : "";
|
|
|
+ stTask.Job.strCloudVersion = cJSON_GetObjectItem(pJob, "cloudVersion") ? cJSON_GetObjectItem(pJob, "cloudVersion")->valuestring : "";
|
|
|
+ stTask.Job.strTaskInstanceName = cJSON_GetObjectItem(pJob, "taskInstanceName") ? cJSON_GetObjectItem(pJob, "taskInstanceName")->valuestring : "";
|
|
|
+ stTask.Job.strRepeatRunTime = cJSON_GetObjectItem(pJob, "repeatRunTime") ? cJSON_GetObjectItem(pJob, "repeatRunTime")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyTime = cJSON_GetObjectItem(pJob, "monkeyTime") ? cJSON_GetObjectItem(pJob, "monkeyTime")->valuestring : "";
|
|
|
+ stTask.Job.strOutEquipmentId = cJSON_GetObjectItem(pJob, "outEquipmentId") ? cJSON_GetObjectItem(pJob, "outEquipmentId")->valuestring : "";
|
|
|
+ stTask.Job.strPoweroff = cJSON_GetObjectItem(pJob, "poweroff") ? cJSON_GetObjectItem(pJob, "poweroff")->valuestring : "";
|
|
|
+ stTask.Job.strFilePath = cJSON_GetObjectItem(pJob, "filePath") ? cJSON_GetObjectItem(pJob, "filePath")->valuestring : "";
|
|
|
+ stTask.Job.strScriptFailRepeart = cJSON_GetObjectItem(pJob, "scriptFailRepeat") ? cJSON_GetObjectItem(pJob, "scriptFailRepeat")->valuestring : "";
|
|
|
+ stTask.Job.strTaskInstanceId = cJSON_GetObjectItem(pJob, "taskInstanceId") ? cJSON_GetObjectItem(pJob, "taskInstanceId")->valuestring : "";
|
|
|
+ stTask.Job.strUserId = cJSON_GetObjectItem(pJob, "userId") ? cJSON_GetObjectItem(pJob, "userId")->valuestring : "";
|
|
|
+ stTask.Job.strDiffTaskInstanceFlag = cJSON_GetObjectItem(pJob, "diffTaskInstanceFlag") ? cJSON_GetObjectItem(pJob, "diffTaskInstanceFlag")->valuestring : "";
|
|
|
+ stTask.Job.strBusCode = cJSON_GetObjectItem(pJob, "busCode") ? cJSON_GetObjectItem(pJob, "busCode")->valuestring : "";
|
|
|
+ stTask.Job.strRound = cJSON_GetObjectItem(pJob, "round") ? cJSON_GetObjectItem(pJob, "round")->valuestring : "";
|
|
|
+ stTask.Job.strControlType = cJSON_GetObjectItem(pJob, "controlType") ? cJSON_GetObjectItem(pJob, "controlType")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyPctMajornav = cJSON_GetObjectItem(pJob, "monkeyPctMajornav") ? cJSON_GetObjectItem(pJob, "monkeyPctMajornav")->valuestring : "";
|
|
|
+ stTask.Job.strTaskName = cJSON_GetObjectItem(pJob, "taskName") ? cJSON_GetObjectItem(pJob, "taskName")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyType = cJSON_GetObjectItem(pJob, "monkeyType") ? cJSON_GetObjectItem(pJob, "monkeyType")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyDictate = cJSON_GetObjectItem(pJob, "monkeyDictate") ? cJSON_GetObjectItem(pJob, "monkeyDictate")->valuestring : "";
|
|
|
+ stTask.Job.strDetectedDeviceName = cJSON_GetObjectItem(pJob, "detectedDeviceName") ? cJSON_GetObjectItem(pJob, "detectedDeviceName")->valuestring : "";
|
|
|
+ stTask.Job.strExecuteName = cJSON_GetObjectItem(pJob, "executeName") ? cJSON_GetObjectItem(pJob, "executeName")->valuestring : "";
|
|
|
+ stTask.Job.strProjectName = cJSON_GetObjectItem(pJob, "projectName") ? cJSON_GetObjectItem(pJob, "projectName")->valuestring : "";
|
|
|
+ stTask.Job.strProjectId = cJSON_GetObjectItem(pJob, "projectId") ? cJSON_GetObjectItem(pJob, "projectId")->valuestring : "";
|
|
|
+ stTask.Job.strUniqueId = cJSON_GetObjectItem(pJob, "uniqueId") ? cJSON_GetObjectItem(pJob, "uniqueId")->valuestring : "";
|
|
|
+ stTask.Job.strTaskId = cJSON_GetObjectItem(pJob, "taskId") ? cJSON_GetObjectItem(pJob, "taskId")->valuestring : "";
|
|
|
+ stTask.Job.strSoftwareVersion = cJSON_GetObjectItem(pJob, "softwareVersion") ? cJSON_GetObjectItem(pJob, "softwareVersion")->valuestring : "";
|
|
|
+ stTask.Job.strMonkeyPctNav = cJSON_GetObjectItem(pJob, "monkeyPctNav") ? cJSON_GetObjectItem(pJob, "monkeyPctNav")->valuestring : "";
|
|
|
+ // emails,已重复,忽略;
|
|
|
+ // cJSON *pEmals = cJSON_GetObjectItem(pJob, "emails");
|
|
|
+ // case list;
|
|
|
+ cJSON *pCaseList = cJSON_GetObjectItem(pJob, "caseList");
|
|
|
+ if ( pCaseList )
|
|
|
+ {
|
|
|
+ int nCaseSize = cJSON_GetArraySize(pCaseList);
|
|
|
+ for ( int ii = 0; ii < nCaseSize; ii++ )
|
|
|
+ {
|
|
|
+ cJSON *pCase = cJSON_GetArrayItem(pCaseList, ii);
|
|
|
+ if ( pCase )
|
|
|
+ {
|
|
|
+ SATParameters::STCase stCase;
|
|
|
+ stCase.strIndex = cJSON_GetObjectItem(pCase, "index") ? cJSON_GetObjectItem(pCase, "index")->valuestring : "";
|
|
|
+ stCase.strCaseName = cJSON_GetObjectItem(pCase, "caseName") ? cJSON_GetObjectItem(pCase, "caseName")->valuestring : "";
|
|
|
+ stCase.strMainFilePath = cJSON_GetObjectItem(pCase, "mainFilePath") ? cJSON_GetObjectItem(pCase, "mainFilePath")->valuestring : "";
|
|
|
+ stCase.strId = cJSON_GetObjectItem(pCase, "id") ? cJSON_GetObjectItem(pCase, "id")->valuestring : "";
|
|
|
+ stCase.strCaseType = cJSON_GetObjectItem(pCase, "caseType") ? cJSON_GetObjectItem(pCase, "caseType")->valuestring : "";
|
|
|
+ // 压入Job;
|
|
|
+ stTask.Job.vtCases.push_back(stCase);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存任务信息;
|
|
|
+ stHeartbeatResp.vtTask.push_back(stTask);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 释放内存;
|
|
|
+ cJSON_Delete(pRoot);
|
|
|
+
|
|
|
+ // 返回结果;
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 错误产生,可输出msg方便查询;
|
|
|
cJSON_Delete(pRoot);
|
|
|
}
|