diff --git a/.github/workflows/openpilot.yaml b/.github/workflows/openpilot.yaml index c747d1aab..e247d65b9 100644 --- a/.github/workflows/openpilot.yaml +++ b/.github/workflows/openpilot.yaml @@ -49,7 +49,7 @@ jobs: - name: setup dependencies run: | brew install cmake bzip2 capnp qt@5 zeromq protobuf@3 gnu-tar - sudo pip3 install --no-cache-dir -r 3rdparty/opendbc/requirements.txt + sudo pip3 install --no-cache-dir -r 3rdparty/opendbc_repo/requirements.txt - name: build run: | export PYTHONPATH=$PWD/3rdparty diff --git a/.gitmodules b/.gitmodules index 9566c9ed8..5a50669ae 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,5 +2,5 @@ path = 3rdparty/cereal url = ../../commaai/cereal.git [submodule "3rdparty/opendbc"] - path = 3rdparty/opendbc + path = 3rdparty/opendbc_repo url = ../../commaai/opendbc.git diff --git a/3rdparty/opendbc b/3rdparty/opendbc deleted file mode 160000 index 93b983d49..000000000 --- a/3rdparty/opendbc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 93b983d49a2d6d5c67e15ce7650f55e4f121485d diff --git a/3rdparty/opendbc b/3rdparty/opendbc new file mode 120000 index 000000000..7cd9a5bd1 --- /dev/null +++ b/3rdparty/opendbc @@ -0,0 +1 @@ +opendbc_repo/opendbc \ No newline at end of file diff --git a/3rdparty/opendbc_repo b/3rdparty/opendbc_repo new file mode 160000 index 000000000..a40652d34 --- /dev/null +++ b/3rdparty/opendbc_repo @@ -0,0 +1 @@ +Subproject commit a40652d341ea3161a6a10001fa74284d9d650f8c diff --git a/Dockerfile b/Dockerfile index d984c994d..d75107027 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,5 +47,5 @@ RUN pip3 install pkgconfig jinja2 # installs scons, pycapnp, cython, etc. ENV PYTHONPATH /tmp/plotjuggler/3rdparty -COPY 3rdparty/opendbc/requirements.txt /tmp/ +COPY 3rdparty/opendbc_repo/requirements.txt /tmp/ RUN pip3 install Cython && pip3 install --no-cache-dir -r /tmp/requirements.txt diff --git a/plotjuggler_plugins/DataLoadRlog/CMakeLists.txt b/plotjuggler_plugins/DataLoadRlog/CMakeLists.txt index 90b856005..8ce45a592 100644 --- a/plotjuggler_plugins/DataLoadRlog/CMakeLists.txt +++ b/plotjuggler_plugins/DataLoadRlog/CMakeLists.txt @@ -8,7 +8,7 @@ if(Rlog_FOUND) add_definitions(${QT_DEFINITIONS}) add_definitions(-DQT_PLUGIN) add_definitions(-DDYNAMIC_CAPNP) - add_definitions(-DDBC_FILE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/opendbc") + add_definitions(-DDBC_FILE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/opendbc/dbc") SET(SRC rlog_parser.cpp diff --git a/plotjuggler_plugins/DataLoadRlog/rlog_parser.cpp b/plotjuggler_plugins/DataLoadRlog/rlog_parser.cpp index cd78ea0b7..b577de82c 100644 --- a/plotjuggler_plugins/DataLoadRlog/rlog_parser.cpp +++ b/plotjuggler_plugins/DataLoadRlog/rlog_parser.cpp @@ -175,6 +175,9 @@ bool RlogMessageParser::parseCanMessage( } std::set updated_busses; + std::vector can_data_list; + CanData &can_data = can_data_list.emplace_back(); + can_data.nanos = last_nanos; for(auto elem : listValue) { auto value = elem.as(); uint8_t bus = value.get("src").as(); @@ -185,12 +188,19 @@ bool RlogMessageParser::parseCanMessage( updated_busses.insert(bus); parsers[bus]->last_nanos = last_nanos; - parsers[bus]->UpdateCans(last_nanos, value); - parsers[bus]->UpdateValid(last_nanos); + + auto dat = value.get("dat").as(); + if (dat.size() > 64) continue; // shouldn't ever happen + + auto &frame = can_data.frames.emplace_back(); + frame.src = bus; + frame.address = value.get("address").as(); + frame.dat.assign(dat.begin(), dat.end()); } + for (uint8_t bus : updated_busses) { std::vector signal_values; - parsers[bus]->query_latest(signal_values); + parsers[bus]->update(can_data_list, signal_values); for (auto& sg : signal_values) { // TODO: plot all updated values PJ::PlotData& _data_series = getSeries(topic_name + '/' + std::to_string(bus) + '/' + diff --git a/plotjuggler_plugins/DataLoadRlog/rlog_parser.hpp b/plotjuggler_plugins/DataLoadRlog/rlog_parser.hpp index ff2e25568..ee9013f4b 100644 --- a/plotjuggler_plugins/DataLoadRlog/rlog_parser.hpp +++ b/plotjuggler_plugins/DataLoadRlog/rlog_parser.hpp @@ -8,6 +8,8 @@ #endif #include +#include +#include #include "common.h" #include "common_dbc.h" diff --git a/plotjuggler_plugins/DataStreamCereal/CMakeLists.txt b/plotjuggler_plugins/DataStreamCereal/CMakeLists.txt index f87bc5ee0..317230c9e 100644 --- a/plotjuggler_plugins/DataStreamCereal/CMakeLists.txt +++ b/plotjuggler_plugins/DataStreamCereal/CMakeLists.txt @@ -7,7 +7,7 @@ if(Cereal_FOUND AND Rlog_FOUND) add_definitions(${QT_DEFINITIONS}) add_definitions(-DQT_PLUGIN) add_definitions(-DDYNAMIC_CAPNP) - add_definitions(-DDBC_FILE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/opendbc") + add_definitions(-DDBC_FILE_PATH="${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/opendbc/dbc") QT5_WRAP_UI ( UI_SRC datastream_cereal.ui )