#include "vehicle_upload.h" #include #include #include extern std::string gstrserverip; extern std::string gstruploadPort; extern std::string gstruploadInterval; extern std::string gstrid; extern std::string gstrplateNumber; using org::jeecg::defsDetails::grpc::Empty; ///< other message using org::jeecg::defsDetails::grpc::GPSPoint; using org::jeecg::defsDetails::grpc::MapPoint; using org::jeecg::defsDetails::grpc::ShiftStatus; ///< other enum using org::jeecg::defsDetails::grpc::CtrlMode; DataExchangeClient::DataExchangeClient(std::shared_ptr channel) { stub_ = DataExchange::NewStub(channel); } DataExchangeClient::~DataExchangeClient(void) { } std::string DataExchangeClient::uploadVehicleInfo(void) { // Data we are sending to the server. UplinkRequest request; request.set_id(id); request.set_timestamp(timeStamp); request.set_soc(SOC); request.set_statusfeedback(statusFeedback); request.set_mileage(mileage); request.set_speed(speed); request.set_shiftfeedback(shiftFeedback); request.set_steeringwheelanglefeedback(steeringWheelAngleFeedback); request.set_throttlefeedback(throttleFeedback); request.set_brakefeedback(brakeFeedback); request.set_gpsrtkstatus(GPSRTKStatus); request.mutable_positionfeedback()->CopyFrom(positionFeedback); request.set_pitch(pitch); request.set_roll(roll); request.set_heading(heading); request.set_cameraimagefront(cameraImageFront.data(),cameraImageFront.size()); request.set_cameraimagerear(cameraImageRear.data(),cameraImageRear.size()); request.set_cameraimageleft(cameraImageLeft.data(),cameraImageLeft.size()); request.set_cameraimageright(cameraImageRight.data(),cameraImageRight.size()); request.set_sensorstatusgpsimu(sensorStatusGPSIMU); request.set_sensorstatuslidar(sensorStatusLidar); request.set_sensorstatusradar(sensorStatusRadar); request.set_sensorstatuscamfront(sensorStatusCamFront); request.set_sensorstatuscamrear(sensorStatusCamRear); request.set_sensorstatuscamleft(sensorStatusCamLeft); request.set_sensorstatuscamright(sensorStatusCamRight); request.set_isarrived(isArrived); request.set_platenumber(plateNumber); request.set_modefeedback(modeFeedback); // Container for the data we expect from the server. ResponseMessage reply; // Context for the client. It could be used to convey extra information to // the server and/or tweak certain RPC behaviors. ClientContext context; gpr_timespec timespec; timespec.tv_sec = 2; timespec.tv_nsec = 0; timespec.clock_type = GPR_TIMESPAN; context.set_deadline(timespec); // The actual RPC. Status status = stub_ -> uploadVehicleInfo(&context, request, &reply); // Act upon its status. if (status.ok()) { destinationPosition.CopyFrom(reply.destinationposition()); // std::cout<<"lat:"<operator =(pathPoints.at(i)); } // Container for the data we expect from the server. Empty reply; // Context for the client. It could be used to convey extra information to // the server and/or tweak certain RPC behaviors. ClientContext context; gpr_timespec timespec; timespec.tv_sec = 5; timespec.tv_nsec = 0; timespec.clock_type = GPR_TIMESPAN; context.set_deadline(timespec); // The actual RPC. Status status = stub_ -> uploadPath(&context,request,&reply); // Act upon its status. if (status.ok()) { if(reply.id() == gstrid) { std::cout<<"Path uploaded by car id:"< points) { id = gstrid; patrolPathID = pathID; pathPoints.clear(); for(int i = 0;i < points.size();i++) { pathPoints.append(points.value(i)); // std::cout<=interval) { updateData(); std::string reply = uploadVehicleInfo(); std::cout<< reply < 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(); }