| 112 | } |
| 113 | |
| 114 | void ProcessLoop(std::shared_ptr<ImuProcess> p_imu) { |
| 115 | ROS_INFO("Start ProcessLoop"); |
| 116 | |
| 117 | ros::Rate r(1000); |
| 118 | while (ros::ok()) { |
| 119 | MeasureGroup meas; |
| 120 | std::unique_lock<std::mutex> lk(mtx_buffer); |
| 121 | sig_buffer.wait(lk, |
| 122 | [&meas]() -> bool { return SyncMeasure(meas) || b_exit; }); |
| 123 | lk.unlock(); |
| 124 | |
| 125 | if (b_exit) { |
| 126 | ROS_INFO("b_exit=true, exit"); |
| 127 | break; |
| 128 | } |
| 129 | |
| 130 | if (b_reset) { |
| 131 | ROS_WARN("reset when rosbag play back"); |
| 132 | p_imu->Reset(); |
| 133 | b_reset = false; |
| 134 | continue; |
| 135 | } |
| 136 | p_imu->Process(meas); |
| 137 | |
| 138 | r.sleep(); |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | int main(int argc, char **argv) { |
| 143 | ros::init(argc, argv, "data_process"); |
nothing calls this directly
no test coverage detected