From 773024cc9363ca4d8ed7183e7c77822b445ea4b5 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Wed, 7 Dec 2022 13:17:37 +0800 Subject: [PATCH] Cabana: support multiple instances (#26286) * multiple instance * new file qtuitl.h * Revert "new file qtuitl.h" This reverts commit 19ef28945e8647724bbfc6c8469a664a58c09f16. old-commit-hash: 57ad0c94586d12df54d5ab4a65d0e47945a35065 --- tools/cabana/cabana.cc | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/cabana/cabana.cc b/tools/cabana/cabana.cc index e7e3eb213b..3e76a3e029 100644 --- a/tools/cabana/cabana.cc +++ b/tools/cabana/cabana.cc @@ -1,5 +1,7 @@ #include +#include #include +#include #include "selfdrive/ui/qt/util.h" #include "tools/cabana/mainwin.h" @@ -20,12 +22,22 @@ int main(int argc, char *argv[]) { cmd_parser.showHelp(); } + QString uuid = QUuid::createUuid().toString(QUuid::WithoutBraces); + QString msgq_path = "/dev/shm/" + uuid; + + QDir dir; + dir.mkdir(msgq_path); + setenv("OPENPILOT_PREFIX", qPrintable(uuid), 1); + + int ret = 0; const QString route = args.empty() ? DEMO_ROUTE : args.first(); CANMessages p(&app); - if (!p.loadRoute(route, cmd_parser.value("data_dir"), cmd_parser.isSet("qcam"))) { - return 0; + if (p.loadRoute(route, cmd_parser.value("data_dir"), cmd_parser.isSet("qcam"))) { + MainWindow w; + w.showMaximized(); + ret = app.exec(); } - MainWindow w; - w.showMaximized(); - return app.exec(); + + dir.rmdir(msgq_path); + return ret; }