Przeglądaj źródła

fix(grpc_BS):add simpletrace upload.need to test

孙嘉城 3 lat temu
rodzic
commit
82b9b18e20

+ 87 - 83
src/driver/driver_cloud_grpc_client_BS/VehicleControl.proto

@@ -1,83 +1,87 @@
-syntax = "proto3";
-
-package org.jeecg.defsControl.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsControl.model";
-option java_outer_classname = "VehicleControl";
-
-
-enum CtrlMode{
-    CMD_AUTO = 0;
-    CMD_REMOTE = 1;
-    CMD_EMERGENCY_STOP = 2;
-    CMD_CLOUD_PLATFORM = 3; // 云平台控制模式
-}
-
-enum ShiftStatus{
-    SHIFT_UNKOWN = 0;
-    SHIFT_ERROR = 1;
-    SHIFT_INTERVAL = 2;
-    SHIFT_PARKING = 3;
-    SHIFT_REVERSE = 4;
-    SHIFT_NEUTRAL = 5;
-    SHIFT_DRIVE = 6;
-    SHIFT_SPORT = 7;
-
-    SHIFT_LOW = 10;
-    SHIFT_LEVEL1 = 11;
-    SHIFT_LEVEL2 = 12;
-    SHIFT_LEVEL3 = 13;
-    SHIFT_LEVEL4 = 14;
-    SHIFT_LEVEL5 = 15;
-    SHIFT_LEVEL6 = 16;
-    SHIFT_LEVEL7 = 17;
-    SHIFT_LEVEL8 = 18;
-    SHIFT_LEVEL9 = 19;
-    SHIFT_LEVEL10 = 20;
-}
-
-message GPSPoint{
-    double latitude = 1;
-    double longitude = 2;
-    double height = 3;
-}
-
-message ControlReply {
-    string id = 1; // 车辆 SIM 码
-    ShiftStatus shiftCMD = 2;
-    double steeringWheelAngleCMD = 3;  //+/-540 degree
-    double throttleCMD = 4; // 0-100
-    double brakeCMD = 5;    // 0-100
-}
-
-message Empty {
-    string id = 1;
-}
-
-message MapPoint{
-    int64 index = 1;
-    GPSPoint mapPoint = 2;
-}
-
-//服务端发送站点信息到小车
-//message UploadMapRequest {
-//    repeated MapPoint mapPoints = 1;
-//}
-
-//小车发送路径所有的位置到服务端
-//message UploadMapReply {
-//    repeated MapPoint mapPoints = 1;
-//}
-
-message UploadMapReply {
-    string id = 1;
-    bool isNeedMap = 2; //是否需要路径规划
-    string patrolPathID = 3; //对应巡逻路径的ID
-    repeated MapPoint mapPoints = 4; //需要经过的POI点
-}
-
-message CtrlModeReply {
-    string id = 1; // 车辆 SIM 码
-    CtrlMode modeCMD = 2; //mode change command
-}
+syntax = "proto3";
+
+package org.jeecg.defsControl.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsControl.model";
+option java_outer_classname = "VehicleControl";
+
+
+enum CtrlMode{
+    CMD_AUTO = 0;
+    CMD_REMOTE = 1;
+    CMD_EMERGENCY_STOP = 2;
+    CMD_CLOUD_PLATFORM = 3; // 云平台控制模式
+}
+
+enum UseStatus{
+    DEACTIVATING = 0; //停用中
+    ENABLING = 1; //启用中
+}
+
+enum NavSwitch{
+    NAV_STOP = 0; // 停止导航
+    NAV_START = 1; // 开始导航
+}
+
+enum ShiftStatus{
+    SHIFT_UNKOWN = 0;
+    SHIFT_ERROR = 1;
+    SHIFT_INTERVAL = 2;
+    SHIFT_PARKING = 3;
+    SHIFT_REVERSE = 4;
+    SHIFT_NEUTRAL = 5;
+    SHIFT_DRIVE = 6;
+    SHIFT_SPORT = 7;
+
+    SHIFT_LOW = 10;
+    SHIFT_LEVEL1 = 11;
+    SHIFT_LEVEL2 = 12;
+    SHIFT_LEVEL3 = 13;
+    SHIFT_LEVEL4 = 14;
+    SHIFT_LEVEL5 = 15;
+    SHIFT_LEVEL6 = 16;
+    SHIFT_LEVEL7 = 17;
+    SHIFT_LEVEL8 = 18;
+    SHIFT_LEVEL9 = 19;
+    SHIFT_LEVEL10 = 20;
+}
+
+message GPSPoint{
+    double latitude = 1;
+    double longitude = 2;
+    double height = 3;
+}
+
+message ControlReply {
+    string id = 1; // 车辆 SIM 码
+    ShiftStatus shiftCMD = 2;
+    double steeringWheelAngleCMD = 3;  //+/-540 degree
+    double throttleCMD = 4; // 0-100
+    double brakeCMD = 5;    // 0-100
+}
+
+message Empty {
+    string id = 1;
+}
+
+message MapPoint{
+    int64 index = 1;
+    GPSPoint mapPoint = 2;
+}
+
+message UploadMapReply {
+    string id = 1; // 车辆SIM码
+    bool isNeedMap = 2; //是否需要路径规划
+    string patrolPathID = 3; //对应巡逻路径的ID
+    repeated MapPoint mapPoints = 4; //需要经过的POI点
+}
+
+message CtrlModeReply {
+    string id = 1; // 车辆 SIM 码
+    CtrlMode modeCMD = 2; //mode change command
+    UseStatus useStatusCMD = 3;//使用状态修改命令 变量名修改 by Samuel
+    GPSPoint deactivatePosition = 4; //停用站点
+    double speedCMD = 5; //平台设定的期望运行速度
+    NavSwitch navagationSwitch = 6; //开始-停止导航
+}

+ 14 - 14
src/driver/driver_cloud_grpc_client_BS/VehicleControl_service.grpc.pb.cc

@@ -26,7 +26,7 @@ namespace grpc {
 
 static const char* VehicleControl_method_names[] = {
   "/org.jeecg.defsControl.grpc.VehicleControl/vehicleControl",
-  "/org.jeecg.defsControl.grpc.VehicleControl/UploadMap",
+  "/org.jeecg.defsControl.grpc.VehicleControl/uploadMap",
   "/org.jeecg.defsControl.grpc.VehicleControl/changeCtrlMode",
 };
 
@@ -38,7 +38,7 @@ std::unique_ptr< VehicleControl::Stub> VehicleControl::NewStub(const std::shared
 
 VehicleControl::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
   : channel_(channel), rpcmethod_vehicleControl_(VehicleControl_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
-  , rpcmethod_UploadMap_(VehicleControl_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_uploadMap_(VehicleControl_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   , rpcmethod_changeCtrlMode_(VehicleControl_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   {}
 
@@ -65,25 +65,25 @@ void VehicleControl::Stub::experimental_async::vehicleControl(::grpc::ClientCont
   return result;
 }
 
-::grpc::Status VehicleControl::Stub::UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) {
-  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UploadMap_, context, request, response);
+::grpc::Status VehicleControl::Stub::uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) {
+  return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_uploadMap_, context, request, response);
 }
 
-void VehicleControl::Stub::experimental_async::UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)> f) {
-  ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_UploadMap_, context, request, response, std::move(f));
+void VehicleControl::Stub::experimental_async::uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)> f) {
+  ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_uploadMap_, context, request, response, std::move(f));
 }
 
-void VehicleControl::Stub::experimental_async::UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
-  ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_UploadMap_, context, request, response, reactor);
+void VehicleControl::Stub::experimental_async::uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) {
+  ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_uploadMap_, context, request, response, reactor);
 }
 
-::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* VehicleControl::Stub::PrepareAsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
-  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::org::jeecg::defsControl::grpc::UploadMapReply>::Create(channel_.get(), cq, rpcmethod_UploadMap_, context, request, false);
+::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* VehicleControl::Stub::PrepareAsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc::internal::ClientAsyncResponseReaderFactory< ::org::jeecg::defsControl::grpc::UploadMapReply>::Create(channel_.get(), cq, rpcmethod_uploadMap_, context, request, false);
 }
 
-::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* VehicleControl::Stub::AsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* VehicleControl::Stub::AsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
   auto* result =
-    this->PrepareAsyncUploadMapRaw(context, request, cq);
+    this->PrepareAsyncuploadMapRaw(context, request, cq);
   result->StartCall();
   return result;
 }
@@ -130,7 +130,7 @@ VehicleControl::Service::Service() {
              ::grpc::ServerContext* ctx,
              const ::org::jeecg::defsControl::grpc::Empty* req,
              ::org::jeecg::defsControl::grpc::UploadMapReply* resp) {
-               return service->UploadMap(ctx, req, resp);
+               return service->uploadMap(ctx, req, resp);
              }, this)));
   AddMethod(new ::grpc::internal::RpcServiceMethod(
       VehicleControl_method_names[2],
@@ -154,7 +154,7 @@ VehicleControl::Service::~Service() {
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
-::grpc::Status VehicleControl::Service::UploadMap(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) {
+::grpc::Status VehicleControl::Service::uploadMap(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) {
   (void) context;
   (void) request;
   (void) response;

+ 71 - 71
src/driver/driver_cloud_grpc_client_BS/VehicleControl_service.grpc.pb.h

@@ -39,7 +39,7 @@ class VehicleControl final {
   class StubInterface {
    public:
     virtual ~StubInterface() {}
-    // 车辆远程控制
+    // 车辆远程控制
     virtual ::grpc::Status vehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::ControlReply* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>> AsyncvehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>>(AsyncvehicleControlRaw(context, request, cq));
@@ -47,15 +47,15 @@ class VehicleControl final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>> PrepareAsyncvehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>>(PrepareAsyncvehicleControlRaw(context, request, cq));
     }
-    // 路径生成
-    virtual ::grpc::Status UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) = 0;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>> AsyncUploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>>(AsyncUploadMapRaw(context, request, cq));
+    // 询问服务器是否需要生成路径
+    virtual ::grpc::Status uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) = 0;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>> AsyncuploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>>(AsyncuploadMapRaw(context, request, cq));
     }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>> PrepareAsyncUploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>>(PrepareAsyncUploadMapRaw(context, request, cq));
+    std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>> PrepareAsyncuploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>>(PrepareAsyncuploadMapRaw(context, request, cq));
     }
-    // 控制模式改变
+    // 控制模式改变
     virtual ::grpc::Status changeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::CtrlModeReply>> AsyncchangeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::CtrlModeReply>>(AsyncchangeCtrlModeRaw(context, request, cq));
@@ -66,21 +66,21 @@ class VehicleControl final {
     class experimental_async_interface {
      public:
       virtual ~experimental_async_interface() {}
-      // 车辆远程控制
+      // 车辆远程控制
       virtual void vehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::ControlReply* response, std::function<void(::grpc::Status)>) = 0;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       virtual void vehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::ControlReply* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       #else
       virtual void vehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::ControlReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
       #endif
-      // 路径生成
-      virtual void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)>) = 0;
+      // 询问服务器是否需要生成路径
+      virtual void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)>) = 0;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-      virtual void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::ClientUnaryReactor* reactor) = 0;
+      virtual void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       #else
-      virtual void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
+      virtual void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
       #endif
-      // 控制模式改变
+      // 控制模式改变
       virtual void changeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response, std::function<void(::grpc::Status)>) = 0;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       virtual void changeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response, ::grpc::ClientUnaryReactor* reactor) = 0;
@@ -98,8 +98,8 @@ class VehicleControl final {
   private:
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>* AsyncvehicleControlRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::ControlReply>* PrepareAsyncvehicleControlRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>* AsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
-    virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>* PrepareAsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>* AsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::UploadMapReply>* PrepareAsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::CtrlModeReply>* AsyncchangeCtrlModeRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsControl::grpc::CtrlModeReply>* PrepareAsyncchangeCtrlModeRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   };
@@ -113,12 +113,12 @@ class VehicleControl final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::ControlReply>> PrepareAsyncvehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::ControlReply>>(PrepareAsyncvehicleControlRaw(context, request, cq));
     }
-    ::grpc::Status UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) override;
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>> AsyncUploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>>(AsyncUploadMapRaw(context, request, cq));
+    ::grpc::Status uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) override;
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>> AsyncuploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>>(AsyncuploadMapRaw(context, request, cq));
     }
-    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>> PrepareAsyncUploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
-      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>>(PrepareAsyncUploadMapRaw(context, request, cq));
+    std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>> PrepareAsyncuploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>>(PrepareAsyncuploadMapRaw(context, request, cq));
     }
     ::grpc::Status changeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response) override;
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::CtrlModeReply>> AsyncchangeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) {
@@ -136,11 +136,11 @@ class VehicleControl final {
       #else
       void vehicleControl(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::ControlReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
       #endif
-      void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)>) override;
+      void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, std::function<void(::grpc::Status)>) override;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-      void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::ClientUnaryReactor* reactor) override;
+      void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::ClientUnaryReactor* reactor) override;
       #else
-      void UploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
+      void uploadMap(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
       #endif
       void changeCtrlMode(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response, std::function<void(::grpc::Status)>) override;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
@@ -161,12 +161,12 @@ class VehicleControl final {
     class experimental_async async_stub_{this};
     ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::ControlReply>* AsyncvehicleControlRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::ControlReply>* PrepareAsyncvehicleControlRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* AsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
-    ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* PrepareAsyncUploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* AsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::UploadMapReply>* PrepareAsyncuploadMapRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::CtrlModeReply>* AsyncchangeCtrlModeRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::org::jeecg::defsControl::grpc::CtrlModeReply>* PrepareAsyncchangeCtrlModeRaw(::grpc::ClientContext* context, const ::org::jeecg::defsControl::grpc::Empty& request, ::grpc::CompletionQueue* cq) override;
     const ::grpc::internal::RpcMethod rpcmethod_vehicleControl_;
-    const ::grpc::internal::RpcMethod rpcmethod_UploadMap_;
+    const ::grpc::internal::RpcMethod rpcmethod_uploadMap_;
     const ::grpc::internal::RpcMethod rpcmethod_changeCtrlMode_;
   };
   static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
@@ -175,11 +175,11 @@ class VehicleControl final {
    public:
     Service();
     virtual ~Service();
-    // 车辆远程控制
+    // 车辆远程控制
     virtual ::grpc::Status vehicleControl(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::ControlReply* response);
-    // 路径生成
-    virtual ::grpc::Status UploadMap(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response);
-    // 控制模式改变
+    // 询问服务器是否需要生成路径
+    virtual ::grpc::Status uploadMap(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response);
+    // 控制模式改变
     virtual ::grpc::Status changeCtrlMode(::grpc::ServerContext* context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::CtrlModeReply* response);
   };
   template <class BaseClass>
@@ -203,22 +203,22 @@ class VehicleControl final {
     }
   };
   template <class BaseClass>
-  class WithAsyncMethod_UploadMap : public BaseClass {
+  class WithAsyncMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    WithAsyncMethod_UploadMap() {
+    WithAsyncMethod_uploadMap() {
       ::grpc::Service::MarkMethodAsync(1);
     }
-    ~WithAsyncMethod_UploadMap() override {
+    ~WithAsyncMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable synchronous version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
-    void RequestUploadMap(::grpc::ServerContext* context, ::org::jeecg::defsControl::grpc::Empty* request, ::grpc::ServerAsyncResponseWriter< ::org::jeecg::defsControl::grpc::UploadMapReply>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+    void RequestuploadMap(::grpc::ServerContext* context, ::org::jeecg::defsControl::grpc::Empty* request, ::grpc::ServerAsyncResponseWriter< ::org::jeecg::defsControl::grpc::UploadMapReply>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
       ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
@@ -242,7 +242,7 @@ class VehicleControl final {
       ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
-  typedef WithAsyncMethod_vehicleControl<WithAsyncMethod_UploadMap<WithAsyncMethod_changeCtrlMode<Service > > > AsyncService;
+  typedef WithAsyncMethod_vehicleControl<WithAsyncMethod_uploadMap<WithAsyncMethod_changeCtrlMode<Service > > > AsyncService;
   template <class BaseClass>
   class ExperimentalWithCallbackMethod_vehicleControl : public BaseClass {
    private:
@@ -291,11 +291,11 @@ class VehicleControl final {
       { return nullptr; }
   };
   template <class BaseClass>
-  class ExperimentalWithCallbackMethod_UploadMap : public BaseClass {
+  class ExperimentalWithCallbackMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    ExperimentalWithCallbackMethod_UploadMap() {
+    ExperimentalWithCallbackMethod_uploadMap() {
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       ::grpc::Service::
     #else
@@ -309,8 +309,8 @@ class VehicleControl final {
     #else
                    ::grpc::experimental::CallbackServerContext*
     #endif
-                     context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) { return this->UploadMap(context, request, response); }));}
-    void SetMessageAllocatorFor_UploadMap(
+                     context, const ::org::jeecg::defsControl::grpc::Empty* request, ::org::jeecg::defsControl::grpc::UploadMapReply* response) { return this->uploadMap(context, request, response); }));}
+    void SetMessageAllocatorFor_uploadMap(
         ::grpc::experimental::MessageAllocator< ::org::jeecg::defsControl::grpc::Empty, ::org::jeecg::defsControl::grpc::UploadMapReply>* allocator) {
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1);
@@ -320,19 +320,19 @@ class VehicleControl final {
       static_cast<::grpc::internal::CallbackUnaryHandler< ::org::jeecg::defsControl::grpc::Empty, ::org::jeecg::defsControl::grpc::UploadMapReply>*>(handler)
               ->SetMessageAllocator(allocator);
     }
-    ~ExperimentalWithCallbackMethod_UploadMap() override {
+    ~ExperimentalWithCallbackMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable synchronous version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-    virtual ::grpc::ServerUnaryReactor* UploadMap(
+    virtual ::grpc::ServerUnaryReactor* uploadMap(
       ::grpc::CallbackServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/)
     #else
-    virtual ::grpc::experimental::ServerUnaryReactor* UploadMap(
+    virtual ::grpc::experimental::ServerUnaryReactor* uploadMap(
       ::grpc::experimental::CallbackServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/)
     #endif
       { return nullptr; }
@@ -385,10 +385,10 @@ class VehicleControl final {
       { return nullptr; }
   };
   #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-  typedef ExperimentalWithCallbackMethod_vehicleControl<ExperimentalWithCallbackMethod_UploadMap<ExperimentalWithCallbackMethod_changeCtrlMode<Service > > > CallbackService;
+  typedef ExperimentalWithCallbackMethod_vehicleControl<ExperimentalWithCallbackMethod_uploadMap<ExperimentalWithCallbackMethod_changeCtrlMode<Service > > > CallbackService;
   #endif
 
-  typedef ExperimentalWithCallbackMethod_vehicleControl<ExperimentalWithCallbackMethod_UploadMap<ExperimentalWithCallbackMethod_changeCtrlMode<Service > > > ExperimentalCallbackService;
+  typedef ExperimentalWithCallbackMethod_vehicleControl<ExperimentalWithCallbackMethod_uploadMap<ExperimentalWithCallbackMethod_changeCtrlMode<Service > > > ExperimentalCallbackService;
   template <class BaseClass>
   class WithGenericMethod_vehicleControl : public BaseClass {
    private:
@@ -407,18 +407,18 @@ class VehicleControl final {
     }
   };
   template <class BaseClass>
-  class WithGenericMethod_UploadMap : public BaseClass {
+  class WithGenericMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    WithGenericMethod_UploadMap() {
+    WithGenericMethod_uploadMap() {
       ::grpc::Service::MarkMethodGeneric(1);
     }
-    ~WithGenericMethod_UploadMap() override {
+    ~WithGenericMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable synchronous version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
@@ -461,22 +461,22 @@ class VehicleControl final {
     }
   };
   template <class BaseClass>
-  class WithRawMethod_UploadMap : public BaseClass {
+  class WithRawMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    WithRawMethod_UploadMap() {
+    WithRawMethod_uploadMap() {
       ::grpc::Service::MarkMethodRaw(1);
     }
-    ~WithRawMethod_UploadMap() override {
+    ~WithRawMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable synchronous version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
-    void RequestUploadMap(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+    void RequestuploadMap(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
       ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
@@ -539,11 +539,11 @@ class VehicleControl final {
       { return nullptr; }
   };
   template <class BaseClass>
-  class ExperimentalWithRawCallbackMethod_UploadMap : public BaseClass {
+  class ExperimentalWithRawCallbackMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    ExperimentalWithRawCallbackMethod_UploadMap() {
+    ExperimentalWithRawCallbackMethod_uploadMap() {
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       ::grpc::Service::
     #else
@@ -557,21 +557,21 @@ class VehicleControl final {
     #else
                    ::grpc::experimental::CallbackServerContext*
     #endif
-                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->UploadMap(context, request, response); }));
+                     context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->uploadMap(context, request, response); }));
     }
-    ~ExperimentalWithRawCallbackMethod_UploadMap() override {
+    ~ExperimentalWithRawCallbackMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable synchronous version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-    virtual ::grpc::ServerUnaryReactor* UploadMap(
+    virtual ::grpc::ServerUnaryReactor* uploadMap(
       ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
     #else
-    virtual ::grpc::experimental::ServerUnaryReactor* UploadMap(
+    virtual ::grpc::experimental::ServerUnaryReactor* uploadMap(
       ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/)
     #endif
       { return nullptr; }
@@ -642,31 +642,31 @@ class VehicleControl final {
     virtual ::grpc::Status StreamedvehicleControl(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::org::jeecg::defsControl::grpc::Empty,::org::jeecg::defsControl::grpc::ControlReply>* server_unary_streamer) = 0;
   };
   template <class BaseClass>
-  class WithStreamedUnaryMethod_UploadMap : public BaseClass {
+  class WithStreamedUnaryMethod_uploadMap : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
    public:
-    WithStreamedUnaryMethod_UploadMap() {
+    WithStreamedUnaryMethod_uploadMap() {
       ::grpc::Service::MarkMethodStreamed(1,
         new ::grpc::internal::StreamedUnaryHandler<
           ::org::jeecg::defsControl::grpc::Empty, ::org::jeecg::defsControl::grpc::UploadMapReply>(
             [this](::grpc::ServerContext* context,
                    ::grpc::ServerUnaryStreamer<
                      ::org::jeecg::defsControl::grpc::Empty, ::org::jeecg::defsControl::grpc::UploadMapReply>* streamer) {
-                       return this->StreamedUploadMap(context,
+                       return this->StreameduploadMap(context,
                          streamer);
                   }));
     }
-    ~WithStreamedUnaryMethod_UploadMap() override {
+    ~WithStreamedUnaryMethod_uploadMap() override {
       BaseClassMustBeDerivedFromService(this);
     }
     // disable regular version of this method
-    ::grpc::Status UploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
+    ::grpc::Status uploadMap(::grpc::ServerContext* /*context*/, const ::org::jeecg::defsControl::grpc::Empty* /*request*/, ::org::jeecg::defsControl::grpc::UploadMapReply* /*response*/) override {
       abort();
       return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
     }
     // replace default version of method with streamed unary
-    virtual ::grpc::Status StreamedUploadMap(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::org::jeecg::defsControl::grpc::Empty,::org::jeecg::defsControl::grpc::UploadMapReply>* server_unary_streamer) = 0;
+    virtual ::grpc::Status StreameduploadMap(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::org::jeecg::defsControl::grpc::Empty,::org::jeecg::defsControl::grpc::UploadMapReply>* server_unary_streamer) = 0;
   };
   template <class BaseClass>
   class WithStreamedUnaryMethod_changeCtrlMode : public BaseClass {
@@ -695,9 +695,9 @@ class VehicleControl final {
     // replace default version of method with streamed unary
     virtual ::grpc::Status StreamedchangeCtrlMode(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::org::jeecg::defsControl::grpc::Empty,::org::jeecg::defsControl::grpc::CtrlModeReply>* server_unary_streamer) = 0;
   };
-  typedef WithStreamedUnaryMethod_vehicleControl<WithStreamedUnaryMethod_UploadMap<WithStreamedUnaryMethod_changeCtrlMode<Service > > > StreamedUnaryService;
+  typedef WithStreamedUnaryMethod_vehicleControl<WithStreamedUnaryMethod_uploadMap<WithStreamedUnaryMethod_changeCtrlMode<Service > > > StreamedUnaryService;
   typedef Service SplitStreamedService;
-  typedef WithStreamedUnaryMethod_vehicleControl<WithStreamedUnaryMethod_UploadMap<WithStreamedUnaryMethod_changeCtrlMode<Service > > > StreamedService;
+  typedef WithStreamedUnaryMethod_vehicleControl<WithStreamedUnaryMethod_uploadMap<WithStreamedUnaryMethod_changeCtrlMode<Service > > > StreamedService;
 };
 
 }  // namespace grpc

+ 19 - 19
src/driver/driver_cloud_grpc_client_BS/VehicleControl_service.proto

@@ -1,19 +1,19 @@
-syntax = "proto3";
-
-package org.jeecg.defsControl.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsControl.service";
-option java_outer_classname = "VehicleControlService";
-
-import "VehicleControl.proto";
-
-
-service VehicleControl {
-  // 车辆远程控制
-  rpc vehicleControl (Empty) returns (ControlReply) {}
-  // 路径生成
-  rpc UploadMap(Empty) returns(UploadMapReply) {}  //this service may change into uploadMap in future
-  // 控制模式改变
-  rpc changeCtrlMode(Empty) returns(CtrlModeReply) {}
-}
+syntax = "proto3";
+
+package org.jeecg.defsControl.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsControl.service";
+option java_outer_classname = "VehicleControlService";
+
+import "VehicleControl.proto";
+
+
+service VehicleControl {
+  // 车辆远程控制
+  rpc vehicleControl (Empty) returns (ControlReply) {}
+  // 询问服务器是否需要生成路径
+  rpc uploadMap(Empty) returns(UploadMapReply) {}
+  // 控制模式改变
+  rpc changeCtrlMode(Empty) returns(CtrlModeReply) {}
+}

+ 47 - 41
src/driver/driver_cloud_grpc_client_BS/VehiclePatrol.proto

@@ -1,41 +1,47 @@
-syntax = "proto3";
-
-package org.jeecg.defsPatrol.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsPatrol.model";
-option java_outer_classname = "VehiclePatrol";
-
-message GPSPoint{
-    double latitude = 1;
-    double longitude = 2;
-    double height = 3;
-}
-
-message PatrolRequest{
-    string id = 1;
-
-    bool isTVR = 2; //Traffic Violation Recognition
-    int32 violationStatus = 3; //0 no violation 1 overspeed 2 illegal parking 3 direction wrong 4 run the red light
-    string vehicleLicenseNumber = 4;
-    bytes violationImage = 5;
-    int64 violationTime = 6; //time when get violationImage
-    GPSPoint violationPosition = 7; //positon when get violationImage
-
-    bool isFSM = 8; //Fire and Smoke Monitor
-    int32 fireStatus = 9; //0 no fire 1 has fire
-    bytes fireImage = 10;
-    int64 fireTime = 11; //time when get fireImage
-    GPSPoint firePosition = 12; //positon when get fireImage
-
-    bool isTSGM = 13; //Turn Stile Gate Monitor
-    int32 gateStatus = 14; //0 no gate 1 gate close 2 gate open
-    bytes gateImage = 15;
-    int64 gateTime = 16; //time when get gateImage
-    GPSPoint gatePosition = 17; //positon when get gateImage
-
-    string plateNumber = 18;
-}
-
-message Empty{ //this message need a id in future
-}
+syntax = "proto3";
+
+package org.jeecg.defsPatrol.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsPatrol.model";
+option java_outer_classname = "VehiclePatrol";
+
+message GPSPoint{
+    double latitude = 1;
+    double longitude = 2;
+    double height = 3;
+}
+
+message PatrolRequest{
+    string id = 1;
+
+    bool isTVR = 2; //Traffic Violation Recognition
+    int32 violationStatus = 3; //0 no violation 1 overspeed 2 illegal parking 3 direction wrong 4 run the red light
+    string vehicleLicenseNumber = 4;
+    bytes violationImage = 5;
+    int64 violationTime = 6; //time when get violationImage
+    GPSPoint violationPosition = 7; //positon when get violationImage
+
+    bool isFSM = 8; //Fire and Smoke Monitor
+    int32 fireStatus = 9; //0 no fire 1 has fire
+    bytes fireImage = 10;
+    int64 fireTime = 11; //time when get fireImage
+    GPSPoint firePosition = 12; //positon when get fireImage
+
+    bool isTSGM = 13; //Turn Stile Gate Monitor
+    int32 gateStatus = 14; //0 no gate 1 gate close 2 gate open
+    bytes gateImage = 15;
+    int64 gateTime = 16; //time when get gateImage
+    GPSPoint gatePosition = 17; //positon when get gateImage
+
+    string plateNumber = 18;
+
+    //异况处理
+    bool isVehicleErrorMsg = 19; //是否有报错 by Samuel
+    string vehicleErrorInfoMsg = 20; //报错信息具体内容
+    int64 vehicleErrorTime = 21; //报错时间
+    GPSPoint vehicleErrorPosition = 22; //报错地点
+}
+
+message Empty{
+}

+ 13 - 13
src/driver/driver_cloud_grpc_client_BS/VehiclePatrol_service.proto

@@ -1,13 +1,13 @@
-syntax = "proto3";
-
-package org.jeecg.defsPatrol.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsPatrol.service";
-option java_outer_classname = "VehiclePatrolService";
-
-import "VehiclePatrol.proto";
-
-service VehiclePatrolException {
-  rpc uploadVehiclePatrolInfo (PatrolRequest) returns (Empty) {}
-}
+syntax = "proto3";
+
+package org.jeecg.defsPatrol.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsPatrol.service";
+option java_outer_classname = "VehiclePatrolService";
+
+import "VehiclePatrol.proto";
+
+service VehiclePatrolException {
+  rpc uploadVehiclePatrolInfo (PatrolRequest) returns (Empty) {}
+}

+ 126 - 108
src/driver/driver_cloud_grpc_client_BS/VehicleUpload.proto

@@ -1,108 +1,126 @@
-syntax = "proto3";
-
-package org.jeecg.defsDetails.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsDetails.model";
-option java_outer_classname = "Vehicle";
-
-enum VehicleStatus{
-    STATUS_UNKOWN = 0;
-    STATUS_MANUAL = 1;
-    STATUS_AUTO = 2;
-    STATUS_REMOTE = 3;
-    STATUS_EMERGENCY_STOP = 4;
-    STATUS_ERROR = 5;
-}
-
-enum ShiftStatus{
-    SHIFT_UNKOWN = 0;
-    SHIFT_ERROR = 1;
-    SHIFT_INTERVAL = 2;
-    SHIFT_PARKING = 3;
-    SHIFT_REVERSE = 4;
-    SHIFT_NEUTRAL = 5;
-    SHIFT_DRIVE = 6;
-    SHIFT_SPORT = 7;
-
-    SHIFT_LOW = 10;
-    SHIFT_LEVEL1 = 11;
-    SHIFT_LEVEL2 = 12;
-    SHIFT_LEVEL3 = 13;
-    SHIFT_LEVEL4 = 14;
-    SHIFT_LEVEL5 = 15;
-    SHIFT_LEVEL6 = 16;
-    SHIFT_LEVEL7 = 17;
-    SHIFT_LEVEL8 = 18;
-    SHIFT_LEVEL9 = 19;
-    SHIFT_LEVEL10 = 20;
-}
-
-message GPSPoint{
-    double latitude = 1;
-    double longitude = 2;
-    double height = 3;
-}
-
-message UplinkRequest {
-    string id = 1;
-    int64 timeStamp = 2;
-    double SOC = 3; //0.0-100.0%
-    VehicleStatus statusFeedback = 4;
-    double mileage = 5; // kilometer
-    double speed = 6; // m/s
-    ShiftStatus shiftFeedback = 7;
-    double steeringWheelAngleFeedback = 8; //+/-540 degree
-    double throttleFeedback = 9;
-    double brakeFeedback = 10;
-    int32 GPSRTKStatus = 11; //GPS-RTK status 0-6 6 is best
-    GPSPoint positionFeedback = 12;
-    double pitch = 13;
-    double roll = 14;
-    double heading = 15;
-    bytes cameraImageFront = 16;
-    bytes cameraImageRear = 17;
-    bytes cameraImageLeft = 18;
-    bytes cameraImageRight = 19;
-
-    bool sensorStatusGPSIMU = 20; //0 GPS-IMU ok 1 GPS-IMU error
-    bool sensorStatusLidar = 21;
-    bool sensorStatusRadar = 22;
-    bool sensorStatusCamFront = 23;
-    bool sensorStatusCamRear = 24;
-    bool sensorStatusCamLeft = 25;
-    bool sensorStatusCamRight = 26;
-
-    int32 isArrived = 27; //0 no destination 1 not arrived 2 arrived
-
-    string plateNumber = 28;
-
-    CtrlMode modeFeedback = 29; //mode Feedback
-}
-
-enum CtrlMode{
-    CMD_AUTO = 0;
-    CMD_REMOTE = 1;
-    CMD_EMERGENCY_STOP = 2;
-    CMD_CLOUD_PLATFORM = 3; // 云平台控制模式 merge into remote mode
-}
-
-message Empty {
-    string id = 1;
-}
-
-message ResponseMessage{
-    GPSPoint destinationPosition = 1; //in auto mode
-}
-
-message MapPoint{
-    int64 index = 1;
-    GPSPoint mapPoint = 2;
-}
-
-message UploadPathRequest{
-    string id = 1; // 车辆 SIM 码
-    string patrolPathID = 2; //对应巡逻路径的ID
-    repeated MapPoint pathPoints = 3;
-}
-
+syntax = "proto3";
+
+package org.jeecg.defsDetails.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsDetails.model";
+option java_outer_classname = "Vehicle";
+
+enum VehicleStatus{
+    STATUS_UNKOWN = 0;
+    STATUS_MANUAL = 1;
+    STATUS_AUTO = 2;
+    STATUS_REMOTE = 3;
+    STATUS_EMERGENCY_STOP = 4;
+    STATUS_ERROR = 5;
+}
+
+enum ShiftStatus{
+    SHIFT_UNKOWN = 0;
+    SHIFT_ERROR = 1;
+    SHIFT_INTERVAL = 2;
+    SHIFT_PARKING = 3;
+    SHIFT_REVERSE = 4;
+    SHIFT_NEUTRAL = 5;
+    SHIFT_DRIVE = 6;
+    SHIFT_SPORT = 7;
+
+    SHIFT_LOW = 10;
+    SHIFT_LEVEL1 = 11;
+    SHIFT_LEVEL2 = 12;
+    SHIFT_LEVEL3 = 13;
+    SHIFT_LEVEL4 = 14;
+    SHIFT_LEVEL5 = 15;
+    SHIFT_LEVEL6 = 16;
+    SHIFT_LEVEL7 = 17;
+    SHIFT_LEVEL8 = 18;
+    SHIFT_LEVEL9 = 19;
+    SHIFT_LEVEL10 = 20;
+}
+
+message GPSPoint{
+    double latitude = 1;
+    double longitude = 2;
+    double height = 3;
+}
+
+enum UseStatus{
+    DEACTIVATING = 0;//停用中
+    ENABLING = 1;//启用中
+}
+
+enum VehicleClass{
+    RUN_ERRANDS = 0;//跑腿车
+    GUIDE = 1;//导览车
+    CLEAN = 2;//清扫车
+}
+
+message UplinkRequest {
+    string id = 1;
+    int64 timeStamp = 2;
+    double SOC = 3; //0.0-100.0%
+    VehicleStatus statusFeedback = 4;
+    double mileage = 5; // kilometer
+    double speed = 6; // m/s
+    ShiftStatus shiftFeedback = 7;
+    double steeringWheelAngleFeedback = 8; //+/-540 degree
+    double throttleFeedback = 9;
+    double brakeFeedback = 10;
+    int32 GPSRTKStatus = 11; //GPS-RTK status 0-6 6 is best
+    GPSPoint positionFeedback = 12;
+    double pitch = 13;
+    double roll = 14;
+    double heading = 15;//0北,90东,180南,270西
+    bytes cameraImageFront = 16;
+    bytes cameraImageRear = 17;
+    bytes cameraImageLeft = 18;
+    bytes cameraImageRight = 19;
+
+    bool sensorStatusGPSIMU = 20; //0 GPS-IMU ok 1 GPS-IMU error
+    bool sensorStatusLidar = 21;
+    bool sensorStatusRadar = 22;
+    bool sensorStatusCamFront = 23;
+    bool sensorStatusCamRear = 24;
+    bool sensorStatusCamLeft = 25;
+    bool sensorStatusCamRight = 26;
+
+    int32 isArrived = 27; //0 no destination 1 not arrived 2 arrived
+
+    string plateNumber = 28;
+
+    CtrlMode modeFeedback = 29; //mode Feedback
+
+    UseStatus useStatusFeedback = 30; //使用状态
+    double remainPathLength = 31; //剩余路径长度,没有目的地时为0
+    VehicleClass classFeedback = 32; //车类别
+}
+
+enum CtrlMode{
+    CMD_AUTO = 0;
+    CMD_REMOTE = 1;
+    CMD_EMERGENCY_STOP = 2;
+    CMD_CLOUD_PLATFORM = 3; // 云平台控制模式 merge into remote mode
+}
+
+message Empty {
+    string id = 1;
+}
+
+message ResponseMessage{
+    GPSPoint destinationPosition = 1; //in auto mode
+}
+
+message MapPoint{
+    int64 index = 1;
+    GPSPoint mapPoint = 2;
+}
+
+message UploadPathRequest{
+    string id = 1; // 车辆 SIM 码
+    string patrolPathID = 2; //对应巡逻路径的ID
+    repeated MapPoint pathPoints = 3;
+    double arrivedTime = 4; //到达路径终点预计耗时 单位为秒 by Samuel
+    double waitTime = 5; //到达目的地后原地待命的时间
+    double totalPathLength = 6; //路径总长度 单位 米
+}
+

+ 6 - 0
src/driver/driver_cloud_grpc_client_BS/VehicleUpload_service.grpc.pb.h

@@ -39,6 +39,7 @@ class DataExchange final {
   class StubInterface {
    public:
     virtual ~StubInterface() {}
+    // 车辆实时信息的传输
     virtual ::grpc::Status uploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest& request, ::org::jeecg::defsDetails::grpc::ResponseMessage* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::ResponseMessage>> AsyncuploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::ResponseMessage>>(AsyncuploadVehicleInfoRaw(context, request, cq));
@@ -46,6 +47,7 @@ class DataExchange final {
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::ResponseMessage>> PrepareAsyncuploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::ResponseMessage>>(PrepareAsyncuploadVehicleInfoRaw(context, request, cq));
     }
+    // 路径制作好后返回给服务器
     virtual ::grpc::Status uploadPath(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UploadPathRequest& request, ::org::jeecg::defsDetails::grpc::Empty* response) = 0;
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::Empty>> AsyncuploadPath(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UploadPathRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::org::jeecg::defsDetails::grpc::Empty>>(AsyncuploadPathRaw(context, request, cq));
@@ -56,12 +58,14 @@ class DataExchange final {
     class experimental_async_interface {
      public:
       virtual ~experimental_async_interface() {}
+      // 车辆实时信息的传输
       virtual void uploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest* request, ::org::jeecg::defsDetails::grpc::ResponseMessage* response, std::function<void(::grpc::Status)>) = 0;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       virtual void uploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest* request, ::org::jeecg::defsDetails::grpc::ResponseMessage* response, ::grpc::ClientUnaryReactor* reactor) = 0;
       #else
       virtual void uploadVehicleInfo(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest* request, ::org::jeecg::defsDetails::grpc::ResponseMessage* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
       #endif
+      // 路径制作好后返回给服务器
       virtual void uploadPath(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UploadPathRequest* request, ::org::jeecg::defsDetails::grpc::Empty* response, std::function<void(::grpc::Status)>) = 0;
       #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
       virtual void uploadPath(::grpc::ClientContext* context, const ::org::jeecg::defsDetails::grpc::UploadPathRequest* request, ::org::jeecg::defsDetails::grpc::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0;
@@ -138,7 +142,9 @@ class DataExchange final {
    public:
     Service();
     virtual ~Service();
+    // 车辆实时信息的传输
     virtual ::grpc::Status uploadVehicleInfo(::grpc::ServerContext* context, const ::org::jeecg::defsDetails::grpc::UplinkRequest* request, ::org::jeecg::defsDetails::grpc::ResponseMessage* response);
+    // 路径制作好后返回给服务器
     virtual ::grpc::Status uploadPath(::grpc::ServerContext* context, const ::org::jeecg::defsDetails::grpc::UploadPathRequest* request, ::org::jeecg::defsDetails::grpc::Empty* response);
   };
   template <class BaseClass>

+ 17 - 16
src/driver/driver_cloud_grpc_client_BS/VehicleUpload_service.proto

@@ -1,16 +1,17 @@
-
-syntax = "proto3";
-
-package org.jeecg.defsDetails.grpc;
-
-option java_multiple_files = true;
-option java_package = "org.jeecg.defsDetails.service";
-option java_outer_classname = "VehicleService";
-
-import "VehicleUpload.proto";
-
-service DataExchange {
-  rpc uploadVehicleInfo (UplinkRequest) returns (ResponseMessage) {}
-  
-  rpc uploadPath (UploadPathRequest) returns (Empty) {}
-}
+
+syntax = "proto3";
+
+package org.jeecg.defsDetails.grpc;
+
+option java_multiple_files = true;
+option java_package = "org.jeecg.defsDetails.service";
+option java_outer_classname = "VehicleService";
+
+import "VehicleUpload.proto";
+
+service DataExchange {
+  //车辆实时信息的传输
+  rpc uploadVehicleInfo (UplinkRequest) returns (ResponseMessage) {}
+  //路径制作好后返回给服务器
+  rpc uploadPath (UploadPathRequest) returns (Empty) {}
+}

+ 1 - 0
src/driver/driver_cloud_grpc_client_BS/driver_cloud_grpc_client_BS.pro

@@ -83,6 +83,7 @@ HEADERS += \
         VehicleUpload.pb.h \
         VehicleUpload_service.grpc.pb.h \
         VehicleUpload_service.pb.h \
+        gps_type.h \
         vehicle_control.h \
         vehicle_patrol.h \
         vehicle_upload.h \

+ 8 - 0
src/driver/driver_cloud_grpc_client_BS/driver_cloud_grpc_client_BS.yaml

@@ -51,4 +51,12 @@ turnstile:
   msgname: turnstile
   buffersize: 10000000
   buffercount: 1
+trace_map:
+  msgname: simpletrace
+  buffersize: 100000
+  buffercount: 1
+xodr_request:
+  msgname: xodrreq
+  buffersize: 1000
+  buffercount: 1
 

+ 106 - 0
src/driver/driver_cloud_grpc_client_BS/gps_type.h

@@ -0,0 +1,106 @@
+#pragma once
+/*
+*GPS 惯导数据
+*/
+#ifndef _IV_COMMON_GPS_TYPE_
+#define _IV_COMMON_GPS_TYPE_
+
+#include "boost.h"
+namespace iv {
+    struct GPS_INS
+    {
+        int valid = 0xff;
+        int index = 0;	//gps点序号
+
+        double gps_lat = 0;//纬度
+        double gps_lng = 0;//经度
+
+        double gps_x = 0;
+        double gps_y = 0;
+        double gps_z = 0;
+
+        double ins_roll_angle = 0;	//横滚角 一般定义载体的右、前、上三个方向构成右手系,绕向前的轴旋转就是横滚角,绕向右的轴旋转就是俯仰角,绕向上的轴旋转就是航向角
+        double ins_pitch_angle = 0;	//俯仰角
+        double ins_heading_angle = 0;	//航向角
+
+        int ins_status = 0;	//惯导状态 4
+        int rtk_status = 0;	//rtk状态 6 -5 -3
+        int gps_satelites_num = 0;
+
+        //-----加速度--------------
+        double accel_x = 0;
+        double accel_y = 0;
+        double accel_z = 0;
+
+        //-------角速度------------
+        double ang_rate_x = 0;
+        double ang_rate_y = 0;
+        double ang_rate_z = 0;
+
+        //-----------方向速度--------------
+        double vel_N = 0;
+        double vel_E = 0;
+        double vel_D = 0;
+
+        int speed_mode = 0;
+        int mode2 = 0;
+        double speed = 0;			//速度  若导航点则为导航预设速度  若为当前点则为当前车速
+
+        int roadMode;
+        int runMode;
+        int roadSum;
+        int roadOri;
+
+        double mfLaneWidth = 3.5; // Current Lane Width
+
+        double mfDisToLaneLeft = 1.8; //Distance to Lane Left
+        int mnLaneChangeMark = 0; //1 to Left 0 not change   -1 to right
+        double mfDisToRoadLeft = 1.8; //Distance to Road Left
+        double mfRoadWidth = 3.5; // Road Width
+
+        bool mbInLaneAvoid = false; //if true suport In Lane Avoid
+        double gps_lat_avoidleft;
+        double gps_lng_avoidleft;
+        double gps_lat_avoidright;
+        double gps_lng_avoidright;
+        double gps_x_avoidleft = 0;
+        double gps_y_avoidleft = 0;
+        double gps_x_avoidright = 0;
+        double gps_y_avoidright = 0;
+
+        bool mbnoavoid = false; //If true this point is no avoid.
+        double mfCurvature = 0.0;
+
+        char mcreserved[10];
+        int mnreserved[5];
+        double mfreserved[2];
+
+
+
+    };
+
+    typedef boost::shared_ptr<iv::GPS_INS> GPSData;
+     class Point2D
+    {
+      public:
+          double x = 0, y = 0, speed=0;
+         int v1 = 0, v2 = 0;
+
+         Point2D()
+        {
+            x = y = v1 = 0;
+        }
+
+         Point2D(double _x, double _y)
+        {
+            x = _x; y = _y;
+        }
+
+
+     };
+
+
+
+
+}
+#endif // !_IV_COMMON_GPS_TYPE_

+ 13 - 1
src/driver/driver_cloud_grpc_client_BS/vehicle_control.cpp

@@ -211,6 +211,10 @@ void VehicleControlClient::run()
             updateControlData();
             lastTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(1000));//sleep 1ms
+        }
     }
 }
 
@@ -292,6 +296,10 @@ void VehicleChangeCtrlModeClient::run()
             updateCtrolMode();
             lastTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(1000));//sleep 1ms
+        }
     }
 }
 
@@ -325,7 +333,7 @@ std::string VehicleUploadMapClient::uploadMap(void)
     context.set_deadline(timespec);
 
     // The actual RPC.
-    Status status = stub_ -> UploadMap(&context,request,&reply);
+    Status status = stub_ -> uploadMap(&context,request,&reply);
 
     // Act upon its status.
     if (status.ok()) {
@@ -386,6 +394,10 @@ void VehicleUploadMapClient::run()
             }
             lastTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(1000));//sleep 1ms
+        }
     }
 }
 

+ 4 - 0
src/driver/driver_cloud_grpc_client_BS/vehicle_patrol.cpp

@@ -472,5 +472,9 @@ void VehiclePatrolExceptionClient::run()
 //            std::cout<< reply <<std::endl;
             lastTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(1000));//sleep 1ms
+        }
     }
 }

+ 136 - 19
src/driver/driver_cloud_grpc_client_BS/vehicle_upload.cpp

@@ -36,6 +36,11 @@ DataExchangeClient::DataExchangeClient(std::shared_ptr<Channel> channel)
 
     dec_yaml(stryamlpath);
 
+    QObject::connect(this,&DataExchangeClient::destination_Recieved,this,&DataExchangeClient::destination_Recieved_Slot);
+    QObject::connect(this,&DataExchangeClient::path_Updated,this,&DataExchangeClient::path_Updated_Slot);
+
+    shmXodrRequest.mpa = iv::modulecomm::RegisterSend(shmXodrRequest.mstrmsgname,shmXodrRequest.mnBufferSize,shmXodrRequest.mnBufferCount);
+
     ModuleFun funupdate = std::bind(&DataExchangeClient::ListenFrontPicMsg,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
     shmPicFront.mpa = iv::modulecomm::RegisterRecvPlus(shmPicFront.mstrmsgname,funupdate);
     funupdate = std::bind(&DataExchangeClient::ListenRearPicMsg,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
@@ -50,6 +55,8 @@ DataExchangeClient::DataExchangeClient(std::shared_ptr<Channel> channel)
     shmGPSIMU.mpa = iv::modulecomm::RegisterRecvPlus(shmGPSIMU.mstrmsgname,funupdate);
     funupdate = std::bind(&DataExchangeClient::ListenPlatformFeedbackMsg,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
     shmPlatformFeedback.mpa = iv::modulecomm::RegisterRecvPlus(shmPlatformFeedback.mstrmsgname,funupdate);
+    funupdate = std::bind(&DataExchangeClient::ListenTraceMapMsg,this,std::placeholders::_1,std::placeholders::_2,std::placeholders::_3,std::placeholders::_4,std::placeholders::_5);
+    shmTraceMap.mpa = iv::modulecomm::RegisterRecvPlus(shmTraceMap.mstrmsgname,funupdate);
 }
 
 DataExchangeClient::~DataExchangeClient(void)
@@ -220,6 +227,44 @@ void DataExchangeClient::dec_yaml(const char *stryamlpath)
         shmGPSIMU.mnBufferCount = 1;
     }
 
+    if(config["trace_map"])
+    {
+        if(config["trace_map"]["msgname"]&&config["trace_map"]["buffersize"]&&config["trace_map"]["buffercount"])
+        {
+            strmsgname = config["trace_map"]["msgname"].as<std::string>();
+            strncpy(shmTraceMap.mstrmsgname,strmsgname.data(),255);
+            shmTraceMap.mnBufferSize = config["trace_map"]["buffersize"].as<int>();
+            shmTraceMap.mnBufferCount = config["trace_map"]["buffercount"].as<int>();
+            std::cout << "trace_map:" << shmTraceMap.mstrmsgname << "," << shmTraceMap.mnBufferSize << "," << shmTraceMap.mnBufferCount << std::endl;
+        }
+    }
+    else
+    {
+        strmsgname = "simpletrace";
+        strncpy(shmTraceMap.mstrmsgname,strmsgname.data(),255);
+        shmTraceMap.mnBufferSize = 100000;
+        shmTraceMap.mnBufferCount = 1;
+    }
+
+    if(config["xodr_request"])
+    {
+        if(config["xodr_request"]["msgname"]&&config["xodr_request"]["buffersize"]&&config["xodr_request"]["buffercount"])
+        {
+            strmsgname = config["xodr_request"]["msgname"].as<std::string>();
+            strncpy(shmXodrRequest.mstrmsgname,strmsgname.data(),255);
+            shmXodrRequest.mnBufferSize = config["xodr_request"]["buffersize"].as<int>();
+            shmXodrRequest.mnBufferCount = config["xodr_request"]["buffercount"].as<int>();
+            std::cout << "xodr_request:" << shmXodrRequest.mstrmsgname << "," << shmXodrRequest.mnBufferSize << "," << shmXodrRequest.mnBufferCount << std::endl;
+        }
+    }
+    else
+    {
+        strmsgname = "xodrreq";
+        strncpy(shmXodrRequest.mstrmsgname,strmsgname.data(),255);
+        shmXodrRequest.mnBufferSize = 1000;
+        shmXodrRequest.mnBufferCount = 1;
+    }
+
     return;
 }
 
@@ -397,6 +442,34 @@ void DataExchangeClient::ListenPlatformFeedbackMsg(const char * strdata,const un
 //    std::cout<<throttleFeedback<<","<<brakeFeedback<<","<<steeringWheelAngleFeedback<<","<<shiftFeedback<<","<<modeFeedback<<std::endl;
 }
 
+void DataExchangeClient::ListenTraceMapMsg(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname)
+{
+// recive trance map
+    int npoint = nSize/sizeof(iv::simpletrace);
+    if(npoint < 1)
+    {
+        std::cout<<"simple trace is very small"<<std::endl;
+        return;
+    }
+    std::vector<iv::simpletrace> simpletrace;
+    simpletrace.clear();
+    simpletrace.resize(npoint);
+    memcpy(simpletrace.data(),strdata,npoint*sizeof(iv::simpletrace));
+
+    org::jeecg::defsDetails::grpc::MapPoint onePoint;
+    pathPoints.clear();
+    for(int i = 0;i < npoint;i++)
+    {
+        onePoint.set_index(i);
+        onePoint.mutable_mappoint()->set_latitude(simpletrace[i].gps_lat);
+        onePoint.mutable_mappoint()->set_longitude(simpletrace[i].gps_lng);
+        pathPoints.append(onePoint);
+//        std::cout<<pathPoints.at(i).index()<<std::endl;
+    }
+
+    emit path_Updated();
+}
+
 std::string DataExchangeClient::uploadVehicleInfo(void)
 {
 
@@ -469,6 +542,7 @@ std::string DataExchangeClient::uploadVehicleInfo(void)
     // Act upon its status.
     if (status.ok()) {
         destinationPosition.CopyFrom(reply.destinationposition());
+        emit destination_Recieved();
 //        std::cout<<std::setprecision(12)<<"lat:"<<reply.destinationposition().latitude()<<"lon:"<<reply.destinationposition().longitude()<<"height:"<<reply.destinationposition().height()<<std::endl;
         return "uploadVehicleInfo RPC successed";
     } else {
@@ -650,6 +724,10 @@ void DataExchangeClient::run()
 //            std::cout<<std::setprecision(12)<<destinationPosition.latitude()<<","<<destinationPosition.longitude()<<std::endl;
             lastTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(500));//sleep 0.5ms
+        }
 
         if(abs(xTime.elapsed() - fileWriteTime) >= 2500)
         {
@@ -662,35 +740,74 @@ void DataExchangeClient::run()
             mileageFile.close();
             fileWriteTime = xTime.elapsed();
         }
+        else
+        {
+            std::this_thread::sleep_for(std::chrono::microseconds(500));//sleep 0.5ms
+        }
     }
 }
 
 void DataExchangeClient::patrolPOI_Recieved_Slot(std::string pathID)
 {
-    std::cout<<"patrol path calculating"<<std::endl;
-    QFile mapfile;
-    mapfile.setFileName("/home/nvidia/Documents/path2.txt");
-    QVector<org::jeecg::defsDetails::grpc::MapPoint> somePoints;
-    if(mapfile.open(QIODevice::ReadOnly | QIODevice::Text))
+    if(destinationRefreshed == false)
     {
-        while(!mapfile.atEnd())
-        {
-            QByteArray line = mapfile.readLine();
-            QString map_str(line);
-            QStringList oneline = map_str.split(",");
-            org::jeecg::defsDetails::grpc::MapPoint onePoint;
-            onePoint.set_index(oneline.at(0).toInt());
-            onePoint.mutable_mappoint()->set_longitude(oneline.at(1).toDouble());
-            onePoint.mutable_mappoint()->set_latitude(oneline.at(2).toDouble());
-            onePoint.mutable_mappoint()->set_height(oneline.at(3).toDouble());
-            somePoints.append(onePoint);
-        }
+        destinationRefreshed = true;
+        patrolPathID = pathID;
+        std::cout<<"patrol path calculating"<<std::endl;
     }
-    updatePath(pathID,somePoints);
-    uploadPath();
+    else
+    {
+        std::cout<<"last path calculating has not finished, please wait."<<std::endl;
+    }
+
+//    QFile mapfile;
+//    mapfile.setFileName("/home/nvidia/Documents/path2.txt");
+//    QVector<org::jeecg::defsDetails::grpc::MapPoint> somePoints;
+//    if(mapfile.open(QIODevice::ReadOnly | QIODevice::Text))
+//    {
+//        while(!mapfile.atEnd())
+//        {
+//            QByteArray line = mapfile.readLine();
+//            QString map_str(line);
+//            QStringList oneline = map_str.split(",");
+//            org::jeecg::defsDetails::grpc::MapPoint onePoint;
+//            onePoint.set_index(oneline.at(0).toInt());
+//            onePoint.mutable_mappoint()->set_longitude(oneline.at(1).toDouble());
+//            onePoint.mutable_mappoint()->set_latitude(oneline.at(2).toDouble());
+//            onePoint.mutable_mappoint()->set_height(oneline.at(3).toDouble());
+//            somePoints.append(onePoint);
+//        }
+//    }
+//    updatePath(pathID,somePoints);
+//    uploadPath();
 }
 
 void DataExchangeClient::ctrlMode_Changed_Slot(org::jeecg::defsDetails::grpc::CtrlMode ctrlMode)
 {
     modeFeedback = ctrlMode;
 }
+
+void DataExchangeClient::destination_Recieved_Slot(void)
+{
+    if(fabs(destinationPosition.latitude()) > 0.000001 \
+            && fabs(destinationPosition.longitude()) > 0.000001)
+    {
+        if(destinationRefreshed == true)
+        {
+            xodrobj xodrDest;
+            xodrDest.flon = destinationPosition.longitude();
+            xodrDest.flat = destinationPosition.latitude();
+            xodrDest.lane = 1;
+
+            iv::modulecomm::ModuleSendMsg(shmXodrRequest.mpa,(char *)&xodrDest,sizeof(xodrobj)); // send request msg
+            destinationRefreshed = false;
+        }
+    }
+}
+
+void DataExchangeClient::path_Updated_Slot(void)
+{
+    uploadPath();
+    if(destinationRefreshed == true)
+        destinationRefreshed = false;
+}

+ 34 - 0
src/driver/driver_cloud_grpc_client_BS/vehicle_upload.h

@@ -38,6 +38,32 @@ struct msgunit
 
 #endif
 
+namespace iv {
+struct simpletrace
+{
+    double gps_lat = 0;//纬度
+    double gps_lng = 0;//经度
+
+    double gps_x = 0;
+    double gps_y = 0;
+    double gps_z = 0;
+
+
+    double ins_heading_angle = 0;	//航向角
+};
+}
+
+class xodrobj
+{
+public:
+    double flatsrc;
+    double flonsrc;
+    double fhgdsrc;
+    double flat;
+    double flon;
+    int lane;
+};
+
 using grpc::Channel;
 using grpc::ClientContext;
 using grpc::Status;
@@ -72,6 +98,7 @@ public:
     void ListenChassisMsg(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
     void ListenGPSIMUMsg(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
     void ListenPlatformFeedbackMsg(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
+    void ListenTraceMapMsg(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname);
 
 protected:
     void run();
@@ -86,6 +113,8 @@ private:
     iv::msgunit shmChassis;
     iv::msgunit shmGPSIMU;
     iv::msgunit shmPlatformFeedback;
+    iv::msgunit shmXodrRequest;
+    iv::msgunit shmTraceMap;
 
     std::string id;
     uint64_t timeStamp = QDateTime::currentMSecsSinceEpoch();
@@ -132,16 +161,21 @@ private:
     org::jeecg::defsDetails::grpc::CtrlMode modeFeedback = org::jeecg::defsDetails::grpc::CtrlMode::CMD_EMERGENCY_STOP; //mode Feedback
 
     org::jeecg::defsDetails::grpc::GPSPoint destinationPosition;
+    bool destinationRefreshed = false;
 
     std::string patrolPathID;
     QVector<org::jeecg::defsDetails::grpc::MapPoint> pathPoints;
 
 signals:
     void uploadPath_Finished(std::string pathID);
+    void destination_Recieved(void);
+    void path_Updated(void);
 
 public slots:
     void patrolPOI_Recieved_Slot(std::string pathID);
     void ctrlMode_Changed_Slot(org::jeecg::defsDetails::grpc::CtrlMode ctrlMode);
+    void destination_Recieved_Slot(void);
+    void path_Updated_Slot(void);
 };
 
 #endif // VEHICLE_UPLOAD_H