vehicle_patrol.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. #include "vehicle_patrol.h"
  2. #include <QDateTime>
  3. #include <QFile>
  4. extern std::string gstrserverip;
  5. extern std::string gstrpatrolPort;
  6. extern std::string gstrpatrolInterval;
  7. extern std::string gstrid;
  8. extern std::string gstrplateNumber;
  9. using org::jeecg::defsPatrol::grpc::Empty;
  10. using org::jeecg::defsPatrol::grpc::GPSPoint;
  11. VehiclePatrolExceptionClient::VehiclePatrolExceptionClient(std::shared_ptr<Channel> channel)
  12. {
  13. stub_ = VehiclePatrolException::NewStub(channel);
  14. patrolTimer = new QTimer();
  15. connect(patrolTimer,SIGNAL(timeout()),this,SLOT(patrolTimeout()));
  16. // patrolTimer->start(std::atoi(gstrpatrolInterval.c_str()));
  17. }
  18. VehiclePatrolExceptionClient::~VehiclePatrolExceptionClient(void)
  19. {
  20. delete patrolTimer;
  21. }
  22. std::string VehiclePatrolExceptionClient::uploadVehiclePatrolInfo(void)
  23. {
  24. // Data we are sending to the server.
  25. PatrolRequest request;
  26. request.set_id(id);
  27. request.set_istvr(isTVR);
  28. request.set_violationstatus(violationStatus);
  29. request.set_vehiclelicensenumber(vehicleLicenseNumber);
  30. request.set_violationimage(violationImage.data(),violationImage.size());
  31. request.mutable_violationposition()->CopyFrom(violationPosition);
  32. request.set_isfsm(isFSM);
  33. request.set_firestatus(fireStatus);
  34. request.set_fireimage(fireImage.data(),fireImage.size());
  35. request.set_firetime(fireTime);
  36. request.mutable_fireposition()->CopyFrom(firePosition);
  37. request.set_istsgm(isTSGM);
  38. request.set_gatestatus(gateStatus);
  39. request.set_gateimage(gateImage.data(),gateImage.size());
  40. request.set_gatetime(gateTime);
  41. request.mutable_gateposition()->CopyFrom(gatePosition);
  42. request.set_platenumber(plateNumber);
  43. // Container for the data we expect from the server.
  44. Empty reply;
  45. // Context for the client. It could be used to convey extra information to
  46. // the server and/or tweak certain RPC behaviors.
  47. ClientContext context;
  48. // The actual RPC.
  49. Status status = stub_ -> uploadVehiclePatrolInfo(&context,request,&reply);
  50. // Act upon its status.
  51. if (status.ok()) {
  52. return "uploadVehiclePatrolInfo RPC successed";
  53. } else {
  54. std::cout << status.error_code() << ": " << status.error_message()
  55. << std::endl;
  56. return "uploadVehiclePatrolInfo RPC failed";
  57. }
  58. }
  59. void VehiclePatrolExceptionClient::updatePatrolData(void)
  60. {
  61. id = gstrid;
  62. isTVR = true;
  63. violationStatus = 2;
  64. vehicleLicenseNumber = "津B654321";
  65. // QFile xFile;
  66. // xFile.setFileName("/home/samuel/Pictures/123.jpg");
  67. // if(xFile.open(QIODevice::ReadOnly))
  68. // {
  69. // violationImage = xFile.readAll();
  70. // }
  71. // xFile.close();
  72. violationTime = QDateTime::currentMSecsSinceEpoch();
  73. violationPosition.set_height(0.1);
  74. violationPosition.set_latitude(39.0666552);
  75. violationPosition.set_longitude(117.3542963);
  76. isFSM = true;
  77. fireStatus = 1;
  78. // xFile.setFileName("/home/samuel/Pictures/123.jpg");
  79. // if(xFile.open(QIODevice::ReadOnly))
  80. // {
  81. // fireImage = xFile.readAll();
  82. // }
  83. // xFile.close();
  84. fireTime = QDateTime::currentMSecsSinceEpoch();
  85. firePosition.set_height(0.1);
  86. firePosition.set_latitude(39.0667552);
  87. firePosition.set_longitude(117.3542963);
  88. isTSGM = true;
  89. gateStatus = 2;
  90. // xFile.setFileName("/home/samuel/Pictures/123.jpg");
  91. // if(xFile.open(QIODevice::ReadOnly))
  92. // {
  93. // gateImage = xFile.readAll();
  94. // }
  95. // xFile.close();
  96. gateTime = QDateTime::currentMSecsSinceEpoch();
  97. gatePosition.set_height(0.1);
  98. gatePosition.set_latitude(39.0665552);
  99. gatePosition.set_longitude(117.3542963);
  100. plateNumber = gstrplateNumber;
  101. }
  102. void VehiclePatrolExceptionClient::patrolTimeout(void)
  103. {
  104. updatePatrolData();
  105. uploadVehiclePatrolInfo();
  106. }