12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- //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 <map>
- #include <mutex>
- //从服务器进行点云预测算法的功能模块
- 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<int, message::Locate_sift_request_msg*> m_locate_sift_request_msg_map; //发送消息, 内存由本类管理
- std::map<int, message::Locate_sift_response_msg*> m_locate_sift_response_msg_map; //接受消息, 内存由本类管理
- private:
- };
- #endif //NNXX_TESTS_PREDICT_FROM_SERVER_H
|