Переглянути джерело

fix(grpc_BS):add other 3 camera image upload

孙嘉城 3 роки тому
батько
коміт
a892aa8563

+ 4 - 4
src/driver/driver_cloud_grpc_client_BS/driver_cloud_grpc_client_BS.yaml

@@ -12,19 +12,19 @@ id : 1234567890123456789H
 plateNumber : 津A123456
 
 pic_front:
-  msgname: pic_front
+  msgname: picfront
   buffersize: 10000000
   buffercount: 1
 pic_rear:
-  msgname: pic_rear
+  msgname: picrear
   buffersize: 10000000
   buffercount: 1
 pic_left:
-  msgname: pic_left
+  msgname: picleft
   buffersize: 10000000
   buffercount: 1
 pic_right:
-  msgname: pic_right
+  msgname: picright
   buffersize: 10000000
   buffercount: 1
 remote_ctrl:

+ 75 - 6
src/driver/driver_cloud_grpc_client_BS/vehicle_upload.cpp

@@ -40,9 +40,24 @@ using org::jeecg::defsDetails::grpc::CtrlMode;
 
 DataExchangeClient * gDataExchangeClient;
 
-void ListenData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+void ListenFrontData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
 {
-    gDataExchangeClient->ListenPicMsg(strdata,nSize);
+    gDataExchangeClient->ListenFrontPicMsg(strdata,nSize);
+}
+
+void ListenRearData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+{
+    gDataExchangeClient->ListenRearPicMsg(strdata,nSize);
+}
+
+void ListenLeftData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+{
+    gDataExchangeClient->ListenLeftPicMsg(strdata,nSize);
+}
+
+void ListenRightData(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+{
+    gDataExchangeClient->ListenRightPicMsg(strdata,nSize);
 }
 
 DataExchangeClient::DataExchangeClient(std::shared_ptr<Channel> channel)
@@ -51,7 +66,10 @@ DataExchangeClient::DataExchangeClient(std::shared_ptr<Channel> channel)
 
     stub_ = DataExchange::NewStub(channel);
 
-    shmPicFront.mpa = iv::modulecomm::RegisterRecv(shmPicFront.mstrmsgname,ListenData);
+    shmPicFront.mpa = iv::modulecomm::RegisterRecv(shmPicFront.mstrmsgname,ListenFrontData);
+    shmPicRear.mpa = iv::modulecomm::RegisterRecv(shmPicRear.mstrmsgname,ListenRearData);
+    shmPicLeft.mpa = iv::modulecomm::RegisterRecv(shmPicLeft.mstrmsgname,ListenLeftData);
+    shmPicRight.mpa = iv::modulecomm::RegisterRecv(shmPicRight.mstrmsgname,ListenRightData);
 }
 
 DataExchangeClient::~DataExchangeClient(void)
@@ -59,7 +77,7 @@ DataExchangeClient::~DataExchangeClient(void)
 
 }
 
-void DataExchangeClient::ListenPicMsg(const char * strdata,const unsigned int nSize) // need a lock
+void DataExchangeClient::ListenFrontPicMsg(const char * strdata,const unsigned int nSize) // need a lock
 {
     iv::vision::rawpic xdata;
     if(!xdata.ParseFromArray(strdata,nSize))
@@ -70,10 +88,55 @@ void DataExchangeClient::ListenPicMsg(const char * strdata,const unsigned int nS
 
     gMutex_ImageFront.lock();
     cameraImageFront.clear();
-    cameraImageFront.append(xdata.picdata().data(),xdata.picdata().size());
+    if(gShift_Status == 6)cameraImageFront.append(xdata.picdata().data(),xdata.picdata().size());
     gMutex_ImageFront.unlock();
 }
 
+void DataExchangeClient::ListenRearPicMsg(const char * strdata,const unsigned int nSize) // need a lock
+{
+    iv::vision::rawpic xdata;
+    if(!xdata.ParseFromArray(strdata,nSize))
+    {
+        std::cout<<" MainWindow::UpdateSlider parese error."<<std::endl;
+        return;
+    }
+
+    gMutex_ImageRear.lock();
+    cameraImageRear.clear();
+    if(gShift_Status == 4)cameraImageRear.append(xdata.picdata().data(),xdata.picdata().size());
+    gMutex_ImageRear.unlock();
+}
+
+void DataExchangeClient::ListenLeftPicMsg(const char * strdata,const unsigned int nSize) // need a lock
+{
+    iv::vision::rawpic xdata;
+    if(!xdata.ParseFromArray(strdata,nSize))
+    {
+        std::cout<<" MainWindow::UpdateSlider parese error."<<std::endl;
+        return;
+    }
+
+    gMutex_ImageLeft.lock();
+    cameraImageLeft.clear();
+    if(gShift_Status == 5)cameraImageLeft.append(xdata.picdata().data(),xdata.picdata().size());
+    gMutex_ImageLeft.unlock();
+}
+
+void DataExchangeClient::ListenRightPicMsg(const char * strdata,const unsigned int nSize) // need a lock
+{
+    iv::vision::rawpic xdata;
+    if(!xdata.ParseFromArray(strdata,nSize))
+    {
+        std::cout<<" MainWindow::UpdateSlider parese error."<<std::endl;
+        return;
+    }
+
+    gMutex_ImageRight.lock();
+    cameraImageRight.clear();
+    if(gShift_Status == 5)cameraImageRight.append(xdata.picdata().data(),xdata.picdata().size());
+    gMutex_ImageRight.unlock();
+}
+
 std::string DataExchangeClient::uploadVehicleInfo(void)
 {
 
@@ -97,9 +160,15 @@ std::string DataExchangeClient::uploadVehicleInfo(void)
     gMutex_ImageFront.lock();
     request.set_cameraimagefront(cameraImageFront.data(),cameraImageFront.size());
     gMutex_ImageFront.unlock();
+    gMutex_ImageRear.lock();
     request.set_cameraimagerear(cameraImageRear.data(),cameraImageRear.size());
+    gMutex_ImageRear.unlock();
+    gMutex_ImageLeft.lock();
     request.set_cameraimageleft(cameraImageLeft.data(),cameraImageLeft.size());
+    gMutex_ImageLeft.unlock();
+    gMutex_ImageRight.lock();
     request.set_cameraimageright(cameraImageRight.data(),cameraImageRight.size());
+    gMutex_ImageRight.unlock();
     request.set_sensorstatusgpsimu(sensorStatusGPSIMU);
     request.set_sensorstatuslidar(sensorStatusLidar);
     request.set_sensorstatusradar(sensorStatusRadar);
@@ -249,7 +318,7 @@ void DataExchangeClient::updateData(void)
 
     plateNumber = gstrplateNumber;
 
-//    modeFeedback = CtrlMode::CMD_REMOTE; //mode Feedback
+    modeFeedback = CtrlMode::CMD_REMOTE; //mode Feedback
 }
 
 void DataExchangeClient::updatePath(std::string pathID, QVector<MapPoint> points)