GrpcTransfer.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #include <grpcpp/grpcpp.h>
  2. #include "../GrpcTransfer/ImageService.grpc.pb.h"
  3. #include "../DataManager/DataPackage.h"
  4. using grpc::Channel;
  5. using grpc::ClientContext;
  6. using grpc::Status;
  7. using R360::Alarm;
  8. using R360::DataList;
  9. using R360::EmbeddedData;
  10. using R360::Empty;
  11. using R360::MessageService;
  12. class MessageServiceClient
  13. {
  14. public:
  15. explicit MessageServiceClient(){}
  16. // void R360SendMessage(char *pic)
  17. // {
  18. // ClientContext context;
  19. // Empty response;
  20. // std::unique_ptr<grpc::ClientWriter<DataList>> writer(
  21. // stub_->R360SendMessage(&context, &response));
  22. // // 构造第一个DataList消息
  23. // DataList data_list;
  24. // EmbeddedData *embeddedData = data_list.add_data();
  25. // embeddedData->set_usb_camera_index(1);
  26. // // 填充图片数据(示例中使用字符串模拟)
  27. // embeddedData->set_image(pic);
  28. // embeddedData->set_degree(90);
  29. // // 添加报警信息
  30. // Alarm *alarm = embeddedData->add_alarm();
  31. // alarm->set_x(100);
  32. // alarm->set_y(150);
  33. // alarm->set_w(50);
  34. // alarm->set_h(50);
  35. // alarm->set_score(0.95);
  36. // alarm->set_type(R360::UAV); // 使用枚举值
  37. // if (!writer->Write(data_list))
  38. // {
  39. // std::cerr << "写入消息失败" << std::endl;
  40. // }
  41. // // 如有需要,可发送更多消息...
  42. // // DataList another_data_list;
  43. // // writer->Write(another_data_list);
  44. // /*writer->WritesDone();
  45. // Status status = writer->Finish();
  46. // if (status.ok())
  47. // {
  48. // std::cout << "R360SendMessage RPC 调用成功" << std::endl;
  49. // }
  50. // else
  51. // {
  52. // std::cout << "R360SendMessage RPC 调用失败: " << status.error_message() << std::endl;
  53. // }*/
  54. // }
  55. DataList* R360SendMessage(DataPackage *pkg);
  56. private:
  57. DataList m_DataList;
  58. };