diff --git a/src/tcp_client.cpp b/src/tcp_client.cpp index 40a2be3..a195f30 100644 --- a/src/tcp_client.cpp +++ b/src/tcp_client.cpp @@ -13,12 +13,11 @@ #include TcpClient::TcpClient() { - _slam = new SlamWrapper(); // 启动TCP服务,接收AI结果并通过串口控制机械臂 std::thread service_thread([this] { boost::asio::io_service io; const auto service = std::make_shared(io, "/dev/ttyACM0", 115200); // 机械臂串口 - _slam->register_observer(service); + _slam.register_observer(service); service->start(8888); io.run(); }); @@ -28,58 +27,58 @@ void TcpClient::handle_data(const std::vector &buffer) { const std::string received_string(buffer.begin(), buffer.end()); - std::cout << "handle_data >>>> " << received_string << std::endl; + std::cout << "Handle tcp client message >>>> " << received_string << std::endl; if (received_string == "q") { std::cout << "Close all nodes" << std::endl; - _slam->close_all_node(); + _slam.close_all_node(); } else if (received_string == "w") { std::cout << "Start mapping (default to clearing node/edge information)" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->node_attributes.clear(); - _slam->edge_attributes.clear(); - _slam->start_mapping(); - _slam->node_name = 0; + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.node_attributes.clear(); + _slam.edge_attributes.clear(); + _slam.start_mapping(); + _slam.node_name = 0; } else if (received_string == "e") { std::cout << "End mapping" << std::endl; - _slam->end_mapping(); + _slam.end_mapping(); } else if (received_string == "a") { std::cout << "Start navigation (default)" << std::endl; - _slam->start_relocation(); - _slam->start_navigation(); - _slam->init_pose(); - _slam->default_navigation(); + _slam.start_relocation(); + _slam.start_navigation(); + _slam.init_pose(); + _slam.default_navigation(); } else if (received_string == "s") { - _slam->pause_navigation(); + _slam.pause_navigation(); } else if (received_string == "d") { std::cout << "Recover navigation" << std::endl; - _slam->recover_navigation(); + _slam.recover_navigation(); } else if (received_string == "z") { std::cout << "Start relocation and navigation to prepare for collecting node/edge information. " << "(Default clearing of node/edge information)" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->start_relocation(); - _slam->start_navigation(); - _slam->init_pose(); + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.start_relocation(); + _slam.start_navigation(); + _slam.init_pose(); } else if (received_string == "x") { std::cout << "Collect node/edge information" << std::endl; - _slam->add_node_and_edge(); + _slam.add_node_and_edge(); } else if (received_string == "c") { std::cout << "Save node/edge information" << std::endl; - _slam->save_node_and_edge(); - _slam->node_attributes.clear(); - _slam->edge_attributes.clear(); - _slam->node_name = 0; + _slam.save_node_and_edge(); + _slam.node_attributes.clear(); + _slam.edge_attributes.clear(); + _slam.node_name = 0; } else if (received_string == "v") { std::cout << "Clear node/edge information" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->node_name = 0; + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.node_name = 0; } else if (received_string == "scan") { std::cout << "Control robotic arm start" << std::endl; - _slam->control_robotic_arm(); + _slam.control_robotic_arm(); } else { std::cout << "Unknown command" << std::endl; } diff --git a/src/tcp_client.cpp b/src/tcp_client.cpp index 40a2be3..a195f30 100644 --- a/src/tcp_client.cpp +++ b/src/tcp_client.cpp @@ -13,12 +13,11 @@ #include TcpClient::TcpClient() { - _slam = new SlamWrapper(); // 启动TCP服务,接收AI结果并通过串口控制机械臂 std::thread service_thread([this] { boost::asio::io_service io; const auto service = std::make_shared(io, "/dev/ttyACM0", 115200); // 机械臂串口 - _slam->register_observer(service); + _slam.register_observer(service); service->start(8888); io.run(); }); @@ -28,58 +27,58 @@ void TcpClient::handle_data(const std::vector &buffer) { const std::string received_string(buffer.begin(), buffer.end()); - std::cout << "handle_data >>>> " << received_string << std::endl; + std::cout << "Handle tcp client message >>>> " << received_string << std::endl; if (received_string == "q") { std::cout << "Close all nodes" << std::endl; - _slam->close_all_node(); + _slam.close_all_node(); } else if (received_string == "w") { std::cout << "Start mapping (default to clearing node/edge information)" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->node_attributes.clear(); - _slam->edge_attributes.clear(); - _slam->start_mapping(); - _slam->node_name = 0; + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.node_attributes.clear(); + _slam.edge_attributes.clear(); + _slam.start_mapping(); + _slam.node_name = 0; } else if (received_string == "e") { std::cout << "End mapping" << std::endl; - _slam->end_mapping(); + _slam.end_mapping(); } else if (received_string == "a") { std::cout << "Start navigation (default)" << std::endl; - _slam->start_relocation(); - _slam->start_navigation(); - _slam->init_pose(); - _slam->default_navigation(); + _slam.start_relocation(); + _slam.start_navigation(); + _slam.init_pose(); + _slam.default_navigation(); } else if (received_string == "s") { - _slam->pause_navigation(); + _slam.pause_navigation(); } else if (received_string == "d") { std::cout << "Recover navigation" << std::endl; - _slam->recover_navigation(); + _slam.recover_navigation(); } else if (received_string == "z") { std::cout << "Start relocation and navigation to prepare for collecting node/edge information. " << "(Default clearing of node/edge information)" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->start_relocation(); - _slam->start_navigation(); - _slam->init_pose(); + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.start_relocation(); + _slam.start_navigation(); + _slam.init_pose(); } else if (received_string == "x") { std::cout << "Collect node/edge information" << std::endl; - _slam->add_node_and_edge(); + _slam.add_node_and_edge(); } else if (received_string == "c") { std::cout << "Save node/edge information" << std::endl; - _slam->save_node_and_edge(); - _slam->node_attributes.clear(); - _slam->edge_attributes.clear(); - _slam->node_name = 0; + _slam.save_node_and_edge(); + _slam.node_attributes.clear(); + _slam.edge_attributes.clear(); + _slam.node_name = 0; } else if (received_string == "v") { std::cout << "Clear node/edge information" << std::endl; - _slam->delete_all_node(); - _slam->delete_all_edge(); - _slam->node_name = 0; + _slam.delete_all_node(); + _slam.delete_all_edge(); + _slam.node_name = 0; } else if (received_string == "scan") { std::cout << "Control robotic arm start" << std::endl; - _slam->control_robotic_arm(); + _slam.control_robotic_arm(); } else { std::cout << "Unknown command" << std::endl; } diff --git a/src/tcp_client.hpp b/src/tcp_client.hpp index afa15f4..6945302 100644 --- a/src/tcp_client.hpp +++ b/src/tcp_client.hpp @@ -32,7 +32,7 @@ int _client_socket{-1}; int _max_retries = 12; int _retry_interval = 5000; //重连间隔 - SlamWrapper *_slam; + SlamWrapper _slam; void receive_data();