vehicle_control.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef VEHICLE_CONTROL_H
  2. #define VEHICLE_CONTROL_H
  3. #include <QObject>
  4. #include <QTimer>
  5. #include <QVector>
  6. #include <iostream>
  7. #include <memory>
  8. #include <string>
  9. #include <grpcpp/grpcpp.h>
  10. #include "VehicleControl_service.grpc.pb.h"
  11. #include "VehicleControl.grpc.pb.h"
  12. using grpc::Channel;
  13. using grpc::ClientContext;
  14. using grpc::Status;
  15. using org::jeecg::defsControl::grpc::VehicleControl; ///< service name
  16. using org::jeecg::defsControl::grpc::ControlReply; ///< rpc fuction parameter and return
  17. using org::jeecg::defsControl::grpc::UploadMapReply;
  18. using org::jeecg::defsControl::grpc::CtrlModeReply;
  19. class VehicleControlClient : public QObject{
  20. Q_OBJECT
  21. public:
  22. VehicleControlClient(std::shared_ptr<Channel> channel);
  23. ~VehicleControlClient(void);
  24. std::string vehicleControl(void);
  25. std::string uploadMap(void);
  26. std::string changeCtrlMode(void);
  27. void updateControlData(void);
  28. void updateMapPOIData(void);
  29. void updateCtrolMode(void);
  30. std::string get_patrolPathID(void);
  31. bool get_isNeedMap(void);
  32. void set_isNeedMap(bool needMapStatus);
  33. private:
  34. std::unique_ptr<VehicleControl::Stub> stub_;
  35. org::jeecg::defsControl::grpc::ShiftStatus shiftCMD = org::jeecg::defsControl::grpc::ShiftStatus::SHIFT_PARKING;
  36. double steeringWheelAngleCMD = 0;
  37. double throttleCMD = 0;
  38. double brakeCMD = 0;
  39. bool isNeedMap = false;
  40. std::string patrolPathID;
  41. QVector<org::jeecg::defsControl::grpc::MapPoint> POIPoints;
  42. org::jeecg::defsControl::grpc::CtrlMode modeCMD;
  43. QTimer *controlTimer;
  44. QTimer *uploadMapTimer;
  45. private slots:
  46. void controlTimeout(void);
  47. void uploadMapTimeout(void);
  48. };
  49. #endif // VEHICLE_CONTROL_H