replay: fix missing events before INIT_DATA (#30039)

fix missing events
old-commit-hash: 2cca0cbde8
test-msgs
Dean Lee 2 years ago committed by GitHub
parent ed1987dc34
commit 99f4592513
  1. 9
      tools/replay/replay.cc

@ -321,13 +321,12 @@ void Replay::mergeSegments(const SegmentMap::iterator &begin, const SegmentMap::
void Replay::startStream(const Segment *cur_segment) { void Replay::startStream(const Segment *cur_segment) {
const auto &events = cur_segment->log->events; const auto &events = cur_segment->log->events;
// get route start time from initData // each segment has an INIT_DATA
auto it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::INIT_DATA; }); route_start_ts_ = events.front()->mono_time;
route_start_ts_ = it != events.end() ? (*it)->mono_time : events[0]->mono_time; cur_mono_time_ += route_start_ts_ - 1;
cur_mono_time_ += route_start_ts_;
// write CarParams // write CarParams
it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::CAR_PARAMS; }); auto it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::CAR_PARAMS; });
if (it != events.end()) { if (it != events.end()) {
car_fingerprint_ = (*it)->event.getCarParams().getCarFingerprint(); car_fingerprint_ = (*it)->event.getCarParams().getCarFingerprint();
capnp::MallocMessageBuilder builder; capnp::MallocMessageBuilder builder;

Loading…
Cancel
Save