// IMUReader.h #pragma once #include #include #include #include #include #include // 结构体定义 IMU 数据 struct IMUData { float accelX; float accelY; float accelZ; float gyroX; float gyroY; float gyroZ; }; class IMUReader { public: // 构造函数 IMUReader(std::string ComNumber); // 构造函数 IMUReader(); // 析构函数 ~IMUReader(); // 初始化 IMU void IMUInit(std::string ComNumber); // 获取 IMU 数据状态 int ReadData(IMUData& data); private: boost::asio::io_service io; boost::asio::serial_port* serial; // boost::asio::serial_port serial(io, "/dev/ttyUSB0"); // 替换成你的串口设备路径 bool isRunning; // 控制是否退出循环的标志变量 std::thread dataThread; // 数据读取线程 IMUData data; // 读取 IMU 数据的循环 int IMUReadUartData(); void IMUReadDataThread(void); // 辅助函数,生成随机浮点数(模拟实际获取的传感器数据) float getRandomFloat(); };