//202009016新增需求 //将深度学习的算法转到一个高配的服务器上运行. //每个测量程序节点, 通过socket通信, 将8192个点云上传, 返回8192个点的类型. #ifndef NNXX_TESTS_PREDICT_FROM_SERVER_H #define NNXX_TESTS_PREDICT_FROM_SERVER_H #include "../error_code/error_code.h" #include "../message/measure_message.pb.h" #include "../message/message_base.pb.h" #include #include //从服务器进行点云预测算法的功能模块 class Predict_with_network { public: //预测算法固定大小 8192 #define PREDICT_CLOUD_SIZE 8192 public: Predict_with_network(); Predict_with_network(const Predict_with_network& other)= default; Predict_with_network& operator =(const Predict_with_network& other)= default; ~Predict_with_network(); public://API functions //预测, 发送点云, 在服务器上进行点云算法 //data_in:输入数据,大小为 输入点数*3 //data_out:输出数据,大小为 输入点数*类别数 Error_manager predict_for_send(int data_id, float* data_in); //预测, 接受预测结果, 算法时间较长, 请在外部循环接受. (方便中途放弃) //data_in:输入数据,大小为 输入点数*3 //data_out:输出数据,大小为 输入点数*类别数 //return:返回成功表示数据已经获取到了, 返回 NODATA 表示没有收到数据 Error_manager predict_for_receive(int data_id, int* data_out); //签收预测的答复消息, 给通信模块调用, 将收到的预测答复消息, 存入 m_locate_sift_response_msg_map Error_manager execute_for_predict(std::string& message_string); public://get or set member variable protected://member functions protected://member variable //通信的消息, 索引编号为数据编号, (可以近似于雷达的编号, 比如楚天的就是0~3) std::mutex m_message_lock; //消息加锁 std::map m_locate_sift_request_msg_map; //发送消息, 内存由本类管理 std::map m_locate_sift_response_msg_map; //接受消息, 内存由本类管理 private: }; #endif //NNXX_TESTS_PREDICT_FROM_SERVER_H