main.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. #include <QCoreApplication>
  2. #include "ivversion.h"
  3. #include <yaml-cpp/yaml.h>
  4. #include "vehicle_upload.h"
  5. #include "vehicle_control.h"
  6. #include "vehicle_patrol.h"
  7. #include <QFile>
  8. #include <QString>
  9. #include <QStringList>
  10. #include <QThread>
  11. std::string gstrserverip = "139.9.235.66";//"123.57.212.138";
  12. std::string gstruploadPort = "10591";//"9000";
  13. std::string gstrpatrolPort = "10592";//"9000";
  14. std::string gstrcontrolPort = "20591";//"9000";
  15. std::string gstruploadInterval = "500";
  16. std::string gstrpatrolInterval = "500";
  17. std::string gstrcontrolInterval = "100";
  18. std::string gstruploadMapInterval = "500";
  19. std::string gstrid = "1234567890123456789H";
  20. std::string gstrplateNumber = "津A123456";
  21. class mainloop : public QThread
  22. {
  23. // Q_OBJECT
  24. public:
  25. mainloop(VehicleControlClient *pCC,DataExchangeClient *pUC);
  26. void run();
  27. private:
  28. VehicleControlClient *pControlClient;
  29. DataExchangeClient *pUploadClient;
  30. };
  31. mainloop::mainloop(VehicleControlClient *pCC,DataExchangeClient *pUC)
  32. {
  33. pControlClient = pCC;
  34. pUploadClient = pUC;
  35. }
  36. void mainloop::run()
  37. {
  38. while (1) {
  39. // msleep(100);
  40. if(pControlClient->get_isNeedMap() == true)
  41. {
  42. std::cout<<"patrol path calculating"<<std::endl;
  43. QFile mapfile("/home/samuel/Documents/path1.txt");
  44. QVector<org::jeecg::defsDetails::grpc::MapPoint> somePoints;
  45. if(mapfile.open(QIODevice::ReadOnly | QIODevice::Text))
  46. {
  47. while(!mapfile.atEnd())
  48. {
  49. QByteArray line = mapfile.readLine();
  50. QString map_str(line);
  51. QStringList oneline = map_str.split(",");
  52. org::jeecg::defsDetails::grpc::MapPoint onePoint;
  53. onePoint.set_index(oneline.at(0).toInt());
  54. onePoint.mutable_mappoint()->set_longitude(oneline.at(1).toDouble());
  55. onePoint.mutable_mappoint()->set_latitude(oneline.at(2).toDouble());
  56. onePoint.mutable_mappoint()->set_height(oneline.at(3).toDouble());
  57. somePoints.append(onePoint);
  58. }
  59. }
  60. pUploadClient->updatePath(pControlClient->get_patrolPathID(),somePoints);
  61. pUploadClient->uploadPath();
  62. pControlClient->set_isNeedMap(false);
  63. }
  64. }
  65. }
  66. void dec_yaml(const char * stryamlpath)
  67. {
  68. YAML::Node config;
  69. try
  70. {
  71. config = YAML::LoadFile(stryamlpath);
  72. }
  73. catch(...)
  74. {
  75. qDebug("yaml file has some unknown code or load fail.");
  76. return;
  77. }
  78. if(config["server"])
  79. {
  80. gstrserverip = config["server"].as<std::string>();
  81. }
  82. if(config["uploadPort"])
  83. {
  84. gstruploadPort = config["uploadPort"].as<std::string>();
  85. }
  86. if(config["patrolPort"])
  87. {
  88. gstrpatrolPort = config["patrolPort"].as<std::string>();
  89. }
  90. if(config["controlPort"])
  91. {
  92. gstrcontrolPort = config["controlPort"].as<std::string>();
  93. }
  94. if(config["uploadInterval"])
  95. {
  96. gstruploadInterval = config["uploadInterval"].as<std::string>();
  97. }
  98. if(config["patrolInterval"])
  99. {
  100. gstrpatrolInterval = config["patrolInterval"].as<std::string>();
  101. }
  102. if(config["controlinterval"])
  103. {
  104. gstrcontrolInterval = config["controlinterval"].as<std::string>();
  105. }
  106. if(config["uploadmapinterval"])
  107. {
  108. gstruploadMapInterval = config["uploadmapinterval"].as<std::string>();
  109. }
  110. if(config["id"])
  111. {
  112. gstrid = config["id"].as<std::string>();
  113. }
  114. if(config["plateNumber"])
  115. {
  116. gstrplateNumber = config["plateNumber"].as<std::string>();
  117. }
  118. return;
  119. }
  120. int main(int argc, char *argv[])
  121. {
  122. showversion("driver_cloud_grpc_client_BS");
  123. QCoreApplication a(argc, argv);
  124. char stryamlpath[256];
  125. if(argc<2)
  126. {
  127. snprintf(stryamlpath,255,"driver_cloud_grpc_client_BS.yaml");
  128. }
  129. else
  130. {
  131. strncpy(stryamlpath,argv[1],255);
  132. }
  133. dec_yaml(stryamlpath);
  134. std::string control_str = gstrserverip+":";
  135. control_str = control_str + gstrcontrolPort ;
  136. std::string patrol_str = gstrserverip+":";
  137. patrol_str = patrol_str + gstrpatrolPort;
  138. std::string upload_str = gstrserverip+":";
  139. upload_str = upload_str + gstruploadPort ;
  140. DataExchangeClient *vehicleupload = new DataExchangeClient(grpc::CreateChannel(upload_str, grpc::InsecureChannelCredentials()));
  141. VehicleControlClient *vehiclecontrol = new VehicleControlClient(grpc::CreateChannel(control_str, grpc::InsecureChannelCredentials()));
  142. VehiclePatrolExceptionClient vehiclepatrol(grpc::CreateChannel(patrol_str, grpc::InsecureChannelCredentials()));
  143. mainloop loop(vehiclecontrol,vehicleupload);
  144. loop.start();
  145. return a.exec();
  146. }