mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-09-30 11:23:55 +08:00
504453c3e4
* support live streaming
* update live stream's time
* cleanup stream classes
* disable video control in live streaming mode
* emit streamStarted() in LiveStream::streamThread
* disable some features in live streaming mode
* refactor charts to support live streaming mode
* disable dynamic mode checkbox in live streaming mode
* updateDispalyRange
* thread safe events
* TODO: add support for ZMQ
* atomic time stamp
* only keep settings.cached_segment_limit*60 seconds data in liveStream
* make charts work better in live mode
* cleanup ChartView
* fix toolbar
* cleanup
cleanup
* disable openpilotPrefix and useOpenGL on macos
* add comment
* exit gracefully
* support ZMQ
* use ::operator new/delete
* cleanup streams
* cleanup
* align stream buffers
* check looping back
* check if series is empty
* cleanup
* add TODO: write stream to log file to replay it
* upper_bound
* remove class member event_range
* change default settings value
* cleanup updateDisplayrange
* fix merge error
old-commit-hash: f9490739ab
33 lines
1.6 KiB
C++
33 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "opendbc/can/common_dbc.h"
|
|
#include "tools/cabana/streams/abstractstream.h"
|
|
#include "tools/cabana/settings.h"
|
|
|
|
class ReplayStream : public AbstractStream {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ReplayStream(QObject *parent);
|
|
~ReplayStream();
|
|
bool loadRoute(const QString &route, const QString &data_dir, uint32_t replay_flags = REPLAY_FLAG_NONE);
|
|
bool eventFilter(const Event *event);
|
|
void seekTo(double ts) override;
|
|
inline QString routeName() const override { return replay->route()->name(); }
|
|
inline QString carFingerprint() const override { return replay->carFingerprint().c_str(); }
|
|
inline VisionStreamType visionStreamType() const override { return replay->hasFlag(REPLAY_FLAG_ECAM) ? VISION_STREAM_WIDE_ROAD : VISION_STREAM_ROAD; }
|
|
inline double totalSeconds() const override { return replay->totalSeconds(); }
|
|
inline double routeStartTime() const override { return replay->routeStartTime() / (double)1e9; }
|
|
inline double currentSec() const override { return replay->currentSeconds(); }
|
|
inline QDateTime currentDateTime() const override { return replay->currentDateTime(); }
|
|
inline const Route *route() const override { return replay->route(); }
|
|
inline const std::vector<Event *> *events() const override { return replay->events(); }
|
|
inline void setSpeed(float speed) override { replay->setSpeed(speed); }
|
|
inline bool isPaused() const override { return replay->isPaused(); }
|
|
void pause(bool pause) override;
|
|
inline const std::vector<std::tuple<int, int, TimelineType>> getTimeline() override { return replay->getTimeline(); }
|
|
|
|
private:
|
|
Replay *replay = nullptr;
|
|
};
|