{ "cells": [ { "cell_type": "code", "execution_count": 85, "id": "facb8edc-9924-491a-a4dd-fe6135b0c6c4", "metadata": {}, "outputs": [], "source": [ "# Import all cars from opendbc\n", "\n", "from opendbc.car import structs\n", "from opendbc.car.values import PLATFORMS as TEST_PLATFORMS\n", "\n", "# Example: add additional platforms/segments to test outside of commaCarSegments\n", "\n", "EXTRA_SEGMENTS = {\n", " # \"81dd9e9fe256c397/0000001f--97c42cf98d\", # Volkswagen ID.4 test route, new car port, not in public dataset\n", "}" ] }, { "cell_type": "code", "execution_count": 86, "id": "ed1c8aec-c274-4c61-b83d-711ea194bf86", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Searching 221 platforms\n", "No segments available for DODGE_DURANGO\n", "No segments available for FORD_RANGER_MK2\n", "No segments available for HOLDEN_ASTRA\n", "No segments available for CADILLAC_ATS\n", "No segments available for CHEVROLET_MALIBU\n", "No segments available for CADILLAC_XT4\n", "No segments available for CHEVROLET_VOLT_2019\n", "No segments available for CHEVROLET_TRAVERSE\n", "No segments available for GMC_YUKON\n", "No segments available for HONDA_ODYSSEY_CHN\n", "No segments available for HYUNDAI_KONA_2022\n", "No segments available for HYUNDAI_NEXO_1ST_GEN\n", "No segments available for GENESIS_GV70_ELECTRIFIED_1ST_GEN\n", "No segments available for GENESIS_G80_2ND_GEN_FL\n", "No segments available for RIVIAN_R1_GEN1\n", "No segments available for SUBARU_FORESTER_HYBRID\n", "No segments available for TESLA_MODEL_3\n", "No segments available for TESLA_MODEL_Y\n", "No segments available for TOYOTA_RAV4_PRIME\n", "No segments available for TOYOTA_SIENNA_4TH_GEN\n", "No segments available for LEXUS_LC_TSS2\n", "No segments available for VOLKSWAGEN_CADDY_MK3\n", "No segments available for VOLKSWAGEN_CRAFTER_MK2\n", "No segments available for VOLKSWAGEN_JETTA_MK6\n", "Searching 577 segments\n" ] } ], "source": [ "import random\n", "\n", "from openpilot.tools.lib.logreader import LogReader\n", "from openpilot.tools.lib.comma_car_segments import get_comma_car_segments_database\n", "\n", "\n", "MAX_SEGS_PER_PLATFORM = 3 # Increase this to search more segments\n", "\n", "database = get_comma_car_segments_database()\n", "TEST_SEGMENTS = []\n", "\n", "print(f\"Searching {len(TEST_PLATFORMS)} platforms\")\n", "\n", "for platform in TEST_PLATFORMS:\n", " if platform not in database:\n", " print(f\"No segments available for {platform}\")\n", " continue\n", " \n", " all_segments = database[platform]\n", " NUM_SEGMENTS = min(len(all_segments), MAX_SEGS_PER_PLATFORM)\n", " TEST_SEGMENTS.extend(random.sample(all_segments, NUM_SEGMENTS))\n", "\n", "TEST_SEGMENTS.extend(EXTRA_SEGMENTS)\n", "\n", "print(f\"Searching {len(TEST_SEGMENTS)} segments\")" ] }, { "cell_type": "code", "execution_count": null, "id": "0c75e8f2-4f5f-4f89-b8db-5223a6534a9f", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "27a243c33de44498b2b946190df44b23", "version_major": 2, "version_minor": 0 }, "text/plain": [ "segments searched: 0%| | 0/577 [00:00 0:\n", " message_names = [MESSAGES_TO_FIND[message] for message in matched_messages]\n", " print(f\"Match found: {segment:<45} {CP.carFingerprint:<38} {message_names}\")\n", "\n", " progress_bar.update()\n" ] }, { "cell_type": "code", "execution_count": null, "id": "7724dd97-f62e-4fd3-9f64-63d49be669d2", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "9f393e00-8efd-40fb-a41e-d312531a83e8", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.0" } }, "nbformat": 4, "nbformat_minor": 5 }