IQ.Pilot Release Commit @ f82ff4d

This commit is contained in:
IQ.Lvbs CI [bot]
2026-07-21 13:43:46 -05:00
parent 7b20edda67
commit b712a31728
717 changed files with 4347 additions and 3060 deletions

View File

@@ -6,7 +6,7 @@
## Running IQ.Pilot ## Running IQ.Pilot
* A modern comma, or clone device to run this software (Comma 3, 3x, 4, Konik A1/M, Mr.One C3, C3 Lite) * A modern comma, or clone device to run this software (Comma 3, 3x, 4, Konik A1/M, Mr.One C3, C3 Lite)
* One of [the supported cars](https://gitlvb.teallvbs.xyz/IQ.Lvbs/IQ.Pilot/src/branch/release/opendbc_repo/docs/CARS.md). * One of [the supported cars](https://gitlvb.teallvbs.xyz/IQ.Lvbs/IQ.Pilot/src/branch/release/iqdbc_repo/docs/CARS.md).
* A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car * A [car harness](https://comma.ai/shop/products/car-harness) to connect to your car
#### Side Note: Volkswagen Group, and Tesla vehicles are currently the most compatible for use with IQ.Pilot, other manufacturers are supported at a minimum to the same level as stock openpilot, but are not a top priority while we are in beta. #### Side Note: Volkswagen Group, and Tesla vehicles are currently the most compatible for use with IQ.Pilot, other manufacturers are supported at a minimum to the same level as stock openpilot, but are not a top priority while we are in beta.
## Installation ## Installation

View File

@@ -208,7 +208,7 @@ Export('common')
env_swaglog = env.Clone() env_swaglog = env.Clone()
env_swaglog['CXXFLAGS'].append('-DSWAGLOG="\\"common/swaglog.h\\""') env_swaglog['CXXFLAGS'].append('-DSWAGLOG="\\"common/swaglog.h\\""')
SConscript(['msgq_repo/SConscript'], exports={'env': env_swaglog}) SConscript(['msgq_repo/SConscript'], exports={'env': env_swaglog})
SConscript(['opendbc_repo/SConscript'], exports={'env': env_swaglog}) SConscript(['iqdbc_repo/SConscript'], exports={'env': env_swaglog})
SConscript(['cereal/SConscript']) SConscript(['cereal/SConscript'])

View File

@@ -16,23 +16,28 @@
}, },
"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": "839bc8e7b29e58f3182ee7b551df1687b858f47b5698ccfe1f4f0da3406727c2", "sha256": "ec590435888e03a83c9fbfb01102089b077de0840ae0bb2e0969e76213d633aa",
"size": 135536 "size": 135536
}, },
"python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "7188e3de16f358a1dfb7130cf8aa7f12d2861bd68f056bff9a805c14883f3016",
"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": "ee1376eeef9c4bf72673d4c34092697b2c5a4c86136db354190e9dfdcbee0b7a", "sha256": "7218ad7ac087c68fe7d466e4c3468a6ab3b48c0fe45711e546e53823039c365b",
"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": "bdc32de29822d49e40b9190e8116aeb0d6ecf48806ea856d64ab430130835bf7", "sha256": "56d60b113a982e2d4fee8b4f00eaf111fd09834fbe8bf95f382b49e0bf13c121",
"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": "59e3669444d7f125f753dcd5c3c4191d375ffb11fc77a9f49062307ceeb055b5", "sha256": "75f101e930d93044d2e074129207c8246ff7d94df77b0f83db7de665eef62ab6",
"size": 203056 "size": 203072
}, },
"python/iqpilot_private/konn3kt/hephaestus/__init__.py": { "python/iqpilot_private/konn3kt/hephaestus/__init__.py": {
"mode": 420, "mode": 420,
@@ -41,67 +46,67 @@
}, },
"python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip": { "python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip": {
"mode": 420, "mode": 420,
"sha256": "b77e971e2f1e7ad2561c3da2159e2ad3c7121b57d5adee8767589b7d3988a25a", "sha256": "acc64ce2fe59583738ab5951f64e79d8043856317eb015dc1d0e6a4bffc51ee2",
"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": "25883f278987578fb4bca7051508612fff5b76131e147497ca082f53e69550ed", "sha256": "ee2330e3ba4f488336d18d887fc19291f76a1733a24c203a642634b7106a85a1",
"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": "5604a2d97d179922df4f075fb6902310c2dac0a4b5fa5bafd02701767303034f", "sha256": "71568e01b8c983ca80d825bea610334b140c87da9e6ac3047b21d9c56c136423",
"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": "b17176800f2ca75c47a824c0cd17ff490e8cfce2e1c4fdda2591dac9ce6d62e5", "sha256": "7f47eb50931e9df19116736ef6564b2d5480a7424c24cd1d599424dc0da66537",
"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": "337099e876dd5cd0deeaf2034c5393efdd8101e4ece1edfaeddad1f8794f8b1a", "sha256": "e4c0882530ab3097ecadbb586ac7e35955b587f81d9af2c57fea1b5450c2e5ef",
"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": "8fb8d1b6b4e224d936a4908b7bd9d67c9448cbc2e0ab5363b5447482923ab726", "sha256": "62bbf38d79bece455bdb399d7124b37347c9ec2ebdf35ff2ce4b696b39c59462",
"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": "f165bcdba3b797c86b515d500265be43893232d32ea6f9df1ffd82afd1e5d397", "sha256": "b59b5d1bc50e5064206752cb30da118f2fa42f48c4cc2e6529ebbe04b28200a4",
"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": "f53fb96fe15ac11b2625390a031891f71e1312230bce78955adbd6b439db5ccd", "sha256": "1d7b19f9d33649e91e5707574bdf436bc0e5b6dafd63d4b1aa63949bb6f7be20",
"size": 3448176 "size": 3448272
}, },
"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": "1119f5b0c204999236cbf647f81d7c5d188934c243fe5c12f856db01093d1342", "sha256": "8a5e6e08eb15a8295f08bd4629f80f6bf2539ec7eea7b6a787af3ed5b2546e35",
"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": "c82f530ad3faa3239686b416041298f91d4207b842689de176776fee13412dda", "sha256": "ead654070e296ae23fd8afdbc0a1c2f3eb8d1ff04a905ca3f2fbd8e20316ed6b",
"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": "ce0e8e963d635499704fcc03358413e3f5c30c541ffc8f74a331066651e8200d", "sha256": "38c55fe55500aca574ab5bf3ed693e54ca192db276c247a31209470319d6578a",
"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": "826999c870d16354f1b740247a4c7e81e284e06cafe91dc080a9b63460d7bf3f", "sha256": "0547db3c95f399b9721ae4f7306b57d4124283adda0213f7df5069a3837a7f98",
"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": "c69b553bf43c002494df334a8c4e6385f5e65369b7ccc1215b60df2367e6c8ea", "sha256": "f7788e2023012537b40d6aa5109e9d913b7cb27e1de80eadc0ebe12a2ab7be1a",
"size": 269568 "size": 269568
}, },
"python/iqpilot_private/konn3kt/uploaderd/__init__.py": { "python/iqpilot_private/konn3kt/uploaderd/__init__.py": {
@@ -111,7 +116,7 @@
}, },
"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": "76643345ea8ef0af72daa1b649389fcd1c2574a877d25a14dc1ef061cba8d672", "sha256": "efbef0e4b63a65d846c4cd50f89cb3fdfe0d12da3301e8b1c9137f9a5f02c753",
"size": 204184 "size": 204184
}, },
"runtime": { "runtime": {
@@ -143,22 +148,23 @@
} }
}, },
"signatures": { "signatures": {
"python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": "8VLEwluJlz6qARphX2M2OmfZVupPKypS9LnaiPrMoV9thvudyMfKu9UYyPd+9LDI9KQ5Nv0AnBuoVZhqGIXbAw==", "python/iqpilot_private/konn3kt/backups/archive_codec.cpython-312-aarch64-linux-gnu.so": "tMSz9Dm9XQQkQzePUaDhhcM065JH2fcqAE3f+dlA2/+264m/j2ayWMYFMXTWZMTDm1YaQT8e9lvBe8sc4JSVDQ==",
"python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": "4IAicJpyOSAye7WdpzAbkc71LrwsE37EqAtryK54E6CMDpxetiEGpsqOR28MRDBav01LEW89aHA48Yxz1m85Bg==", "python/iqpilot_private/konn3kt/backups/backup_keys.cpython-312-aarch64-linux-gnu.so": "fvD5Ii/rNZuynr8Nh+K+yNC+AMji7v53spO7rj7Fs61CvO604fWnKVUO7A/2d7KHh26YpUcjbv8wRb8tRTzfCg==",
"python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": "BjisouIbl7J1epsKV/NU69JvByDhlaY4lQeD6syIE0myI81tFauyFenystnDUaOMhmYhkrN+s2Euu8kNas/XCQ==", "python/iqpilot_private/konn3kt/backups/backup_orchestrator.cpython-312-aarch64-linux-gnu.so": "KcxQfc5HVD8QOLY/KHWsrhWpbYETAxsxR9WjFOqqmYe0aEC7K4njmJPtU1eCU3B2S6MGMmUdABBHs8kr32ViDQ==",
"python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": "9INjJFxL8tPU2L0elHm+D6HifpVLciLkE+kCIkMHL5bfntldk+I7jir7YxH0+vby0Qo807IFcgWJXgY36zPwBg==", "python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so": "9jTowLTfwEw9Iu3wgfFordJmJ+/+O+nPvq4TP+3CDddW1jISzSMhiw418iyH1f0m7rwB3hGyZYgGLoJszSHpBw==",
"python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": "srRZKVgQW7QNDE4hN09mzF94+O2PUIKWCxsffd96n+Gg4heSxrlq3yiEP8Ssati1HlzS8+J8qGyEEYCbBSd/DQ==", "python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so": "YvM513CnlMKSrIrCgrCNG/k7XyFjSlnEupgWH0Jhj0zKrE8dkeCiXek7iU9W+VpgXa6O8P3jTJUWchqLhnONBw==",
"python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": "RQnudpb8oix67avhaaWwk3xhv1jxojuTD7Dn+kZRDClaqoMGn7eBX0ny0lN50jTdHGaTNVrqtA7whh66JEwXDQ==", "python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so": "bhNLMkcIgi0F/CZsEDHRQsNHyPBD+pVh3DPowBz7mRYxQffVGzk1FeE2Gp3P7xxHsnyKsy635sAkdwKOlZLtBQ==",
"python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": "bWcpgy4X2iF6M9Ac9Dp0fUHgHa0JuEt+EM+ZggzLxHoI84Vla5krD3ZD9UBYbOL9oK0w8W0BGYmpeFqPFwP0Cw==", "python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so": "Huy5oGlX55p5bhoMQipY9/doTBBAfwnQhgPdM6aeYTrzBS/QOUqwjyk3qjanftHA4m0V4Jab8cVvjEt1OiTsBw==",
"python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": "+c7G7W5hHKg0tImEff+a6dcxC6LRi2Pk7dNzNTrUoSnahlK+B1F+WCHAX0vhVfj43zg83QEQx53905COgSwXCA==", "python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so": "2BmMUg8uOE4eoIW/OTbuwrZCMA+Rx4SOZWLBYs4GUbD8JR5Ei0nQ6VKLar31Ue7NYk7qBfpgqFdGPnV1uST/Dw==",
"python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": "pPhZUUmVCbQz9cNz/z0AcC7DosMQ28xoxEa2xvyAj7n/QiO5/Oe2xy3Xl97AoOdY/TaBcR/3iOk9fDN5pfHJAQ==", "python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so": "6nFN6dJAmGczneUwRtJr+1TLNrD9reuMQcoa2G2j0np9xaSU401MdBssdVFSFBpse95iqQX1uV8ojQD327z1CA==",
"python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": "oSE9/T3UFz/00VbijRvoYVBThNsu4fuUk2suzo9VPrVMEfzZ95wDsoiqla1wgBQB9pfT9g3CamBbhg87LjT+Ag==", "python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so": "8nKxC5LPkwPihlIdJzcD6OTp42avONqDkNgZrmTaQr8oueczFwXnHsgJ9aZ8jrpDK/nN+GLJrniSdFxZjrUUDA==",
"python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": "N+I7b7kyZONsfEpoBZeLXExt3CUOidoU5DRoMyKotbFIUW3WTDZRRZMejWN9Ihh77zQEsiICPM/74GcU1KHNBA==", "python/iqpilot_private/konn3kt/hephaestus/cloud_routes.cpython-312-aarch64-linux-gnu.so": "y8dA+6ahkX+Evzn8oSQEPyDB6+d+t//v5rsEdg4zRbjdeLeXs5kqraMEaAALVH80CvNJ6Gba1CcO1ebrK00EBQ==",
"python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": "Ag5tuuf3MxvxBdgBmvLZEEEftIHLq2jUYyO9R6viD20kpxsuG/t1rJVs5saliBL98ejoCkKzfxiW7XA+tAakCQ==", "python/iqpilot_private/konn3kt/hephaestus/hephaestusd.cpython-312-aarch64-linux-gnu.so": "jczf5QX+Xm0tOLPBrmvJoPZmcKar5zTrxoX7RAOR1JQgHu3jWPFW+sWOTK8c8ByiVF5PdLeYOPdQgu+0KQvdCg==",
"python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": "8xR3ozu7k/hYlMuW3U3n+yWWkxiII5pCM40qzUPP7DGKcjUBnH3mveHplPzlSnSoWVx+ZGfSbcFR5gz0Oip/AA==", "python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so": "s4HcwSXfBowW/vfY5M4GKg7gEueRJnbmq6zO1dAXx6HrTXYsL9iDZTeGHi7dNu/rw8mUFSkkpWsaFTlaYdK0DA==",
"python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": "fODQbD6yDanJ06rrSbBhpMxNbAxXrlQ2KlElOerxBIMKQjJsE/Ew9AnLv0fEPUe7FSM+rL1hH8ur0UHnACyvBw==", "python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so": "LVgImFZgV/hgoBwMfMVWSEKuXUvc2jR/EPl6SOfmMncoyuIZUkpQa18jjdMTWqXbRGpFvAe+0KocmroFTrbqDg==",
"python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": "qCY1O6EwcROnnJtGNo0Tx+2bdCaDuG6tDaSaFV5VbwKh4Je1l0vclXJqqcYGhO3BtiDH9ehTSeDfbPGFwX9WCA==", "python/iqpilot_private/konn3kt/hephaestus/motd.cpython-312-aarch64-linux-gnu.so": "vXffOAHGUAdEkv321fidnhZvUMaX73l2kO5/Y5Sk43+mr9V95Wcv4TR54/2Y2N4UfgtxnGFz8N0llK/DsQLEAw==",
"python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": "uNJGaiiojTXNXEDnNejYQZANEzPXktYJfrs7MzBt3a/ERmdzwRnJh+IXDzYPkZXxPUDXUUOkiyAzf+IZEMc7DA==", "python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so": "wXVM74ZUEwSVnM7cMqzXQYCWhQwVovszTjxYyMhDFjwZlWtNPPGeq4WghHoghGolGSG9Q4SOLxh8uF67BU2RDw==",
"python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": "2H4eWj9LmvC4sXbxkE8aE7H9M2q4aj06q25muZuwuZGkb42WTfhSq36PNBI07OzngF5B8+zk5+jbS6KPxBSEBA==" "python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so": "1cBBo9W9EBxW7XF9o2MimKA9Xm26zaCEsUNHLF81zm2zWxkoSkeVlLyrxHE9ZxGhgMRMfW3lz4XUJbWRJpjGDA==",
"python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so": "vqZyPMmER7bN7AvE4gwZVF4HypLwTxBfk4tidjRhVDZ2eKYbbG2yROd2z2xtk5Shf8GhdLsT7UhVrN+BKNnkBA=="
} }
} }

View File

@@ -1 +1 @@
../opendbc_repo/opendbc/car/car.capnp ../iqdbc_repo/iqdbc/car/car.capnp

View File

@@ -319,7 +319,6 @@ struct IQOnroadEvent @0xf4621d3ee9233bc9 {
} }
struct IQCarParams @0xd4189b5c8aca9f78 { struct IQCarParams @0xd4189b5c8aca9f78 {
# Data fields first (packed into the struct data section), pointer field last.
# Ordinals are IQ-native; all consumers access by name. Live copies self-heal # Ordinals are IQ-native; all consumers access by name. Live copies self-heal
# via CLEAR_ON_MANAGER_START on the "IQCarParams" param; the persistent cache # via CLEAR_ON_MANAGER_START on the "IQCarParams" param; the persistent cache
# is versioned separately (see IQCarParamsPersistentV2). # is versioned separately (see IQCarParamsPersistentV2).
@@ -329,6 +328,7 @@ struct IQCarParams @0xd4189b5c8aca9f78 {
enableGasInterceptor @3 :Bool; enableGasInterceptor @3 :Bool;
iqLateralNet @4 :LateralNet; iqLateralNet @4 :LateralNet;
longitudinalStoppingSpeedOverride @5 :Float32; # m/s; zero keeps the upstream default
struct LateralNet { struct LateralNet {
fuzzyFingerprint @0 :Bool; fuzzyFingerprint @0 :Bool;

View File

@@ -70,12 +70,12 @@ struct OnroadEvent @0xc4fa6047f024e718 {
longitudinalManeuver @30; longitudinalManeuver @30;
steerTempUnavailableSilent @31; steerTempUnavailableSilent @31;
resumeRequired @32; resumeRequired @32;
preDriverDistracted @33; driverDistracted1 @33;
promptDriverDistracted @34; driverDistracted2 @34;
driverDistracted @35; driverDistracted3 @35;
preDriverUnresponsive @36; driverUnresponsive1 @36;
promptDriverUnresponsive @37; driverUnresponsive2 @37;
driverUnresponsive @38; driverUnresponsive3 @38;
belowSteerSpeed @39; belowSteerSpeed @39;
lowBattery @40; lowBattery @40;
accFaulted @41; accFaulted @41;
@@ -2183,6 +2183,7 @@ struct DriverStateV2 {
rightBlinkProb @8 :Float32; rightBlinkProb @8 :Float32;
sunglassesProb @9 :Float32; sunglassesProb @9 :Float32;
phoneProb @13 :Float32; phoneProb @13 :Float32;
sleepProb @14 :Float32;
notReadyProbDEPRECATED @12 :List(Float32); notReadyProbDEPRECATED @12 :List(Float32);
occludedProbDEPRECATED @10 :Float32; occludedProbDEPRECATED @10 :Float32;
readyProbDEPRECATED @11 :List(Float32); readyProbDEPRECATED @11 :List(Float32);
@@ -2224,7 +2225,7 @@ struct DriverStateDEPRECATED @0xb83c6cc593ed0a00 {
stdDEPRECATED @2 :Float32; stdDEPRECATED @2 :Float32;
} }
struct DriverMonitoringState @0xb83cda094a1da284 { struct DriverMonitoringStateDEPRECATED @0xb83cda094a1da284 {
events @18 :List(OnroadEvent); events @18 :List(OnroadEvent);
faceDetected @1 :Bool; faceDetected @1 :Bool;
isDistracted @2 :Bool; isDistracted @2 :Bool;
@@ -2250,6 +2251,81 @@ struct DriverMonitoringState @0xb83cda094a1da284 {
eventsDEPRECATED @0 :List(Car.OnroadEventDEPRECATED); eventsDEPRECATED @0 :List(Car.OnroadEventDEPRECATED);
} }
struct DriverMonitoringState {
lockout @0 :Bool;
lockoutCount @15 :Int8;
lockoutMinutesRemaining @11 :Int8;
alert3Count @12 :Int8;
noResponseCount @13 :Int8;
noResponseForceDecel @14 :Bool;
alwaysOn @3 :Bool;
alwaysOnLockout @4 :Bool;
alertLevel @5 :AlertLevel;
activePolicy @6 :MonitoringPolicy;
isRHD @7 :Bool;
rhdCalibration @8 :CalibrationState;
visionPolicyState @9 :VisionPolicyState;
wheeltouchPolicyState @10 :WheeltouchPolicyState;
enum AlertLevel {
none @0;
one @1;
two @2;
three @3;
}
enum MonitoringPolicy {
wheeltouch @0;
vision @1;
}
struct VisionPolicyState {
awarenessPercent @0 :Int8;
awarenessStep @1 :Float32;
isDistracted @2 :Bool;
distractedTypes @3 :DistractedTypes;
faceDetected @4 :Bool;
pose @5 :Pose;
wheeltouchFallbackPercent @6 :Int8;
uncertainOffroadAlertPercent @7 :Int8;
struct DistractedTypes {
pose @0: Bool;
eye @1: Bool;
phone @2: Bool;
}
struct Pose {
pitch @0 :Float32;
yaw @1 :Float32;
pitchCalib @2 :CalibrationState;
yawCalib @3 :CalibrationState;
calibrated @4 :Bool;
uncertainty @5 :Float32;
}
}
struct WheeltouchPolicyState {
awarenessPercent @0 :Int8;
awarenessStep @1 :Float32;
driverInteracting @2 :Bool;
}
struct CalibrationState {
calibratedPercent @0 :Int8;
offset @1 :Float32;
}
deprecated :group {
alertCountLockoutPercent @1 :Int8;
alertTimeLockoutPercent @2 :Int8;
}
}
struct Boot { struct Boot {
wallTimeNanos @0 :UInt64; wallTimeNanos @0 :UInt64;
pstore @4 :Map(Text, Data); pstore @4 :Map(Text, Data);
@@ -2570,7 +2646,7 @@ struct Event {
thumbnail @66: Thumbnail; thumbnail @66: Thumbnail;
onroadEvents @134: List(OnroadEvent); onroadEvents @134: List(OnroadEvent);
carParams @69: Car.CarParams; carParams @69: Car.CarParams;
driverMonitoringState @71: DriverMonitoringState; driverMonitoringState @165: DriverMonitoringState;
livePose @129 :LivePose; livePose @129 :LivePose;
modelV2 @75 :ModelDataV2; modelV2 @75 :ModelDataV2;
drivingModelData @128 :DrivingModelData; drivingModelData @128 :DrivingModelData;
@@ -2693,6 +2769,7 @@ struct Event {
wifiScanDEPRECATED @29 :List(Legacy.WifiScan); wifiScanDEPRECATED @29 :List(Legacy.WifiScan);
uiNavigationEventDEPRECATED @50 :Legacy.UiNavigationEvent; uiNavigationEventDEPRECATED @50 :Legacy.UiNavigationEvent;
liveMapDataDEPRECATED @62 :LiveMapDataDEPRECATED; liveMapDataDEPRECATED @62 :LiveMapDataDEPRECATED;
driverMonitoringStateDEPRECATED @71 :DriverMonitoringStateDEPRECATED;
gpsPlannerPointsDEPRECATED @40 :Legacy.GPSPlannerPoints; gpsPlannerPointsDEPRECATED @40 :Legacy.GPSPlannerPoints;
gpsPlannerPlanDEPRECATED @41 :Legacy.GPSPlannerPlan; gpsPlannerPlanDEPRECATED @41 :Legacy.GPSPlannerPlan;
applanixRawDEPRECATED @42 :Data; applanixRawDEPRECATED @42 :Data;

View File

@@ -103,12 +103,10 @@ Params::~Params() {
assert(queue.empty()); assert(queue.empty());
} }
std::vector<std::string> Params::allKeys(ParamKeyFlag flag) const { std::vector<std::string> Params::allKeys() const {
std::vector<std::string> ret; std::vector<std::string> ret;
for (auto &p : keys) { for (auto &p : keys) {
if (flag == ALL || (p.second.flags & flag)) { ret.push_back(p.first);
ret.push_back(p.first);
}
} }
return ret; return ret;
} }

View File

@@ -18,7 +18,6 @@ enum ParamKeyFlag {
DONT_LOG = 0x20, DONT_LOG = 0x20,
DEVELOPMENT_ONLY = 0x40, DEVELOPMENT_ONLY = 0x40,
CLEAR_ON_IGNITION_ON = 0x80, CLEAR_ON_IGNITION_ON = 0x80,
BACKUP = 0x100,
ALL = 0xFFFFFFFF ALL = 0xFFFFFFFF
}; };
@@ -46,7 +45,7 @@ public:
Params(const Params&) = delete; Params(const Params&) = delete;
Params& operator=(const Params&) = delete; Params& operator=(const Params&) = delete;
std::vector<std::string> allKeys(ParamKeyFlag flag = ALL) const; std::vector<std::string> allKeys() const;
bool checkKey(const std::string &key); bool checkKey(const std::string &key);
ParamKeyFlag getKeyFlag(const std::string &key); ParamKeyFlag getKeyFlag(const std::string &key);
ParamKeyType getKeyType(const std::string &key); ParamKeyType getKeyType(const std::string &key);

View File

@@ -7,8 +7,8 @@
inline static std::unordered_map<std::string, ParamKeyAttributes> keys = { inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"AccessToken", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}}, {"AccessToken", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}},
{"AdbEnabled", {PERSISTENT | BACKUP, BOOL}}, {"AdbEnabled", {PERSISTENT, BOOL}},
{"AlwaysOnDM", {PERSISTENT | BACKUP, BOOL}}, {"AlwaysOnDM", {PERSISTENT, BOOL}},
{"ApiCache_Device", {PERSISTENT, STRING}}, {"ApiCache_Device", {PERSISTENT, STRING}},
{"ApiCache_FirehoseStats", {PERSISTENT, JSON}}, {"ApiCache_FirehoseStats", {PERSISTENT, JSON}},
{"AssistNowToken", {PERSISTENT, STRING}}, {"AssistNowToken", {PERSISTENT, STRING}},
@@ -31,20 +31,21 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"CurrentBootlog", {PERSISTENT, STRING}}, {"CurrentBootlog", {PERSISTENT, STRING}},
{"CurrentRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, STRING}}, {"CurrentRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, STRING}},
{"DisableLogging", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}}, {"DisableLogging", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
{"DisablePowerDown", {PERSISTENT | BACKUP, BOOL}}, {"DisablePowerDown", {PERSISTENT, BOOL}},
{"DisableUpdates", {PERSISTENT | BACKUP, BOOL, "0"}}, {"DisableUpdates", {PERSISTENT, BOOL, "0"}},
{"UpdaterInstallMode", {PERSISTENT | BACKUP, STRING, "download_and_install"}}, {"UpdaterInstallMode", {PERSISTENT, STRING, "download_and_install"}},
{"DisengageOnAccelerator", {PERSISTENT | BACKUP, BOOL, "0"}}, {"DisengageOnAccelerator", {PERSISTENT, BOOL, "0"}},
{"DongleId", {PERSISTENT, STRING}}, {"DongleId", {PERSISTENT, STRING}},
{"DoReboot", {CLEAR_ON_MANAGER_START, BOOL}}, {"DoReboot", {CLEAR_ON_MANAGER_START, BOOL}},
{"DevicePowerState", {CLEAR_ON_MANAGER_START, STRING}}, {"DevicePowerState", {CLEAR_ON_MANAGER_START, STRING}},
{"DoShutdown", {CLEAR_ON_MANAGER_START, BOOL}}, {"DoShutdown", {CLEAR_ON_MANAGER_START, BOOL}},
{"DoUninstall", {CLEAR_ON_MANAGER_START, BOOL}}, {"DoUninstall", {CLEAR_ON_MANAGER_START, BOOL}},
{"DriverTooDistracted", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, BOOL}}, {"DriverTooDistracted", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, BOOL}},
{"AlphaLongitudinalEnabled", {PERSISTENT | BACKUP, BOOL}}, {"DriverLockoutCount", {CLEAR_ON_MANAGER_START | CLEAR_ON_IGNITION_ON, INT, "0"}},
{"ExperimentalMode", {PERSISTENT | BACKUP, BOOL}}, {"AlphaLongitudinalEnabled", {PERSISTENT, BOOL}},
{"ExperimentalModeConfirmed", {PERSISTENT | BACKUP, BOOL}}, {"ExperimentalMode", {PERSISTENT, BOOL}},
{"FastSleep", {PERSISTENT | BACKUP, BOOL}}, {"ExperimentalModeConfirmed", {PERSISTENT, BOOL}},
{"FastSleep", {PERSISTENT, BOOL}},
{"FirmwareQueryDone", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}}, {"FirmwareQueryDone", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
{"ForcePowerDown", {PERSISTENT, BOOL}}, {"ForcePowerDown", {PERSISTENT, BOOL}},
{"GitAuthBlob", {PERSISTENT, BYTES}}, {"GitAuthBlob", {PERSISTENT, BYTES}},
@@ -52,21 +53,21 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"GitCommit", {PERSISTENT, STRING}}, {"GitCommit", {PERSISTENT, STRING}},
{"GitCommitDate", {PERSISTENT, STRING}}, {"GitCommitDate", {PERSISTENT, STRING}},
{"GitDiff", {PERSISTENT, STRING}}, {"GitDiff", {PERSISTENT, STRING}},
{"GithubSshKeys", {PERSISTENT | BACKUP, STRING}}, {"GithubSshKeys", {PERSISTENT, STRING}},
{"GithubUsername", {PERSISTENT | BACKUP, STRING}}, {"GithubUsername", {PERSISTENT, STRING}},
{"GitRemote", {PERSISTENT, STRING}}, {"GitRemote", {PERSISTENT, STRING}},
{"GsmApn", {PERSISTENT | BACKUP, STRING}}, {"GsmApn", {PERSISTENT, STRING}},
{"GsmMetered", {PERSISTENT | BACKUP, BOOL, "1"}}, {"GsmMetered", {PERSISTENT, BOOL, "1"}},
{"GsmRoaming", {PERSISTENT | BACKUP, BOOL}}, {"GsmRoaming", {PERSISTENT, BOOL}},
{"HardwareSerial", {PERSISTENT, STRING}}, {"HardwareSerial", {PERSISTENT, STRING}},
{"HasAcceptedTerms", {PERSISTENT, STRING, "0"}}, {"HasAcceptedTerms", {PERSISTENT, STRING, "0"}},
{"HephaestusdPid", {PERSISTENT, INT}}, {"HephaestusdPid", {PERSISTENT, INT}},
{"InstallDate", {PERSISTENT, TIME}}, {"InstallDate", {PERSISTENT, TIME}},
{"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsDriverViewEnabled", {CLEAR_ON_MANAGER_START, BOOL}},
{"IsEngaged", {PERSISTENT, BOOL}}, {"IsEngaged", {PERSISTENT, BOOL}},
{"IsLdwEnabled", {PERSISTENT | BACKUP, BOOL}}, {"IsLdwEnabled", {PERSISTENT, BOOL}},
{"IsLiveStreaming", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsLiveStreaming", {CLEAR_ON_MANAGER_START, BOOL}},
{"IsMetric", {PERSISTENT | BACKUP, BOOL}}, {"IsMetric", {PERSISTENT, BOOL}},
{"IsOffroad", {CLEAR_ON_MANAGER_START, BOOL}}, {"IsOffroad", {CLEAR_ON_MANAGER_START, BOOL}},
{"IsOnroad", {PERSISTENT, BOOL}}, {"IsOnroad", {PERSISTENT, BOOL}},
{"IsRhdDetected", {PERSISTENT, BOOL}}, {"IsRhdDetected", {PERSISTENT, BOOL}},
@@ -77,7 +78,8 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"JoystickAolRequest", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}}, {"JoystickAolRequest", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, STRING}},
{"Konn3ktSshKeys", {PERSISTENT, STRING}}, {"Konn3ktSshKeys", {PERSISTENT, STRING}},
{"Konn3ktBleTransportEnabled", {PERSISTENT, BOOL, "1"}}, {"Konn3ktBleTransportEnabled", {PERSISTENT, BOOL, "1"}},
{"LanguageSetting", {PERSISTENT | BACKUP, STRING, "en"}}, {"Konn3ktLibdatachannelWebRTC", {PERSISTENT, BOOL, "0"}},
{"LanguageSetting", {PERSISTENT, STRING, "en"}},
{"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}}, {"LastAthenaPingTime", {CLEAR_ON_MANAGER_START, INT}},
{"LastGPSPosition", {PERSISTENT, STRING}}, {"LastGPSPosition", {PERSISTENT, STRING}},
{"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}}, {"LastManagerExitReason", {CLEAR_ON_MANAGER_START, STRING}},
@@ -88,7 +90,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"LastUpdateRouteCount", {PERSISTENT, INT, "0"}}, {"LastUpdateRouteCount", {PERSISTENT, INT, "0"}},
{"LastUpdateTime", {PERSISTENT, TIME}}, {"LastUpdateTime", {PERSISTENT, TIME}},
{"LastUpdateUptimeOnroad", {PERSISTENT, FLOAT, "0.0"}}, {"LastUpdateUptimeOnroad", {PERSISTENT, FLOAT, "0.0"}},
{"LiveDelay", {PERSISTENT | BACKUP, BYTES}}, {"LiveDelay", {PERSISTENT, BYTES}},
{"LiveParameters", {PERSISTENT, JSON}}, {"LiveParameters", {PERSISTENT, JSON}},
{"LiveParametersV2", {PERSISTENT, BYTES}}, {"LiveParametersV2", {PERSISTENT, BYTES}},
{"LivestreamEncoderBitrate", {CLEAR_ON_MANAGER_START | DONT_LOG, INT}}, {"LivestreamEncoderBitrate", {CLEAR_ON_MANAGER_START | DONT_LOG, INT}},
@@ -97,8 +99,8 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"LocationFilterInitialState", {PERSISTENT, BYTES}}, {"LocationFilterInitialState", {PERSISTENT, BYTES}},
{"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, {"LateralManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
{"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, {"LongitudinalManeuverMode", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
{"LongitudinalPersonality", {PERSISTENT | BACKUP, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}}, {"LongitudinalPersonality", {PERSISTENT, INT, std::to_string(static_cast<int>(cereal::LongitudinalPersonality::STANDARD))}},
{"NetworkMetered", {PERSISTENT | BACKUP, BOOL}}, {"NetworkMetered", {PERSISTENT, BOOL}},
{"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}}, {"ObdMultiplexingChanged", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
{"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}}, {"ObdMultiplexingEnabled", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
{"Offroad_CarUnrecognized", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}}, {"Offroad_CarUnrecognized", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
@@ -114,26 +116,26 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}}, {"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}},
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}}, {"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
{"OnroadCycleRequested", {CLEAR_ON_MANAGER_START, BOOL}}, {"OnroadCycleRequested", {CLEAR_ON_MANAGER_START, BOOL}},
{"OpenpilotEnabledToggle", {PERSISTENT | BACKUP, BOOL, "1"}}, {"OpenpilotEnabledToggle", {PERSISTENT, BOOL, "1"}},
{"PandaHeartbeatLost", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, {"PandaHeartbeatLost", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
{"PandaSomResetTriggered", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, {"PandaSomResetTriggered", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
{"PandaSignatures", {CLEAR_ON_MANAGER_START, BYTES}}, {"PandaSignatures", {CLEAR_ON_MANAGER_START, BYTES}},
{"PrimeType", {PERSISTENT, INT}}, {"PrimeType", {PERSISTENT, INT}},
{"RecordAudio", {PERSISTENT | BACKUP, BOOL}}, {"RecordAudio", {PERSISTENT, BOOL}},
{"RecordAudioFeedback", {PERSISTENT | BACKUP, BOOL, "0"}}, {"RecordAudioFeedback", {PERSISTENT, BOOL, "0"}},
{"DashcamEnabled", {PERSISTENT | BACKUP, BOOL, "1"}}, {"DashcamEnabled", {PERSISTENT, BOOL, "1"}},
{"RecordFront", {PERSISTENT | BACKUP, BOOL}}, {"RecordFront", {PERSISTENT, BOOL}},
{"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet {"RecordFrontLock", {PERSISTENT, BOOL}}, // for the internal fleet
{"SecOCKey", {PERSISTENT | DONT_LOG | BACKUP, STRING}}, {"SecOCKey", {PERSISTENT | DONT_LOG, STRING}},
{"ShowDebugInfo", {PERSISTENT, BOOL}}, {"ShowDebugInfo", {PERSISTENT, BOOL}},
{"RouteCount", {PERSISTENT, INT, "0"}}, {"RouteCount", {PERSISTENT, INT, "0"}},
{"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}}, {"SnoozeUpdate", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL}},
{"SshEnabled", {PERSISTENT | BACKUP, BOOL}}, {"SshEnabled", {PERSISTENT, BOOL}},
{"TermsVersion", {PERSISTENT, STRING}}, {"TermsVersion", {PERSISTENT, STRING}},
{"TorqueBar", {PERSISTENT | BACKUP, BOOL, "0"}}, {"TorqueBar", {PERSISTENT, BOOL, "0"}},
{"TrainingVersion", {PERSISTENT, STRING}}, {"TrainingVersion", {PERSISTENT, STRING}},
{"UbloxAvailable", {PERSISTENT, BOOL}}, {"UbloxAvailable", {PERSISTENT, BOOL}},
{"UsbStorageEnabled", {PERSISTENT | BACKUP, BOOL}}, {"UsbStorageEnabled", {PERSISTENT, BOOL}},
{"UpdateAvailable", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}}, {"UpdateAvailable", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BOOL}},
{"UpdateFailedCount", {CLEAR_ON_MANAGER_START, INT}}, {"UpdateFailedCount", {CLEAR_ON_MANAGER_START, INT}},
{"UpdaterAvailableBranches", {PERSISTENT, STRING}}, {"UpdaterAvailableBranches", {PERSISTENT, STRING}},
@@ -151,132 +153,132 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
// --- iqpilot params --- // // --- iqpilot params --- //
{"ApiCache_DriveStats", {PERSISTENT, JSON}}, {"ApiCache_DriveStats", {PERSISTENT, JSON}},
{"AutoLaneChangeBsmDelay", {PERSISTENT | BACKUP, BOOL, "0"}}, {"AutoLaneChangeBsmDelay", {PERSISTENT, BOOL, "0"}},
{"AutoLaneChangeTimer", {PERSISTENT | BACKUP, INT, "0"}}, {"AutoLaneChangeTimer", {PERSISTENT, INT, "0"}},
{"NavExitLaneChange", {PERSISTENT | BACKUP, BOOL, "0"}}, {"NavExitLaneChange", {PERSISTENT, BOOL, "0"}},
{"IQBlinkerMinLateralSpeed", {PERSISTENT | BACKUP, INT, "20"}}, // MPH or km/h {"IQBlinkerMinLateralSpeed", {PERSISTENT, INT, "20"}}, // MPH or km/h
{"IQBlinkerPauseLateral", {PERSISTENT | BACKUP, INT, "0"}}, {"IQBlinkerPauseLateral", {PERSISTENT, INT, "0"}},
{"Brightness", {PERSISTENT | BACKUP, INT, "0"}}, {"Brightness", {PERSISTENT, INT, "0"}},
{"CarList", {PERSISTENT, JSON}}, {"CarList", {PERSISTENT, JSON}},
{"IQCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}}, {"IQCarParams", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, BYTES}},
{"IQCarParamsCache", {CLEAR_ON_MANAGER_START, BYTES}}, {"IQCarParamsCache", {CLEAR_ON_MANAGER_START, BYTES}},
{"IQCarParamsPersistent", {PERSISTENT, BYTES}}, {"IQCarParamsPersistent", {PERSISTENT, BYTES}},
{"IQCarParamsPersistentV2", {PERSISTENT, BYTES}}, {"IQCarParamsPersistentV2", {PERSISTENT, BYTES}},
{"CarPlatformBundle", {PERSISTENT | BACKUP, JSON}}, {"CarPlatformBundle", {PERSISTENT, JSON}},
{"ChevronInfo", {PERSISTENT | BACKUP, INT, "4"}}, {"ChevronInfo", {PERSISTENT, INT, "4"}},
{"DeviceBootMode", {PERSISTENT | BACKUP, INT, "0"}}, {"DeviceBootMode", {PERSISTENT, INT, "0"}},
{"IQDevUIInfo", {PERSISTENT | BACKUP, INT, "0"}}, {"IQDevUIInfo", {PERSISTENT, INT, "0"}},
{"EnableEsimProvisioning", {PERSISTENT | BACKUP, BOOL, "1"}}, {"EnableEsimProvisioning", {PERSISTENT, BOOL, "1"}},
{"GreenLightAlert", {PERSISTENT | BACKUP, BOOL, "0"}}, {"GreenLightAlert", {PERSISTENT, BOOL, "0"}},
{"InteractivityTimeout", {PERSISTENT | BACKUP, 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 | BACKUP, BOOL, "0"}}, {"LeadDepartAlert", {PERSISTENT, BOOL, "0"}},
{"LongIncrementsEnabled", {PERSISTENT | BACKUP, BOOL, "0"}}, {"LongIncrementsEnabled", {PERSISTENT, BOOL, "0"}},
{"LongIncrementTapStep", {PERSISTENT | BACKUP, INT, "1"}}, {"LongIncrementTapStep", {PERSISTENT, INT, "1"}},
{"LongIncrementHoldStep", {PERSISTENT | BACKUP, INT, "5"}}, {"LongIncrementHoldStep", {PERSISTENT, INT, "5"}},
{"IQE2ESetSpeedMode", {PERSISTENT | BACKUP, INT, "0"}}, {"IQE2ESetSpeedMode", {PERSISTENT, INT, "0"}},
{"IQE2ESetSpeedUseCurrent", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQE2ESetSpeedUseCurrent", {PERSISTENT, BOOL, "0"}},
{"IQE2ESetSpeedMph", {PERSISTENT | BACKUP, INT, "65"}}, {"IQE2ESetSpeedMph", {PERSISTENT, INT, "65"}},
{"MaxTimeOffroad", {PERSISTENT | BACKUP, INT, "1800"}}, {"MaxTimeOffroad", {PERSISTENT, INT, "1800"}},
{"NightMode", {PERSISTENT | BACKUP, BOOL, "0"}}, {"NightMode", {PERSISTENT, BOOL, "0"}},
{"newLeadMpc", {PERSISTENT | BACKUP, BOOL, "1"}}, {"newLeadMpc", {PERSISTENT, BOOL, "1"}},
{"ModelRunnerTypeCache", {CLEAR_ON_ONROAD_TRANSITION, INT}}, {"ModelRunnerTypeCache", {CLEAR_ON_ONROAD_TRANSITION, INT}},
{"ForceOnroadUntil", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}}, {"ForceOnroadUntil", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
{"OffroadMode", {CLEAR_ON_MANAGER_START, BOOL}}, {"OffroadMode", {CLEAR_ON_MANAGER_START, BOOL}},
{"Offroad_TiciSupport", {CLEAR_ON_MANAGER_START, JSON}}, {"Offroad_TiciSupport", {CLEAR_ON_MANAGER_START, JSON}},
{"OnroadScreenOffBrightness", {PERSISTENT | BACKUP, INT, "0"}}, {"OnroadScreenOffBrightness", {PERSISTENT, INT, "0"}},
{"OnroadScreenOffTimer", {PERSISTENT | BACKUP, INT, "15"}}, {"OnroadScreenOffTimer", {PERSISTENT, INT, "15"}},
{"OnScreenNavigation", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OnScreenNavigation", {PERSISTENT, BOOL, "0"}},
{"OnlineOSMaps", {PERSISTENT | BACKUP, BOOL, "1"}}, {"OnlineOSMaps", {PERSISTENT, BOOL, "1"}},
{"OfflineOSMaps", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OfflineOSMaps", {PERSISTENT, BOOL, "0"}},
{"OSMapsStyleMode", {PERSISTENT | BACKUP, INT, "0"}}, {"OSMapsStyleMode", {PERSISTENT, INT, "0"}},
{"OSMapsHeadingUp", {PERSISTENT | BACKUP, BOOL, "1"}}, {"OSMapsHeadingUp", {PERSISTENT, BOOL, "1"}},
{"OfflineTilesBaseUrl", {PERSISTENT, STRING}}, {"OfflineTilesBaseUrl", {PERSISTENT, STRING}},
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}}, {"OnroadUploads", {PERSISTENT, BOOL, "1"}},
{"IQAlertSilence", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQAlertSilence", {PERSISTENT, BOOL, "0"}},
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}}, {"RainbowMode", {PERSISTENT, BOOL, "0"}},
{"RocketFuel", {PERSISTENT | BACKUP, BOOL, "0"}}, {"RocketFuel", {PERSISTENT, BOOL, "0"}},
{"ShowTurnSignals", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowTurnSignals", {PERSISTENT, BOOL, "0"}},
{"StandstillTimer", {PERSISTENT | BACKUP, BOOL, "0"}}, {"StandstillTimer", {PERSISTENT, BOOL, "0"}},
// AOL (Always On Lateral) params // AOL (Always On Lateral) params
{"AolEnabled", {PERSISTENT | BACKUP, BOOL, "1"}}, {"AolEnabled", {PERSISTENT, BOOL, "1"}},
{"AolMainCruiseAllowed", {PERSISTENT | BACKUP, BOOL, "1"}}, {"AolMainCruiseAllowed", {PERSISTENT, BOOL, "1"}},
{"AolSteeringMode", {PERSISTENT | BACKUP, INT, "0"}}, {"AolSteeringMode", {PERSISTENT, INT, "0"}},
{"AolUnifiedEngagementMode", {PERSISTENT | BACKUP, BOOL, "1"}}, {"AolUnifiedEngagementMode", {PERSISTENT, BOOL, "1"}},
// Model Manager params // Model Manager params
{"ModelManager_ActiveBundle", {PERSISTENT, JSON}}, {"ModelManager_ActiveBundle", {PERSISTENT, JSON}},
{"ModelManager_ClearCache", {CLEAR_ON_MANAGER_START, BOOL}}, {"ModelManager_ClearCache", {CLEAR_ON_MANAGER_START, BOOL}},
{"ModelManager_DownloadIndex", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, INT, "-1"}}, {"ModelManager_DownloadIndex", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, INT, "-1"}},
{"ModelManager_Favs", {PERSISTENT | BACKUP, STRING}}, {"ModelManager_Favs", {PERSISTENT, STRING}},
{"ModelManager_LastSyncTime", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}}, {"ModelManager_LastSyncTime", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, INT, "0"}},
{"ModelManager_ModelsCache", {PERSISTENT | BACKUP, JSON}}, {"ModelManager_ModelsCache", {PERSISTENT, JSON}},
// Neural Network Feed Forward // Neural Network Feed Forward
{"NeuralNetworkFeedForward", {PERSISTENT | BACKUP, BOOL, "0"}}, {"NeuralNetworkFeedForward", {PERSISTENT, BOOL, "0"}},
// Backup Manager params // Backup Manager params
{"BackupManager_CreateBackup", {PERSISTENT, BOOL}}, {"BackupManager_CreateBackup", {PERSISTENT, BOOL}},
{"BackupManager_RestoreVersion", {PERSISTENT, STRING}}, {"BackupManager_RestoreVersion", {PERSISTENT, STRING}},
// iqpilot car specific params // iqpilot car specific params
{"HyundaiLongitudinalTuning", {PERSISTENT | BACKUP, INT, "0"}}, {"HyundaiLongitudinalTuning", {PERSISTENT, INT, "0"}},
{"SubaruStopAndGo", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SubaruStopAndGo", {PERSISTENT, BOOL, "0"}},
{"SubaruStopAndGoManualParkingBrake", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SubaruStopAndGoManualParkingBrake", {PERSISTENT, BOOL, "0"}},
{"TeslaCoopSteering", {PERSISTENT | BACKUP, BOOL, "0"}}, {"TeslaCoopSteering", {PERSISTENT, BOOL, "0"}},
{"ToyotaEnforceStockLongitudinal", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ToyotaEnforceStockLongitudinal", {PERSISTENT, BOOL, "0"}},
{"VwPqEpsPatched", {PERSISTENT, BOOL}}, {"VwPqEpsPatched", {PERSISTENT, BOOL}},
{"ToyotaSnGHack", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ToyotaSnGHack", {PERSISTENT, BOOL, "0"}},
{"pqhca5or7Toggle", {PERSISTENT | BACKUP, BOOL}}, {"pqhca5or7Toggle", {PERSISTENT, BOOL}},
{"iqMqbAccResume", {PERSISTENT | BACKUP, BOOL, "0"}}, {"iqMqbAccResume", {PERSISTENT, BOOL, "0"}},
{"iqMqbSteeringLockout", {PERSISTENT | BACKUP, BOOL, "0"}}, {"iqMqbSteeringLockout", {PERSISTENT, BOOL, "0"}},
{"AllowLateralWhenLongUnavailable", {PERSISTENT | BACKUP, BOOL}}, {"AllowLateralWhenLongUnavailable", {PERSISTENT, BOOL}},
{"IQDynamicMode", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQDynamicMode", {PERSISTENT, BOOL, "0"}},
{"IQDynamicBlendStockRadar", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQDynamicBlendStockRadar", {PERSISTENT, BOOL, "0"}},
{"IQDynamicConditionalCurves", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQDynamicConditionalCurves", {PERSISTENT, BOOL, "1"}},
{"IQDynamicConditionalSlowerLead", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQDynamicConditionalSlowerLead", {PERSISTENT, BOOL, "1"}},
{"IQDynamicConditionalStoppedLead", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQDynamicConditionalStoppedLead", {PERSISTENT, BOOL, "1"}},
{"IQDynamicConditionalModelStops", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQDynamicConditionalModelStops", {PERSISTENT, BOOL, "1"}},
{"IQDynamicConditionalSLCFallback", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQDynamicConditionalSLCFallback", {PERSISTENT, BOOL, "1"}},
{"IQDynamicConditionalSpeed", {PERSISTENT | BACKUP, FLOAT, "18.0"}}, {"IQDynamicConditionalSpeed", {PERSISTENT, FLOAT, "18.0"}},
{"IQDynamicConditionalLeadSpeed", {PERSISTENT | BACKUP, FLOAT, "24.0"}}, {"IQDynamicConditionalLeadSpeed", {PERSISTENT, FLOAT, "24.0"}},
{"IQDynamicModelStopTime", {PERSISTENT | BACKUP, FLOAT, "3.0"}}, {"IQDynamicModelStopTime", {PERSISTENT, FLOAT, "3.0"}},
{"IQDynamicMinimumForceStopLength", {PERSISTENT | BACKUP, FLOAT, "0.0"}}, {"IQDynamicMinimumForceStopLength", {PERSISTENT, FLOAT, "0.0"}},
{"IQForceStops", {PERSISTENT | BACKUP, BOOL, "1"}}, {"IQForceStops", {PERSISTENT, BOOL, "1"}},
{"IQCustomStopDistance", {PERSISTENT | BACKUP, INT, "0"}}, // meters, -2..2; negative = stop closer, positive = stop further back; independent of IQForceStops {"IQCustomStopDistance", {PERSISTENT, INT, "0"}}, // meters, -2..2; negative = stop closer, positive = stop further back; independent of IQForceStops
{"BlindSpot", {PERSISTENT | BACKUP, BOOL, "0"}}, {"BlindSpot", {PERSISTENT, BOOL, "0"}},
{"IQExpandedStatus", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQExpandedStatus", {PERSISTENT, BOOL, "0"}},
{"HomePanelWidget", {PERSISTENT, STRING, "changelog"}}, {"HomePanelWidget", {PERSISTENT, STRING, "changelog"}},
// iqpilot model params // iqpilot model params
{"CameraOffset", {PERSISTENT | BACKUP, FLOAT, "0.0"}}, {"CameraOffset", {PERSISTENT, FLOAT, "0.0"}},
{"LagdToggle", {PERSISTENT | BACKUP, BOOL, "1"}}, {"LagdToggle", {PERSISTENT, BOOL, "1"}},
{"LagdToggleDelay", {PERSISTENT | BACKUP, FLOAT, "0.2"}}, {"LagdToggleDelay", {PERSISTENT, FLOAT, "0.2"}},
{"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}}, {"LagdValueCache", {PERSISTENT, FLOAT, "0.2"}},
{"LaneChangeBsd", {PERSISTENT | BACKUP, INT, "0"}}, // -1 ignore BSD, 0 default, 1 block lane change on BSD {"LaneChangeBsd", {PERSISTENT, INT, "0"}}, // -1 ignore BSD, 0 default, 1 block lane change on BSD
{"LaneChangeContinuous", {PERSISTENT | BACKUP, BOOL, "0"}}, // 0 one-shot per blinker, 1 chain on held blinker (torque-gated) {"LaneChangeContinuous", {PERSISTENT, BOOL, "0"}}, // 0 one-shot per blinker, 1 chain on held blinker (torque-gated)
{"LaneChangeDelay", {PERSISTENT | BACKUP, FLOAT, "0.0"}}, // tenths of a second; scaled by 0.1 in desire_helper {"LaneChangeDelay", {PERSISTENT, FLOAT, "0.0"}}, // tenths of a second; scaled by 0.1 in desire_helper
{"LaneChangeNeedTorque", {PERSISTENT | BACKUP, INT, "0"}}, // <0 disable blinker LC, 0 default, >0 require torque {"LaneChangeNeedTorque", {PERSISTENT, INT, "0"}}, // <0 disable blinker LC, 0 default, >0 require torque
{"IQLaneTurnDesire", {PERSISTENT | BACKUP, BOOL, "0"}}, {"IQLaneTurnDesire", {PERSISTENT, BOOL, "0"}},
{"IQLaneTurnValue", {PERSISTENT | BACKUP, FLOAT, "19.0"}}, {"IQLaneTurnValue", {PERSISTENT, FLOAT, "19.0"}},
{"PlanplusControl", {PERSISTENT | BACKUP, FLOAT, "1.0"}}, {"PlanplusControl", {PERSISTENT, FLOAT, "1.0"}},
{"LatSmoothSec", {PERSISTENT, INT, "13"}}, {"LatSmoothSec", {PERSISTENT, INT, "13"}},
{"ModelSmoothingEnabled", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ModelSmoothingEnabled", {PERSISTENT, BOOL, "0"}},
{"ModelLatSmoothSec", {PERSISTENT | BACKUP, INT, "0"}}, {"ModelLatSmoothSec", {PERSISTENT, INT, "0"}},
// IQ.Pilot Parameters: // IQ.Pilot Parameters:
{"ShowBSMIndicators", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowBSMIndicators", {PERSISTENT, BOOL, "0"}},
{"ShowSteeringArc", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowSteeringArc", {PERSISTENT, BOOL, "0"}},
{"ShowRoadName", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowRoadName", {PERSISTENT, BOOL, "0"}},
{"ShowRealTimeAcceleration", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowRealTimeAcceleration", {PERSISTENT, BOOL, "0"}},
{"ForceSmallUI", {PERSISTENT, BOOL, "0"}}, {"ForceSmallUI", {PERSISTENT, BOOL, "0"}},
{"DeveloperUI", {PERSISTENT | BACKUP, BOOL, "0"}}, {"DeveloperUI", {PERSISTENT, BOOL, "0"}},
{"OBrightness", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OBrightness", {PERSISTENT, BOOL, "0"}},
{"OBrightnessManual", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OBrightnessManual", {PERSISTENT, BOOL, "0"}},
{"OBrightnessDelay", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OBrightnessDelay", {PERSISTENT, BOOL, "0"}},
{"MapAdvisorySpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT}}, {"MapAdvisorySpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT}},
{"MapdVersion", {PERSISTENT, STRING}}, {"MapdVersion", {PERSISTENT, STRING}},
{"MapdSettings", {PERSISTENT, JSON}}, // pfeiferj/mapd v2 persistent settings (read/written by the mapd binary) {"MapdSettings", {PERSISTENT, JSON}}, // pfeiferj/mapd v2 persistent settings (read/written by the mapd binary)
@@ -290,10 +292,10 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"AthenaNavigationRoute", {CLEAR_ON_MANAGER_START, JSON}}, {"AthenaNavigationRoute", {CLEAR_ON_MANAGER_START, JSON}},
{"NavigationActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}}, {"NavigationActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
{"NavigationDestination", {CLEAR_ON_MANAGER_START, JSON}}, {"NavigationDestination", {CLEAR_ON_MANAGER_START, JSON}},
{"NavigationEnabled", {PERSISTENT | BACKUP, BOOL, "0"}}, {"NavigationEnabled", {PERSISTENT, BOOL, "0"}},
{"NavigationDebugFlags", {PERSISTENT | BACKUP, JSON}}, {"NavigationDebugFlags", {PERSISTENT, JSON}},
{"NavigationManeuvers", {CLEAR_ON_MANAGER_START, JSON}}, {"NavigationManeuvers", {CLEAR_ON_MANAGER_START, JSON}},
{"NavigationPreferences", {PERSISTENT | BACKUP, JSON}}, {"NavigationPreferences", {PERSISTENT, JSON}},
{"NavigationRenderRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}}, {"NavigationRenderRoute", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
{"NavigationRecalculateRoutes", {CLEAR_ON_MANAGER_START, BOOL, "0"}}, {"NavigationRecalculateRoutes", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
{"NavigationRouteAlternatives", {CLEAR_ON_MANAGER_START, JSON}}, {"NavigationRouteAlternatives", {CLEAR_ON_MANAGER_START, JSON}},
@@ -311,37 +313,37 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"OsmStateNames", {PERSISTENT, JSON}}, {"OsmStateNames", {PERSISTENT, JSON}},
{"OsmWayTest", {PERSISTENT, STRING}}, {"OsmWayTest", {PERSISTENT, STRING}},
{"RoadName", {CLEAR_ON_ONROAD_TRANSITION, STRING}}, {"RoadName", {CLEAR_ON_ONROAD_TRANSITION, STRING}},
{"RoadNameToggle", {PERSISTENT | BACKUP, BOOL, "0"}}, {"RoadNameToggle", {PERSISTENT, BOOL, "0"}},
{"IQSpeedAssistMode", {PERSISTENT | BACKUP, INT, "1"}}, {"IQSpeedAssistMode", {PERSISTENT, INT, "1"}},
{"IQSpeedAssistOffsetType", {PERSISTENT | BACKUP, INT, "0"}}, {"IQSpeedAssistOffsetType", {PERSISTENT, INT, "0"}},
{"IQSpeedAssistPolicy", {PERSISTENT | BACKUP, INT, "3"}}, {"IQSpeedAssistPolicy", {PERSISTENT, INT, "3"}},
{"IQSpeedAssistValueOffset", {PERSISTENT | BACKUP, INT, "0"}}, {"IQSpeedAssistValueOffset", {PERSISTENT, INT, "0"}},
{"SpeedLimitController", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SpeedLimitController", {PERSISTENT, BOOL, "0"}},
{"ConstructionZoneAssist", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ConstructionZoneAssist", {PERSISTENT, BOOL, "0"}},
{"VisionVehicleTracks", {PERSISTENT | BACKUP, BOOL, "0"}}, {"VisionVehicleTracks", {PERSISTENT, BOOL, "0"}},
{"AmbientTrackDots", {PERSISTENT | BACKUP, BOOL, "1"}}, {"AmbientTrackDots", {PERSISTENT, BOOL, "1"}},
{"ConstructionZoneSpeed", {PERSISTENT | BACKUP, INT, "60"}}, {"ConstructionZoneSpeed", {PERSISTENT, INT, "60"}},
{"ShowSpeedLimits", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ShowSpeedLimits", {PERSISTENT, BOOL, "0"}},
{"SLCPolicy", {PERSISTENT | BACKUP, INT, "1"}}, {"SLCPolicy", {PERSISTENT, INT, "1"}},
{"SLCAutoConfirm", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCAutoConfirm", {PERSISTENT, BOOL, "0"}},
{"SLCSetSpeedToLimit", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCSetSpeedToLimit", {PERSISTENT, BOOL, "0"}},
{"speed_limit_offset1", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset1", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset2", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset2", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset3", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset3", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset4", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset4", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset5", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset5", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset6", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset6", {PERSISTENT, FLOAT, "0"}},
{"speed_limit_offset7", {PERSISTENT | BACKUP, FLOAT, "0"}}, {"speed_limit_offset7", {PERSISTENT, FLOAT, "0"}},
{"SpeedLimitConfirmationHigher", {PERSISTENT | BACKUP, BOOL, "1"}}, {"SpeedLimitConfirmationHigher", {PERSISTENT, BOOL, "1"}},
{"SpeedLimitConfirmationLower", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SpeedLimitConfirmationLower", {PERSISTENT, BOOL, "0"}},
{"MapSpeedLookaheadHigher", {PERSISTENT | BACKUP, FLOAT, "5.0"}}, {"MapSpeedLookaheadHigher", {PERSISTENT, FLOAT, "5.0"}},
{"MapSpeedLookaheadLower", {PERSISTENT | BACKUP, FLOAT, "5.0"}}, {"MapSpeedLookaheadLower", {PERSISTENT, FLOAT, "5.0"}},
{"SLCFallbackExperimentalMode", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCFallbackExperimentalMode", {PERSISTENT, BOOL, "0"}},
{"SLCFallbackSetSpeed", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCFallbackSetSpeed", {PERSISTENT, BOOL, "0"}},
{"SLCFallbackPreviousSpeedLimit", {PERSISTENT | BACKUP, BOOL, "1"}}, {"SLCFallbackPreviousSpeedLimit", {PERSISTENT, BOOL, "1"}},
{"SLCOverrideMethod", {PERSISTENT | BACKUP, INT, "0"}}, {"SLCOverrideMethod", {PERSISTENT, INT, "0"}},
{"SLCOnlineFiller", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCOnlineFiller", {PERSISTENT, BOOL, "0"}},
{"SLCDataCollection", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SLCDataCollection", {PERSISTENT, BOOL, "0"}},
{"MapBoxRequests", {PERSISTENT, JSON}}, {"MapBoxRequests", {PERSISTENT, JSON}},
{"OverpassRequests", {PERSISTENT, JSON}}, {"OverpassRequests", {PERSISTENT, JSON}},
{"SpeedLimits", {PERSISTENT, JSON}}, {"SpeedLimits", {PERSISTENT, JSON}},
@@ -350,43 +352,37 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"UpdateSpeedLimits", {CLEAR_ON_IGNITION_ON}}, {"UpdateSpeedLimits", {CLEAR_ON_IGNITION_ON}},
{"UpdateSpeedLimitsStatus", {CLEAR_ON_IGNITION_ON, STRING}}, {"UpdateSpeedLimitsStatus", {CLEAR_ON_IGNITION_ON, STRING}},
{"SLCMapboxSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT, "0"}}, {"SLCMapboxSpeedLimit", {CLEAR_ON_ONROAD_TRANSITION, FLOAT, "0"}},
{"NavigateOnIQPilot", {PERSISTENT | BACKUP, BOOL, "1"}}, {"NavigateOnIQPilot", {PERSISTENT, BOOL, "1"}},
{"NavOnlineTargets", {PERSISTENT | BACKUP, BOOL, "1"}}, {"NavOnlineTargets", {PERSISTENT, BOOL, "1"}},
{"NavOfflineFallback", {PERSISTENT | BACKUP, BOOL, "1"}}, {"NavOfflineFallback", {PERSISTENT, BOOL, "1"}},
{"NavPreferOfflineSources", {PERSISTENT | BACKUP, BOOL, "0"}}, {"NavPreferOfflineSources", {PERSISTENT, BOOL, "0"}},
{"OfflineRoutingEnabled", {PERSISTENT | BACKUP, BOOL, "1"}}, {"OfflineRoutingEnabled", {PERSISTENT, BOOL, "1"}},
{"OfflineRoutingOnly", {PERSISTENT | BACKUP, BOOL, "0"}}, {"OfflineRoutingOnly", {PERSISTENT, BOOL, "0"}},
{"OfflineRoutingHost", {PERSISTENT | BACKUP, STRING, "http://127.0.0.1:8002"}}, {"OfflineRoutingHost", {PERSISTENT, STRING, "http://127.0.0.1:8002"}},
{"pqhca5or7Toggle", {PERSISTENT | BACKUP, BOOL}}, {"pqhca5or7Toggle", {PERSISTENT, BOOL}},
{"AllowLateralWhenLongUnavailable", {PERSISTENT | BACKUP, BOOL}}, {"AllowLateralWhenLongUnavailable", {PERSISTENT, BOOL}},
{"EnableCurvatureController", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableCurvatureController", {PERSISTENT, BOOL, "0"}},
{"EnableSpeedLimitControl", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableSpeedLimitControl", {PERSISTENT, BOOL, "0"}},
{"MapCurveSpeedController", {PERSISTENT | BACKUP, BOOL, "0"}}, {"MapCurveSpeedController", {PERSISTENT, BOOL, "0"}},
{"VisionCurveSpeedController", {PERSISTENT | BACKUP, BOOL, "0"}}, {"VisionCurveSpeedController", {PERSISTENT, BOOL, "0"}},
{"SpeedCameraAlerts", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SpeedCameraAlerts", {PERSISTENT, BOOL, "0"}},
{"RedLightCameraAlerts", {PERSISTENT | BACKUP, BOOL, "0"}}, {"RedLightCameraAlerts", {PERSISTENT, BOOL, "0"}},
{"FlockCameraAlerts", {PERSISTENT | BACKUP, BOOL, "0"}}, {"FlockCameraAlerts", {PERSISTENT, BOOL, "0"}},
{"SpeedCameraSlowdown", {PERSISTENT | BACKUP, BOOL, "0"}}, {"SpeedCameraSlowdown", {PERSISTENT, BOOL, "0"}},
{"SpeedCameraSafetyFactor", {PERSISTENT | BACKUP, FLOAT, "1.0"}}, {"SpeedCameraSafetyFactor", {PERSISTENT, FLOAT, "1.0"}},
{"NavCamerasData", {PERSISTENT, JSON}}, {"NavCamerasData", {PERSISTENT, JSON}},
{"EnableLongComfortMode", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableLongComfortMode", {PERSISTENT, BOOL, "0"}},
{"EnableSpeedLimitPredicative", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableSpeedLimitPredicative", {PERSISTENT, BOOL, "0"}},
{"EnableSLPredReactToSL", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableSLPredReactToSL", {PERSISTENT, BOOL, "0"}},
{"EnableSLPredReactToCurves", {PERSISTENT | BACKUP, BOOL, "0"}}, {"EnableSLPredReactToCurves", {PERSISTENT, BOOL, "0"}},
{"ForceRHDForBSM", {PERSISTENT | BACKUP, BOOL, "0"}}, {"ForceRHDForBSM", {PERSISTENT, BOOL, "0"}},
{"NavDestination", {PERSISTENT, STRING}}, {"NavDestination", {PERSISTENT, STRING}},
{"eBrakeActive", {CLEAR_ON_MANAGER_START | BACKUP, BOOL, "0"}}, {"eBrakeActive", {CLEAR_ON_MANAGER_START, BOOL, "0"}},
{"Konn3ktAllowOffroadExternalCanTx", {PERSISTENT | BACKUP, BOOL}}, {"Konn3ktAllowOffroadExternalCanTx", {PERSISTENT, BOOL}},
{"Konn3ktPQFlashHeadlights", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"MapboxToken", {PERSISTENT, STRING}},
{"Konn3ktPQHighBeamSwitch", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"MapboxTokenQRCode", {PERSISTENT, JSON}},
{"Konn3ktPQLeftBlinkerSwitch", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"TomTomToken", {PERSISTENT, STRING}},
{"Konn3ktPQRightBlinkerSwitch", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"UIAccentColor", {PERSISTENT, STRING, "#00FFF5"}},
{"Konn3ktPQGraSet", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"AngleLateralControl", {PERSISTENT, BOOL}},
{"Konn3ktPQGraResume", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}}, {"ALCTorqueBlend", {PERSISTENT, BOOL}},
{"MapboxToken", {PERSISTENT | BACKUP, STRING}},
{"MapboxTokenQRCode", {PERSISTENT | BACKUP, JSON}},
{"TomTomToken", {PERSISTENT | BACKUP, STRING}},
{"UIAccentColor", {PERSISTENT | BACKUP, STRING, "#00FFF5"}},
{"AngleLateralControl", {PERSISTENT | BACKUP, BOOL}},
{"ALCTorqueBlend", {PERSISTENT | BACKUP, BOOL}},
}; };

View File

@@ -18,7 +18,6 @@ cdef extern from "common/params.h":
CLEAR_ON_OFFROAD_TRANSITION CLEAR_ON_OFFROAD_TRANSITION
DEVELOPMENT_ONLY DEVELOPMENT_ONLY
CLEAR_ON_IGNITION_ON CLEAR_ON_IGNITION_ON
BACKUP
ALL ALL
cpdef enum ParamKeyType: cpdef enum ParamKeyType:
@@ -44,7 +43,7 @@ cdef extern from "common/params.h":
optional[string] getKeyDefaultValue(string) nogil optional[string] getKeyDefaultValue(string) nogil
string getParamPath(string) nogil string getParamPath(string) nogil
void clearAll(ParamKeyFlag) void clearAll(ParamKeyFlag)
vector[string] allKeys(ParamKeyFlag) vector[string] allKeys()
PYTHON_2_CPP = { PYTHON_2_CPP = {
(str, STRING): lambda v: v, (str, STRING): lambda v: v,
@@ -182,8 +181,8 @@ cdef class Params:
def get_type(self, key): def get_type(self, key):
return self.p.getKeyType(self.check_key(key)) return self.p.getKeyType(self.check_key(key))
def all_keys(self, flag=ParamKeyFlag.ALL): def all_keys(self):
return self.p.allKeys(flag) return self.p.allKeys()
def get_default_value(self, key): def get_default_value(self, key):
cdef string k = self.check_key(key) cdef string k = self.check_key(key)

1
iqdbc Symbolic link
View File

@@ -0,0 +1 @@
iqdbc_repo/iqdbc

View File

@@ -23,13 +23,13 @@ __pycache__/
mull.yml mull.yml
*.profraw *.profraw
opendbc/can/build/ iqdbc/can/build/
opendbc/can/obj/ iqdbc/can/obj/
opendbc/dbc/*_generated.dbc iqdbc/dbc/*_generated.dbc
cppcheck-addon-ctu-file-list cppcheck-addon-ctu-file-list
opendbc/safety/tests/coverage-out iqdbc/safety/tests/coverage-out
compile_commands.json compile_commands.json
.mull/ .mull/
/opendbc/car/volkswagen/tests/test_mqb_iq_alc_state.py /iqdbc/car/volkswagen/tests/test_mqb_iq_alc_state.py

5
iqdbc_repo/SConscript Normal file
View File

@@ -0,0 +1,5 @@
SConscript(['iqdbc/dbc/SConscript'])
# test files
if GetOption('extras'):
SConscript('iqdbc/safety/tests/libsafety/SConscript')

View File

@@ -1,7 +1,7 @@
# pytest attempts to execute shell scripts while collecting # pytest attempts to execute shell scripts while collecting
collect_ignore_glob = [ collect_ignore_glob = [
"opendbc/safety/tests/misra/*.sh", "iqdbc/safety/tests/misra/*.sh",
"opendbc/safety/tests/misra/cppcheck/", "iqdbc/safety/tests/misra/cppcheck/",
] ]
_ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase")) _ABSTRACT_BASES = frozenset(("CarSafetyTest", "AolSafetyTestBase", "SafetyTest", "SafetyTestBase"))

View File

@@ -50,7 +50,7 @@ SOFTWARE.
#### Scope #### Scope
This licensing is limited to `opendbc_repo/opendbc/car/hyundai` and `opendbc_repo/opendbc/iqpilot/car/hyundai`. This licensing is limited to `iqdbc_repo/iqdbc/car/hyundai` and `iqdbc_repo/iqdbc/iqpilot/car/hyundai`.
### Hyundai / Kia / Genesis (HKG) - carrotpilot ### Hyundai / Kia / Genesis (HKG) - carrotpilot
@@ -80,7 +80,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
#### Scope #### Scope
This licensing is limited to `opendbc_repo/opendbc/car/hyundai` and `opendbc_repo/opendbc/iqpilot/car/hyundai`. This licensing is limited to `iqdbc_repo/iqdbc/car/hyundai` and `iqdbc_repo/iqdbc/iqpilot/car/hyundai`.
### Honda ### Honda
@@ -97,4 +97,4 @@ This repository carries Honda tuning work derived from MVL's tuning effort's, th
#### Scope #### Scope
This licensing is limited to `opendbc_repo/opendbc/car/honda` and `opendbc_repo/opendbc/iqpilot/car/honda`. This licensing is limited to `iqdbc_repo/iqdbc/car/honda` and `iqdbc_repo/iqdbc/iqpilot/car/honda`.

View File

@@ -2,5 +2,5 @@ import os
DBC_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dbc') DBC_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dbc')
# -I include path for e.g. "#include <opendbc/safety/safety.h>" # -I include path for e.g. "#include <iqdbc/safety/safety.h>"
INCLUDE_PATH = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../")) INCLUDE_PATH = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "../"))

View File

@@ -0,0 +1,8 @@
from iqdbc.can.packer import CANPacker
from iqdbc.can.parser import CANParser, CANDefine
__all__ = [
"CANDefine",
"CANParser",
"CANPacker",
]

View File

@@ -4,19 +4,19 @@ from collections.abc import Callable
from dataclasses import dataclass from dataclasses import dataclass
from functools import cache from functools import cache
from opendbc import DBC_PATH from iqdbc import DBC_PATH
# TODO: these should just be passed in along with the DBC file # TODO: these should just be passed in along with the DBC file
from opendbc.car.honda.hondacan import honda_checksum from iqdbc.car.honda.hondacan import honda_checksum
from opendbc.car.toyota.toyotacan import toyota_checksum from iqdbc.car.toyota.toyotacan import toyota_checksum
from opendbc.car.subaru.subarucan import subaru_checksum from iqdbc.car.subaru.subarucan import subaru_checksum
from opendbc.car.chrysler.chryslercan import chrysler_checksum, fca_giorgio_checksum from iqdbc.car.chrysler.chryslercan import chrysler_checksum, fca_giorgio_checksum
from opendbc.car.hyundai.hyundaicanfd import hkg_can_fd_checksum from iqdbc.car.hyundai.hyundaicanfd import hkg_can_fd_checksum
from opendbc.car.volkswagen.mlbcan import volkswagen_mlb_checksum from iqdbc.car.volkswagen.mlbcan import volkswagen_mlb_checksum
from opendbc.car.volkswagen.mqbcan import volkswagen_mqb_meb_checksum, volkswagen_mqb_meb_gen2_checksum, xor_checksum from iqdbc.car.volkswagen.mqbcan import volkswagen_mqb_meb_checksum, volkswagen_mqb_meb_gen2_checksum, xor_checksum
from opendbc.car.tesla.teslacan import tesla_checksum from iqdbc.car.tesla.teslacan import tesla_checksum
from opendbc.car.body.bodycan import body_checksum from iqdbc.car.body.bodycan import body_checksum
from opendbc.car.psa.psacan import psa_checksum from iqdbc.car.psa.psacan import psa_checksum
class SignalType: class SignalType:

View File

@@ -1,7 +1,7 @@
import math import math
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.can.dbc import DBC, Signal, SignalType from iqdbc.can.dbc import DBC, Signal, SignalType
class CANPacker: class CANPacker:

View File

@@ -3,8 +3,8 @@ import numbers
from collections import defaultdict, deque from collections import defaultdict, deque
from dataclasses import dataclass, field from dataclasses import dataclass, field
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.can.dbc import DBC, Signal from iqdbc.can.dbc import DBC, Signal
MAX_BAD_COUNTER = 5 MAX_BAD_COUNTER = 5

View File

@@ -1,7 +1,7 @@
import glob import glob
import os import os
from opendbc import DBC_PATH from iqdbc import DBC_PATH
ALL_DBCS = [os.path.basename(dbc).split('.')[0] for dbc in ALL_DBCS = [os.path.basename(dbc).split('.')[0] for dbc in
glob.glob(f"{DBC_PATH}/*.dbc")] glob.glob(f"{DBC_PATH}/*.dbc")]

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import time import time
from opendbc.can import CANPacker, CANParser from iqdbc.can import CANPacker, CANParser
def _benchmark(checks, n): def _benchmark(checks, n):

View File

@@ -1,5 +1,5 @@
import copy import copy
from opendbc.can import CANPacker, CANParser from iqdbc.can import CANPacker, CANParser
class TestCanChecksums: class TestCanChecksums:
@@ -7,7 +7,7 @@ class TestCanChecksums:
def verify_checksum(self, subtests, dbc_file: str, msg_name: str, msg_addr: int, test_messages: list[bytes], def verify_checksum(self, subtests, dbc_file: str, msg_name: str, msg_addr: int, test_messages: list[bytes],
checksum_field: str = 'CHECKSUM', counter_field = 'COUNTER'): checksum_field: str = 'CHECKSUM', counter_field = 'COUNTER'):
""" """
Verify that opendbc calculates payload CRCs/checksums matching those received in known-good sample messages Verify that iqdbc calculates payload CRCs/checksums matching those received in known-good sample messages
Depends on all non-zero bits in the sample message having a corresponding DBC signal, add UNKNOWN signals if needed Depends on all non-zero bits in the sample message having a corresponding DBC signal, add UNKNOWN signals if needed
""" """
parser = CANParser(dbc_file, [(msg_name, 0)], 0) parser = CANParser(dbc_file, [(msg_name, 0)], 0)
@@ -173,7 +173,7 @@ class TestCanChecksums:
b'\xbd\xed\xbf\xff\xaa\x20\x20\x10', b'\xbd\xed\xbf\xff\xaa\x20\x20\x10',
b'\x67\xee\xbf\xff\xaa\x20\x20\x10', b'\x67\xee\xbf\xff\xaa\x20\x20\x10',
b'\x36\xef\xbf\xff\xaa\x20\x20\x10', b'\x36\xef\xbf\xff\xaa\x20\x20\x10',
], counter_field="COUNTER_DISABLED") # see opendbc#1235 ], counter_field="COUNTER_DISABLED") # see iqdbc#1235
def test_volkswagen_mqb_crc_esp_21(self, subtests): def test_volkswagen_mqb_crc_esp_21(self, subtests):
self.verify_volkswagen_mqb_crc(subtests, "ESP_21", 0xFD, [ self.verify_volkswagen_mqb_crc(subtests, "ESP_21", 0xFD, [

View File

@@ -1,7 +1,7 @@
import pytest import pytest
from opendbc.can import CANDefine, CANPacker, CANParser from iqdbc.can import CANDefine, CANPacker, CANParser
from opendbc.can.tests import TEST_DBC from iqdbc.can.tests import TEST_DBC
class TestCanParserPackerExceptions: class TestCanParserPackerExceptions:

View File

@@ -1,5 +1,5 @@
from opendbc.can import CANParser from iqdbc.can import CANParser
from opendbc.can.tests import ALL_DBCS from iqdbc.can.tests import ALL_DBCS
class TestDBCParser: class TestDBCParser:

View File

@@ -1,5 +1,5 @@
from opendbc.can import CANDefine from iqdbc.can import CANDefine
from opendbc.can.tests import ALL_DBCS from iqdbc.can.tests import ALL_DBCS
class TestCANDefine: class TestCANDefine:

View File

@@ -1,8 +1,8 @@
import pytest import pytest
import random import random
from opendbc.can import CANPacker, CANParser from iqdbc.can import CANPacker, CANParser
from opendbc.can.tests import TEST_DBC from iqdbc.can.tests import TEST_DBC
MAX_BAD_COUNTER = 5 MAX_BAD_COUNTER = 5
@@ -75,7 +75,7 @@ class TestCanParserPacker:
~1Hz, must be seen within ~10s" — so if that message is never fed, the ~1Hz, must be seen within ~10s" — so if that message is never fed, the
parser is permanently invalid. Declaring an optional/rarely-sent message parser is permanently invalid. Declaring an optional/rarely-sent message
with math.nan (or gating the .vl[...] read entirely) is required to avoid with math.nan (or gating the .vl[...] read entirely) is required to avoid
this; see opendbc/car/volkswagen/carstate.py's Diagnose_1/EPB_1 bugs. this; see iqdbc/car/volkswagen/carstate.py's Diagnose_1/EPB_1 bugs.
""" """
parser = CANParser(TEST_DBC, [], 0) parser = CANParser(TEST_DBC, [], 0)
assert parser.can_valid assert parser.can_valid

View File

@@ -4,9 +4,9 @@ from dataclasses import dataclass, field
from enum import IntFlag, ReprEnum, StrEnum, EnumType, auto from enum import IntFlag, ReprEnum, StrEnum, EnumType, auto
from dataclasses import replace from dataclasses import replace
from opendbc.car import structs, uds from iqdbc.car import structs, uds
from opendbc.car.can_definitions import CanData from iqdbc.car.can_definitions import CanData
from opendbc.car.docs_definitions import CarDocs, ExtraCarDocs from iqdbc.car.docs_definitions import CarDocs, ExtraCarDocs
DT_CTRL = 0.01 # car state and control loop timestep (s) DT_CTRL = 0.01 # car state and control loop timestep (s)

View File

@@ -1,4 +1,4 @@
from opendbc.car.crc import CRC8BODY from iqdbc.car.crc import CRC8BODY
def create_control(packer, torque_l, torque_r): def create_control(packer, torque_l, torque_r):

View File

@@ -1,11 +1,11 @@
import numpy as np import numpy as np
from opendbc.can import CANPacker from iqdbc.can import CANPacker
from opendbc.car import Bus, DT_CTRL from iqdbc.car import Bus, DT_CTRL
from opendbc.car.common.pid import PIDController from iqdbc.car.common.pid import PIDController
from opendbc.car.body import bodycan from iqdbc.car.body import bodycan
from opendbc.car.body.values import SPEED_FROM_RPM from iqdbc.car.body.values import SPEED_FROM_RPM
from opendbc.car.interfaces import CarControllerBase from iqdbc.car.interfaces import CarControllerBase
MAX_TORQUE = 500 MAX_TORQUE = 500
MAX_TORQUE_RATE = 50 MAX_TORQUE_RATE = 50

View File

@@ -1,7 +1,7 @@
from opendbc.can import CANParser from iqdbc.can import CANParser
from opendbc.car import Bus, structs from iqdbc.car import Bus, structs
from opendbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from opendbc.car.body.values import DBC from iqdbc.car.body.values import DBC
class CarState(CarStateBase): class CarState(CarStateBase):

View File

@@ -1,6 +1,6 @@
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.""" """ AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.body.values import CAR from iqdbc.car.body.values import CAR
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -1,9 +1,9 @@
import math import math
from opendbc.car import get_safety_config, structs from iqdbc.car import get_safety_config, structs
from opendbc.car.body.carcontroller import CarController from iqdbc.car.body.carcontroller import CarController
from opendbc.car.body.carstate import CarState from iqdbc.car.body.carstate import CarState
from opendbc.car.body.values import SPEED_FROM_RPM from iqdbc.car.body.values import SPEED_FROM_RPM
from opendbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

View File

@@ -1,7 +1,7 @@
from opendbc.car import Bus, CarSpecs, PlatformConfig, Platforms from iqdbc.car import Bus, CarSpecs, PlatformConfig, Platforms
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.docs_definitions import CarDocs from iqdbc.car.docs_definitions import CarDocs
from opendbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, StdQueries
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -464,6 +464,7 @@ struct CarControl {
prompt @6; prompt @6;
promptRepeat @7; promptRepeat @7;
promptDistracted @8; promptDistracted @8;
preAlert @9;
} }
} }
@@ -486,7 +487,7 @@ struct CarOutput {
# ****** car param ****** # ****** car param ******
struct CarParams { struct CarParams {
brand @0 :Text; # Designates which group a platform falls under. Each folder in opendbc/car is assigned one brand string brand @0 :Text; # Designates which group a platform falls under. Each folder in iqdbc/car is assigned one brand string
carFingerprint @1 :Text; carFingerprint @1 :Text;
fuzzyFingerprint @55 :Bool; fuzzyFingerprint @55 :Bool;
@@ -532,14 +533,9 @@ struct CarParams {
steerLimitAlert @28 :Bool; steerLimitAlert @28 :Bool;
steerLimitTimer @47 :Float32; # time before steerLimitAlert is issued steerLimitTimer @47 :Float32; # time before steerLimitAlert is issued
vEgoStopping @29 :Float32; # Speed at which the car goes into stopping state
vEgoStarting @59 :Float32; # Speed at which the car goes into starting state
steerControlType @34 :SteerControlType; steerControlType @34 :SteerControlType;
radarUnavailable @35 :Bool; # True when radar objects aren't visible on CAN or aren't parsed out radarUnavailable @35 :Bool; # True when radar objects aren't visible on CAN or aren't parsed out
stopAccel @60 :Float32; # Required acceleration to keep vehicle stationary stopAccel @60 :Float32; # Required acceleration to keep vehicle stationary
stoppingDecelRate @52 :Float32; # m/s^2/s while trying to stop
startAccel @32 :Float32; # Required acceleration to get car moving
startingState @70 :Bool; # Does this car make use of special starting state
steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds steerActuatorDelay @36 :Float32; # Steering wheel actuator delay in seconds
longitudinalActuatorDelay @58 :Float32; # Gas/Brake actuator delay in seconds longitudinalActuatorDelay @58 :Float32; # Gas/Brake actuator delay in seconds
@@ -772,4 +768,9 @@ struct CarParams {
stoppingControlDEPRECATED @31 :Bool; # Does the car allow full control even at lows speeds when stopping stoppingControlDEPRECATED @31 :Bool; # Does the car allow full control even at lows speeds when stopping
radarTimeStepDEPRECATED @45: Float32 = 0.05; # time delta between radar updates, 20Hz is very standard radarTimeStepDEPRECATED @45: Float32 = 0.05; # time delta between radar updates, 20Hz is very standard
enableDsuDEPRECATED @5 :Bool; # driving support unit enableDsuDEPRECATED @5 :Bool; # driving support unit
vEgoStartingDEPRECATED @59 :Float32;
startAccelDEPRECATED @32 :Float32;
startingStateDEPRECATED @70 :Bool;
vEgoStoppingDEPRECATED @29 :Float32;
stoppingDecelRateDEPRECATED @52 :Float32;
} }

View File

@@ -1,17 +1,17 @@
import os import os
import time import time
from opendbc.car import gen_empty_fingerprint from iqdbc.car import gen_empty_fingerprint
from opendbc.car.can_definitions import CanRecvCallable, CanSendCallable from iqdbc.car.can_definitions import CanRecvCallable, CanSendCallable
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.car.structs import CarParams, CarParamsT from iqdbc.car.structs import CarParams, CarParamsT
from opendbc.car.fingerprints import eliminate_incompatible_cars, all_legacy_fingerprint_cars from iqdbc.car.fingerprints import eliminate_incompatible_cars, all_legacy_fingerprint_cars
from opendbc.car.fw_versions import ObdCallback, get_fw_versions_ordered, get_present_ecus, match_fw_to_car from iqdbc.car.fw_versions import ObdCallback, get_fw_versions_ordered, get_present_ecus, match_fw_to_car
from opendbc.car.mock.values import CAR as MOCK from iqdbc.car.mock.values import CAR as MOCK
from opendbc.car.values import BRANDS from iqdbc.car.values import BRANDS
from opendbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN from iqdbc.car.vin import get_vin, is_valid_vin, VIN_UNKNOWN
from opendbc.iqpilot.car.interfaces import setup_interfaces as iqpilot_interfaces from iqdbc.iqpilot.car.interfaces import setup_interfaces as iqpilot_interfaces
FRAME_FINGERPRINT = 100 # 1s FRAME_FINGERPRINT = 100 # 1s
@@ -19,7 +19,7 @@ FRAME_FINGERPRINT = 100 # 1s
def load_interfaces(brand_names): def load_interfaces(brand_names):
ret = {} ret = {}
for brand_name in brand_names: for brand_name in brand_names:
path = f'opendbc.car.{brand_name}' path = f'iqdbc.car.{brand_name}'
CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface CarInterface = __import__(path + '.interface', fromlist=['CarInterface']).CarInterface
for model_name in brand_names[brand_name]: for model_name in brand_names[brand_name]:
ret[model_name] = CarInterface ret[model_name] = CarInterface
@@ -36,7 +36,7 @@ def _get_interface_names() -> dict[str, list[str]]:
return brand_names return brand_names
# imports from directory opendbc/car/<name>/ # imports from directory iqdbc/car/<name>/
interface_names = _get_interface_names() interface_names = _get_interface_names()
interfaces = load_interfaces(interface_names) interfaces = load_interfaces(interface_names)

View File

@@ -1,13 +1,13 @@
from opendbc.can import CANPacker from iqdbc.can import CANPacker
from opendbc.car import Bus, DT_CTRL from iqdbc.car import Bus, DT_CTRL
from opendbc.car.lateral import apply_meas_steer_torque_limits from iqdbc.car.lateral import apply_meas_steer_torque_limits
from opendbc.car.chrysler import chryslercan from iqdbc.car.chrysler import chryslercan
from opendbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT from iqdbc.car.chrysler.values import RAM_CARS, CarControllerParams, ChryslerFlags, RAM_DT
from opendbc.car.interfaces import CarControllerBase from iqdbc.car.interfaces import CarControllerBase
from opendbc.iqpilot.car.chrysler.carcontroller_ext import CarControllerExt from iqdbc.iqpilot.car.chrysler.carcontroller_ext import CarControllerExt
from opendbc.iqpilot.car.chrysler.aol import AolCarController from iqdbc.iqpilot.car.chrysler.aol import AolCarController
from opendbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
class CarController(CarControllerBase, AolCarController, CarControllerExt): class CarController(CarControllerBase, AolCarController, CarControllerExt):

View File

@@ -1,11 +1,11 @@
from opendbc.can import CANDefine, CANParser from iqdbc.can import CANDefine, CANParser
from opendbc.car import Bus, create_button_events, structs from iqdbc.car import Bus, create_button_events, structs
from opendbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS from iqdbc.car.chrysler.values import DBC, STEER_THRESHOLD, RAM_CARS
from opendbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from opendbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from opendbc.iqpilot.car.chrysler.carstate_ext import CarStateExt from iqdbc.iqpilot.car.chrysler.carstate_ext import CarStateExt
from opendbc.iqpilot.car.chrysler.aol import AolCarState from iqdbc.iqpilot.car.chrysler.aol import AolCarState
ButtonType = structs.CarState.ButtonEvent.Type ButtonType = structs.CarState.ButtonEvent.Type

View File

@@ -1,6 +1,6 @@
from opendbc.car import structs from iqdbc.car import structs
from opendbc.car.crc import CRC8J1850 from iqdbc.car.crc import CRC8J1850
from opendbc.car.chrysler.values import RAM_CARS from iqdbc.car.chrysler.values import RAM_CARS
GearShifter = structs.CarState.GearShifter GearShifter = structs.CarState.GearShifter
VisualAlert = structs.CarControl.HUDControl.VisualAlert VisualAlert = structs.CarControl.HUDControl.VisualAlert

View File

@@ -1,9 +1,9 @@
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.""" """ AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.chrysler.values import CAR from iqdbc.car.chrysler.values import CAR
from opendbc.iqpilot.car.fingerprints_ext import merge_fw_versions from iqdbc.iqpilot.car.fingerprints_ext import merge_fw_versions
from opendbc.iqpilot.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT from iqdbc.iqpilot.car.chrysler.fingerprints_ext import FW_VERSIONS_EXT
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -1,11 +1,11 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from opendbc.car import get_safety_config, structs from iqdbc.car import get_safety_config, structs
from opendbc.car.chrysler.carcontroller import CarController from iqdbc.car.chrysler.carcontroller import CarController
from opendbc.car.chrysler.carstate import CarState from iqdbc.car.chrysler.carstate import CarState
from opendbc.car.chrysler.radar_interface import RadarInterface from iqdbc.car.chrysler.radar_interface import RadarInterface
from opendbc.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 opendbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
from opendbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ from iqdbc.iqpilot.car.chrysler.values_ext import ChryslerFlagsIQ
class CarInterface(CarInterfaceBase): class CarInterface(CarInterfaceBase):

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from opendbc.can import CANParser from iqdbc.can import CANParser
from opendbc.car import Bus, structs from iqdbc.car import Bus, structs
from opendbc.car.interfaces import RadarInterfaceBase from iqdbc.car.interfaces import RadarInterfaceBase
from opendbc.car.chrysler.values import DBC from iqdbc.car.chrysler.values import DBC
RADAR_MSGS_C = list(range(0x2c2, 0x2d4+2, 2)) # c_ messages 706,...,724 RADAR_MSGS_C = list(range(0x2c2, 0x2d4+2, 2)) # c_ messages 706,...,724
RADAR_MSGS_D = list(range(0x2a2, 0x2b4+2, 2)) # d_ messages RADAR_MSGS_D = list(range(0x2a2, 0x2b4+2, 2)) # d_ messages

View File

@@ -1,10 +1,10 @@
from enum import IntFlag from enum import IntFlag
from dataclasses import dataclass, field from dataclasses import dataclass, field
from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds from iqdbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.docs_definitions import CarHarness, CarDocs, CarParts from iqdbc.car.docs_definitions import CarHarness, CarDocs, CarParts
from opendbc.car.fw_query_definitions import FwQueryConfig, Request, p16 from iqdbc.car.fw_query_definitions import FwQueryConfig, Request, p16
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -2,9 +2,9 @@
import jinja2 import jinja2
import os import os
from opendbc.car.common.basedir import BASEDIR from iqdbc.car.common.basedir import BASEDIR
from opendbc.car.interfaces import get_interface_attr from iqdbc.car.interfaces import get_interface_attr
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
@@ -17,11 +17,11 @@ FINGERPRINTS_PY_TEMPLATE = jinja2.Template("""
{%- if FINGERPRINTS[brand] and brand != 'body' %} {%- if FINGERPRINTS[brand] and brand != 'body' %}
# ruff: noqa: E501 # ruff: noqa: E501
{% endif %} {% endif %}
\"\"\" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.\"\"\" \"\"\" AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.\"\"\"
{% if FW_VERSIONS[brand] %} {% if FW_VERSIONS[brand] %}
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
{% endif %} {% endif %}
from opendbc.car.{{brand}}.values import CAR from iqdbc.car.{{brand}}.values import CAR
{% if FW_VERSIONS[brand] %} {% if FW_VERSIONS[brand] %}
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -1,5 +1,5 @@
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.car.isotp_parallel_query import IsoTpParallelQuery from iqdbc.car.isotp_parallel_query import IsoTpParallelQuery
EXT_DIAG_REQUEST = b'\x10\x03' EXT_DIAG_REQUEST = b'\x10\x03'
EXT_DIAG_RESPONSE = b'\x50\x03' EXT_DIAG_RESPONSE = b'\x50\x03'

View File

@@ -9,15 +9,15 @@ from typing import get_args
from enum import Enum from enum import Enum
from collections import defaultdict from collections import defaultdict
from opendbc.car.common.basedir import BASEDIR from iqdbc.car.common.basedir import BASEDIR
from opendbc.car import gen_empty_fingerprint from iqdbc.car import gen_empty_fingerprint
from opendbc.car.structs import CarParams, IQCarParams from iqdbc.car.structs import CarParams, IQCarParams
from opendbc.car.docs_definitions import BaseCarHarness, CarDocs, Device, ExtraCarDocs, Column, ExtraCarsColumn, CommonFootnote, PartType, SupportType from iqdbc.car.docs_definitions import BaseCarHarness, CarDocs, Device, ExtraCarDocs, Column, ExtraCarsColumn, CommonFootnote, PartType, SupportType
from opendbc.car.car_helpers import interfaces from iqdbc.car.car_helpers import interfaces
from opendbc.car.interfaces import get_interface_attr from iqdbc.car.interfaces import get_interface_attr
from opendbc.car.values import Platform from iqdbc.car.values import Platform
from opendbc.car.mock.values import CAR as MOCK from iqdbc.car.mock.values import CAR as MOCK
from opendbc.car.extra_cars import CAR as EXTRA from iqdbc.car.extra_cars import CAR as EXTRA
EXTRA_CARS_MD_OUT = os.path.join(BASEDIR, "../", "../", "docs", "CARS.md") EXTRA_CARS_MD_OUT = os.path.join(BASEDIR, "../", "../", "docs", "CARS.md")

View File

@@ -4,8 +4,8 @@ import copy
from dataclasses import dataclass, field from dataclasses import dataclass, field
from enum import Enum from enum import Enum
from opendbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2 GOOD_TORQUE_THRESHOLD = 1.0 # m/s^2
MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)" MODEL_YEARS_RE = r"(?<= )((\d{4}-\d{2})|(\d{4}))(,|$)"

View File

@@ -1,9 +1,9 @@
import time import time
from opendbc.car import make_tester_present_msg, uds from iqdbc.car import make_tester_present_msg, uds
from opendbc.car.can_definitions import CanData, CanRecvCallable, CanSendCallable from iqdbc.car.can_definitions import CanData, CanRecvCallable, CanSendCallable
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.car.fw_query_definitions import EcuAddrBusType from iqdbc.car.fw_query_definitions import EcuAddrBusType
def _is_tester_present_response(msg: CanData, subaddr: int | None = None) -> bool: def _is_tester_present_response(msg: CanData, subaddr: int | None = None) -> bool:

View File

@@ -1,7 +1,7 @@
from dataclasses import dataclass from dataclasses import dataclass
from opendbc.car import structs, Platforms, ExtraPlatformConfig from iqdbc.car import structs, Platforms, ExtraPlatformConfig
from opendbc.car.docs_definitions import ExtraCarDocs, SupportType from iqdbc.car.docs_definitions import ExtraCarDocs, SupportType
@dataclass @dataclass

View File

@@ -1,16 +1,16 @@
from opendbc.car.interfaces import get_interface_attr from iqdbc.car.interfaces import get_interface_attr
from opendbc.car.body.values import CAR as BODY from iqdbc.car.body.values import CAR as BODY
from opendbc.car.chrysler.values import CAR as CHRYSLER from iqdbc.car.chrysler.values import CAR as CHRYSLER
from opendbc.car.ford.values import CAR as FORD from iqdbc.car.ford.values import CAR as FORD
from opendbc.car.gm.values import CAR as GM from iqdbc.car.gm.values import CAR as GM
from opendbc.car.honda.values import CAR as HONDA from iqdbc.car.honda.values import CAR as HONDA
from opendbc.car.hyundai.values import CAR as HYUNDAI from iqdbc.car.hyundai.values import CAR as HYUNDAI
from opendbc.car.mazda.values import CAR as MAZDA from iqdbc.car.mazda.values import CAR as MAZDA
from opendbc.car.mock.values import CAR as MOCK from iqdbc.car.mock.values import CAR as MOCK
from opendbc.car.nissan.values import CAR as NISSAN from iqdbc.car.nissan.values import CAR as NISSAN
from opendbc.car.subaru.values import CAR as SUBARU from iqdbc.car.subaru.values import CAR as SUBARU
from opendbc.car.toyota.values import CAR as TOYOTA from iqdbc.car.toyota.values import CAR as TOYOTA
from opendbc.car.volkswagen.values import CAR as VW from iqdbc.car.volkswagen.values import CAR as VW
FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True) FW_VERSIONS = get_interface_attr('FW_VERSIONS', combine_brands=True, ignore_none=True)
_FINGERPRINTS = get_interface_attr('FINGERPRINTS', combine_brands=True, ignore_none=True) _FINGERPRINTS = get_interface_attr('FINGERPRINTS', combine_brands=True, ignore_none=True)

View File

@@ -1,11 +1,11 @@
import math import math
import numpy as np import numpy as np
from opendbc.can import CANPacker from iqdbc.can import CANPacker
from opendbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, apply_hysteresis, structs from iqdbc.car import ACCELERATION_DUE_TO_GRAVITY, Bus, DT_CTRL, apply_hysteresis, structs
from opendbc.car.lateral import ISO_LATERAL_ACCEL, apply_std_steer_angle_limits from iqdbc.car.lateral import ISO_LATERAL_ACCEL, apply_std_steer_angle_limits
from opendbc.car.ford import fordcan from iqdbc.car.ford import fordcan
from opendbc.car.ford.values import CarControllerParams, FordFlags, CAR from iqdbc.car.ford.values import CarControllerParams, FordFlags, CAR
from opendbc.car.interfaces import CarControllerBase, V_CRUISE_MAX from iqdbc.car.interfaces import CarControllerBase, V_CRUISE_MAX
LongCtrlState = structs.CarControl.Actuators.LongControlState LongCtrlState = structs.CarControl.Actuators.LongControlState
VisualAlert = structs.CarControl.HUDControl.VisualAlert VisualAlert = structs.CarControl.HUDControl.VisualAlert

View File

@@ -1,11 +1,11 @@
from opendbc.can import CANDefine, CANParser from iqdbc.can import CANDefine, CANParser
from opendbc.car import Bus, create_button_events, structs from iqdbc.car import Bus, create_button_events, structs
from opendbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from opendbc.car.ford.fordcan import CanBus from iqdbc.car.ford.fordcan import CanBus
from opendbc.car.ford.values import DBC, CarControllerParams, FordFlags from iqdbc.car.ford.values import DBC, CarControllerParams, FordFlags
from opendbc.car.interfaces import CarStateBase from iqdbc.car.interfaces import CarStateBase
from opendbc.iqpilot.car.ford.aol import AolCarState from iqdbc.iqpilot.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

@@ -1,6 +1,6 @@
""" AUTO-FORMATTED USING opendbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE.""" """ AUTO-FORMATTED USING iqdbc/car/debug/format_fingerprints.py, EDIT STRUCTURE THERE."""
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.ford.values import CAR from iqdbc.car.ford.values import CAR
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -1,4 +1,4 @@
from opendbc.car import CanBusBase, structs from iqdbc.car import CanBusBase, structs
HUDControl = structs.CarControl.HUDControl HUDControl = structs.CarControl.HUDControl

View File

@@ -1,13 +1,13 @@
import numpy as np import numpy as np
from opendbc.car import Bus, get_safety_config, structs from iqdbc.car import Bus, get_safety_config, structs
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from opendbc.car.ford.carcontroller import CarController from iqdbc.car.ford.carcontroller import CarController
from opendbc.car.ford.carstate import CarState from iqdbc.car.ford.carstate import CarState
from opendbc.car.ford.fordcan import CanBus from iqdbc.car.ford.fordcan import CanBus
from opendbc.car.ford.radar_interface import RadarInterface from iqdbc.car.ford.radar_interface import RadarInterface
from opendbc.car.ford.values import CarControllerParams, DBC, Ecu, FordFlags, RADAR, FordSafetyFlags from iqdbc.car.ford.values import CarControllerParams, DBC, Ecu, FordFlags, RADAR, FordSafetyFlags
from opendbc.car.interfaces import CarInterfaceBase from iqdbc.car.interfaces import CarInterfaceBase
TransmissionType = structs.CarParams.TransmissionType TransmissionType = structs.CarParams.TransmissionType

View File

@@ -3,12 +3,12 @@ from typing import cast
from collections import defaultdict from collections import defaultdict
from math import cos, sin from math import cos, sin
from dataclasses import dataclass from dataclasses import dataclass
from opendbc.can import CANParser from iqdbc.can import CANParser
from opendbc.car import Bus, structs from iqdbc.car import Bus, structs
from opendbc.car.common.conversions import Conversions as CV from iqdbc.car.common.conversions import Conversions as CV
from opendbc.car.ford.fordcan import CanBus from iqdbc.car.ford.fordcan import CanBus
from opendbc.car.ford.values import DBC, RADAR from iqdbc.car.ford.values import DBC, RADAR
from opendbc.car.interfaces import RadarInterfaceBase from iqdbc.car.interfaces import RadarInterfaceBase
DELPHI_ESR_RADAR_MSGS = list(range(0x500, 0x540)) DELPHI_ESR_RADAR_MSGS = list(range(0x500, 0x540))

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from collections import defaultdict from collections import defaultdict
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.ford.values import get_platform_codes from iqdbc.car.ford.values import get_platform_codes
from opendbc.car.ford.fingerprints import FW_VERSIONS from iqdbc.car.ford.fingerprints import FW_VERSIONS
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -4,10 +4,10 @@ from collections.abc import Iterable
from hypothesis import settings, given, strategies as st from hypothesis import settings, given, strategies as st
from parameterized import parameterized from parameterized import parameterized
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.fw_versions import build_fw_dict from iqdbc.car.fw_versions import build_fw_dict
from opendbc.car.ford.values import CAR, FW_QUERY_CONFIG, FW_PATTERN, get_platform_codes from iqdbc.car.ford.values import CAR, FW_QUERY_CONFIG, FW_PATTERN, get_platform_codes
from opendbc.car.ford.fingerprints import FW_VERSIONS from iqdbc.car.ford.fingerprints import FW_VERSIONS
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -3,11 +3,11 @@ import re
from dataclasses import dataclass, field, replace from dataclasses import dataclass, field, replace
from enum import Enum, IntFlag from enum import Enum, IntFlag
from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds from iqdbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds
from opendbc.car.lateral import AngleSteeringLimits from iqdbc.car.lateral import AngleSteeringLimits
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column from iqdbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column
from opendbc.car.fw_query_definitions import FwQueryConfig, LiveFwVersions, OfflineFwVersions, Request, StdQueries, p16 from iqdbc.car.fw_query_definitions import FwQueryConfig, LiveFwVersions, OfflineFwVersions, Request, StdQueries, p16
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -3,8 +3,8 @@ from dataclasses import dataclass, field
import struct import struct
from collections.abc import Callable from collections.abc import Callable
from opendbc.car import uds from iqdbc.car import uds
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
Ecu = CarParams.Ecu Ecu = CarParams.Ecu

View File

@@ -4,15 +4,15 @@ from typing import Protocol, TypeVar
from tqdm import tqdm from tqdm import tqdm
from opendbc.car import uds from iqdbc.car import uds
from opendbc.car.can_definitions import CanRecvCallable, CanSendCallable from iqdbc.car.can_definitions import CanRecvCallable, CanSendCallable
from opendbc.car.carlog import carlog from iqdbc.car.carlog import carlog
from opendbc.car.structs import CarParams from iqdbc.car.structs import CarParams
from opendbc.car.ecu_addrs import get_ecu_addrs from iqdbc.car.ecu_addrs import get_ecu_addrs
from opendbc.car.fingerprints import FW_VERSIONS from iqdbc.car.fingerprints import FW_VERSIONS
from opendbc.car.fw_query_definitions import ESSENTIAL_ECUS, AddrType, EcuAddrBusType, FwQueryConfig, LiveFwVersions, OfflineFwVersions from iqdbc.car.fw_query_definitions import ESSENTIAL_ECUS, AddrType, EcuAddrBusType, FwQueryConfig, LiveFwVersions, OfflineFwVersions
from opendbc.car.interfaces import get_interface_attr from iqdbc.car.interfaces import get_interface_attr
from opendbc.car.isotp_parallel_query import IsoTpParallelQuery from iqdbc.car.isotp_parallel_query import IsoTpParallelQuery
Ecu = CarParams.Ecu Ecu = CarParams.Ecu
FUZZY_EXCLUDE_ECUS = [Ecu.fwdCamera, Ecu.fwdRadar, Ecu.eps, Ecu.debug] FUZZY_EXCLUDE_ECUS = [Ecu.fwdCamera, Ecu.fwdRadar, Ecu.eps, Ecu.debug]

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