#include "GrpcTransfer.h" void MessageServiceClient::R360SendMessage(DataPackagePtr pkg) { ClientContext context; Empty response; std::unique_ptr> writer( stub_->R360SendMessage(&context, &response)); DataList dataList; EmbeddedData *embeddedData = dataList.add_data(); embeddedData->set_usb_camera_index(pkg->nCameraID); // 填充图片数据(示例中使用字符串模拟) std::string tempImageData(pkg->pJpegData, pkg->nJpegSize); embeddedData->set_image(tempImageData); embeddedData->set_degree(pkg->dDegree); for (int i = 0; i < pkg->Result.count; ++i) { // 添加报警信息 Alarm *alarm = embeddedData->add_alarm(); alarm->set_x(pkg->Result.results[i].box.left); alarm->set_y(pkg->Result.results[i].box.top); alarm->set_w(pkg->Result.results[i].box.right - pkg->Result.results[i].box.left); alarm->set_h(pkg->Result.results[i].box.bottom - pkg->Result.results[i].box.top); alarm->set_score(pkg->Result.results[i].prop); alarm->set_type(R360::AlarmType(pkg->Result.results[i].cls_id)); // 使用枚举值 } if (!writer->Write(dataList)) { std::cerr << "写入消息失败" << std::endl; } }