COMPASSi/trunk/code/projects/Application/StabilityUIFunction.cpp

136 lines
3.2 KiB
C++

#pragma execution_character_set("utf-8")
#include "StabilityUIFunction.h"
#include "Logger.h"
#define BIND(func) std::bind(&StabilityUIFunction::func, this, std::placeholders::_1)
StabilityUIFunction::StabilityUIFunction()
{
ccsMessageHandle::instance()->register_callback(BIND(stab_create_cal), CMD_stab_create_cal);
ccsMessageHandle::instance()->register_callback(BIND(stab_cal), CMD_stab_cal);
ccsMessageHandle::instance()->register_callback(BIND(stab_delete_cal), CMD_stab_delete_cal);
LOG_DEBUG("StabilityUIFunction Constructed");
}
StabilityUIFunction::~StabilityUIFunction()
{
ccsMessageHandle::instance()->unregister_callback(CMD_stab_create_cal);
ccsMessageHandle::instance()->unregister_callback(CMD_stab_cal);
ccsMessageHandle::instance()->unregister_callback(CMD_stab_delete_cal);
LOG_DEBUG("StabilityUIFunction Destroyed");
}
void StabilityUIFunction::stab_create_cal(const QString& message)
{
bool bRet = false;
QString outMsg;
nlohmann::json myjson;
int errorCode = 0;
vector<string> vCom;
try
{
myjson = nlohmann::json::parse(message.toStdString());
}
catch (const nlohmann::json::parse_error& e)
{
outMsg = e.what();
return;
}
if (!myjson.contains("data"))
{
outMsg = "传入json出错!";
return;
}
if (myjson["data"].is_array())
{
// 遍历数组
for (size_t i = 0; i < myjson["data"].size(); i++)
{
vCom.emplace_back(myjson["data"][i].get<string>());
}
}
else
{
outMsg = "传入json出错!";
return;
}
int cmd = CMD_stab_cal;
bRet = getStabilityModelPtr()->stabilityCalc(vCom, E_AnalysisModuleOperation_Type_Create);
if (!bRet)
{
QtToWebFunction::getInstance().qt2web(cmd, EXECUTE_FAIL, "参数错误", "");
}
else
{
QtToWebFunction::getInstance().qt2web(cmd, EXECUTE_SUCCESS, "创建成功", "");
}
}
void StabilityUIFunction::stab_cal(const QString& message)
{
bool bRet = false;
QString outMsg;
nlohmann::json myjson;
int errorCode = 0;
vector<string> vCom;
try
{
myjson = nlohmann::json::parse(message.toStdString());
}
catch (const nlohmann::json::parse_error& e)
{
outMsg = e.what();
return ;
}
if (!myjson.contains("data"))
{
outMsg = "传入json出错!";
return ;
}
if (myjson["data"].is_array())
{
// 遍历数组
for (size_t i = 0; i < myjson["data"].size(); i++)
{
vCom.emplace_back(myjson["data"][i].get<string>());
}
}
else
{
outMsg = "传入json出错!";
return;
}
int cmd = CMD_stab_cal;
bRet = getStabilityModelPtr()->stabilityCalc(vCom, E_AnalysisModuleOperation_Type_Calc);
if (!bRet)
{
QtToWebFunction::getInstance().qt2web(cmd, EXECUTE_FAIL, "参数错误", "");
}
else
{
QtToWebFunction::getInstance().qt2web(cmd, EXECUTE_SUCCESS, "计算成功","");
}
}
void StabilityUIFunction::stab_delete_cal(const QString& message)
{
//QString commandLine = "";
////getStabilityModelPtr()->stabilityCalc(commandLine, E_AnalysisModuleOperation_Type_Delete);
}