粘包问题已解决。

This commit is contained in:
2025-12-01 18:41:43 +08:00
parent 3053029f14
commit c2be6378b7
2 changed files with 4 additions and 2 deletions

View File

@@ -4,6 +4,7 @@
#include <chrono> #include <chrono>
#include <thread> #include <thread>
#include <memory> #include <memory>
#include <unistd.h>
#include <opencv2/opencv.hpp> #include <opencv2/opencv.hpp>
@@ -37,11 +38,12 @@ void output_control_data(const cv::Point2f* ballistic_point,
else if (target_color == "blue") simplified_color = "b"; else if (target_color == "blue") simplified_color = "b";
// Construct send string // 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 // Send data
if (ttl_communicator != nullptr) { if (ttl_communicator != nullptr) {
ttl_communicator->send_data(send_str.str()); ttl_communicator->send_data(send_str.str());
}else{ }else{
std::cerr << "Error: TTLCommunicator is a null pointer!" << std::endl; std::cerr << "Error: TTLCommunicator is a null pointer!" << std::endl;
} }

View File

@@ -52,7 +52,7 @@ bool TTLCommunicator::send_data(const std::string& data) {
std::cerr << "Error writing to serial port: " << strerror(errno) << std::endl; std::cerr << "Error writing to serial port: " << strerror(errno) << std::endl;
return false; return false;
} else { } else {
std::cout << "Sent " << bytes_written << " bytes: " << data << std::endl; std::cout << "Sent " << bytes_written << " bytes: " << data;
fsync(serial_fd); // Ensure data is sent fsync(serial_fd); // Ensure data is sent
return true; return true;
} }