Files
Lixinzhe_lib/Test/SerialTest.cpp

60 lines
1.4 KiB
C++
Raw Normal View History

2025-06-16 08:52:40 +08:00
#include "Test.h"
#include "SerialPort.h"
void Serial_Test() {
try {
// 创建两个串口实例(模拟双向通信)
SerialPort sender("/dev/pts/2", 115200);
SerialPort receiver("/dev/pts/3", 115200);
// 设置接收回调
auto callback = [](const std::vector<uint8_t> &data) {
std::cout << "Received: ";
for (auto c: data) {
std::cout << static_cast<char>(c);
}
std::cout << std::endl;
};
// 启动接收线程
receiver.start_receiving(callback);
// 发送测试数据
std::cout << "Starting serial port test...\n";
// 测试1: 发送字符串
std::string testStr = "Hello Serial Port!\n";
sender.write(testStr);
std::cout << "Sent: " << testStr;
// 测试2: 发送二进制数据
std::vector<uint8_t> binaryData = {0x41, 0x42, 0x43, 0x44, 0x45}; // ABCDE
sender.write(binaryData);
std::cout << "Sent binary data: ABCDE\n";
// 测试3: 发送大量数据
std::vector<uint8_t> largeData(1024);
for (int i = 0; i < 1024; i++) {
largeData[i] = i % 256;
}
sender.write(largeData);
std::cout << "Sent 1024 bytes of data\n";
// 等待用户输入结束测试
std::cout << "Press Enter to exit...";
std::cin.get();
// 清理
receiver.stop_receiving();
sender.close();
receiver.close();
}
catch (const std::exception &e) {
std::cerr << "Error: " << e.what() << std::endl;
}
}