#ifndef VEHICLE_CONTROL_H #define VEHICLE_CONTROL_H #include #include #include #include #include #include #include #include "VehicleControl_service.grpc.pb.h" #include "VehicleControl.grpc.pb.h" using grpc::Channel; using grpc::ClientContext; using grpc::Status; using org::jeecg::defsControl::grpc::VehicleControl; ///< service name using org::jeecg::defsControl::grpc::ControlReply; ///< rpc fuction parameter and return using org::jeecg::defsControl::grpc::UploadMapReply; using org::jeecg::defsControl::grpc::CtrlModeReply; class VehicleControlClient : public QObject{ Q_OBJECT public: VehicleControlClient(std::shared_ptr channel); ~VehicleControlClient(void); std::string vehicleControl(void); std::string uploadMap(void); std::string changeCtrlMode(void); void updateControlData(void); void updateMapPOIData(void); void updateCtrolMode(void); std::string get_patrolPathID(void); bool get_isNeedMap(void); void set_isNeedMap(bool needMapStatus); private: std::unique_ptr stub_; org::jeecg::defsControl::grpc::ShiftStatus shiftCMD = org::jeecg::defsControl::grpc::ShiftStatus::SHIFT_PARKING; double steeringWheelAngleCMD = 0; double throttleCMD = 0; double brakeCMD = 0; bool isNeedMap = false; std::string patrolPathID; QVector POIPoints; org::jeecg::defsControl::grpc::CtrlMode modeCMD; QTimer *controlTimer; QTimer *uploadMapTimer; private slots: void controlTimeout(void); void uploadMapTimeout(void); }; #endif // VEHICLE_CONTROL_H