IQ.Pilot Release Commit @ 9fe0487

This commit is contained in:
IQ.Lvbs CI [bot]
2026-07-27 01:04:28 -05:00
parent 6edfe55a1e
commit 541e76a873
210 changed files with 992 additions and 504 deletions

View File

@@ -16,27 +16,27 @@
}, },
"python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "5ca5099e9b33d6b06a7b09992a444f97605914e96f8a9f1bdd7de278f5574c82", "sha256": "dfc76d7b791879501396d4de4891718d0052d23b1e6cb217b0be01f3e3e6d857",
"size": 135536 "size": 135536
}, },
"python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "b682b580cf7a1e068120a4591b2c61fa8e0b92201779d79566c4d03248c939b1", "sha256": "d1a7fd4e222b08c1e574ed1188943acddecc8d3f5ac02a1983bf90bde5e00a2c",
"size": 67664 "size": 67664
}, },
"python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "0b1801c7790aefc4a0c7fd44cb94cebd6bd6c4647913987847d6432d2c856ac7", "sha256": "5393274eb99f50917fef30f994b1ad5fab66860bd535b7d270a86d144d4e25b7",
"size": 204624 "size": 204624
}, },
"python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "b729bdb775de9f3bb5362649aa94445bf7f8a102048468e88d1967a2545f7927", "sha256": "9c08c3f6e3dc3b73f1a28d50d5aa76fa0894e9cd83bf02b7e9cc83bda5e84b4e",
"size": 69752 "size": 69752
}, },
"python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "969e8544555c9b463c79541f6a73d852a57bfb9ac5121da8b09a2a8dcfc5e636", "sha256": "fb417b7fed56353caad6d5a96429952ff0b87ee1bab7d6a8f0856d1ca40e4b4a",
"size": 203072 "size": 203072
}, },
"python/iqpilot_private/konn3kt/flockd/__init__.py": { "python/iqpilot_private/konn3kt/flockd/__init__.py": {
@@ -46,12 +46,12 @@
}, },
"python/iqpilot_private/konn3kt/flockd/flockd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/flockd/flockd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "359489fee0ceb758a42de988f24922bd5d70025986f69e5c8c630c349281bd0c", "sha256": "73164bb5c3eafe0a5409508140c093503ec40c1c58d0a8e79281bac3d22d811c",
"size": 202104 "size": 202168
}, },
"python/iqpilot_private/konn3kt/flockd/signatures.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/flockd/signatures.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "6af9a71b99ac11bda37e32896e660edbe82bef3e6bcbc61ef3710b9c774a6a2e", "sha256": "fb6d56fbec20965d988f936c46e7a70f31def71a2fba27a6506567b3c13574cf",
"size": 68080 "size": 68080
}, },
"python/iqpilot_private/konn3kt/hephaestus/__init__.py": { "python/iqpilot_private/konn3kt/hephaestus/__init__.py": {
@@ -61,67 +61,67 @@
}, },
"python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip": { "python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip": {
"mode": 420, "mode": 420,
"sha256": "59fcfd20cb32cb06e579d72129ca6c5d3b7b63add4d43b8d464e0411afe89ce2", "sha256": "52026a3b96c4e7eee5cb33d70a323896ab0de02557196980653afb99498af84d",
"size": 2100238 "size": 2100238
}, },
"python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "ac635ec8e236104ce10942fda1c4dae7b1eb747ad8e4e6c2855c37f1dd98ebe8", "sha256": "aa3530a7f7a44ba1de0d8c1b5de3d26405bf0ee0b9599190bfbbea55d2ed2071",
"size": 268064 "size": 268064
}, },
"python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "12e381f1292c44b5eeee603865b4b5fd7da9b5fb7a0a6294d888e71de4988819", "sha256": "5a6bf50d4f8e3ec43603c2b3d9743dd650b37c6dd2075ec19266d0f1368b8cff",
"size": 340584 "size": 340584
}, },
"python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "3324404c9a66f90bd2d48b8a43e583abea98ee4b68a7fd0023d0313b1695fd57", "sha256": "ff36bfb143294790a6ab0e2fe3d14852f3b04374185ef19a614231ca56a40999",
"size": 68048 "size": 68048
}, },
"python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "a84efbd54a57455a8124aa9b1e54b7e6e8061905b5f76e019d85a30adcfeac3d", "sha256": "ea54bc8d8a2ba2d803ce782898a6987457d248945da81cb9ab08bc32f6763fe1",
"size": 335728 "size": 335728
}, },
"python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "91f7b9ec65404dbd2e0b0fffdf46b1607103ce38202df9d0d02f50582278685c", "sha256": "f7706a6cabf49660c48609ca4a85c840c1e22e5e4b17d250114e25b56a7b9c34",
"size": 271680 "size": 271680
}, },
"python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "560814088a2e424399aa456ce1886b763cd5a8c8a879a5b10b6049dcab3e127d", "sha256": "5fc96f8ac2c67f3ff660b8c060d14b0e526cba7eaa5ce64fae94f3d0e784d417",
"size": 134408 "size": 134408
}, },
"python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "2c14688dc0b066226c8b0899c35f7237726182e9973aab5ceb6817ff559fa564", "sha256": "85ecde61b3fcc0d18dc260855a94eb8d30ab2e02adbfea67e209b3fe320608b1",
"size": 3514416 "size": 3514416
}, },
"python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "f32dbf481d03d9867ca768781eae8eb33db0ef24d2303993fb38e9806fb5cdc0", "sha256": "c7b1b7a441f9c4ad395efb3de26d972379d9927f9c7ea9c121d1d06b8170139b",
"size": 136448 "size": 136448
}, },
"python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "ce0944eea1c056bb646c28149428aa5c48086e41910ce1dbdf442588db714a77", "sha256": "a7fddf4e77d804f255ae4821fe64eada65ee6f2cc41cfb5c995acd497a0caca4",
"size": 68136 "size": 68136
}, },
"python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "d7ed7b723757a1e674baa060847232f460f68d685b6ae000e2aac5141fa9541f", "sha256": "2ff9ebdb8887bb71a971a4d06fd362c51f5a4446595a073a45edc8bb630a642a",
"size": 67840 "size": 67840
}, },
"python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "13f24976bb967d69585d9b5e6c975de827ca82a749177a40e61661684ed808b2", "sha256": "789481c2f41a6a38492f4f6e62d90c18c59276ff7a9b60fd8a5063b1754efe82",
"size": 135648 "size": 135648
}, },
"python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "da5517566850d263cbc19779e5306b651ec910e89c3ffe997c160daa07406878", "sha256": "280bee6ecfcde50d1856835a319aaa3354ecfdc4c9d552243493ae7070f9f169",
"size": 269568 "size": 269568
}, },
"python/iqpilot_private/konn3kt/uploaderd/__init__.py": { "python/iqpilot_private/konn3kt/uploaderd/__init__.py": {
@@ -131,11 +131,19 @@
}, },
"python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "ede763389fe1b7aaf60bb9049b146e56bfab4c58b20beba8f21c15d8e8c7e78a", "sha256": "b1df9786798beaf80ae110b20b79c2e88b7bbdf38c576fa249fc896e360f9ad1",
"size": 204184 "size": 204184
}, },
"runtime": { "runtime": {
"entries": { "entries": {
"iqpilot_private.konn3kt.backups.backup_orchestrator": {
"path": "python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so",
"type": "python-module"
},
"iqpilot_private.konn3kt.flockd.flockd": {
"path": "python/iqpilot_private/konn3kt/flockd/flockd.cpython-312-aarch64-linux-gnu.so",
"type": "python-module"
},
"iqpilot_private.konn3kt.hephaestus.ble_transportd": { "iqpilot_private.konn3kt.hephaestus.ble_transportd": {
"path": "python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so", "path": "python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so",
"type": "python-module" "type": "python-module"
@@ -163,25 +171,25 @@
} }
}, },
"signatures": { "signatures": {
"python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": "q5X7Qd9gy6n/SJj3F4VmjSBgekh6+w9PcBNpsn9CzdgDLsb5ede7fNoL18rNXnoFjCi1AgZ5KocGo92cQPdqCw==", "python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": "/YL6W76Q7ejmJvQraTclgzsGxYGpYbSBF3qql0E8Z40MZBQcm8wy+9mrMm1en5W9xGebuaT5xN2+Rji5MUCrDQ==",
"python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": "KVfZCbChNuMZijXH087FjDVGs4jXshfIj4lahpezUmg04DkR5qkrio7jGvPvJVz8rGsseK28eupI90Do2Xt+Dw==", "python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": "0/MsPs9cfZy51uqtyCEK8/U8paw+eQXgqVnglRdUM3Xx6WaPTku3DXfx7MquCTXl+ia9XlM1xdaH/ax6zxhdAw==",
"python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": "XqUu52yTF3NgY9kSuDnHhaWXb1MuaLtSJuz3Aff+h60iTtcPzjSrPw+wLRncf87BHekB/czViEYikTgqVyrgDg==", "python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": "1i1wEWih2NTsQ9jgK/cpb8V/B0y5prTk/OHG1wu4qoaMx4Qm1gVm6KAWU7rkvaQHMqC5eZG5lgL7O6tGflgOBA==",
"python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": "2OwIYW90eoo7Ym34CbeFREjETgP3EvlijyWxL3vNYwU4c1hCp9QPJ/17pG7r5w9FjdK/hZzgTo2Xxyxz3GMyCg==", "python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": "Q0TBxMRrSRv99t5NIpcYgwRcj26IycOSUSX+Yh4f4S82hY3dXwME3XSqWFLaL2wNF+uG7dMZr0pZkZnHBHmaDg==",
"python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": "YbF2/FHGNB90lTUSQO7lx4MyThoaSJXZ/sXkTeKOc3DJrv/22hoNq/VlXqhFg/IZ1In5DcyRgEyMNp6GK6zjAw==", "python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": "wFMRv5A2/dCAjlBC/x5uN876dq/kMrgMg5F7nmOKjDlrC5lZ014MbZXU0BKzI49CSch9uU3TLbvUR1p9gWPcBA==",
"python/iqpilot_private/konn3kt/flockd/flockd.cpython-312-aarch64-linux-gnu.so": "NXKmudsdaPlY+yXjafjLizXHnVtmspQoxTRUZ+k+am0HLE8pSAjXiussX+HsHZ1OUhN1KgYs2TeMiXRcIr0qAg==", "python/iqpilot_private/konn3kt/flockd/flockd.cpython-312-aarch64-linux-gnu.so": "de2W5b0SVEEAhjf9r1Ht9tg6W4RWldp7Tc/IzUQdphK4XBOzqouXIYCItN5xgEbc1tFTmGgKu2pfMXAoXkgYDw==",
"python/iqpilot_private/konn3kt/flockd/signatures.cpython-312-aarch64-linux-gnu.so": "Ch2bR2MPyeyrZYYe/2qcOZe84iDgtFIt4zRl1O+xDZXJrcUmZ8Q9327n0MO91Fw1nkNLjtT5s40/eB8y+IngCA==", "python/iqpilot_private/konn3kt/flockd/signatures.cpython-312-aarch64-linux-gnu.so": "yEkA8O096lTrh5YTvZgmuGpyuZ0vTnZDvLnLGR7dhBfypiNPsF4dxp2bcgDpz14GRKPHKa3v8O2v/G/06lk4CQ==",
"python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": "ffxwqf1uWlPbAt/aBlmcTwcr1BAOJTBmfbOFWfZnzrCSxrsv+muX8JXp2VI9uZHQ4YtgzqXbOdF4mdzJslQ1Cg==", "python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": "fpzjKBczfi9su9/BzPINkMJ8+Qx2KljBmYg/lhpaCRZDQX9kIT2qgcgbu5CqahfEQAjWDH2YKDwRhAGzkx1LBw==",
"python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": "TcewpD48/oO4f+JhAmN5boXabdScpA6pLr1KcI8MB4NeLurFocISNmmJx66KczRRkVKhyTB8KTXN1qVUCAP5BA==", "python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": "mUUGiu3/nIkcp9McjoX+qOTzBwuJlFzxxZdbW3uU2C4ppAlQ+bYMz9p33qnmkUiJUGfjcBwFnJebL8AXo/kXBQ==",
"python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": "GektayZTWTUawXwr3dobxYniNfsb6TK574UmQSQnUBNKskOsS4id+4H1xz6oAWb3SrXsG8RgvdBRTrKUtzXuBg==", "python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": "Nge3RnzUjW2gPUjEyBRxh+D6frwx9dJ/N9W0e0vzFWLLvbo+cT5zjrNAT7buA7XAKGfHSy14ssOxL8Jz+uZBBw==",
"python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": "YoeFaTgAWR8Hoqpvb0prieEoRq1rNQq1LgpFN/uGoPSQY9J+pihTYMJ375RcO552G9UImtosAzKnlg45KSahAA==", "python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": "KXjqWoG0lsVWqK8uRhOOChREx/ThGtcdKoFxaDD2WpGtEoFBTz2fDsNP8lgyLcrH+9ETT6ggnXqHMf2SnEabBw==",
"python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": "LBEeciHykYL/oUDY44PbfepASHC+Ye9w19JdxN5KTBt2HdXH5rxqYqcuZdKIX4LuDtMfnOxvWzKEfGAzr+iNDw==", "python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": "+0ZLw/tXrJtcempSJZFTKz9vlzs7q13YrnzSkuSpHzaGUm4Z2l4H3Syy0rPj3iJ8OLbkMAE9LegxScVq9mb1Bg==",
"python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": "TvFMKPdVpOMOpTZex6enVpZN4KIAenz9LpLrwj55WY2ba4zn0SlUXvAdQVlr4QLV8R8HaGvI+8BDwdSAa9irCA==", "python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": "Q44rxaPzw1QoSLoHyoaCMtW9N45YeYUNhtgPETz6Z1zLJ5o9NPec6yP06673sX9xdOnRXr0maeLfI2ji7iFiBg==",
"python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": "5BTV95k52NKkop6eNkl3DQKqiiQD1TIysjP7+nzrYlWuf6/w6OLvu/0J4ZplojCdXKvrVOLBQo/c/n9p5qF9Dg==", "python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": "MUg6v8qvb7Rhhk5LPoU7krD0CKb39e8wsoh5ER+VvzWYJZ2fnra7Od14xSGfhFZoHIItPwtOlASUbqlbPKReCg==",
"python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": "Deepl4pPInDReIdeTeujBmxc73wzzMGqjhNNwZoumQ/pUuRtG27QCpMKTYgf7dDI6HwNtxbfvapDlzezeKRsDQ==", "python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": "ERRMJ3hrOhetsuiNyWrsXH6hwtKzw5CAjg8kB/025JkDyA4OR3yLGMnqXqryygc4r4onUUF0Q55SzTbxxHWzDA==",
"python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": "umqH+MbkA6WGHdOMrA5Le8lyC1j8KF+JrbwnRFI7OaOOUiY+ENBg2gHjgdNRM6Q9373GjrVvdNB5MK4zLJLuAA==", "python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": "+gyiBvn9Uz56mpHovmDtUsNxvlnPYLH8/v5J+f0o8nr/E26f1xvSk2yQbYwYrCeZZ8AOxgY6GmdGRnkly4WCCg==",
"python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": "p1EIJ28bitg0sci8UfXLAGxiIhi08CkMNy9J5FpJ5S9GSlSBJBAi9H8Wb818mwdset638UaDv3Dk3SRB7qUlDA==", "python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": "Y/cinSdkb/kWX44T/w4woXX/Ex9+Q1KPtUC318dtygZeTiHDjCM+0IUjfS/BXwbdKETQPEpyIoKLsJaP2Gk1Cw==",
"python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": "RMBckUaRqo9QzIIUvJT3JrWu1iZ1HtTO4e6REiiFLvyo2I9d8tBGSVaBmjKRoYR+Sv47ml9ER2t2AsD5XkicDg==", "python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": "N+JrGIiTUzESxzH9fdgub5y01psxzlmEw75Y1AuxQqFx7mG4Z+Tx20UeeyQtAw27UuOctiKpGPHq9trtijJwBA==",
"python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": "PGUQnKQcPz6vPNJ3trFJ1GZPWiNRxfYZXsYDDgvUN99Z+m74aCUkXJ9ACmzUT/wFKcuqfgga9GJEOWvAfHGMDw==", "python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": "1MxRuPAWgjtsNORklvPZBml0OOVqIu8vMluY0QlK/pqE3S8EoC28/Gn39Bhb6hMjk8yTAUaTnTn4HlwkENpvBA==",
"python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": "LmTDMoU6duKAOJWS7bw1d52z4ByPHbpxWbOaEGk1wmM70FNzmWB4Cf73AtqgliXKkNCmknYdnxjhx3ynLre8BQ==" "python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": "Uxa3OMIwXvFEYz1LP+UDWB1sVhi4z8yC9bP+Xypzw26LNRAMkJZta2r+drXGPEe1TFg4zgVWrb9Q1+Y3pA9HAQ=="
} }
} }

View File

@@ -6,7 +6,7 @@
}, },
"python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "8b6114f67eb7a83d47e90113a0e75801ffd55d6c732d1db9a6af620f3cfba1d8", "sha256": "449495db52a85f8d0b0e2bb3128ee480598f8bdb5a44ec13153877fe8b372a91",
"size": 67616 "size": 67616
}, },
"python/iqpilot_private/navd/__init__.py": { "python/iqpilot_private/navd/__init__.py": {
@@ -16,72 +16,72 @@
}, },
"python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "4ebabfe3b85a380441cb22730ea3779c3c477e7ec40a88d0ba4d8130a2827877", "sha256": "ae2b25f52f7c7b02f3c977bbf46f5e9e938bfeda78bdb60f2f897eb04d698e43",
"size": 136944 "size": 136944
}, },
"python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "7506530560907e8a39e54c05c988c5be3b86bbdaa5279059ada9d847d1e2889c", "sha256": "f6ad0590f2a0bdbed56e7126203df2f6cdad86074f76ab9dded38b9e1600c8af",
"size": 135936 "size": 135936
}, },
"python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "905391fcf31991b315abe6126797bc870066352596cd2e9574b289a9c0f386be", "sha256": "b4ed48cada1dfb3383ff8ee106a7d93967bf65115d4c528b60dc3d73112a2f0e",
"size": 135608 "size": 135608
}, },
"python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "33f91bfad8894347729d4fd072e8a81af766240e5ec8921de0f92230e3d5faf1", "sha256": "e68aca6829cb00c5eda5330e1dfedd6269381ea5831abaca1055adf6df1f53ff",
"size": 69728 "size": 69728
}, },
"python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "4572bb1d704de4b9919d4e81e7c28d64197dadbdd8d84f4f1a203ad924d000f6", "sha256": "ebd30c5c34fbbe82d7d24343a2e791919e526997d192fd1441df749b15526704",
"size": 68088 "size": 68088
}, },
"python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "5087cd98a1bf042e0f3d19021af43a0d12ae0ce3f502158a0f4d3a0ace2bbabe", "sha256": "6e69c5fcac3c302e401b3ed3735b42f3de4af4e0d188d15a7add7aa02920f4c5",
"size": 135440 "size": 135440
}, },
"python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "f26cb01eaad63b14c686932496a62a3ec5aef1ebb4f36fb46680c124c77e0e16", "sha256": "55c88f8c5996dd7094c0feaf454fe0f1aec97276aed8926d7e8f6d1597de5a83",
"size": 664448 "size": 664480
}, },
"python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "3e4a79640333390203e50fb226b00b72aa97a78637544e0f616ed54547c40489", "sha256": "b971e1093f5713a633636d6ee74891206a2d5abfb492406c7ae5df7a66bdc0d9",
"size": 135560 "size": 135560
}, },
"python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "cc7040441e8ce97be6ba7bdb371761e7f14c3caf99ab15bf343635a69f4e0fb1", "sha256": "882ccc23c3de2e4e34c685a7abb00075f6c5be634eaf7e81cab86461c624449d",
"size": 136368 "size": 136368
}, },
"python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "2b9357dd886231d18e4a9b180b91ea2747f5fa23d91d2d349e032286ea330db2", "sha256": "df0bf89d492dba3b6c3792dde1bcb30a60e692f62519be7c62a517ef514ec276",
"size": 136072 "size": 136072
}, },
"python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "3a85759d30234271a83a9473d6d18af74d672c892f686b5d082e9b6df1b70159", "sha256": "0311a1fbde1510b31055606db21a7c5f74e6872f9f1aabd6fb4a0a501395eaef",
"size": 600528 "size": 600528
}, },
"python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "2423bca9e7637997d1b6a86365cbc9e9a7d47c89f96aa21be4de32a898ad795c", "sha256": "1f08c7c462b4cb08a8de9140d968ef5dc74b31afffe16c9f8fad4e0271bec6cc",
"size": 135752 "size": 135752
}, },
"python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "12b333b4c8904483cae4bae1346016b24b9bee0866d332b2b61dc9fbc30a14b7", "sha256": "aea71be79c99884a0aeaaf8e5c0f70e37bb4f0c0123025cd07df830189774ba9",
"size": 69832 "size": 69832
}, },
"python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": { "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": {
"mode": 493, "mode": 493,
"sha256": "3954330e8004abad9dd31f3a02b57306dc7e83e73ee0ba4072b1b4ecc7f88dfc", "sha256": "5c7dd6ef7dafb9a35662ee3d22c08b17b02807df736bf146af88cb260f5bbf09",
"size": 201384 "size": 201384
}, },
"runtime": { "runtime": {
@@ -105,20 +105,20 @@
} }
}, },
"signatures": { "signatures": {
"python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "j3fNuxY5XzC219Okj5DV4kId8oUAKcwTcZhwLpp8S/kWXpFv4gHo43Van3A+OkWPFa50ZvKqWH7WhoQc8IgPBw==", "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "E3+Gd+btNi+4qFqM+nFMfWgCLJhP21ZgIwZrE/CJjqafB1htd/qOhh9QtrulS46HW5geZ/nwW3jlxPbFeNubBw==",
"python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "+Pj9wj6MC4cZ8YxZvvT4XlrzS/N6gVDf5LGZ6kkWiJhVuolBW4ey5KSjbggp4NSIiZWi9aARMZfGsWabQi+nDA==", "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "hHQQCCPcxRXdO9vko9476AYbgbfNwhi9bVYpoOzQQStPC8DbIO0QN/RRzaJVGr2kgJGZlXDmnGl85m7EHgC1BA==",
"python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "KYCV1qnZ8+mrne7n0H7x+kTu8x/U9H71SXYZt3URy/yIgdtTTXkSS6IQs1UvusfMHzRdBGcT58ado3UcLpsNAg==", "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "Wz5yfWlMeoASj274KqrCWwEJD/wtm5WyxLenceYu7MkXaMlN1QyztvJhq8Y8K8Jfis7R5fQ/aAnlsQgWTIVEBg==",
"python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "qC8oELP8nBJSvaDsCMo7/JqoiqCZBJa/LeUE0b36DdkT7kzHSLQ+MuGP5Vc8ms8VowBh447LaLq2WWURGB/fAQ==", "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "6WFWUXmkyy21rh/9xa7s7S7CTiCRnywOahU859T6iP0447NkVxHRYmXAVCH1/vRDPXASHRNPyUk8oSDLIGK1Ag==",
"python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "6kFnnmSPQPXe1HuiBL14HrPx5cr2XmOYzTcESKHvt7DAL7M5tMKy0BWufo34F/LH4MYXQu1/k5TyzHt4wQ7jBw==", "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "ZUsjQ/AGPa5pVKAv3IkycDPIVBWh+4jBNor/xrUi7BBPHki8G6T1grv3exeHhr2WF2JiqN727ge3JaqvlU1KDQ==",
"python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "F0JFe9uN7YtdFvtSwHXPch4l6Cz7yWTOtKPHOdBxqk9CkHh0vfO2d4EAeGTpvHINFS5Kf2KcF99qyEhWfr31Ag==", "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "t+VHmWhxf7oKcR5e+tJe6hPKy6xz0bMY84WEhujwcwBlWgIXscfc9aNSP6e4N7GITW7cOn+RlDRTTfwQsA6PDA==",
"python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "7sQ0zXNASjEVBknO94P5wnMifC+8cVAKaBBbQjfbbaV1lsg18mm/rtTOGlFX7NJD23kJFxyLJmJ+wKjRAZXkBg==", "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "qOrpSi2I+aFLKN4WjBljfzbk2U1rvOgDuyV+p7IvshugeUOoqTKiYYSG9xwyi2/eB/syyfiVFoqAg+ETFXXPDA==",
"python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "VTg/Ojx4I8+JJz+vf9gDwUSBY9MCUvIg9wGnNJiQwIKDJr/VkSRoaiM4nMoazauhLEgYpmlfX7C8OEAWswKhBQ==", "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "PcFJWRYrb52pJCbTdsAPm3IC0OR9zt/7P0uc1GlQr4CVGvzfXukbnt/7sSeL8T29w7drf9MfGkpRe4BjbWwtDw==",
"python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "4i882AjYz/zCgoGlr1LGNcVGfzyybHPMOL0aKva8VNsHBEtMbnnetecRBurtAzlU6O8+p89gY1GNDaJfyi7OAQ==", "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "gp1noPJ35MRVcQL3t4wKbsEH0L0+n9Yf8Zty+VCY7uy9EsK8211kW2YIw7Lcyw879VLLbVntHIWz/BMankSeAw==",
"python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "hO9yDTiAaidM3yQCfh4J8vP54R2z42ejhkqU8E6l+wWUXhRrfS4Z6qLyxeQqQGJSPSAMfsWl/yODWogqoH+MDQ==", "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "N6yH0R8V/Cw1J3hYPfFeZXByolRwtACwNe2wHMzPEQ69UTWnSNFRXWjOLCEvtwB8Z+iglAqFx8uztZ6wXZKUCQ==",
"python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "xPCGbuG+pQUqCjBx3NijbInbyo/rRteGLCbhVun2odrw1lGMx4JwzSyNUUsEU7xFPEZ+oZwPUaZcVOHRPnknAw==", "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "oQQU70Yp8wzkqB9Ktm2KDEHNVZfB3otqIoG2mkqQNh6QdtVKXraIv6cAbt2Zjob5914C06El2z+NPZQE5NjODQ==",
"python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "ZDojmbuEkZUbZ7a56pPvO8hFcYHM5zB9OvGs+r90swvPzU0GRm4SkEiDRLhG6zSyP+vHhJnrsTs+dvyaBkzvCQ==", "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "ayPdxCUGA/o+AavLMd9mGDY6zYnZk54gAEVaMQXFYlztjXiREC+IEmV1iETOYcsEFAxr8qtUFfcwZ3p7rXljCw==",
"python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "888SP/NpbJtdv2BKbsW7WzuD0pKh2rM50YvS4GlD8brL2xq7a7GPPeKM/b5F+pTzVvS7CbUmELqh3HmeAtOKCw==", "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "Rh0wUjYjRabedjFSnsE9BAjILjA1+RHMdfuCqTye1AlhFlXVUQMRo6Ier6Z71kyiOYw+CXCOrHUF9fP69cP4DQ==",
"python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "cmYohrfIfttybS+9x+b9DFzgxyaDGNtgr+olaMWUZ7ytgenB+EvwKAXJHmicFtvBTsKOxYzywKR2zLb71DDFDg==", "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "13bqig90oceup9ovo8weu9UpdQN/l/pq7REFm8dwwgqquuh8jJFkzNz7dvIhDlaxIGAQwzWJe4+QzIQfhg0jAA==",
"python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "laxlmUb7INupC/eu6k/eok3bXW4c5H7Lui5MDJXLCoSFCiutla374A6rN8Dh+g3AcSY2NfLBzrnyqQDqQH0KBw==" "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "Vm1Inx4XY0BOmLuNizOCRNAl4tPDcvJ/4A+TwVSr1cZuMg7pg1jeFg613e6cFM6t08hYvPsysXc2+gD69zkcBA=="
} }
} }

View File

@@ -242,8 +242,8 @@ struct IQPlan @0xda401323ae805f2b {
} }
struct E2eAlerts { struct E2eAlerts {
greenLightAlert @0 :Bool; pathOpen @0 :Bool;
leadDepartAlert @1 :Bool; leadPullaway @1 :Bool;
} }
} }

View File

@@ -171,12 +171,12 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"DeviceBootMode", {PERSISTENT, INT, "0"}}, {"DeviceBootMode", {PERSISTENT, INT, "0"}},
{"IQDevUIInfo", {PERSISTENT, INT, "0"}}, {"IQDevUIInfo", {PERSISTENT, INT, "0"}},
{"EnableEsimProvisioning", {PERSISTENT, BOOL, "1"}}, {"EnableEsimProvisioning", {PERSISTENT, BOOL, "1"}},
{"GreenLightAlert", {PERSISTENT, BOOL, "0"}}, {"EndToEndAlert", {PERSISTENT, BOOL, "0"}},
{"InteractivityTimeout", {PERSISTENT, INT, "0"}}, {"InteractivityTimeout", {PERSISTENT, INT, "0"}},
{"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}},
{"IsReleaseIqBranch", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsReleaseIqBranch", {CLEAR_ON_MANAGER_START, BOOL}},
{"LastGPSPositionIQLoc", {PERSISTENT, STRING}}, {"LastGPSPositionIQLoc", {PERSISTENT, STRING}},
{"LeadDepartAlert", {PERSISTENT, BOOL, "0"}}, {"EndToEndLeadAlert", {PERSISTENT, BOOL, "0"}},
{"LongIncrementsEnabled", {PERSISTENT, BOOL, "0"}}, {"LongIncrementsEnabled", {PERSISTENT, BOOL, "0"}},
{"LongIncrementTapStep", {PERSISTENT, INT, "1"}}, {"LongIncrementTapStep", {PERSISTENT, INT, "1"}},
{"LongIncrementHoldStep", {PERSISTENT, INT, "5"}}, {"LongIncrementHoldStep", {PERSISTENT, INT, "5"}},

View File

@@ -4,6 +4,61 @@ collect_ignore_glob = [
"iqdbc/safety/tests/misra/cppcheck/", "iqdbc/safety/tests/misra/cppcheck/",
] ]
# --- host test harness -------------------------------------------------------
# tesla/volkswagen carstate+carcontroller import the closed-source ALC / odometer
# runtime via import_verified_module(), which gates on a rootfs integrity manifest
# that only exists on-device. Off-device (host CI / dev), install minimal stubs so
# the whole car interface set is importable and test_car_interfaces can collect and
# run. On-device the manifest is present and these stubs are never installed, so the
# real verified modules are used.
import os as _os
if not _os.path.exists("/usr/libexec/iqpilot/runtime_integrity.json"):
import sys as _sys
import types as _types
def _stub_module(name, attrs):
mod = _types.ModuleType(name)
for key, value in attrs.items():
setattr(mod, key, value)
_sys.modules[name] = mod
_noop = lambda *args, **kwargs: None # noqa: E731
class _VehicleOdometerStoreStub:
def __init__(self, *args, **kwargs):
pass
def record(self, km):
return km
_stub_module("iqpilot_private.konn3kt.iqlvbs.vehicle_state",
{"VehicleOdometerStore": _VehicleOdometerStoreStub})
_stub_module("iqpilot_private.konn3kt.iqlvbs.alc", {
"angle_lateral_control_enabled": lambda *a, **k: False,
"update_vw_alc": _noop,
"append_private_apd": _noop,
"update_mqb_carstate_alc_state": _noop,
"update_mlb_carstate_alc_state": _noop,
"update_pq_carstate_alc_state": _noop,
})
_stub_module("iqpilot_private.konn3kt.iqlvbs.iqlvbs_commander", {
"update_turn_signals": _noop,
})
_stub_module("iqpilot_private.konn3kt.hephaestus.vw_pq_flasher", {})
try:
from openpilot.system.proprietary_runtime import _verified_import as _vi
_real_import_verified_module = _vi.import_verified_module
def _import_verified_module(bundle, module):
return _sys.modules.get(module) or _real_import_verified_module(bundle, module)
_vi.import_verified_module = _import_verified_module
except Exception:
pass
# --- end host test harness ---------------------------------------------------
_ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase")) _ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase"))
def _method_from_base(cls, method_name): def _method_from_base(cls, method_name):

View File

@@ -11,7 +11,7 @@ from iqdbc.car.mock.values import CAR as MOCK
from iqdbc.car.values import BRANDS from iqdbc.car.values import BRANDS
from iqdbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN from iqdbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN
from iqdbc.iqpilot.car.interfaces import setup_interfaces as iqpilot_interfaces from iqdbc.lvbs.car.interfaces import apply_iq_car_config as iqpilot_interfaces
FRAME_FINGERPRINT = 100 # 1s FRAME_FINGERPRINT = 100 # 1s

View File

@@ -5,9 +5,9 @@ from iqdbc.car.chrysler import chryslercan
from iqdbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT from iqdbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT
from iqdbc.car.interfaces import CarControllerBase from iqdbc.car.interfaces import CarControllerBase
from iqdbc.iqpilot.car.chrysler.carcontroller_ext import CarControllerExt from iqdbc.lvbs.car.chrysler.carcontroller_ext import CarControllerExt
from iqdbc.iqpilot.car.chrysler.aol import AolCarController from iqdbc.lvbs.car.chrysler.aol import AolCarController
from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ from iqdbc.lvbs.car.chrysler.values_ext import ChryslerFlagsIQ
class CarController(CarControllerBase, AolCarController, CarControllerExt): class CarController(CarControllerBase, AolCarController, CarControllerExt):

View File

@@ -4,8 +4,8 @@ from iqdbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS
from iqdbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.iqpilot.car.chrysler.carstate_ext import CarStateExt from iqdbc.lvbs.car.chrysler.carstate_ext import CarStateExt
from iqdbc.iqpilot.car.chrysler.aol import AolCarState from iqdbc.lvbs.car.chrysler.aol import AolCarState
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -2,8 +2,8 @@
from iqdbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from iqdbc.car.chrysler.values import CAR from iqdbc.car.chrysler.values import CAR
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions from iqdbc.lvbs.car.fingerprints_ext import extend_fw_versions
from iqdbc.iqpilot.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT from iqdbc.lvbs.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
@@ -789,4 +789,4 @@ FW_VERSIONS = {
}, },
} }
FW_VERSIONS = merge_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT) FW_VERSIONS = extend_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT)

View File

@@ -5,7 +5,7 @@ from iqdbc.car.chrysler.carstate import CarState
from iqdbc.car.chrysler.radar_interface import RadarInterface from iqdbc.car.chrysler.radar_interface import RadarInterface
from iqdbc.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, ChryslerSafetyFlags from iqdbc.car.chrysler.values import CAR, RAM_HD, RAM_DT, RAM_CARS, ChryslerFlags, ChryslerSafetyFlags
from iqdbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ from iqdbc.lvbs.car.chrysler.values_ext import ChryslerFlagsIQ
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

View File

@@ -5,7 +5,7 @@ from iqdbc.car.ford.fordcan import CanBus
from iqdbc.car.ford.values import DBC, CarControllerParams, FordFlags from iqdbc.car.ford.values import DBC, CarControllerParams, FordFlags
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.iqpilot.car.ford.aol import AolCarState from iqdbc.lvbs.car.ford.aol import AolCarState
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type
GearShifter = structs.CarState.GearShifter GearShifter = structs.CarState.GearShifter

View File

@@ -5,8 +5,8 @@ from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.gm.values import DBC, AccState, CruiseButtons, STEER_THRESHOLD, SDGM_CAR, ALT_ACCS from iqdbc.car.gm.values import DBC, AccState, CruiseButtons, STEER_THRESHOLD, SDGM_CAR, ALT_ACCS
from iqdbc.iqpilot.car.gm.carstate_ext import CarStateExt from iqdbc.lvbs.car.gm.carstate_ext import CarStateExt
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ from iqdbc.lvbs.car.gm.values_ext import GMFlagsIQ
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type
TransmissionType = structs.CarParams.TransmissionType TransmissionType = structs.CarParams.TransmissionType

View File

@@ -2,8 +2,8 @@
""" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.""" """ AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
from iqdbc.car.gm.values import CAR from iqdbc.car.gm.values import CAR
from iqdbc.iqpilot.car.fingerprints_ext import merge_fingerprints from iqdbc.lvbs.car.fingerprints_ext import extend_fingerprints
from iqdbc.iqpilot.car.gm.fingerprints_ext import FINGERPRINTS_EXT from iqdbc.lvbs.car.gm.fingerprints_ext import FINGERPRINTS_EXT
# Trailblazer also matches as a SILVERADO, TODO: split with fw versions # Trailblazer also matches as a SILVERADO, TODO: split with fw versions
# FIXME: There are Equinox users with different message lengths, specifically 304 and 320 # FIXME: There are Equinox users with different message lengths, specifically 304 and 320
@@ -78,4 +78,4 @@ FINGERPRINTS = {
FW_VERSIONS: dict[str, dict[tuple, list[bytes]]] = { FW_VERSIONS: dict[str, dict[tuple, list[bytes]]] = {
} }
FINGERPRINTS = merge_fingerprints(FINGERPRINTS, FINGERPRINTS_EXT) FINGERPRINTS = extend_fingerprints(FINGERPRINTS, FINGERPRINTS_EXT)

View File

@@ -10,8 +10,8 @@ from iqdbc.car.gm.radar_interface import RadarInterface, RADAR_HEADER_MSG, CAMER
from iqdbc.car.gm.values import CAR, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, SDGM_CAR, ALT_ACCS, CanBus, GMSafetyFlags from iqdbc.car.gm.values import CAR, CarControllerParams, EV_CAR, CAMERA_ACC_CAR, SDGM_CAR, ALT_ACCS, CanBus, GMSafetyFlags
from iqdbc.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, LateralAccelFromTorqueCallbackType from iqdbc.car.interfaces import CarInterfaceBase, TorqueFromLateralAccelCallbackType, LateralAccelFromTorqueCallbackType
from iqdbc.iqpilot.car.gm.interface_ext import CarInterfaceExt from iqdbc.lvbs.car.gm.interface_ext import CarInterfaceExt
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ, GMSafetyFlagsIQ from iqdbc.lvbs.car.gm.values_ext import GMFlagsIQ, GMSafetyFlagsIQ
TransmissionType = structs.CarParams.TransmissionType TransmissionType = structs.CarParams.TransmissionType
NetworkLocation = structs.CarParams.NetworkLocation NetworkLocation = structs.CarParams.NetworkLocation

View File

@@ -6,7 +6,7 @@ from iqdbc.car.structs import CarParams
from iqdbc.car.docs_definitions import CarDocs, CarFootnote, CarHarness, CarParts, Column, SupportType from iqdbc.car.docs_definitions import CarDocs, CarFootnote, CarHarness, CarParts, Column, SupportType
from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ from iqdbc.lvbs.car.gm.values_ext import GMFlagsIQ
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -8,8 +8,8 @@ from iqdbc.car.honda.values import CAR, CruiseButtons, HONDA_BOSCH, HONDA_BOSCH_
HONDA_BOSCH_TJA_CONTROL, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams HONDA_BOSCH_TJA_CONTROL, HONDA_NIDEC_ALT_PCM_ACCEL, CarControllerParams
from iqdbc.car.interfaces import CarControllerBase from iqdbc.car.interfaces import CarControllerBase
from iqdbc.iqpilot.car.honda.aol import AolCarController from iqdbc.lvbs.car.honda.aol import AolCarController
from iqdbc.iqpilot.car.honda.gas_interceptor import GasInterceptorCarController from iqdbc.lvbs.car.honda.gas_interceptor import GasInterceptorCarController
VisualAlert = structs.CarControl.HUDControl.VisualAlert VisualAlert = structs.CarControl.HUDControl.VisualAlert
LongCtrlState = structs.CarControl.Actuators.LongControlState LongCtrlState = structs.CarControl.Actuators.LongControlState

View File

@@ -10,7 +10,7 @@ from iqdbc.car.honda.values import CAR, DBC, STEER_THRESHOLD, HONDA_BOSCH, HONDA
HondaFlags, CruiseButtons, CruiseSettings, GearShifter, CarControllerParams HondaFlags, CruiseButtons, CruiseSettings, GearShifter, CarControllerParams
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.iqpilot.car.honda.carstate_ext import CarStateExt from iqdbc.lvbs.car.honda.carstate_ext import CarStateExt
TransmissionType = structs.CarParams.TransmissionType TransmissionType = structs.CarParams.TransmissionType
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -2,8 +2,8 @@
from iqdbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from iqdbc.car.honda.values import CAR from iqdbc.car.honda.values import CAR
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions from iqdbc.lvbs.car.fingerprints_ext import extend_fw_versions
from iqdbc.iqpilot.car.honda.fingerprints_ext import FW_VERSIONS_EXT from iqdbc.lvbs.car.honda.fingerprints_ext import FW_VERSIONS_EXT
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
@@ -1098,4 +1098,4 @@ FW_VERSIONS = {
}, },
} }
FW_VERSIONS = merge_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT) FW_VERSIONS = extend_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT)

View File

@@ -2,7 +2,7 @@ from iqdbc.car import CanBusBase
from iqdbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.car.honda.values import (HondaFlags, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_RADARLESS, from iqdbc.car.honda.values import (HondaFlags, HONDA_BOSCH, HONDA_BOSCH_ALT_RADAR, HONDA_BOSCH_RADARLESS,
HONDA_BOSCH_CANFD, CarControllerParams) HONDA_BOSCH_CANFD, CarControllerParams)
from iqdbc.iqpilot.car.honda.values_ext import HondaFlagsIQ from iqdbc.lvbs.car.honda.values_ext import HondaFlagsIQ
# CAN bus layout with relay # CAN bus layout with relay
# 0 = ACC-CAN - radar side # 0 = ACC-CAN - radar side

View File

@@ -11,7 +11,7 @@ from iqdbc.car.honda.carstate import CarState
from iqdbc.car.honda.radar_interface import RadarInterface from iqdbc.car.honda.radar_interface import RadarInterface
from iqdbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
from iqdbc.iqpilot.car.honda.values_ext import HondaFlagsIQ, HondaSafetyFlagsIQ from iqdbc.lvbs.car.honda.values_ext import HondaFlagsIQ, HondaSafetyFlagsIQ
TransmissionType = structs.CarParams.TransmissionType TransmissionType = structs.CarParams.TransmissionType

View File

@@ -8,10 +8,10 @@ from iqdbc.car.hyundai.hyundaicanfd import CanBus
from iqdbc.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CAR from iqdbc.car.hyundai.values import HyundaiFlags, Buttons, CarControllerParams, CAR
from iqdbc.car.interfaces import CarControllerBase from iqdbc.car.interfaces import CarControllerBase
from iqdbc.iqpilot.car.hyundai.escc import EsccCarController from iqdbc.lvbs.car.hyundai.escc import EsccCarController
from iqdbc.iqpilot.car.hyundai.longitudinal.controller import LongitudinalController from iqdbc.lvbs.car.hyundai.longitudinal.controller import LongitudinalController
from iqdbc.iqpilot.car.hyundai.lead_data_ext import LeadDataCarController from iqdbc.lvbs.car.hyundai.lead_data_ext import LeadDataCarController
from iqdbc.iqpilot.car.hyundai.aol import AolCarController from iqdbc.lvbs.car.hyundai.aol import AolCarController
VisualAlert = structs.CarControl.HUDControl.VisualAlert VisualAlert = structs.CarControl.HUDControl.VisualAlert
LongCtrlState = structs.CarControl.Actuators.LongControlState LongCtrlState = structs.CarControl.Actuators.LongControlState

View File

@@ -9,10 +9,10 @@ from iqdbc.car.hyundai.hyundaicanfd import CanBus
from iqdbc.car.hyundai.values import HyundaiFlags, CAR, DBC, Buttons, CarControllerParams from iqdbc.car.hyundai.values import HyundaiFlags, CAR, DBC, Buttons, CarControllerParams
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.iqpilot.car.hyundai.carstate_ext import CarStateExt from iqdbc.lvbs.car.hyundai.carstate_ext import CarStateExt
from iqdbc.iqpilot.car.hyundai.escc import EsccCarStateBase from iqdbc.lvbs.car.hyundai.escc import EsccCarStateBase
from iqdbc.iqpilot.car.hyundai.aol import AolCarState from iqdbc.lvbs.car.hyundai.aol import AolCarState
from iqdbc.iqpilot.car.hyundai.values import HyundaiFlagsIQ from iqdbc.lvbs.car.hyundai.values import HyundaiFlagsIQ
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -2,8 +2,8 @@
from iqdbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from iqdbc.car.hyundai.values import CAR from iqdbc.car.hyundai.values import CAR
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions from iqdbc.lvbs.car.fingerprints_ext import extend_fw_versions
from iqdbc.iqpilot.car.hyundai.fingerprints_ext import FW_VERSIONS_EXT from iqdbc.lvbs.car.hyundai.fingerprints_ext import FW_VERSIONS_EXT
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
@@ -1286,4 +1286,4 @@ FW_VERSIONS = {
}, },
} }
FW_VERSIONS = merge_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT) FW_VERSIONS = extend_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT)

View File

@@ -1,8 +1,8 @@
import crcmod import crcmod
from iqdbc.car.hyundai.values import CAR, HyundaiFlags from iqdbc.car.hyundai.values import CAR, HyundaiFlags
from iqdbc.iqpilot.car.hyundai.escc import EnhancedSmartCruiseControl from iqdbc.lvbs.car.hyundai.escc import EnhancedSmartCruiseControl
from iqdbc.iqpilot.car.hyundai.lead_data_ext import CanLeadData from iqdbc.lvbs.car.hyundai.lead_data_ext import CanLeadData
hyundai_checksum = crcmod.mkCrcFun(0x11D, initCrc=0xFD, rev=False, xorOut=0xdf) hyundai_checksum = crcmod.mkCrcFun(0x11D, initCrc=0xFD, rev=False, xorOut=0xdf)

View File

@@ -3,7 +3,7 @@ import numpy as np
from iqdbc.car import CanBusBase from iqdbc.car import CanBusBase
from iqdbc.car.crc import CRC16_XMODEM from iqdbc.car.crc import CRC16_XMODEM
from iqdbc.car.hyundai.values import HyundaiFlags from iqdbc.car.hyundai.values import HyundaiFlags
from iqdbc.iqpilot.car.hyundai.lead_data_ext import CanFdLeadData from iqdbc.lvbs.car.hyundai.lead_data_ext import CanFdLeadData
class CanBus(CanBusBase): class CanBus(CanBusBase):

View File

@@ -10,9 +10,9 @@ from iqdbc.car.hyundai.carcontroller import CarController
from iqdbc.car.hyundai.carstate import CarState from iqdbc.car.hyundai.carstate import CarState
from iqdbc.car.hyundai.radar_interface import RadarInterface from iqdbc.car.hyundai.radar_interface import RadarInterface
from iqdbc.iqpilot.car.hyundai.escc import ESCC_MSG from iqdbc.lvbs.car.hyundai.escc import ESCC_MSG
from iqdbc.iqpilot.car.hyundai.longitudinal.helpers import get_longitudinal_tune from iqdbc.lvbs.car.hyundai.longitudinal.helpers import get_longitudinal_tune
from iqdbc.iqpilot.car.hyundai.values import HyundaiFlagsIQ, HyundaiSafetyFlagsIQ from iqdbc.lvbs.car.hyundai.values import HyundaiFlagsIQ, HyundaiSafetyFlagsIQ
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type
Ecu = structs.CarParams.Ecu Ecu = structs.CarParams.Ecu

View File

@@ -5,7 +5,7 @@ from iqdbc.car import Bus, structs
from iqdbc.car.interfaces import RadarInterfaceBase from iqdbc.car.interfaces import RadarInterfaceBase
from iqdbc.car.hyundai.values import DBC from iqdbc.car.hyundai.values import DBC
from iqdbc.iqpilot.car.hyundai.radar_interface_ext import RadarInterfaceExt from iqdbc.lvbs.car.hyundai.radar_interface_ext import RadarInterfaceExt
RADAR_START_ADDR = 0x500 RADAR_START_ADDR = 0x500
RADAR_MSG_COUNT = 32 RADAR_MSG_COUNT = 32

View File

@@ -8,7 +8,7 @@ from iqdbc.car.structs import CarParams
from iqdbc.car.docs_definitions import CarHarness, CarDocs, CarParts, SupportType from iqdbc.car.docs_definitions import CarHarness, CarDocs, CarParts, SupportType
from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, p16 from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, p16
from iqdbc.iqpilot.car.hyundai.values import HyundaiFlagsIQ from iqdbc.lvbs.car.hyundai.values import HyundaiFlagsIQ
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -18,7 +18,7 @@ from iqdbc.car.values import PLATFORMS
from iqdbc.can import CANParser from iqdbc.can import CANParser
from iqdbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from iqdbc.iqpilot.car.interfaces import CarInterfaceBaseIQ from iqdbc.lvbs.car.interfaces import CarInterfaceBaseIQ
GearShifter = structs.CarState.GearShifter GearShifter = structs.CarState.GearShifter
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -5,7 +5,7 @@ from iqdbc.car import Bus, create_button_events, structs
from iqdbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.nissan.values import CAR, DBC, CarControllerParams from iqdbc.car.nissan.values import CAR, DBC, CarControllerParams
from iqdbc.iqpilot.car.nissan.carstate_ext import CarStateExt from iqdbc.lvbs.car.nissan.carstate_ext import CarStateExt
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -3,7 +3,7 @@ from iqdbc.car.interfaces import CarInterfaceBase
from iqdbc.car.nissan.carcontroller import CarController from iqdbc.car.nissan.carcontroller import CarController
from iqdbc.car.nissan.carstate import CarState from iqdbc.car.nissan.carstate import CarState
from iqdbc.car.nissan.values import CAR, NissanSafetyFlags from iqdbc.car.nissan.values import CAR, NissanSafetyFlags
from iqdbc.iqpilot.car.nissan.values import NissanSafetyFlagsIQ from iqdbc.lvbs.car.nissan.values import NissanSafetyFlagsIQ
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):
CarState = CarState CarState = CarState

View File

@@ -6,7 +6,7 @@ from iqdbc.car.interfaces import CarControllerBase
from iqdbc.car.rivian.riviancan import create_lka_steering, create_longitudinal, create_wheel_touch, create_adas_status from iqdbc.car.rivian.riviancan import create_lka_steering, create_longitudinal, create_wheel_touch, create_adas_status
from iqdbc.car.rivian.values import CarControllerParams from iqdbc.car.rivian.values import CarControllerParams
from iqdbc.iqpilot.car.rivian.aol import AolCarController from iqdbc.lvbs.car.rivian.aol import AolCarController
class CarController(CarControllerBase, AolCarController): class CarController(CarControllerBase, AolCarController):

View File

@@ -4,7 +4,7 @@ from iqdbc.car import Bus, structs
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.rivian.values import DBC, GEAR_MAP from iqdbc.car.rivian.values import DBC, GEAR_MAP
from iqdbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.iqpilot.car.rivian.carstate_ext import CarStateExt from iqdbc.lvbs.car.rivian.carstate_ext import CarStateExt
GearShifter = structs.CarState.GearShifter GearShifter = structs.CarState.GearShifter

View File

@@ -4,7 +4,7 @@ from iqdbc.car.rivian.carcontroller import CarController
from iqdbc.car.rivian.carstate import CarState from iqdbc.car.rivian.carstate import CarState
from iqdbc.car.rivian.radar_interface import RadarInterface from iqdbc.car.rivian.radar_interface import RadarInterface
from iqdbc.car.rivian.values import RivianSafetyFlags from iqdbc.car.rivian.values import RivianSafetyFlags
from iqdbc.iqpilot.car.rivian.values import RivianFlagsIQ from iqdbc.lvbs.car.rivian.values import RivianFlagsIQ
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

View File

@@ -6,7 +6,7 @@ from iqdbc.car.interfaces import CarControllerBase
from iqdbc.car.subaru import subarucan from iqdbc.car.subaru import subarucan
from iqdbc.car.subaru.values import DBC, GLOBAL_ES_ADDR, CanBus, CarControllerParams, SubaruFlags from iqdbc.car.subaru.values import DBC, GLOBAL_ES_ADDR, CanBus, CarControllerParams, SubaruFlags
from iqdbc.iqpilot.car.subaru.stop_and_go import SnGCarController from iqdbc.lvbs.car.subaru.stop_and_go import IQStopAndGoController
# FIXME: These limits aren't exact. The real limit is more than likely over a larger time period and # FIXME: These limits aren't exact. The real limit is more than likely over a larger time period and
# involves the total steering angle change rather than rate, but these limits work well for now # involves the total steering angle change rather than rate, but these limits work well for now
@@ -14,10 +14,10 @@ MAX_STEER_RATE = 25 # deg/s
MAX_STEER_RATE_FRAMES = 7 # tx control frames needed before torque can be cut MAX_STEER_RATE_FRAMES = 7 # tx control frames needed before torque can be cut
class CarController(CarControllerBase, SnGCarController): class CarController(CarControllerBase, IQStopAndGoController):
def __init__(self, dbc_names, CP, CP_IQ): def __init__(self, dbc_names, CP, CP_IQ):
CarControllerBase.__init__(self, dbc_names, CP, CP_IQ) CarControllerBase.__init__(self, dbc_names, CP, CP_IQ)
SnGCarController.__init__(self, CP, CP_IQ) IQStopAndGoController.__init__(self, CP, CP_IQ)
self.apply_torque_last = 0 self.apply_torque_last = 0
self.cruise_button_prev = 0 self.cruise_button_prev = 0
@@ -139,7 +139,7 @@ class CarController(CarControllerBase, SnGCarController):
if self.frame % 2 == 0: if self.frame % 2 == 0:
can_sends.append(subarucan.create_es_static_2(self.packer)) can_sends.append(subarucan.create_es_static_2(self.packer))
can_sends.extend(SnGCarController.create_stop_and_go(self, self.packer, CC, CS, self.frame)) can_sends.extend(IQStopAndGoController.create_stop_and_go(self, self.packer, CC, CS, self.frame))
new_actuators = actuators.as_builder() new_actuators = actuators.as_builder()
new_actuators.torque = self.apply_torque_last / self.p.STEER_MAX new_actuators.torque = self.apply_torque_last / self.p.STEER_MAX

View File

@@ -6,15 +6,15 @@ from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.subaru.values import DBC, CanBus, SubaruFlags from iqdbc.car.subaru.values import DBC, CanBus, SubaruFlags
from iqdbc.car import CanSignalRateCalculator from iqdbc.car import CanSignalRateCalculator
from iqdbc.iqpilot.car.subaru.aol import AolCarState from iqdbc.lvbs.car.subaru.aol import AolCarState
from iqdbc.iqpilot.car.subaru.stop_and_go import SnGCarState from iqdbc.lvbs.car.subaru.stop_and_go import IQStopAndGoState
class CarState(CarStateBase, AolCarState, SnGCarState): class CarState(CarStateBase, AolCarState, IQStopAndGoState):
def __init__(self, CP, CP_IQ): def __init__(self, CP, CP_IQ):
CarStateBase.__init__(self, CP, CP_IQ) CarStateBase.__init__(self, CP, CP_IQ)
AolCarState.__init__(self, CP, CP_IQ) AolCarState.__init__(self, CP, CP_IQ)
SnGCarState.__init__(self, CP, CP_IQ) IQStopAndGoState.__init__(self, CP, CP_IQ)
can_define = CANDefine(DBC[CP.carFingerprint][Bus.pt]) can_define = CANDefine(DBC[CP.carFingerprint][Bus.pt])
self.shifter_values = can_define.dv["Transmission"]["Gear"] self.shifter_values = can_define.dv["Transmission"]["Gear"]
@@ -144,7 +144,7 @@ class CarState(CarStateBase, AolCarState, SnGCarState):
self.es_infotainment_msg = copy.copy(cp_cam.vl["ES_Infotainment"]) self.es_infotainment_msg = copy.copy(cp_cam.vl["ES_Infotainment"])
AolCarState.update_aol(self, ret, can_parsers) AolCarState.update_aol(self, ret, can_parsers)
SnGCarState.update(self, ret, can_parsers) IQStopAndGoState.update(self, ret, can_parsers)
return ret, ret_iq return ret, ret_iq

View File

@@ -7,7 +7,7 @@ from iqdbc.car.tesla.teslacan import TeslaCAN
from iqdbc.car.tesla.values import CarControllerParams from iqdbc.car.tesla.values import CarControllerParams
from iqdbc.car.vehicle_model import VehicleModel from iqdbc.car.vehicle_model import VehicleModel
from openpilot.iqpilot.selfdrive.car.enhanced_stock_longitudinal_control import get_set_speed_kph_from_params from openpilot.iqpilot.selfdrive.car.enhanced_stock_longitudinal_control import get_set_speed_kph_from_params
from iqdbc.iqpilot.car.tesla.coop_steering import CoopSteeringCarController from iqdbc.lvbs.car.tesla.coop_steering import CoopSteeringCarController
def get_safety_CP(): def get_safety_CP():

View File

@@ -7,7 +7,7 @@ from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.tesla.teslacan import get_steer_ctrl_type from iqdbc.car.tesla.teslacan import get_steer_ctrl_type
from iqdbc.car.tesla.values import DBC, CANBUS, GEAR_MAP, STEER_THRESHOLD, TeslaFlags from iqdbc.car.tesla.values import DBC, CANBUS, GEAR_MAP, STEER_THRESHOLD, TeslaFlags
from iqdbc.iqpilot.car.tesla.carstate_ext import CarStateExt from iqdbc.lvbs.car.tesla.carstate_ext import CarStateExt
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -5,7 +5,7 @@ from iqdbc.car.tesla.carstate import CarState
from iqdbc.car.tesla.values import TeslaSafetyFlags, TeslaFlags, CANBUS, CAR, DBC, FSD_14_FW, Ecu from iqdbc.car.tesla.values import TeslaSafetyFlags, TeslaFlags, CANBUS, CAR, DBC, FSD_14_FW, Ecu
from iqdbc.car.tesla.radar_interface import RadarInterface, RADAR_START_ADDR from iqdbc.car.tesla.radar_interface import RadarInterface, RADAR_START_ADDR
from iqdbc.iqpilot.car.tesla.values import TeslaFlagsIQ, TeslaSafetyFlagsIQ from iqdbc.lvbs.car.tesla.values import TeslaFlagsIQ, TeslaSafetyFlagsIQ
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

View File

@@ -13,8 +13,8 @@ from iqdbc.car.toyota.values import CAR, NO_STOP_TIMER_CAR, TSS2_CAR, \
UNSUPPORTED_DSU_CAR UNSUPPORTED_DSU_CAR
from iqdbc.can import CANPacker from iqdbc.can import CANPacker
from iqdbc.iqpilot.car.toyota.gas_interceptor import GasInterceptorCarController from iqdbc.lvbs.car.toyota.gas_interceptor import GasInterceptorCarController
from iqdbc.iqpilot.car.toyota.values import ToyotaFlagsIQ from iqdbc.lvbs.car.toyota.values import ToyotaFlagsIQ
Ecu = structs.CarParams.Ecu Ecu = structs.CarParams.Ecu
LongCtrlState = structs.CarControl.Actuators.LongControlState LongCtrlState = structs.CarControl.Actuators.LongControlState

View File

@@ -8,8 +8,8 @@ from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.toyota.values import ToyotaFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \ from iqdbc.car.toyota.values import ToyotaFlags, CAR, DBC, STEER_THRESHOLD, NO_STOP_TIMER_CAR, \
TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR, \ TSS2_CAR, RADAR_ACC_CAR, EPS_SCALE, UNSUPPORTED_DSU_CAR, \
SECOC_CAR SECOC_CAR
from iqdbc.iqpilot.car.toyota.carstate_ext import CarStateExt from iqdbc.lvbs.car.toyota.carstate_ext import CarStateExt
from iqdbc.iqpilot.car.toyota.values import ToyotaFlagsIQ from iqdbc.lvbs.car.toyota.values import ToyotaFlagsIQ
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type
SteerControlType = structs.CarParams.SteerControlType SteerControlType = structs.CarParams.SteerControlType

View File

@@ -2,8 +2,8 @@
from iqdbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from iqdbc.car.toyota.values import CAR from iqdbc.car.toyota.values import CAR
from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions from iqdbc.lvbs.car.fingerprints_ext import extend_fw_versions
from iqdbc.iqpilot.car.toyota.fingerprints_ext import FW_VERSIONS_EXT from iqdbc.lvbs.car.toyota.fingerprints_ext import FW_VERSIONS_EXT
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
@@ -1889,4 +1889,4 @@ FW_VERSIONS = {
}, },
} }
FW_VERSIONS = merge_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT) FW_VERSIONS = extend_fw_versions(FW_VERSIONS, FW_VERSIONS_EXT)

View File

@@ -7,7 +7,7 @@ from iqdbc.car.toyota.values import Ecu, CAR, DBC, ToyotaFlags, CarControllerPar
ToyotaSafetyFlags, UNSUPPORTED_DSU_CAR ToyotaSafetyFlags, UNSUPPORTED_DSU_CAR
from iqdbc.car.disable_ecu import disable_ecu from iqdbc.car.disable_ecu import disable_ecu
from iqdbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
from iqdbc.iqpilot.car.toyota.values import ToyotaFlagsIQ, ToyotaSafetyFlagsIQ from iqdbc.lvbs.car.toyota.values import ToyotaFlagsIQ, ToyotaSafetyFlagsIQ
SteerControlType = structs.CarParams.SteerControlType SteerControlType = structs.CarParams.SteerControlType

View File

@@ -1,7 +1,7 @@
from iqdbc.car import gen_empty_fingerprint, structs from iqdbc.car import gen_empty_fingerprint, structs
from iqdbc.car.toyota.interface import CarInterface from iqdbc.car.toyota.interface import CarInterface
from iqdbc.car.toyota.values import CAR, ToyotaFlags from iqdbc.car.toyota.values import CAR, ToyotaFlags
from iqdbc.iqpilot.car.toyota.values import ToyotaFlagsIQ from iqdbc.lvbs.car.toyota.values import ToyotaFlagsIQ
def test_forced_secoc_toyota_clears_dashcam_mode(): def test_forced_secoc_toyota_clears_dashcam_mode():

View File

@@ -8,7 +8,7 @@ from collections import namedtuple
from iqdbc.car import Bus, structs from iqdbc.car import Bus, structs
from iqdbc.car.chrysler.values import RAM_CARS from iqdbc.car.chrysler.values import RAM_CARS
from iqdbc.iqpilot.aol_base import AolCarStateBase from iqdbc.lvbs.aol_base import AolCarStateBase
from iqdbc.can.parser import CANParser from iqdbc.can.parser import CANParser
AolDataIQ = namedtuple("AolDataIQ", AolDataIQ = namedtuple("AolDataIQ",

View File

@@ -4,7 +4,7 @@ Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed
from iqdbc.car import structs from iqdbc.car import structs
from iqdbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from iqdbc.car.chrysler.values import RAM_DT from iqdbc.car.chrysler.values import RAM_DT
from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ from iqdbc.lvbs.car.chrysler.values_ext import ChryslerFlagsIQ
GearShifter = structs.CarState.GearShifter GearShifter = structs.CarState.GearShifter

View File

@@ -8,7 +8,7 @@ from enum import StrEnum
from iqdbc.car import Bus, structs from iqdbc.car import Bus, structs
from iqdbc.can.parser import CANParser from iqdbc.can.parser import CANParser
from iqdbc.car.chrysler.values import RAM_HD from iqdbc.car.chrysler.values import RAM_HD
from iqdbc.iqpilot.car.chrysler.values_ext import BUTTONS from iqdbc.lvbs.car.chrysler.values_ext import BUTTONS
class CarStateExt: class CarStateExt:

View File

@@ -3,7 +3,7 @@ Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed
""" """
def merge_fw_versions(fw_versions, new_fw_versions): def extend_fw_versions(fw_versions, new_fw_versions):
""" """
Merge firmware versions by extending lists for matching ECUs, Merge firmware versions by extending lists for matching ECUs,
adding all entries regardless of duplicates. adding all entries regardless of duplicates.
@@ -22,7 +22,7 @@ def merge_fw_versions(fw_versions, new_fw_versions):
return fw_versions return fw_versions
def merge_fingerprints(fingerprints, new_fingerprints): def extend_fingerprints(fingerprints, new_fingerprints):
""" """
Merge fingerprints by extending lists for matching keys, Merge fingerprints by extending lists for matching keys,
adding all entries regardless of duplicates. adding all entries regardless of duplicates.

View File

@@ -6,7 +6,7 @@ from enum import StrEnum
from iqdbc.car import Bus,structs from iqdbc.car import Bus,structs
from iqdbc.iqpilot.aol_base import AolCarStateBase from iqdbc.lvbs.aol_base import AolCarStateBase
from iqdbc.can.parser import CANParser from iqdbc.can.parser import CANParser

View File

@@ -6,7 +6,7 @@ from enum import StrEnum
from iqdbc.car import Bus, structs from iqdbc.car import Bus, structs
from iqdbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from iqdbc.can.parser import CANParser from iqdbc.can.parser import CANParser
from iqdbc.iqpilot.car.gm.values_ext import GMFlagsIQ from iqdbc.lvbs.car.gm.values_ext import GMFlagsIQ
class CarStateExt: class CarStateExt:

View File

@@ -7,7 +7,7 @@ from math import exp
from iqdbc.car import structs from iqdbc.car import structs
from iqdbc.car.common.basedir import BASEDIR from iqdbc.car.common.basedir import BASEDIR
from iqdbc.car.gm.interface import CAR from iqdbc.car.gm.interface import CAR
from iqdbc.iqpilot.car.interfaces import LatControlInputs, NanoFFModel, TorqueFromLateralAccelCallbackTypeTorqueSpace from iqdbc.lvbs.car.interfaces import LatControlInputs, NanoFFModel, TorqueFromLateralAccelCallbackTypeTorqueSpace
NON_LINEAR_TORQUE_PARAMS = { NON_LINEAR_TORQUE_PARAMS = {
CAR.CHEVROLET_BOLT_EUV: [2.6531724862969748, 1.0, 0.1919764879840985, 0.009054123646805178], CAR.CHEVROLET_BOLT_EUV: [2.6531724862969748, 1.0, 0.1919764879840985, 0.009054123646805178],

Some files were not shown because too many files have changed in this diff Show More