From 92061647072757e2cb42dd41ad446e3ccc2120ee Mon Sep 17 00:00:00 2001 From: "IQ.Lvbs CI [bot]" Date: Wed, 26 Aug 2026 09:16:16 -0500 Subject: [PATCH] IQ.Pilot Release Commit @ f58fc1d --- artifacts/iqpilot_navd_private/manifest.json | 84 +++++++++--------- .../iqpilot_navd_private/manifest.json.sig | 2 +- .../__init__.cpython-312-aarch64-linux-gnu.so | Bin 67616 -> 67616 bytes ...ap_client.cpython-312-aarch64-linux-gnu.so | Bin 202040 -> 202040 bytes ...t_builder.cpython-312-aarch64-linux-gnu.so | Bin 136960 -> 136960 bytes .../helpers.cpython-312-aarch64-linux-gnu.so | Bin 135960 -> 135960 bytes ...dent_feed.cpython-312-aarch64-linux-gnu.so | Bin 135528 -> 135528 bytes .../iqmapd.cpython-312-aarch64-linux-gnu.so | Bin 135632 -> 135632 bytes ...ong_decel.cpython-312-aarch64-linux-gnu.so | Bin 69752 -> 69752 bytes ...ox_client.cpython-312-aarch64-linux-gnu.so | Bin 68144 -> 68144 bytes ...v_cameras.cpython-312-aarch64-linux-gnu.so | Bin 135600 -> 135600 bytes ...n_signals.cpython-312-aarch64-linux-gnu.so | Bin 135560 -> 135560 bytes .../navd.cpython-312-aarch64-linux-gnu.so | Bin 797296 -> 797296 bytes ...incidentd.cpython-312-aarch64-linux-gnu.so | Bin 135344 -> 135344 bytes ...avrenderd.cpython-312-aarch64-linux-gnu.so | Bin 135584 -> 135584 bytes ...m_cameras.cpython-312-aarch64-linux-gnu.so | Bin 136392 -> 136392 bytes .../reroute.cpython-312-aarch64-linux-gnu.so | Bin 136216 -> 136216 bytes ...incidents.cpython-312-aarch64-linux-gnu.so | Bin 203136 -> 203136 bytes ...e_manager.cpython-312-aarch64-linux-gnu.so | Bin 877864 -> 877864 bytes ...me_common.cpython-312-aarch64-linux-gnu.so | Bin 135760 -> 135760 bytes .../traffic.cpython-312-aarch64-linux-gnu.so | Bin 69720 -> 69720 bytes ...rn_desire.cpython-312-aarch64-linux-gnu.so | Bin 69768 -> 69768 bytes ...eb_server.cpython-312-aarch64-linux-gnu.so | Bin 201400 -> 201400 bytes .../iqdbc/car/volkswagen/carcontroller.py | 12 +-- .../volkswagen/tests/test_driver_override.py | 17 ++++ .../volkswagen/tests/test_meb_nav_blinker.py | 43 +++++++++ iqpilot/selfdrive/controls/controlsd.py | 2 +- 27 files changed, 111 insertions(+), 49 deletions(-) create mode 100644 artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_driver_override.py create mode 100644 artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_meb_nav_blinker.py diff --git a/artifacts/iqpilot_navd_private/manifest.json b/artifacts/iqpilot_navd_private/manifest.json index b2935a48f..b9fa27a2b 100644 --- a/artifacts/iqpilot_navd_private/manifest.json +++ b/artifacts/iqpilot_navd_private/manifest.json @@ -186,7 +186,7 @@ }, "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "be5f9700cc95bf33007afb85745c5aef7d6de4f1f1e3971956bdf4f9c4524922", + "sha256": "070f9e626498045eaa2420b4155eea666173bf2b9177570bf858bda16c6db653", "size": 67616 }, "python/iqpilot_private/navd/__init__.py": { @@ -196,102 +196,102 @@ }, "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "c9bb61739b00f9b241d689851e671cf261001f2fe867802afa2c7ed47ec59eab", + "sha256": "9e20c2f70422428de5109e0fa9c5c26ca09b6e684a86f519dac82e539b9d529e", "size": 202040 }, "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "150db8f37b8237bfb2e145d9a3bd2e824f15238a21b5c84ba62498bbb0f83300", + "sha256": "187419474acc3b1ef8307331c0143f9b1a4375a3f7b031beb8fea4bee9ae6e8c", "size": 136960 }, "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "f945d8440598055e7de1902af3c99f4b58f42a664160c46a98d0b6c501e2ddb2", + "sha256": "eff4eb0b5f23cbb3af85da0e55a861e82a1d8d3f8be3a0d8c4c8137003637c7e", "size": 135960 }, "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "829175e4f8a14caf06dd5d7bc99fca728a34dd527625329f43138ff60af00105", + "sha256": "091227540881f177d29d53ccd09eacdde413f672bc15523966fff7d20c055e94", "size": 135528 }, "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "f361ab42f1a8682a2c36c65ef2c2126d225d80fdcb7301b346b1566eb1248ca0", + "sha256": "1bf7f2f0846d4f5c52b12a6388e427a8e477c0d8fd67f88e3fb2186aa8d6a826", "size": 135632 }, "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "f65a487d3316e672a3cce96dd1bf1f3629f5ae7d60529494e41420b3b5a7d0f9", + "sha256": "183f2af1da64ba01bf0735ed6d9fb20ced5900a465f2608fb4332d4f4fbb0ba9", "size": 69752 }, "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "638115c15efc7db1e33cf003eeadd5c1c416a0ada7d786df721ff2c03f99e3e9", + "sha256": "85b6a11d4bebe5b17792d3a2c1d4cf6577284ed3465bc078202bd1b50244478f", "size": 68144 }, "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "205750c1ce62efe88c2de65c7be25ccbc3fe28055f147a262f65f3b440da1bfa", + "sha256": "f873227e7a089ca5b3e637f38815f962bf6612d1d89a3d98ad9c2f13303f80b2", "size": 135600 }, "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "379f7bc251937da2c6edbb039ec249773c83c7145e19a5f375d9afa2a5bcffb7", + "sha256": "e590e12c1bfda8537fb9333cb87f5f9877355cd491fd4fbee59c7055c98c05e0", "size": 135560 }, "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "0c43fd3566bfa772dde16209aeafa01a1831294d46d6b4b57b818aafb1729647", + "sha256": "f4de1e41111d765e04b0578b777aa6898337df07a19ea3ccd7d84740f33bb10c", "size": 797296 }, "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "37c9074d18a0492d58c1176d2dade4d452c60d0f4e47d83d59ea859111629c6e", + "sha256": "3d1c7a8479deee9d21ac61e38eccf321a0761fa7a104d85d75e770126063c3c5", "size": 135344 }, "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "fd74128599c4c4cc6a0d5c545430f292aceb9b0dadcda9b7a37c0a868176bb6a", + "sha256": "2621b0ee58c5a7db170050c54acbcea92b1bcfd3c5fc07f5342fce16e8e84069", "size": 135584 }, "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "b8f93b885107e0c2a36b717bc3fa80873505c8a7d067861342dc33283f2052c0", + "sha256": "6bea816d9ab4cfe8eeebaaa39c3eec8f0d2f2e80d83ef8b685eb8444332d2286", "size": 136392 }, "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "4c5a07107ba60783d67810def5dd4df285dbb67482ad239f48350e38a46b8e9e", + "sha256": "21a0e0fe1ae366fae40755ddcee1b2d14dd36208d0cd4ea93f6d28a2946433c9", "size": 136216 }, "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "969d6d5b6f42193ff476b989b0dad034dd1a18d1633e8d1fb268f03b63b4ced2", + "sha256": "007b5062fd915d01f0eb782cb190b47025671ac643a2cc92b7a7eb36ed9f3bd1", "size": 203136 }, "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "bb9694f32928acfb5402dba9ca5a7755f44f3ab32078813991b6497dfe213d63", + "sha256": "1a34010bdf5f58678f8fd198162de2d16d2dae0d1aef91b56ea88c54122080ef", "size": 877864 }, "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "309f170a1f21ba35e8ff30680a582a959178622a236e8ecf52a92a932818ffd7", + "sha256": "7d4ed2bf8c46b2bdb8d9558035301835c45e521cd5ceaee2a04fafdb3d3688ed", "size": 135760 }, "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "4568e6b232a4f57d52152d04cfe819e0a3c614130a027ec46e881554dfe91355", + "sha256": "289c5ef19885a3b032ea9183ed0f889c16f09050fe2ecf0d8e1e544f31e57283", "size": 69720 }, "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "f8200244ca7a21c4593a1fc5ad4243ccfab49b6cf2b5e4a94d4a703a0b449d9a", + "sha256": "f3defee1e4aa36f6493cb74f2343a31e3b65dd48dac22517ea9f5c160b76a907", "size": 69768 }, "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "ed05513ace7c59ba86d3d9b813dd1b87efffd039424ec403fc87a47ecc2cb0e7", + "sha256": "2f49a31d16f1952eda641c9634f7450343d2f8289b5e050a44a629778965e23c", "size": 201400 }, "runtime": { @@ -331,26 +331,26 @@ } }, "signatures": { - "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "Bym+fZhzakHRgZxpugkxuqC1r6maOmNhWskzqaL/+wg6XkC0MviLzM8D+XJJ3H8alcbO1Dc9W4QNPmAv/U2HCg==", - "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": "A/nm3hEKPsdXJSMxUFIYvTjAHMkgfstExgRnZYz0PF51stMz++1J43i13xLAyrokupD0ScBt/0k1n3tfpSpqDA==", - "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "D/rORB3ZH8FnXpPEyXsiGO7sQydBx56DKfd8WYAhwiuwFtjiftKNfVygpYET8QebyWL953SGi+w3roztjbumDQ==", - "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "cfzYrfQCUw9BZbapQoz6/zRyIIEujw08sE5HFdbsM9pRl7JEyaleQUWqE01BxizHN/JCYqKQVPkvJFuwpnbVAw==", - "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": "tmj9dLFSCQad5OHKnkuy3cguWDd0A0timHw1V75vushxaRmqwlxAt5xT9YoAPm7ZUKHBQqmC/bjfbmLqMKPkDA==", - "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "GEet1xOOsahT0sdJ9bInk+7YjMFj/aAqQCpmFxVY8JVEKpAJlNAZ3SgNoTz352nS1c1iKvqRHV1o0qzjdIp3Dw==", - "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "ZxX5vhARJ++kMGlLY2WOdVQa85TXoDiVPrBwt9wOVchDVkvTNJk6qVHRYZBo0AfdbQsnThjyZwN/omZRvr87Cg==", - "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "pIrMiS6pex0rzXiFZomlloKH+2VwWa/+DiIqaDzV0/dVSz6u9CCP5IHXFfe0mtuO7t3UYElJtMPPo8WiXvJIDQ==", - "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "HGJYD9jqC/FT6wg32BtuMWkwNUyiurcYnXraycJ5XwX1k6RU4cNeiVhEBNy3Cl+kJ0Z0S3uZPMGnNWucabwYDA==", - "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": "70G6k1Zuv9ZFU6s64PjH5M2ik2Lx3IFuCFMjHw3GmoOZ+BEg7WheHK0yJyzDLjznAYaoakvZmwnc1yx8q2k5Dw==", - "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "3Z74roPOVqxeKoCJ8YJfn//HQXiTvxtLAboGMIKRwxraVkZNvN76YgrAsCDt4Afm4HgJYqh5WsZa0KgmwXnfBA==", - "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": "uKZkF9G18QvfZq4hpRJLaBCLUfXq9akzGngbnfqNnYvk3hOZmpH0wPOKk/a6uRSq3U2Sa5QAGgbaqnSkg98FBQ==", - "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "SrCbs4y1iLpqUDphjbBiLjBkh6eMzB385g6qckMjZuAdZNMVFleUTb7y5a6w4+wzIuq9c5/CnaKt8zD51C9HBQ==", - "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "H8QMggB9nBDH7FJpg0nSzZyvD+gAOAzH9Tdh5Vxz54J/n6nrK9f2r9hZQlytxS+todSFB0mZ/74QyVykTrOnCA==", - "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "mypKWKF1VCOraNagzwyBmDXCmBjaczS5QUzLfojmMCIdM5ZDd/1+sh1iiGLnbjpPMqJOwy4TjmUB6lSU5BTsBA==", - "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": "49f0GOsPRfZ4+olg8XyZOH+L+SFxf2OIM8Gg0UWyO77xjjqbrk07aLsnT69y+tctlrI8vJfsD9zLDjMK6ft5Cw==", - "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "uH7oan6d8TJwFt1G++mr0mdjjOIPH7SOc9LoJ/YbyZG50WAo+diuylGcgrP1PVm5irBdHRRL5tG/aSfNReMiDQ==", - "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "+SSt76X4/yF4Vw4Th9yRXGhoQWpMsWLeuxZBwf/cZFQeYYBNt5b6Ak60QpvoBjvSzPf9NEfotXfSHyo8MmxUCQ==", - "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": "49QjqzjQVF7pSzxScl6BpTHIiknMkSi+y3vR3H09XIixFsjbAhBo4RCMwhTBvVv9bYe1dELhvT2YNUGu4lPYDA==", - "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "tMufwFdf87IWEraRxzA1FKJmqTHLYvREg89dxAHqDNfPHVldaTQMccl2sxvk7fBJHs13D0r/Cb1NsfG9oyEWDw==", - "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "KbRqUHWVJSPq3bmhYaX2ZWTJTxNqhpWAuhmvjhrUTcDI70qFvyD8Wx/T7fvhh01CgKI7rVvAuT7nZX+fhYKfCw==" + "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "F5zYUvVEwqzW7SDJKbt0AABXyKtgJ7gO5M/akVREPJC5xgD2PuKSlxhdSnNmb8Q9LyaTbR8x3PSvSXngub+nDQ==", + "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": "/DOq7cGdZbH9s+pn5ey4IXO/eO1ubKg093e91ME9NVXy/F3y8+RjwZMwfqEQQSVC4pe8623LSRV4Z/pCUJFyDA==", + "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "09miAJIhesOTdcFV2lZBKXSca/q+kKVD6U9wkEShaOESznVs1uZhILBFu4PiKBsALiQBZ/C2s/uQuC1IIItaDw==", + "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "1yKbUBIkSRX4kH+r268peztYOIKVVlAeKhiNShf1Kjc6/ROB/B9vSgE+NLQrNhsMyGkpOEk8HA97JJ8QxndvDA==", + "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": "NvjR3FoKI567nWq3++SzPQkmCDCaDSTDPfE0GjEHgSBd/SJariIANKwSJCoPhZ436NbsrAxPY9ZJF3zZTQkFBg==", + "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "2omO3UL4OfaZ0esBEl1a2x/j+yic0OPNFcolUA+8y+s8/h9IZMe2bUcCbrOai3l4Rpm9BKunwl4EPtj3KiItDg==", + "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "bchPSpi1tnIEe4Kidfo3iadRIHx2EymC5cUT6OBWpLuuk+ND23IsRw1kvLXGpp99hMzXtOwcfmEL79kEjqe6CQ==", + "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "lejZRjrSDLGyVhTYq78QbozsgQxldbqq8z8MkNTB4ZFM7DXup5vUlOu7YJbdrEMs6JWVQsmKUJ67Eq6Fi5UhCA==", + "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "F+YDu+AaFvNnSgAmdRfK3/QUGTHPmARLHeWF/RFPqE8aKOFgqJu5dIKKvuW+8UDc2HG+SQ7xaBe/rqnIQrRHAg==", + "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": "hKjPTpXjUUVobswo8TNWWmLcVvNYd7ADwj5N9APHnoXpkEbKHmaODtGNo5JjpNSoYxVDBnjm0FiYD7gXAtXmBQ==", + "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "Jbfvl7PfzijCl/bWoAf0IoHrHvgS2xAgMpXfCBfI1tLzPrXTc6LadxKBPlVJfoNH2WBt1LqnIsjBlLcU0ysyCA==", + "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": "5ybfD0zGZHLat8RUcQGgJmF2z4yPFEBUmMTp5+BdYP4IYa9m5rbUxAXLQSHUAFfM4X3pHSl4pVkBk8Uz30g3AA==", + "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "oabGQM48/eoQDLo1/csw/nzGCBAaoUmalk1I6lO0yPmh16wvweGrUZ81IB9oIjmeQYmUcdsKbSi1HMlvV6f2Cw==", + "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "DwBKUAvtohLfZSwMDTYfEU8ghoG5LGKQYOB8j/8y77dCSng5kjPL9kvnOXwO4F/SfK/VqjOpMbQyK6V4EVvtCw==", + "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "CULSqD7g2vYgxtB+FLZMVGUY/tvtLXbd/jzmA7xt1W2Wla6cV4OS+xKXz6tpLA0o0MQFVUwFHEp4xMMbZ/kqAA==", + "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": "X/FYviFDp4KlDv3qhVpvXVIDcC8dL0NcxyTKXN4DRy1/9PGIAvydNIl4ViLR6JcP7hFd+KeEXT4WjaXrxJUHCw==", + "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "QWPpQTkK/589D84nSAqtauyiLwHZRlcRwFSmubLyRr8xv2UKh+vfHSHT+s3EUYcl73k3tJrgQlNZAqNU+RVEAA==", + "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "bE6I2JK6hfoWkhpJ6m8zgK6ZXDWignEQE+titwgQkYU+BXv1W7ZjxW5anHwTN5N/nXu3nDzRPxQmATRB4QYEDw==", + "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": "F+oel9VPRD18u70lYd7h3Qw7Ispwm8ttsPORlUvDZUqcxPvtL5vYt8gZ7joTRA3hdyrDqLEXvLOEUyEljJwGAA==", + "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "ytdGaSS1/ME/0LZFzmQ+DMjWsToxQAWRqVMCv+gHYOYwM8ye3xjJwR2mi5rVfI2CvyWM4XT2AXRNfTotEDEVAA==", + "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "Wll0YO5ZFHblaCKwip3269WhENgac4VII8DUdA0G51V3Ru/SxxXetW6LSnJuCERYYnhwqEM5SxizXrVJSIYmCA==" } } diff --git a/artifacts/iqpilot_navd_private/manifest.json.sig b/artifacts/iqpilot_navd_private/manifest.json.sig index 03a720033..114214fef 100644 --- a/artifacts/iqpilot_navd_private/manifest.json.sig +++ b/artifacts/iqpilot_navd_private/manifest.json.sig @@ -1 +1 @@ -j1FfVkm/xulHA9W24Ipwnx3XKOZeoIp5yl+/iPAyKihtRp+NWavwvTQpdBgLKrprhskq4ihlY0g7ZPE2gjkJDg== +qir1it9kZm0rKWklTiwgR7rtCnv5YABlSkR4Mg+0lGlsBrw7mWRFJ81zSR+uOTgJllPAugTSzlAck8lHpXZCAQ== diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so index 2060125c32337d9d6656c3d767b4f35b4b2c71e6..ea6bc22dc2457e37b2f94294d826e5cd95b0c942 100755 GIT binary patch delta 39 vcmZ25fn~u2mJQ!jC5$c7Oe|B3(=1KQ%ngiF%uP)aO)X3l6F2jz2|WS;2Q3U} delta 39 vcmZ25fn~u2mJQ!jB}`3CElpBQQ`3?XP12H$43o_)QjN@vOg8hW2|WS;54#M% diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so index 7c4bfdfee8e2c76769f2c36f7ec22ff3e225282b..29ab7e266bc2916c9f591e394246f654cc5f64e0 100755 GIT binary patch delta 855 zcmYk4yKbB}5QSHN?IxACiWRs~6$~%KAuD&fSPqaX?Sh<3vAV82jJm)*Szj=0l^X%8(_WqjwKRm`piYgL>qzu*}S%wiV z7OTzM?P_ByK3iY(g|AoZAHH8@>1A{djDdSV8-aRgWb@(C1WSy~w5HY|Ye_x;%Yd%) z??=-gOR5p7W~xmKOU#Xeg~W9}Jf4n!8QNG1jap$eE(yE!D9{#*?b+q#M|be8Zdc#w z^`jHOQ9)u&IkdvDBgayt?wo&gT6+d&mro@@U_&dIEZ4>2O0TZgn~TSDMF=(Y&zQJD zi$bns#2Dw#Po{&~t74X_LV3ptNL8h@`1DMzj6)&}>uCU49H~R1`R9{qf62`=BSHs4 zG>126q-;9hy7qH{lp;qA#)XQ<&frmW{`X|MJ_c1MP~1%*wj5M;_Kp1E?Pb5Xvd!hW zL-FyDw~25ZP&nlT1tf{zhf4G9Yc~>6P?4)o(DHC939-j8|NVMeE+H{DNj+ohy)6l2J;8PI7&*-tN!;yqR9!{rT1OZpzM2leb*6 iWzMBHFLoF3{L2T(prw`$%~}N$DPfd&xBYs0|Na9P5A~Y> delta 855 zcmYL|zi$;u49AzPX{dM=7jz93njfC=xVkPRBqvePK6z{pJR$NRc?hL|yMh|gZA(pc z1xok>_CixvwvXN1X8qKYU%)zN6i8P z)3n~c*sZr?Esr-RJo)>2^ZeP`!?nlGRWvc6rfyUc=(2xr4y(*mM&+8o2x2RmDpLq$ zd3$euztSKC#Y!)cDp}8#kx^~gKbQ~x0PF^h%!Z_n7;9{zoN$_Uk59KRUBM&Ut)JNW ze@c39rleGbh7K=NM~Xn@hf)a2#vx*kg1rzWV$xQp>CDc~HrtaQbuwe9{RZV2x)m*n zP@t5$+&Y}^G|5e=CmWdZ0Cw%UGuqE3H+JeJpo^WMt3wc))&YG|3P z z1zc_&&3nJ8XHxU8-EWA&;-IVz;xx%-cmBVEtkE!c&`hmF=sd7Apyk!ke0zm~Q}*e5 ziwq75Its=dmy4tM&dNs+U}Ov${C4 za^UFp^BC4#E*~Dxt82edjKR^WPZ+5>#}qx2+ca%XHoLv$>+$^S{)WHOn-3s`xDCCN#&4Em6)(ago=i>>QMGhahlfk^zytm zvnV4v+HfB!17}Q1``b;pzn})}$&Oz%s1sMU2-C5ryMG&0(X}28@W_d&Hr=mo!_V&@ Doe4%0 delta 252 zcmXAhF-it85Jop(VPU_~#v8~?CYdC70V}VtWRe;93qc#}{}x*bmR456-pWd_HQ>i9 zzxU3cm*>fs+txL64=JE%l0tD%AB|zO{dIL8zK&!70U1%CHbMn8!oIV2?|wk9F-mTfz|Ja5`q zTN(;onx!6%p)uCu?Z(|-#6Ei_rNLd1%rcTn7RYL9cwF7OpWi=x CVMv1j diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so index 9959a9f073253e32197f34fe7a4f2a468c682345..7f1bd54fa535966a60f99c5740f1e0c4e444b39f 100755 GIT binary patch delta 620 zcmYk3KW>&W42PSoH|Q${#DtiT9ozY{bwTRH&h#mE9H|mes+}88BRE$xmQLnXRY^tr&Q3o%-PxYa=J5E# zCTaBKl4HaOB{3T_XVmrjJRB^9f|19(X_B%=>Y9>}u7A(NvY414se%{hHXJN<9@5sQ z7h!)H)lCyBX5a=?9NQ3rv3|S=FBUG9uqZ-{D6?d>A&eugzb?Y}Pf=+GNkMU`ma2gd zDLrki-<`ePY#!{na(76Ye15=`+N_eR@s{)Bi9K-U&{;r-dT9lWV=e+vw(qU?|9Rc4 zGq)Nw4(%u<&z6f8+kz)&`Uvz0)oOO4Q9)o}#L?P%|24oK%mf-Ep_pbNtkcd2)>oI| z%>k91Rg7^C-BQcBL1{!ZH*S?wb+4szySu**Prm#E1st-x delta 620 zcmYk3ziw4A42N&FzCn)|5EEiT&L1c7)&;2(JJV4d+fpTou6aH= z`!F{sAyyy3m#&a9nn);`m+PH7p47BK>tdpnO9p9*9tfAeJ2y?LgGMXH7`00stvJ_) z%hSC(nm7f|0}e8(n)KLm#UASNaqnJClp0j6YN=$c)GYg265#S{@4kQHwXh&Tpol7n z2sJhKtM$8!xAXj9uL&gP@mI1keh7~-&;75=vSs*j?;}9h&zI9Ss?!P)XEK-KKrZE%dnlg>nMdR}7 z(!Dt*i?y>T_0kdrOtlT^Y9pDG^KE5!-myk6MYjj@O>lk4P7NrDP{#-hLn8V06 za1Cl@1f4Jp8_?zDm3uasx1>FUVC*Xmo7T0LS{A!yd^n5p`<(e}m4z2-=jvJ0ln!OWSRsC_ZmBTS@ch!G=zuE8lj2emT;M566 z-!K3IwQ+nd4b_gUfTkRjsU;th9b!^XaRa! delta 210 zcmW-ayKMqN5I}DoQGtCSCCq+icQ)Z9NABV@!|X@|NFaz2U0g;$1q7Dpz<~pYu7NT* z@zN)~_qZ+|*TwnUomO8GHL*`oh%>WROb)BE7|A7;q|t`X}z@&Zi3*Ak}7;Ff)^T3W)U lMa77ct$CI$-v0-8d+S3sL8{pD>~g~bK?uR_mrwWm_XL~OJ$e8D diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so index ba49ab0f66f4b94f6871b077ee19b7b0690e1a8e..5cf37e9a9199c04d482994d92cb96698c3e42329 100755 GIT binary patch delta 427 zcmXYtOHN!t3`M(U?0_DjWCKx^%T=~F04yQ1r~26HmI&#j8!?L#euFF^ZvluMAh898 zD2vH3q6F>vJwEro+#kH$AN+iD|9&wRE)s;*2WmbN7lxDt7K>?Gf7?vTLR5WF)`p!d z1p>)X=TBGe;|XW(N>M}BLOmLfeD7t1x2vxgXMNgS)U)+=wTF4&ER7-bnz~1CEf$}& z&wsAm>NE*j%#F|taoCg;&B$=jzUWTBZ>OreOV#r|4HGaW>4}VDB0+$h67qa}?LI86 zBDv?_x=w4fG z3A7UUIp4U?hrLwqEdmRUt-RziY>elJ8&{S*+6qW)7@G#mFdhXA;pynsJ-a1D9gA~q T5qxafhvJ6^+SC6#_xJZJIB$II delta 427 zcmXYt&23ac5QKMb&cJ&@kO1oLnV#-Wz;+1So~GwVyOJ>ryOwVVY{P*7cmY^sfaDZ7 zS_H!p`3bh}_35j6dN_G{IQjH5{Q0b-sj}8g*i%fc0-(WJYzwG;DxE z5>`gQGQYkJug=j;M~x)`N(beX%}2JSyx+XLzHHO(+Ap{J%@H=#JAga%gq6CMY+YI$ z^Y`1ZxhTvzLP~=vNp4viBU^0??QK8w5Btgc;imViBaI2N#=$i%3fPU>;zB*oXLsS{ zS}E6oNL9Ng&nh6Tw$$g3cVTw{DGm{7-ii@98d)3${%`ix_ApJWWB%Wu#S#EF#Y`=a z$V!Wu^PKO)n^PgdhCp3n1SE;okebXt?n7BSmCAit=@2vK(jcltvBwu*!mqF%VB+dN T+5%;^;+Z+IKK}h0et&xgxTSoG diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so index a8c0f304315d445bd8d6cc7c575ecf38af700bf7..88d697ed88b4c289a058f66445c7cf2e45545e15 100755 GIT binary patch delta 127 zcmV~$u?@m75Cu>nWe8V@hCa6MzV9}nLbA{H2o$W51u_9b$`TpHFhMHBd&fE*>-4@4 z=T+IF%~^ai^HBn8&4%SME)KcP#vl@+T8x{qfWgaa+?+-V-MWevPAIoj?1@ Vl@2gTO)&;VLo)yg^Y;5buYZ%DDQExy delta 127 zcmWN=!41MN3;;kOb%?wWAO4OLH}NLCknGqQfd^}Jflh#sx&)&HCg=;nNw=@lzE02U z2tcBy^|KFqYQEDkWGR;}S%fGf>Tl#TA7Wx)Jv6_TS&B3atsTy%=4g3}o{Iox2Db2oQ^)Imx$Fp>oobjvikU!pCS;E7y*x%j j^A27BYoMq^jif@V|C&K_HMX81iuGUt=Imu#UeDtf#ThhA delta 162 zcmX}k%?ScQ3KkO%m{bcuUUS_S3Di(qy(MB&BYUeB=3~w{jwgkl`j#07*5IC0rV=g>= zjq4?2K=KGVXsi*7#h|R-HqCu}NE(}_@0U;O9>67MyJ|zUB?qi3HG_s>IybjhsEAoe zkiB+{mYGBlMoXVc+$>jj{r0i>&7UoDVoe+i?7~}Doa6!soLvU4 zgwE;+ujA&q{7VXWOj2yfMLh(s*`-Knm@dp~>$9!cSsFV4pVRoJ)q6aCFHCDrY$9>4 ekdM^at_z4(gg}~Rxms>dhxN5NKf;aKef$9N#%0(5 delta 362 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 diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so index fc1397f4c75ad5a47232f954640b2da75aac8750..269f3d7d6944635c97e8514191dc67f7e1c8f05a 100755 GIT binary patch delta 3238 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 WGYwNxOQHNOd_L`k&wuob3;zda;;Y*L diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so index 797c66875c98699072dab9ae81028a048c9e0edb..efe09b6cbf0cdac36a8a1d54afb3c317937e391c 100755 GIT binary patch delta 282 zcmXAiJxW7C6ooT_5J)hkZy9rE?))`k=Q195?hgrwMAY8SCA>NtkQ9Qw-~#Mifo0a< zgPi6RhwnSb!}54ozJ9p()wKyoZy^w>k1E|X`;KAyUO5_|Q|h@vL(L2v0%&D3oNm@` z7;-8xs%h!ec^)WbXf^5duy*w}Kmj23ShXjwW|BC0fW=}oedg`lCAVnr?REQP4BD|b7Za!_!K7Iks;!o-T diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so index fe7ec37ee4f10988a45577e35ad8e6127dcd8b95..7eabfab1c05bfb1a18f9130ea6170c4710c61915 100755 GIT binary patch delta 417 zcmXYtJ#G|15QV1`UIyk6bNBP(%sp zQ6LaYOZxVv#X{09zJX&$jC0g|BSAm4Hmd ziApg}pj0yq@z9pq4zVpMU$#2LIRChgE*Wo%3rS}bL+ot}!VuP*t(rzA%$l2FYKUH^ zQTUT&p0phF~;G4{qrmaiX{Y=3Qn{$LY0I|-(S*Atn;Cj<9xNe^F5bFs9H=B zD%e_RLRQ#^Gz^#X&*OA@*{M%z)VY-;Ox__vE~N)|T01;_-m5?A+!~#%NtGc}4#36h W{?VF;;Z1Q`pZ01xZNI8-zh4159d?ZX diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so index ee61109b53a629577544dafd74047c209befe29d..90b102d016d2e3906d5d7189bf57d6b0e2e6647e 100755 GIT binary patch delta 497 zcmXv~v2Ii`5PVL7Qc)rC$}1_?YkSwGqC)(|!@Kq>Nf8~=(VqAPs#npI9_c#j6bNyb zNQj@{3n=0s*lJg^Gn$#(oAcY7^ABI#?;o?2LfWu)q$Ei#X#oJ?^~uq_odc8}1&B37 zitOvawRl?hN0(-VF3F*Em6Y7vdpYf@<(J0O(x>B+sCF`75; zdqVNp5kil9>mv*4Ni}ZZp>e z(p%OTOmZP14N9rzb${o!Z>Z+eNVo*1o;DyuG>n@Fo2IF(p%$0xd;sP*^*RWKDE=bPBI0)MNrB=jb@9 zNK7C&FfE5uph*R&I}rCe&@snCux@bqehSZ~f#gO+RUsM^6ZY(qZFzhSFDB`xi8F)M z?%D@NT~n*eIEU@iOjgBMi*bzXq`5ExE}zcf<5VII(uh_Hu_+|>K`ra@@-A#AuU;vU zBdJ%ELZv$7Xv^U)>|Pa$np5=x!yT*8$Oe^svzh1Xx7Yi5-u$06zuV2Ddud6~v_vhG ztRPfOb%Fb^y-JBdM_h$jPGqA9WG>lO+VFk9`b%9YLS#MHhIv()09Qc8=(^dw-~qVu1l^ zS&r`y@$Pu>=4v_3;c)zLc@PGq=-G@+N~(~vTJqShZG}ytYs7F+R;L~E2K`T-`~Am?e-sU Cj*Z&@ delta 499 zcmXw#F>aMH5QKlH3Oy442@s{dUa##2QE~*j$F6rbJP}2YB%}mx@#hA-iYg)<+=63p z28^CE^=Rgsxj&xYAJ4x%gx}*uS7?GUn+y@N3{_&Pw*495-P=S}dMpBiYIbN*lDZCE zmi^VvFZUN8ZkLmGyZxubu7Y?eF=CFCTpHvi)jDr?8sdr|ELkfg^W>(HYs!Ui`=w!B zdxx$ChgT~#GY|CQ1%3Og;jjXAsmZibanwvDQyNNRyR-0WZ81Zq)HF8Fb4Fut!=r3J zExh?^np?M+&}MULQnQcFPo)?gT$@iBR;cRuI2p!O3sf>vV*l-bke7z5H_FTEoZ@JA>VrmJC_~XOJpvQmc Cl#rwV diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so index 57d368358b45ae8af621805a2b67da18686c8808..d1b636ff6e332462de200ee8c273a859c7b1e307 100755 GIT binary patch delta 567 zcmXw$zit#U5XSd>QACmSTV6wfgihoCGw+dpv1e?!NZcNK+b2RuRMgw?2sEJFTOghY z;S0Hu-OM-szMsaAKW`q}`Lg<@o>Wg@traYe99x~T!^A#lz5G_H?^CqUN=vj9Ld;@v z)~sdudsdwRQ&ULU>ujt>PlP@SE!(yF&_^`Td?Qi`EXGmPRa?g8$6CF6XlkSq1sF=m z9>g_s0qVM88j}o%G|k8ET*I*YbQq%dE`S7|5^GN!sI({1Ty(C%Rd0X|fT2dITdc+A z_j=n}$IY1U3(uR~akC%i&FR~f(yIrnt8rDcWk62FLnCrhxVhFT@w^-N&kUCo&#`(( z-ij?4k#hiF5}xOCNz-os{$>1ynoV_vxLP0E%^3sd&e#2BC1UF$UN2I48&@l0JQZ wr9NM|453&NKvx~RkVp)iaX)VVuef~#h6Gdzp^5~ZgZX-Qt4?>f>$f-m0N9e7od5s; delta 567 zcmXw0J&zMX4Bc!_CyKj1Wf}@36nQ>9^FOX%?6C)O64|iX{!R#qiaH%Xfd+K>7l>bk zm>d_&uAcS${NCfwo5$8)7QgzZer2h~HZDSP27#=AO1@yxJ_*Guj|3 zRnzhB8P!5jSxZ*U4uUHfbMna@H_QIRN}yyPG;lCEW@V=i2}O@Tmi@bjYEg(_aip9nijA<-I7!x^j!9iV$Dj2X97D_p(^%#+%>ZLl)!BuCSCeKaPej4xfO__&D_v18Q4wO>C zDMS~uCtrz@7>g{&dflfM2db^k5ELLIAnifMNT;Xk{?B6Nltf~639w2HzQseel0SWa w)qlS7C4g2=#j8g4kqzWfE1Md$r3EeS=+oD`+x~QSyL@}|4=(GU#{d8T diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so index 5dffe6c00984bbaef280e8bcbc79dafd1b57e8f2..a9b4505b8bb03beee06e593496c49342dfbed349 100755 GIT binary patch delta 4326 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 QfZ3g$N1yz8`Nx0$4~x5~!p7hnJLwO|e4x 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 RR`wPS@ZjS=Z~yqu{{iTNxIh2^ diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so index 4a7201d0eaf40795829ac8a46922d38ab364f1d0..8c8cf5edb58413f55173ad9fdbc0b7f8f7999d29 100755 GIT binary patch delta 524 zcmXv~D~?q`5S>Plr%;5sh6IVM{#92y6ms+=^T>Vm=}K_mPz1#mdIRIIgr^A!dN#nU z0YT6-Vr-pL=XZB|xVt@k`Wk-TY*(C;^Sqs1H<2rMKuYE1kc+2^2OjlC>?fQJmTU zh}jI;=HorQ+*|=zNQmQ*!fvP%y|(%KKPtQwb7FQKh!tR{jgCG)@8Q+fc?sK+v>tPA z-VnI-k>~v$wk-i!;!TS>i`tsbzF znJv`fXf!{b!i#I=2qO(E3{0j43{9xY#l^nAegAGxIkuu{UD#c`QtL61jt87&j93$D z%vE!&&b_YM<^1;)4q-zWZ{7k~{aGBS530M(K$KrJa(3H>5E&O=& V6b2G9bngVdc8-GS{Kv!b%Rj_OnwJ0o delta 524 zcmXw$p^lX?5JtBMautfOzac>)r|rzNbtvTOP4<%icBaz=2M$G0yh2}K9hPu4Awlm8 zu+M-XXa=!r#5ZkE&v$owxVt@k`Wk-TY=C2u;4rSSL{z0%jcQr5;ImO8#C+Zq$0H#we@)quQsEo zxx;83ScSlbG%hgK{T{Y0Wu zSt?mapJIt16#~Y#KAysh>q-N~C|72fiA%FWRYtzJ*!Q>Z-|ZDt9JeVtnHC21IPrMM z-H$5A%p aAK}NNr%hE%;w1AXAfdRw^Pd@xU;Y6OtCrdT diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so index 0aa2ead444309103d2d89ef0eb78d49cd35a3db8..362de49be6956e103a28a6fa17d555d7ed789f2c 100755 GIT binary patch delta 155 zcmWNK$qm9l3;=}`(E=+T)L=W_to@;c{CRp0mq8P0ASECr2ucavu-_SJ=2(Yg9bV@> za1@irP3v>je7QrZG8~VD(?aQz)!|S{S zMvzLZSaaza62YjPjpo}Hf*D}*giyf>A@LZ!IOKUca&&2s-3sQ^g)Bx^HjeXi`vze~ kL8hec)E$)z_mpUz-oMjDv{p!+8snk3yLQvI-apsJA4ID!nE(I) diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so index 26c33a4f6699891af01bb1c7a295b1df38f67c0c..6c5640a0590380ea46b9718db1335f1cf3cf5a78 100755 GIT binary patch delta 195 zcmWN}y^R7f5I|ug(Zjg`a(nFY*crOuLUIyTv*WQu#$OQ|U9uI>0TMYiP{txe4{ZGO zz2UkXuFKnIT2ttKp++eQ`JjM(g_;W*bJDY3j4@reKOVYV8Yp2vbUvhvoM%)dj{lRj z3O$tMnb=7oP)r`UfsBvI{&3+Gnp7VFLxAcE&7V4crmZCkSy)lCifc*$QMAVXzI#0v XHVe(EAtYo5j469{vGV=z{k!@Cm?1nL delta 195 zcmWm7v26n}3_wu@@D9-e?j`C-@j4?#%JgY+5GfLHXFD01dFkV#fCTAqpD81}NwrV~;J-@Uwu3B+$@6c{{pf1xU#f zSP46z$FF#mM;gyLpU?R2`tb2X@T`{R81bF!w0MkS4+V1S7RwE%{?efYAx zd+CihQlohX3yL5nY`OVv7a#YpU%fd3FavZ(6CuLdyMU?{^zHt|@@S1nLOwboTXD`_ zi*Zod&MuZGS~+@2!P1qP#&nz-UiGLg&8Y~LO5))~Ng|4gZ#Q##EnYa#pp9@hPgA~{ zDsO*h_kkEnYXc=^87)$u{;BHr_;Pu=0$}7UwMu1hF={HPQnqn9p?l65`!Lb!)h2#v zhKFE&&8}pY0Hkczv-hIY26@gOp<7o?u7~6;w`6rR?IUgfE*D!fLyVa=ka0^x=7XJj zO554hArC2J#6`4dO5W$*=7DgO&d3L%zz(^MS>{G9b(nsyu^851dFk!sD6o*ocCLumK9Xhi5#NX!uz`L=tFdpu8PjvI3-J z39N)2(BoIUZZx*fcXZC(_37R9>BYB`-^;yonoI?N1{AMZ1~;~xU3j2#@o-^=h zRp<6MrVkvMIzp}x(BwIB8kBH*e7QVbwV_&umb7*w6e}3%4Bq@QOxI+UdN0Gkbu{e4 z-XrwwS4`WW_^?0%NgCZIwIqec(X_W>Qv1jgWY&s!h(&$-ce%)F22nv$sAMe#VTdTU zxt(1_9!N5Ec7}!+L9}d%X-GawWA}FG+xzHB&=pL_Y<;`ATHdapS{g^&3`~?NwLB8S OJlKAC`|RuT{pWwZXsy2h diff --git a/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/carcontroller.py b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/carcontroller.py index b5f874385..6f87a30e6 100644 --- a/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/carcontroller.py +++ b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/carcontroller.py @@ -188,6 +188,11 @@ class MQBStandstillManager: self.prev_accel = accel return long_active, accel, stopping, starting, esp_starting_override, esp_stopping_override + +def accel_during_driver_override(accel: float, gas_pressed: bool, keep_long_active: bool) -> float: + return 0.0 if gas_pressed and keep_long_active else accel + + class CarController(CarControllerBase): def __init__(self, dbc_names, CP, CP_IQ): from iqpilot.system.proprietary_runtime._verified_import import import_verified_module @@ -458,11 +463,8 @@ class CarController(CarControllerBase): if self.CP.flags & (VolkswagenFlags.MEB | VolkswagenFlags.MQB_EVO): if self.frame % 2 == 0: - blinker_active = CS.left_blinker_active or CS.right_blinker_active - left_blinker = CC.leftBlinker if not blinker_active else False - right_blinker = CC.rightBlinker if not blinker_active else False can_sends.append(self.CCS.create_blinker_control(self.packer_pt, self.CAN.pt, CS.ea_hud_stock_values, CS.ea_control_stock_values, - left_blinker, right_blinker, self.hide_ea_error)) + CC.leftBlinker, CC.rightBlinker, self.hide_ea_error)) if self.CP.openpilotLongitudinalControl and self.CCS in (mqbcan, mlbcan) and not self.acc_counter_seeded and CS.acc_stock_counters: seed_msgs = ("ACC_01", "ACC_02") if self.CCS is mlbcan else ("ACC_02", "ACC_06", "ACC_07", "ACC_10") @@ -504,7 +506,7 @@ class CarController(CarControllerBase): stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < 0.25) long_active = CC.longActive - accel = actuators.accel + accel = accel_during_driver_override(actuators.accel, CS.out.gasPressed, self.CP_IQ.longActiveWithGasOverride) esp_starting_override = None esp_stopping_override = None diff --git a/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_driver_override.py b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_driver_override.py new file mode 100644 index 000000000..de9e1a372 --- /dev/null +++ b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_driver_override.py @@ -0,0 +1,17 @@ +""" +Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed under https://konn3kt.com/tos/ +""" + +import pytest + +from iqdbc.car.volkswagen.carcontroller import accel_during_driver_override + + +@pytest.mark.parametrize("accel", [-3.5, -0.5, 0.0, 0.5, 2.0]) +def test_opted_in_driver_override_sends_neutral_accel(accel): + assert accel_during_driver_override(accel, True, True) == 0.0 + + +@pytest.mark.parametrize("gas_pressed,keep_long_active", [(False, False), (False, True), (True, False)]) +def test_other_longitudinal_paths_preserve_accel(gas_pressed, keep_long_active): + assert accel_during_driver_override(-0.7, gas_pressed, keep_long_active) == -0.7 diff --git a/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_meb_nav_blinker.py b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_meb_nav_blinker.py new file mode 100644 index 000000000..9c126d7a6 --- /dev/null +++ b/artifacts/package_sources/iqdbc/iqdbc/car/volkswagen/tests/test_meb_nav_blinker.py @@ -0,0 +1,43 @@ +"""Copyright (c) IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved.""" + +from iqdbc.can import CANPacker, CANParser +from iqdbc.car.volkswagen import mebcan + + +EA_HUD_VALUES = { + "EA_Texte": 0, + "ACF_Lampe_Hands_Off": 0, + "EA_Infotainment_Anf": 0, + "EA_Tueren_Anf": 0, + "EA_Innenraumlicht_Anf": 0, + "zFAS_Warnblinken": 0, + "STP_Primaeranz": 0, + "EA_Bremslichtblinken": 0, + "EA_Blinken": 0, + "EA_Unknown": 0, +} +EA_CONTROL_VALUES = {"EA_Funktionsstatus": 2} + + +def blinker_values(dbc, requests): + packer = CANPacker(dbc) + parser = CANParser(dbc, [("EA_02", 50)], 0) + values = [] + for left, right in requests: + msg = mebcan.create_blinker_control( + packer, 0, EA_HUD_VALUES, EA_CONTROL_VALUES, left, right, False, + ) + parser.update([0, [msg]]) + values.append(int(parser.vl["EA_02"]["EA_Blinken"])) + return values + + +def test_nav_blinker_request_remains_asserted_until_released(): + requests = [(True, False)] * 100 + [(False, False)] + assert blinker_values("vw_meb", requests) == [1] * 100 + [0] + + +def test_nav_blinker_directions_on_meb_variants(): + requests = [(True, False), (False, True), (False, False)] + for dbc in ("vw_meb", "vw_meb_2024", "vw_mqbevo"): + assert blinker_values(dbc, requests) == [1, 2, 0] diff --git a/iqpilot/selfdrive/controls/controlsd.py b/iqpilot/selfdrive/controls/controlsd.py index ff0469d48..b067ecfdf 100755 --- a/iqpilot/selfdrive/controls/controlsd.py +++ b/iqpilot/selfdrive/controls/controlsd.py @@ -221,7 +221,7 @@ class Controls(IQControlsLayer): self.sm['iqNavState'] if self.sm.alive['iqNavState'] else None, self.navigation_enabled, self.nav_exit_lane_change, - CC.enabled and CC.latActive, + CC.latActive, CS.leftBlinker, CS.rightBlinker, CS.vEgo,