diff --git a/src/MindVisionMain.cpp b/src/MindVisionMain.cpp index 1250ebc..3e96743 100644 --- a/src/MindVisionMain.cpp +++ b/src/MindVisionMain.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include @@ -25,7 +26,7 @@ void output_control_data(const cv::Point2f* ballistic_point, bool use_ttl) { // Only send data when TTL is enabled, meets frame interval, and has valid target if (use_ttl && frame_counter % 5 == 0 && ballistic_point != nullptr) { - std::string send_str; + std::ostringstream send_str; // Calculate offset (based on actual image center) int ballistic_offset_x = static_cast(ballistic_point->x - img_center.x); @@ -37,11 +38,14 @@ void output_control_data(const cv::Point2f* ballistic_point, else if (target_color == "blue") simplified_color = "b"; // Construct send string - send_str = "s " + simplified_color + " " + std::to_string(ballistic_offset_x) + " " + std::to_string(ballistic_offset_y); + send_str << "s " << simplified_color << " " << std::to_string(ballistic_offset_x) << " " << std::to_string(ballistic_offset_y) << "\n"; // Send data if (ttl_communicator != nullptr) { - ttl_communicator->send_data(send_str); + ttl_communicator->send_data(send_str.str()); + + }else{ + std::cerr << "Error: TTLCommunicator is a null pointer!" << std::endl; } } } diff --git a/src/TTLCommunicator.cpp b/src/TTLCommunicator.cpp index cc0e9da..f0bdd19 100644 --- a/src/TTLCommunicator.cpp +++ b/src/TTLCommunicator.cpp @@ -52,7 +52,7 @@ bool TTLCommunicator::send_data(const std::string& data) { std::cerr << "Error writing to serial port: " << strerror(errno) << std::endl; return false; } else { - std::cout << "Sent " << bytes_written << " bytes: " << data << std::endl; + std::cout << "Sent " << bytes_written << " bytes: " << data; fsync(serial_fd); // Ensure data is sent return true; }