Browse Source

Merge branch 'master' of http://111.33.136.149:3000/adc_pilot/modularization

yuchuli 2 years ago
parent
commit
117c039f53

+ 52 - 1
src/test/carmakerexecwork/carmakerexecwork.cpp

@@ -6,10 +6,61 @@
 //}
 
 
+#include <QFile>
+#include <QProcess>
+
+#include <QFileInfo>
+
+#include <iostream>
+
 
 int ExecCarmakerWork(int64_t workid,std::string strInputName, std::string strOutputName, std::string strcmd,
                      std::shared_ptr<char> pinput_ptr,int ninputsize,
                      std::shared_ptr<char> & poutput_ptr,int & noutputsize)
 {
-    return 0;
+    QFile xFile;
+    xFile.setFileName(strInputName.data());
+    if(xFile.open(QIODevice::ReadWrite))
+    {
+        xFile.write(pinput_ptr.get(),ninputsize);
+        xFile.close();
+    }
+    else
+    {
+        std::cout<<" Fail write input data. File Name: "<<strInputName<<std::endl;
+        return -1;
+    }
+
+    (void)workid;
+
+    QProcess * pProc = new QProcess();
+
+    std::cout<<" cmd "<<strcmd<<std::endl;
+    pProc->start(strcmd.data());
+    pProc->waitForFinished();
+
+    QFileInfo fileinfo(strOutputName.data());
+    if(!fileinfo.isFile())
+    {
+        std::cout<<" exec fail."<<std::endl;
+        return -1;
+    }
+
+    QFile xFileout;
+    xFileout.setFileName(strOutputName.data());
+    if(xFileout.open(QIODevice::ReadOnly))
+    {
+        QByteArray ba = xFileout.readAll();
+        noutputsize = ba.size();
+        std::cout<<" file size: "<<noutputsize<<std::endl;
+        poutput_ptr =  std::shared_ptr<char>(new char[static_cast<unsigned long>(noutputsize) ]);
+        memcpy(poutput_ptr.get(),ba.data(),noutputsize);
+    }
+    else
+    {
+        std::cout<<" can't open output file."<<std::endl;
+        return -1;
+    }
+
+    return 1;
 }

+ 3 - 2
src/test/carmakerservice/carmakerimpl.cpp

@@ -38,12 +38,10 @@ Status CarmakerImpl::convertreq(ServerContext* context, const iv::ipg::cvtReq* r
         if(mcv.wait_for(lk, std::chrono::milliseconds(nWaitleft)) == std::cv_status::timeout)
         {
             lk.unlock();
-            continue;
         }
         else
         {
             lk.unlock();
-            continue;
         }
         if(mWT.InqureTaskComplete(nWorkID))
         {
@@ -53,12 +51,14 @@ Status CarmakerImpl::convertreq(ServerContext* context, const iv::ipg::cvtReq* r
 
     }
 
+    std::cout<<"ressss. "<<std::endl;
     reply->set_mnres(nres);
     if(nres == 1)
     {
         if(pout_ptr != nullptr)
         {
             reply->set_xdata(pout_ptr.get(),static_cast<size_t>(nOutSize) );
+            std::cout<<" out size: "<<nOutSize<<std::endl;
         }
         else
         {
@@ -100,6 +100,7 @@ Status CarmakerImpl::convertwork(ServerContext* context, const iv::ipg::workReq
         reply->set_strinputname(strInputName);
         reply->set_stroutputname(strOUtputName);
         reply->set_strcmd(strcmd);
+        std::cout<<" input size."<<nInputSize<<std::endl;
         reply->set_data_input(pInput_ptr.get(),static_cast<size_t>(nInputSize) );
     }
     else

+ 8 - 0
src/test/carmakerservice/worktask.cpp

@@ -1,5 +1,7 @@
 #include "worktask.h"
 
+#include <iostream>
+
 WorkTask::WorkTask()
 {
 }
@@ -58,11 +60,13 @@ int WorkTask::ReqTask(std::string & strInputName,std::string & strOutputName,std
             xdata_Input = mvecterTask[i].mdata_Input;
             nInputSize = mvecterTask[i].mnInputSize;
             nrtn = 1;
+            std::cout<<"input size: "<<nInputSize<<std::endl;
             break;
 
         }
     }
     mMutex.unlock();
+    return nrtn;
 }
 
 void WorkTask::SetTaskRes(int64_t nID,int ncvtRes,std::shared_ptr<char> xdata_Output,int nOutputSize)
@@ -81,6 +85,7 @@ void WorkTask::SetTaskRes(int64_t nID,int ncvtRes,std::shared_ptr<char> xdata_Ou
                 mvecterTask[i].mnOutputSize = nOutputSize;
             }
             mvecterTask[i].mbComplete = true;
+            std::cout<<" complete."<<std::endl;
             break;
         }
     }
@@ -98,8 +103,11 @@ int WorkTask::GetTaskRes(int64_t nID,int & ncvtRes,std::shared_ptr<char> & xdata
         if(mvecterTask[i].mnTaskID == nID)
         {
             ncvtRes = mvecterTask[i].mnCvtRes;
+            if(ncvtRes == 1)
+            {
             xdata_Output = mvecterTask[i].mdata_Output;
             nOutputSize = mvecterTask[i].mnOutputSize;
+            }
             mvecterTask.erase(mvecterTask.begin()+i);
             nrtn = 1;
             break;

+ 3 - 1
src/test/xodr2rd5_grpc/carmakercvt.cpp

@@ -47,7 +47,9 @@ int carmakercvt::GetRes(std::string strinputname,std::string stroutputname,std::
         nrtn = reply.mnres();
         if(nrtn == 1)
         {
-
+            noutputsize = reply.xdata().size();
+            pout_ptr = std::shared_ptr<char>(new char[noutputsize]);
+            memcpy(pout_ptr.get(),reply.xdata().data(),noutputsize);
         }
 
     } else {

+ 1 - 1
src/test/xodr2rd5_grpc/main.cpp

@@ -129,7 +129,7 @@ int main(int argc, char *argv[])
 
 #ifdef TESTC
     snprintf(gstr_inputpath,255,"/home/yuchuli/demodata/lk.xodr");
-    snprintf(gstr_outputpath,255,"D:/lk.rd5");
+    snprintf(gstr_outputpath,255,"/home/yuchuli/demodata/lk1.rd5");
 #endif
 
     if(strncmp(gstr_inputpath , "",255) == 0)