|
@@ -17,20 +17,11 @@ using org::jeecg::defsControl::grpc::ShiftStatus;
|
|
|
VehicleControlClient::VehicleControlClient(std::shared_ptr<Channel> channel)
|
|
|
{
|
|
|
stub_ = VehicleControl::NewStub(channel);
|
|
|
-
|
|
|
- controlTimer = new QTimer();
|
|
|
- connect(controlTimer,&QTimer::timeout,this,&VehicleControlClient::controlTimeout);
|
|
|
- controlTimer->start(std::atoi(gstrcontrolInterval.c_str()));
|
|
|
-
|
|
|
- uploadMapTimer = new QTimer();
|
|
|
- connect(uploadMapTimer,&QTimer::timeout,this,&VehicleControlClient::uploadMapTimeout);
|
|
|
- uploadMapTimer->start(std::atoi(gstruploadMapInterval.c_str()));
|
|
|
}
|
|
|
|
|
|
VehicleControlClient::~VehicleControlClient(void)
|
|
|
{
|
|
|
- delete controlTimer;
|
|
|
- delete uploadMapTimer;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
std::string VehicleControlClient::vehicleControl(void)
|
|
@@ -84,47 +75,78 @@ std::string VehicleControlClient::vehicleControl(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-std::string VehicleControlClient::uploadMap(void)
|
|
|
+void VehicleControlClient::updateControlData(void)
|
|
|
+{
|
|
|
+ std::cout<<"shift:"<<shiftCMD<<std::endl;
|
|
|
+ std::cout<<"steeringWheelAngle:"<<steeringWheelAngleCMD<<std::endl;
|
|
|
+ std::cout<<"throttle:"<<throttleCMD<<std::endl;
|
|
|
+ std::cout<<"brake:"<<brakeCMD<<std::endl;
|
|
|
+}
|
|
|
+
|
|
|
+void VehicleControlClient::run()
|
|
|
+{
|
|
|
+ QTime xTime;
|
|
|
+ xTime.start();
|
|
|
+ uint64_t lastTime = xTime.elapsed();
|
|
|
+ uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ if((xTime.elapsed() - lastTime)>=interval)
|
|
|
+ {
|
|
|
+ std::string reply = vehicleControl();
|
|
|
+ // std::cout<< reply <<std::endl;
|
|
|
+ if(modeCMD == CtrlMode::CMD_REMOTE || modeCMD == CtrlMode::CMD_CLOUD_PLATFORM)
|
|
|
+ {
|
|
|
+ updateControlData();
|
|
|
+ }
|
|
|
+ lastTime = xTime.elapsed();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void VehicleControlClient::ctrlMode_Changed_Slot(org::jeecg::defsControl::grpc::CtrlMode ctrlMode)
|
|
|
+{
|
|
|
+ modeCMD = ctrlMode;
|
|
|
+}
|
|
|
+
|
|
|
+VehicleChangeCtrlModeClient::VehicleChangeCtrlModeClient(std::shared_ptr<Channel> channel)
|
|
|
+{
|
|
|
+ stub_ = VehicleControl::NewStub(channel);
|
|
|
+}
|
|
|
+
|
|
|
+VehicleChangeCtrlModeClient::~VehicleChangeCtrlModeClient(void)
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+std::string VehicleChangeCtrlModeClient::changeCtrlMode(void)
|
|
|
{
|
|
|
// Data we are sending to the server.
|
|
|
Empty request;
|
|
|
request.set_id(gstrid);
|
|
|
|
|
|
// Container for the data we expect from the server.
|
|
|
- UploadMapReply reply;
|
|
|
+ CtrlModeReply reply;
|
|
|
|
|
|
// Context for the client. It could be used to convey extra information to
|
|
|
- // the server and/or tweak certain RPC behaviors.
|
|
|
+ // the server and/or tweastd::cout<<"shift:"<<shiftCMD<<std::endl;k certain RPC behaviors.
|
|
|
ClientContext context;
|
|
|
gpr_timespec timespec;
|
|
|
- timespec.tv_sec = 2;
|
|
|
+ timespec.tv_sec = 1;
|
|
|
timespec.tv_nsec = 0;
|
|
|
timespec.clock_type = GPR_TIMESPAN;
|
|
|
context.set_deadline(timespec);
|
|
|
|
|
|
// The actual RPC.
|
|
|
- Status status = stub_ -> UploadMap(&context,request,&reply);
|
|
|
+ Status status = stub_ -> changeCtrlMode(&context,request,&reply);
|
|
|
|
|
|
// Act upon its status.
|
|
|
if (status.ok()) {
|
|
|
if(reply.id() == gstrid)
|
|
|
{
|
|
|
-// std::cout<<reply.id()<<std::endl;
|
|
|
- isNeedMap = false;
|
|
|
- patrolPathID = "noPath";
|
|
|
- POIPoints.clear();
|
|
|
-
|
|
|
- isNeedMap = reply.isneedmap();
|
|
|
-// std::cout<<reply.isneedmap()<<std::endl;
|
|
|
- patrolPathID = reply.patrolpathid();
|
|
|
-// std::cout<<reply.patrolpathid()<<std::endl;
|
|
|
- for(int i = 0;i < reply.mappoints_size();i++)
|
|
|
- {
|
|
|
- POIPoints.append(reply.mappoints(i));
|
|
|
-// std::cout<<reply.mappoints(i).index()<<std::endl;
|
|
|
- }
|
|
|
+ modeCMD = reply.modecmd();
|
|
|
}
|
|
|
- return "UploadMap RPC successed";
|
|
|
+ return "changeCtrlMode RPC successed";
|
|
|
} else {
|
|
|
std::cout << status.error_code() << ": " << status.error_message()
|
|
|
<< std::endl;
|
|
@@ -132,38 +154,85 @@ std::string VehicleControlClient::uploadMap(void)
|
|
|
{
|
|
|
std::cout << "vehicleControl RPC connect timeout" << std::endl;
|
|
|
}
|
|
|
- return "UploadMap RPC failed";
|
|
|
+ return "changeCtrlMode RPC failed";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-std::string VehicleControlClient::changeCtrlMode(void)
|
|
|
+void VehicleChangeCtrlModeClient::updateCtrolMode(void)
|
|
|
+{
|
|
|
+// std::cout<<"modeCMD:"<<modeCMD<<std::endl;
|
|
|
+ emit ctrlMode_Changed(modeCMD);
|
|
|
+}
|
|
|
+
|
|
|
+void VehicleChangeCtrlModeClient::run()
|
|
|
+{
|
|
|
+ QTime xTime;
|
|
|
+ xTime.start();
|
|
|
+ uint64_t lastTime = xTime.elapsed();
|
|
|
+ uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ if((xTime.elapsed() - lastTime)>=interval)
|
|
|
+ {
|
|
|
+ std::string reply = changeCtrlMode();
|
|
|
+ // std::cout<< reply <<std::endl;
|
|
|
+ updateCtrolMode();
|
|
|
+ lastTime = xTime.elapsed();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+VehicleUploadMapClient::VehicleUploadMapClient(std::shared_ptr<Channel> channel)
|
|
|
+{
|
|
|
+ stub_ = VehicleControl::NewStub(channel);
|
|
|
+}
|
|
|
+
|
|
|
+VehicleUploadMapClient::~VehicleUploadMapClient(void)
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+std::string VehicleUploadMapClient::uploadMap(void)
|
|
|
{
|
|
|
// Data we are sending to the server.
|
|
|
Empty request;
|
|
|
request.set_id(gstrid);
|
|
|
|
|
|
// Container for the data we expect from the server.
|
|
|
- CtrlModeReply reply;
|
|
|
+ UploadMapReply reply;
|
|
|
|
|
|
// Context for the client. It could be used to convey extra information to
|
|
|
- // the server and/or tweastd::cout<<"shift:"<<shiftCMD<<std::endl;k certain RPC behaviors.
|
|
|
+ // the server and/or tweak certain RPC behaviors.
|
|
|
ClientContext context;
|
|
|
gpr_timespec timespec;
|
|
|
- timespec.tv_sec = 1;
|
|
|
+ timespec.tv_sec = 2;
|
|
|
timespec.tv_nsec = 0;
|
|
|
timespec.clock_type = GPR_TIMESPAN;
|
|
|
context.set_deadline(timespec);
|
|
|
|
|
|
// The actual RPC.
|
|
|
- Status status = stub_ -> changeCtrlMode(&context,request,&reply);
|
|
|
+ Status status = stub_ -> UploadMap(&context,request,&reply);
|
|
|
|
|
|
// Act upon its status.
|
|
|
if (status.ok()) {
|
|
|
if(reply.id() == gstrid)
|
|
|
{
|
|
|
- modeCMD = reply.modecmd();
|
|
|
+// std::cout<<reply.id()<<std::endl;
|
|
|
+ isNeedMap = false;
|
|
|
+ patrolPathID = "noPath";
|
|
|
+ POIPoints.clear();
|
|
|
+
|
|
|
+ isNeedMap = reply.isneedmap();
|
|
|
+// std::cout<<reply.isneedmap()<<std::endl;
|
|
|
+ patrolPathID = reply.patrolpathid();
|
|
|
+// std::cout<<reply.patrolpathid()<<std::endl;
|
|
|
+ for(int i = 0;i < reply.mappoints_size();i++)
|
|
|
+ {
|
|
|
+ POIPoints.append(reply.mappoints(i));
|
|
|
+// std::cout<<reply.mappoints(i).index()<<std::endl;
|
|
|
+ }
|
|
|
}
|
|
|
- return "changeCtrlMode RPC successed";
|
|
|
+ return "UploadMap RPC successed";
|
|
|
} else {
|
|
|
std::cout << status.error_code() << ": " << status.error_message()
|
|
|
<< std::endl;
|
|
@@ -171,73 +240,42 @@ std::string VehicleControlClient::changeCtrlMode(void)
|
|
|
{
|
|
|
std::cout << "vehicleControl RPC connect timeout" << std::endl;
|
|
|
}
|
|
|
- return "changeCtrlMode RPC failed";
|
|
|
+ return "UploadMap RPC failed";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void VehicleControlClient::updateControlData(void)
|
|
|
-{
|
|
|
- std::cout<<"shift:"<<shiftCMD<<std::endl;
|
|
|
- std::cout<<"steeringWheelAngle:"<<steeringWheelAngleCMD<<std::endl;
|
|
|
- std::cout<<"throttle:"<<throttleCMD<<std::endl;
|
|
|
- std::cout<<"brake:"<<brakeCMD<<std::endl;
|
|
|
-}
|
|
|
-
|
|
|
-void VehicleControlClient::updateMapPOIData(void)
|
|
|
+void VehicleUploadMapClient::updateMapPOIData(void)
|
|
|
{
|
|
|
std::cout<<"isNeedMap:"<<isNeedMap<<std::endl;
|
|
|
std::cout<<"patrolPathID:"<<patrolPathID<<std::endl;
|
|
|
emit patrolPOI_Recieved(patrolPathID);
|
|
|
}
|
|
|
|
|
|
-void VehicleControlClient::updateCtrolMode(void)
|
|
|
-{
|
|
|
-// std::cout<<"modeCMD:"<<modeCMD<<std::endl;
|
|
|
-}
|
|
|
-
|
|
|
-void VehicleControlClient::controlTimeout(void)
|
|
|
+void VehicleUploadMapClient::run()
|
|
|
{
|
|
|
- std::string reply = changeCtrlMode();
|
|
|
-// std::cout<< reply <<std::endl;
|
|
|
- updateCtrolMode();
|
|
|
-
|
|
|
- reply = vehicleControl();
|
|
|
-// std::cout<< reply <<std::endl;
|
|
|
- if(modeCMD == CtrlMode::CMD_REMOTE || modeCMD == CtrlMode::CMD_CLOUD_PLATFORM)
|
|
|
+ QTime xTime;
|
|
|
+ xTime.start();
|
|
|
+ uint64_t lastTime = xTime.elapsed();
|
|
|
+ uint64_t interval = std::atoi(gstrcontrolInterval.c_str());
|
|
|
+ while (true)
|
|
|
{
|
|
|
- updateControlData();
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void VehicleControlClient::uploadMapTimeout(void)
|
|
|
-{
|
|
|
- if(isNeedMap == false)
|
|
|
- {
|
|
|
- std::string reply = uploadMap();
|
|
|
-// std::cout<< reply <<std::endl;
|
|
|
- if(isNeedMap == true)
|
|
|
+ if((xTime.elapsed() - lastTime)>=interval)
|
|
|
{
|
|
|
- updateMapPOIData();
|
|
|
+ if(isNeedMap == false)
|
|
|
+ {
|
|
|
+ std::string reply = uploadMap();
|
|
|
+ // std::cout<< reply <<std::endl;
|
|
|
+ if(isNeedMap == true)
|
|
|
+ {
|
|
|
+ updateMapPOIData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lastTime = xTime.elapsed();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-std::string VehicleControlClient::get_patrolPathID(void)
|
|
|
-{
|
|
|
- return patrolPathID;
|
|
|
-}
|
|
|
-
|
|
|
-bool VehicleControlClient::get_isNeedMap(void)
|
|
|
-{
|
|
|
- return isNeedMap;
|
|
|
-}
|
|
|
-
|
|
|
-void VehicleControlClient::set_isNeedMap(bool needMapStatus)
|
|
|
-{
|
|
|
- isNeedMap = needMapStatus;
|
|
|
-}
|
|
|
-
|
|
|
-void VehicleControlClient::uploadPath_Finished_Slot(std::string pathID)
|
|
|
+void VehicleUploadMapClient::uploadPath_Finished_Slot(std::string pathID)
|
|
|
{
|
|
|
std::cout<<"Path ID:"<<pathID<<" upload finished"<<std::endl;
|
|
|
if(isNeedMap == true)
|