Prechádzať zdrojové kódy

0428 云图范围回传 to do

caizm 2 rokov pred
rodič
commit
c10e72015c

+ 1 - 1
CAE_Solution/src/VTK/display/contourdisplay.cpp

@@ -45,7 +45,7 @@ void ContourDisplay::contourdisplay_execute(vtkJsonObject* jsonObj_)
     //ResultMeshManager::getInstance()->DisplayMeshByIndex(ResultMeshManager::getInstance()->GetCurrIndex());
 
 //    Cmanager->HideAllActors();
-//    Cmanager->ShowAll();
+    Cmanager->ShowAll();
     string tmp_scalarname = jsonObj_->cd_struct->scalarName;
     Cmanager->contourWidget_->SetCurrScalar(tmp_scalarname);
     Cmanager->contourWidget_->SetLevel(jsonObj_->cd_struct->level);

+ 1 - 1
CAE_Solution/src/VTK/display/contourdisplay.h

@@ -22,7 +22,7 @@ public:
     ResultMeshManager* getResultMeshManager();
 private:
     ResultMeshManager* Cmanager;
-    ContourDisplayW* m_pWidget;
+    //ContourDisplayW* m_pWidget;
 };
 
 #endif

+ 3 - 4
CAE_Solution/src/VTK/display/linedisplay.cpp

@@ -34,7 +34,7 @@ void LineDisplay::linedisplay_execute(vtkJsonObject* jsonObj_)
 { 
     //string str = static_cast<LineDisplayW*>(m_pWidget)->GetScalarName();
     //if (!str.empty())
-        //{
+    //{
     //ResultMeshManager::getInstance()->ModifyScalarDisplay(static_cast<LineDisplayW*>(m_pWidget)->GetScalarName());
     //ResultMeshManager::getInstance()->SetLevel(static_cast<LineDisplayW*>(m_pWidget)->GetLevel());
     //ResultMeshManager::getInstance()->SetRange(static_cast<LineDisplayW*>(m_pWidget)->GetRange());
@@ -55,10 +55,9 @@ void LineDisplay::linedisplay_execute(vtkJsonObject* jsonObj_)
     Cmanager->SetLevel(Cmanager->lineWidget_->GetLevel());//传level的值,初始默认值为10
     Cmanager->SetRange(jsonObj_->ld_struct->range);
     Cmanager->SetDisplayType(2);//0-contour 2-line 3-vector
-    Cmanager->DisplayMeshByIndex(Cmanager->GetCurrIndex());
+    Cmanager->DisplayMeshByIndex(0);
 
-
-        Cmanager->SetNameTypeMap();
+    Cmanager->SetNameTypeMap();
 }
 
 /*

+ 19 - 13
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp

@@ -227,6 +227,12 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
 //            renderer_->RemoveAllActors();
         }
     }
+    object_->filePath = "C:\\Users\\Administrator\\Desktop\\Postprocess_Binary";//测试路径
+    QDir dir(object_->filePath);
+    if(!dir.exists()){
+        return false;
+    }
+
 
     ResultMeshManager* rsMeshManager = new ResultMeshManager(); 
     rsMeshManager->Clear();
@@ -253,15 +259,13 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
             renderer_->ZoomToExtents();
         }
 
-    ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
-    rsMeshManager->SetCotourWidget(contourdw);
-    rsMeshManager->SetWidgetRange();
-    rsMeshManager->SetWidgetScalarName();
+//    ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
+//   rsMeshManager->SetCotourWidget(contourdw);
+//    rsMeshManager->SetWidgetRange();
+//    rsMeshManager->SetWidgetScalarName();
 
-    LineDisplayW *linedw = new LineDisplayW();
+    LineDisplayW *linedw = new LineDisplayW();//等值线
     rsMeshManager->SetLineWidget(linedw);
-    rsMeshManager->SetWidgetRange();
-    rsMeshManager->SetWidgetScalarName();
 
     renderer_->widgetFlag = QVTKRenderer::WidgetModel::ResultModel;//设置当前窗口模型状态
     if(qmapResultmanager.contains(object_->proId)){//加载不同的结果文件
@@ -269,8 +273,10 @@ bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
         qmapResultmanager[object_->proId] = (set_map_resultManager(object_,rsMeshManager));
     }else{
         qmapResultmanager[object_->proId]=(set_map_resultManager(object_,rsMeshManager));
-    }
-    emit sendImg_handlePoolToSendstate(object_->ToJson("importResult",buildResultImport_msg(rsMeshManager)));//发送结果数据
+    }    
+    emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_contour",buildResultImport_msg(rsMeshManager)));//发送结果数据
+    emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_line",buildResultImport_msg(rsMeshManager)));//发送结果数据
+
     send_picture(object_,renderer_);
     return true;
 }
@@ -290,9 +296,9 @@ bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* rend
         condis = map_contourdisplay.value(object_->proId);//to do
     }else{
         condis = new ContourDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
-        map_contourdisplay.insert(object_->proId,condis);
-        condis->contourdisplay_execute(object_);
+        map_contourdisplay.insert(object_->proId,condis);  
     }
+    condis->contourdisplay_execute(object_);
     send_picture(object_,render_);
     return true;
 }
@@ -311,10 +317,10 @@ bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_
     if(map_linedisplay.contains(object_->proId)){
         linedis = map_linedisplay.value(object_->proId);
     }else{
-        linedis = new LineDisplay(qmapResultmanager.value(object_->proId)->resultMeshManager_);
+        linedis = new LineDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
         map_linedisplay.insert(object_->proId,linedis);
-        linedis->linedisplay_execute(object_);
     }
+    linedis->linedisplay_execute(object_);
     send_picture(object_,render_);
     return true;
 }

+ 491 - 0
CAE_Solution/src/threadPool_and_statemachine/dealWith/handlepool.cpp.autosave

@@ -0,0 +1,491 @@
+#include "handlepool.h"
+#include <iostream>
+#include <vtkTecplotReader.h>
+#include <vtkAppendFilter.h>
+#include <vtkMultiBlockDataSet.h>
+#include <vtkUnstructuredGrid.h>
+#include <vtkNew.h>
+#include <vtkSphereSource.h>
+#include <vtkPolyDataMapper.h>
+#include <vtkActor.h>
+
+
+/*
+ * @brief:the constructor
+ * @param:
+ * @ret:
+ * @birth: creadted by czm in 20230406
+ */
+handlePool::handlePool(QObject *parent) : QObject(parent)
+{
+}
+
+handlePool::handlePool(QTabWidget *w)
+{
+    this->w=w;
+    map_contourdisplay.clear();
+    map_linedisplay.clear();
+    qmapManager.clear();
+    qmapRender.clear();
+    qmapResultmanager.clear();
+}
+
+
+/*
+ * @brief:the destructor
+ * @param:
+ * @ret:
+ * @birth: creadted by czm in 20230406
+ */
+handlePool::~handlePool()
+{
+    qDeleteAll(qmapRender);
+    qDeleteAll(qmapManager);
+    qDeleteAll(map_contourdisplay);
+    qDeleteAll(map_linedisplay);
+    qDeleteAll(qmapResultmanager);
+}
+
+/*
+ * @brief: handle msg from recvstate(slot)(处理来自接收状态机的消息,槽函数)
+ * @param:recv msg
+ * @ret:void
+ * @birth: creadted by czm in 20230406
+ */
+void handlePool::getmsg_recvstateTohandlePool(std::string recvmsg)
+{
+    std::cout<<"recvmsg"<<recvmsg<<std::endl;
+    vtkJsonObject* json_object = new vtkJsonObject();
+    QVTKRenderer* render_=NULL;
+    json_object->FromJSON(recvmsg);
+
+    operateRender(json_object,render_);//解析命令
+
+}
+
+/*
+ * @brief: Operate render according to commands(根据命令操作render)
+ * @param: jsonObject->action render
+ * @ret:void
+ * @birth: creadted by czm in 20230406
+ */
+void handlePool::operateRender(vtkJsonObject* object,QVTKRenderer* render_)
+{
+    if(object->action == "init"){
+        delete object;
+        object = NULL;
+        return;
+    }else if(object->action == "loaddata"){
+        judgeLoaddata(object,render_);
+        return;
+    }else if(object->action == "zoomout"){//缩小
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->ZoomOut();
+    }else if(object->action == "zoomin"){
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->ZoomIn();
+    }else if(object->action == "AlignToPlusAxisX"){//正x轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToPlusAxisX();
+    }else if(object->action == "AlignToPlusAxisY"){//正y轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToPlusAxisY();
+    }else if(object->action == "AlignToPlusAxisZ"){//正z轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToPlusAxisZ();
+    }else if(object->action == "AlignToMinusAxisX"){//负x轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToMinusAxisX();
+    }else if(object->action == "AlignToMinusAxisY"){//负y轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToMinusAxisY();
+    }else if(object->action == "AlignToMinusAxisZ"){//负z轴对齐
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->AlignToMinusAxisZ();
+    }else if(object->action == "TransformToIsometric"){//等距视图
+        if(!qmapRender.contains(object->proId))return;
+        render_ = qmapRender.value(object->proId);
+        render_->camera_->TransformToIsometric();
+    }else if(object->action == "ResultImport"){//导入结果
+        resultImport(object,render_);
+        return;
+    }else if(object->action == "ContourDisplay"){//显示云图
+        if(!result_contourdisplay(object,render_)){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
+    }else if(object->action == "LineDisplay"){//显示等值线图
+        if(!result_linedisplay(object,render_)){
+            cout<<"please import tecplot result first!"<<endl;
+        }
+        return;
+    }
+    send_picture(object,render_);//发送图片
+}
+
+/*
+ * @brief: deal with msg about loaddata
+ * @param: vtkJsonObject QVTKRenderer
+ * @ret: bool
+ * @birth: created by czm in 20230425
+ */
+void handlePool::judgeLoaddata(vtkJsonObject *object, QVTKRenderer *render_)
+{
+    if(!qmapRender.contains(object->proId)){//判断有无窗口
+        render_ = new QVTKRenderer();
+        qmapRender.insert(object->proId,render_);
+        render_->init();
+        w->addTab(render_->GetWidget(),object->proId);
+    }else{
+        render_ = qmapRender.value(object->proId);
+        auto flag = render_->widgetFlag;
+        if(flag == QVTKRenderer::WidgetModel::NoModel){
+        }else if(flag == QVTKRenderer::WidgetModel::UgridModel){//判断窗口当前模型
+            if(qmapManager.value(object->proId)->filePath == object->filePath){
+                send_picture(object,render_);
+                return;
+            }
+            render_->HideAllActors();
+            render_->RemoveAllActors();
+        }else if(flag == QVTKRenderer::WidgetModel::ResultModel){
+            render_->HideAllActors();
+            render_->RemoveAllActors();
+        }
+    }
+    //QString m_filePath = object->filePath;//测试路径
+    QString m_filePath = "F:\\czm\\vtkfile\\tfg.ugrid";
+    QFileInfo fileinfo_(m_filePath);
+    if(!fileinfo_.isFile()){
+        cout<<"file path is Empty!"<<endl;
+        send_picture(object,render_);
+        return;
+    }
+    MeshManager* meshmanager = NULL;
+
+    meshmanager = new MeshManager();
+
+    bool f = meshmanager->LoadData(m_filePath);
+    if(f){
+        if(render_){
+            meshmanager->DisplayMesh(render_);
+            render_->ZoomToExtents();
+        }
+    }
+    qmapRender.value(object->proId)->widgetFlag = QVTKRenderer::WidgetModel::UgridModel;//设置widget中有模型
+    if(!qmapManager.contains(object->proId)){//判断加载模型和当前模型是不是一样
+        qmapManager.insert(object->proId,set_map_meshManager(object,meshmanager));
+    }else{
+        delete qmapManager.value(object->proId);//析构原来的
+        qmapManager[object->proId] = (set_map_meshManager(object,meshmanager));
+    }
+    send_picture(object,render_);
+}
+
+
+/*
+ * @brief: import result file
+ * @param: vtkobject* and renderer
+ * @ret: void
+ * @birth: created by czm in 20230420
+ */
+bool handlePool::resultImport(vtkJsonObject *object_, QVTKRenderer *renderer_)
+{
+    QStringList fileName_list=object_->getFileName().split(",");
+    if(fileName_list.isEmpty()){
+        cout<< "No Tecplot file is ready to read!"<<endl;
+        return false;
+    }
+    //判断有无窗口
+    if(!qmapRender.contains(object_->proId)){
+        renderer_ = new QVTKRenderer();
+        qmapRender.insert(object_->proId,renderer_);
+        renderer_->init();
+        w->addTab(renderer_->GetWidget(),object_->proId);
+        renderer_->widgetFlag = QVTKRenderer::WidgetModel::NoModel;
+    }else{
+        renderer_ = qmapRender[object_->proId];
+        auto flag = renderer_->widgetFlag;
+        if(flag==QVTKRenderer::WidgetModel::UgridModel){
+            renderer_ = qmapRender.value(object_->proId);
+            renderer_->HideAllActors();
+            renderer_->RemoveAllActors();
+        }else if(flag ==QVTKRenderer::WidgetModel::ResultModel){
+            if(qmapResultmanager.value(object_->proId)->fileName == object_->getFileName()){//to do 详细比对文件名
+                send_picture(object_,renderer_);
+                return true;
+            }
+            //qmapResultmanager.value(object_->proId)->resultMeshManager_->HideAllActors();
+//            renderer_->HideAllActors();
+//            renderer_->RemoveAllActors();
+        }
+    }
+    object_->filePath = "C:\\Users\\Administrator\\Desktop\\Postprocess_Binary";//测试路径
+    QDir dir(object_->filePath);
+    if(!dir.exists()){
+        return false;
+    }
+
+
+    ResultMeshManager* rsMeshManager = new ResultMeshManager(); 
+    rsMeshManager->Clear();
+    bool flag = true;
+    for(int i =0;i<fileName_list.size();i++){
+        bool f =rsMeshManager->LoadData(object_->filePath+"/"+fileName_list[i]);
+        if(f){
+            rsMeshManager->SetSaveIndex(i);
+            if(renderer_){
+                rsMeshManager->DisplayMesh(renderer_);
+            }
+        }else{
+            flag = false;
+            break;
+        }
+    }
+    if(flag)
+        {
+            rsMeshManager->HideAllActors();
+            rsMeshManager->ShowAll();
+            rsMeshManager->DisplayMeshByIndex(0);
+            rsMeshManager->SetNameTypeMap();
+            rsMeshManager->InitWidgetsParameter();
+            renderer_->ZoomToExtents();
+        }
+
+//    ContourDisplayW *contourdw = new ContourDisplayW();//云图窗口参数初始化
+//   rsMeshManager->SetCotourWidget(contourdw);
+//    rsMeshManager->SetWidgetRange();
+//    rsMeshManager->SetWidgetScalarName();
+
+    LineDisplayW *linedw = new LineDisplayW();//等值线
+    rsMeshManager->SetLineWidget(linedw);
+
+    renderer_->widgetFlag = QVTKRenderer::WidgetModel::ResultModel;//设置当前窗口模型状态
+    if(qmapResultmanager.contains(object_->proId)){//加载不同的结果文件
+        delete qmapResultmanager.value(object_->proId);
+        qmapResultmanager[object_->proId] = (set_map_resultManager(object_,rsMeshManager));
+    }else{
+        qmapResultmanager[object_->proId]=(set_map_resultManager(object_,rsMeshManager));
+    }    
+    emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_contour",buildResultImport_msg(rsMeshManager)));//发送结果数据
+    emit sendImg_handlePoolToSendstate(object_->ToJson("importResult_line",buildResultImport_msg(rsMeshManager)));//发送结果数据
+
+    send_picture(object_,renderer_);
+    return true;
+}
+/*
+ * @brief: analysis msg about contourdisplay
+ * @param: object and render
+ * @ret: bool
+ * @birth: created by czm in 20230421
+ */
+bool handlePool::result_contourdisplay(vtkJsonObject *object_,QVTKRenderer* render_)
+{
+    ContourDisplay* condis = NULL;
+
+    if(!qmapResultmanager.contains(object_->proId)) return false;
+    render_ = qmapRender[object_->proId];
+    if(map_contourdisplay.contains(object_->proId)){
+        condis = map_contourdisplay.value(object_->proId);//to do
+    }else{
+        condis = new ContourDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
+        map_contourdisplay.insert(object_->proId,condis);  
+    }
+    condis->contourdisplay_execute(object_);
+    send_picture(object_,render_);
+    
+    return true;
+}
+
+/*
+ * @brief: analysis msg about linedisplay
+ * @param: object
+ * @ret: bool
+ * @birth: created by czm in 20230424
+ */
+bool handlePool::result_linedisplay(vtkJsonObject *object_,QVTKRenderer* render_)
+{
+    LineDisplay* linedis = NULL;
+    if(!qmapResultmanager.contains(object_->proId))return false;
+    render_ = qmapRender[object_->proId];
+    if(map_linedisplay.contains(object_->proId)){
+        linedis = map_linedisplay.value(object_->proId);
+    }else{
+        linedis = new LineDisplay(qmapResultmanager[object_->proId]->resultMeshManager_);
+        map_linedisplay.insert(object_->proId,linedis);
+    }
+    linedis->linedisplay_execute(object_);
+    send_picture(object_,render_);
+    return true;
+}
+
+/*
+ * @brief: save the tecplot filename into QStringList
+ * @param: filePath
+ * @ret: QStringList
+ * @birth: created by czm in 20230420
+ */
+//QStringList handlePool::getFileNameList(QString filePath)
+//{
+//    QStringList string_list;
+//    QDir dir(filePath); //需不需要加"\\"?
+//    if(!dir.exists()){
+//       cout <<"filePath error!please check again!"<<endl;
+//       return string_list;
+//    }
+//    dir.setFilter(QDir::Files);
+//    QStringList list = dir.entryList(QDir::Files);
+//    foreach (QFileInfo file, list) {
+//        if(file.fileName().split(".").back() == "plt"){
+//            string_list.append(file.fileName());
+//        }
+//    }
+//    return string_list;
+//}
+
+/*
+ * @brief: build result file mash which need to be sent to java
+ * @param: resultmeshManager
+ * @ret: msg(QString)
+ * @birth: created by czm in 20230424
+ */
+QMap<QString,string> handlePool::buildResultImport_msg(ResultMeshManager *cmanager)
+{
+    QMap<QString,string> map_tmp;
+    cmanager->SetNameTypeMap();
+    map<string,int> map_ = cmanager->GetNameTypeMap();
+    string msg;
+    for(map<string,int>::iterator it=map_.begin();it!=map_.end();it++){
+        msg+=removeSpaces(it->first);
+        msg+="#";
+        msg+=to_string(it->second);//0-point scalar 1-cell scalar
+        msg+=",";
+    }
+    msg = msg.erase(msg.size()-1);
+    map_tmp.insert("nameTypes",msg);
+    msg.clear();
+    for(int i=0;i<cmanager->GetMeshScalarNameVec().size();i++){
+        msg += removeSpaces(cmanager->GetMeshScalarNameVec()[i]);
+        msg += ",";
+    }
+    msg = msg.erase(msg.size()-1);
+    map_tmp.insert("scalarNames",msg);
+    msg.clear();
+
+    msg = to_string(cmanager->getRange()[0]);
+    map_tmp.insert("range0",msg);
+    msg.clear();
+    msg = to_string(cmanager->getRange()[1]);
+    map_tmp.insert("range1",msg);
+    msg.clear();
+    msg = cmanager->GetMeshScalarNameVec()[0];
+    map_tmp.insert("scalarName",removeSpaces(msg));
+    return map_tmp;
+}
+
+/*
+ * @brief: send picture
+ * @param: vtkJsonObject QVTKRenderer
+ * @ret: void
+ * @birth: created by czm in 20230425
+ */
+void handlePool::send_picture(vtkJsonObject *object, QVTKRenderer *render_)
+{
+    render_->CaptureWindowImages();
+    if(!render_->img.isEmpty()){
+        std::string img_ = render_->img.toStdString();
+        QMap<QString,string> map;
+        map["img"] = img_;
+        std::string json_ = object->ToJson("img",map);
+        emit sendImg_handlePoolToSendstate(json_);//信号
+    }
+    delete object;
+    object = NULL;
+}
+
+/*
+ * @brief: remove string's spaces
+ * @param: string
+ * @ret: string
+ * @birth: created by czm in 20230426
+ */
+string handlePool::removeSpaces(string str)//删除字符串中的\u0000
+{
+    QChar h0 = 0x00;
+    QString str_;
+    if(QString::fromStdString(str).contains(h0)){
+        str_=QString::fromStdString(str).replace(h0,"");
+    }
+    return str_.toStdString();
+}
+
+/*
+ * @brief: get map which save qvtkrender
+ * @param: void
+ * @ret: QMap<QString, QVTKRenderer *>
+ * @birth: created by czm in 20230420
+ */
+QMap<QString, QVTKRenderer *> handlePool::getMapRender()
+{
+    return this->qmapRender;
+}
+
+/*
+ * @brief: get map which save ResultMeshManager
+ * @param: void
+ * @ret: QMap<QString, ResultMeshManager *>
+ * @birth: created by czm in 20230420
+ */
+QMap<QString, pid_resultManager *> handlePool::getMapResultManager()
+{
+    return this->qmapResultmanager;
+}
+
+/*
+ * @brief: create a pid_meshManager
+ * @param: vtkJsonObject MeshManager
+ * @ret: map_meshManager
+ * @birth: created by czm in 20230425
+ */
+pid_meshManager *handlePool::set_map_meshManager(vtkJsonObject *object, MeshManager *mmanager_)
+{
+    pid_meshManager* meshManager_p = new pid_meshManager();
+    meshManager_p->meshManager_ = mmanager_;
+    meshManager_p->fileName = object->getFileName();
+    meshManager_p->filePath = object->filePath;
+    return meshManager_p;
+}
+
+/*
+ * @brief: create a pid_resultManager
+ * @param: vtkJsonObject ResultMeshManager
+ * @ret: pid_resultManager
+ * @birth: created by czm in 20230425
+ */
+pid_resultManager *handlePool::set_map_resultManager(vtkJsonObject *object, ResultMeshManager *rmanager_)
+{
+    pid_resultManager *resultManager_p = new pid_resultManager();
+    resultManager_p->resultMeshManager_ = rmanager_;
+    resultManager_p->fileName = object->getFileName();
+    resultManager_p->filePath = object->filePath;
+    return resultManager_p;
+}
+
+/*
+ * @brief: get map which save meshmanager
+ * @param: void
+ * @ret: QMap<QString, MeshManager *>
+ * @birth: created by czm in 20230420
+ */
+QMap<QString, pid_meshManager *> handlePool::getMapManager()
+{
+    return this->qmapManager;
+}
+

+ 12 - 1
CAE_Solution/src/threadPool_and_statemachine/dealWith/vtkjsonobject.cpp

@@ -133,12 +133,23 @@ std::string vtkJsonObject::ToJson(std::string type,QMap<QString,string> file)
     json.insert("action",this->action);
     if(type == "img"){
         json.insert("img",QString::fromStdString(file["img"]));
-    }else if(type == "importResult"){
+    }else if(type == "importResult_contour"){
+        json.insert("msgType","contour_param");
         json.insert("scalarName",QString::fromStdString(file["scalarName"]));
         json.insert("scalarNames",QString::fromStdString(file["scalarNames"]));
         json.insert("nameTypes",QString::fromStdString(file["nameTypes"]));
         json.insert("range0",QString::fromStdString(file["range0"]));
         json.insert("range1",QString::fromStdString(file["range1"]));
+    }else if(type == "importResult_line"){
+        json.insert("msgType","line_param");
+        json.insert("scalarName",QString::fromStdString(file["scalarName"]));
+        json.insert("scalarNames",QString::fromStdString(file["scalarNames"]));
+        json.insert("nameTypes",QString::fromStdString(file["nameTypes"]));
+        json.insert("range0",QString::fromStdString(file["range0"]));
+        json.insert("range1",QString::fromStdString(file["range1"]));
+    }else if(type == "contourDisplay"){
+        json.insert("msgType","contourDisplay_range");
+
     }
 
     QJsonDocument document;

+ 1 - 0
CAE_Solution/src/threadPool_and_statemachine/stateMachine/statemachine.cpp

@@ -135,6 +135,7 @@ void stateMachine::getImg_handlePoolToSendstate(std::string img)
     mutex.lock();
     printf("------------------statemachine getimgfile----------------------\n");
     emit sendImg_sendstateToSendclient(img);//信号
+    qDebug()<<"--------------------"<<QString::fromStdString(img);
     mutex.unlock();
 }
 

+ 1 - 0
CAE_Solution/src/threadPool_and_statemachine/stateMachine/statemachine.h

@@ -6,6 +6,7 @@
 #include <QQueue>
 #include <QList>
 #include <QMutex>
+#include <QDebug>
 
 class stateMachine :public QObject
 {