mirror of
https://github.com/MoreTore/openpilot.git
synced 2026-08-05 00:05:59 +08:00
Cabana: add --ecam flag to dispaly the wide road camera (#26727)
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
cd "$(dirname "$0")"
|
||||
export LD_LIBRARY_PATH="../../opendbc/can:$LD_LIBRARY_PATH"
|
||||
exec ./_cabana "$1"
|
||||
exec ./_cabana "$@"
|
||||
|
||||
+10
-2
@@ -15,6 +15,7 @@ int main(int argc, char *argv[]) {
|
||||
cmd_parser.addPositionalArgument("route", "the drive to replay. find your drives at connect.comma.ai");
|
||||
cmd_parser.addOption({"demo", "use a demo route instead of providing your own"});
|
||||
cmd_parser.addOption({"qcam", "load qcamera"});
|
||||
cmd_parser.addOption({"ecam", "load wide road camera"});
|
||||
cmd_parser.addOption({"data_dir", "local directory with routes", "data_dir"});
|
||||
cmd_parser.process(app);
|
||||
const QStringList args = cmd_parser.positionalArguments();
|
||||
@@ -29,10 +30,17 @@ int main(int argc, char *argv[]) {
|
||||
dir.mkdir(msgq_path);
|
||||
setenv("OPENPILOT_PREFIX", qPrintable(uuid), 1);
|
||||
|
||||
int ret = 0;
|
||||
const QString route = args.empty() ? DEMO_ROUTE : args.first();
|
||||
uint32_t replay_flags = REPLAY_FLAG_NONE;
|
||||
if (cmd_parser.isSet("ecam")) {
|
||||
replay_flags |= REPLAY_FLAG_ECAM;
|
||||
} else if (cmd_parser.isSet("qcam")) {
|
||||
replay_flags |= REPLAY_FLAG_QCAMERA;
|
||||
}
|
||||
|
||||
CANMessages p(&app);
|
||||
if (p.loadRoute(route, cmd_parser.value("data_dir"), cmd_parser.isSet("qcam"))) {
|
||||
int ret = 0;
|
||||
if (p.loadRoute(route, cmd_parser.value("data_dir"), replay_flags)) {
|
||||
MainWindow w;
|
||||
w.showMaximized();
|
||||
ret = app.exec();
|
||||
|
||||
@@ -21,8 +21,8 @@ static bool event_filter(const Event *e, void *opaque) {
|
||||
return c->eventFilter(e);
|
||||
}
|
||||
|
||||
bool CANMessages::loadRoute(const QString &route, const QString &data_dir, bool use_qcam) {
|
||||
replay = new Replay(route, {"can", "roadEncodeIdx", "carParams"}, {}, nullptr, use_qcam ? REPLAY_FLAG_QCAMERA : 0, data_dir, this);
|
||||
bool CANMessages::loadRoute(const QString &route, const QString &data_dir, uint32_t replay_flags) {
|
||||
replay = new Replay(route, {"can", "roadEncodeIdx", "wideRoadEncodeIdx", "carParams"}, {}, nullptr, replay_flags, data_dir, this);
|
||||
replay->setSegmentCacheLimit(settings.cached_segment_limit);
|
||||
replay->installEventFilter(event_filter, this);
|
||||
QObject::connect(replay, &Replay::segmentsMerged, this, &CANMessages::eventsMerged);
|
||||
|
||||
@@ -26,13 +26,14 @@ public:
|
||||
enum FindFlags{ EQ, LT, GT };
|
||||
CANMessages(QObject *parent);
|
||||
~CANMessages();
|
||||
bool loadRoute(const QString &route, const QString &data_dir, bool use_qcam);
|
||||
bool loadRoute(const QString &route, const QString &data_dir, uint32_t replay_flags = REPLAY_FLAG_NONE);
|
||||
void seekTo(double ts);
|
||||
QList<QPointF> findSignalValues(const QString&id, const Signal* signal, double value, FindFlags flag, int max_count);
|
||||
bool eventFilter(const Event *event);
|
||||
|
||||
inline QString routeName() const { return replay->route()->name(); }
|
||||
inline QString carFingerprint() const { return replay->carFingerprint().c_str(); }
|
||||
inline VisionStreamType visionStreamType() const { return replay->hasFlag(REPLAY_FLAG_ECAM) ? VISION_STREAM_WIDE_ROAD : VISION_STREAM_ROAD; }
|
||||
inline double totalSeconds() const { return replay->totalSeconds(); }
|
||||
inline double routeStartTime() const { return replay->routeStartTime() / (double)1e9; }
|
||||
inline double currentSec() const { return replay->currentSeconds(); }
|
||||
|
||||
@@ -21,7 +21,7 @@ VideoWidget::VideoWidget(QWidget *parent) : QWidget(parent) {
|
||||
QVBoxLayout *main_layout = new QVBoxLayout(this);
|
||||
main_layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
cam_widget = new CameraWidget("camerad", VISION_STREAM_ROAD, false, this);
|
||||
cam_widget = new CameraWidget("camerad", can->visionStreamType(), false, this);
|
||||
cam_widget->setFixedSize(parent->width(), parent->width() / 1.596);
|
||||
main_layout->addWidget(cam_widget);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user