IQ.Pilot Release Commit @ 482798a

This commit is contained in:
IQ.Lvbs CI [bot]
2026-08-23 15:33:29 -05:00
parent 750892168c
commit 7954d43e00
53 changed files with 1020 additions and 515 deletions

View File

@@ -51,8 +51,8 @@
},
"python/_iqclosure/iqpilot/common/realtime.py": {
"mode": 420,
"sha256": "ff112acc1fdc227e2ffa4b0fa74f27b967a488bb72fe21c5be82fc70d1104f02",
"size": 3488
"sha256": "f137ef62c1602a1f7c329731883dc518c62288bd25596891858d460ae3209ae2",
"size": 3966
},
"python/_iqclosure/iqpilot/common/slc_utilities.py": {
"mode": 420,
@@ -186,7 +186,7 @@
},
"python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "09570dc0155dfac0ee0f43a7c648c0cdeff927d900616c67bd5fc427f910cfe6",
"sha256": "be5f9700cc95bf33007afb85745c5aef7d6de4f1f1e3971956bdf4f9c4524922",
"size": 67616
},
"python/iqpilot_private/navd/__init__.py": {
@@ -196,103 +196,103 @@
},
"python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "a97ae99ab0a40db0f484c2f160568f4d6490e27ad0f41bfe8db0e68fde7d4a7e",
"sha256": "c9bb61739b00f9b241d689851e671cf261001f2fe867802afa2c7ed47ec59eab",
"size": 202040
},
"python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "5ad083f16196c7bbfa31706c9b3e2838d3930ff99d902629bfe83dbb886da834",
"size": 136944
"sha256": "150db8f37b8237bfb2e145d9a3bd2e824f15238a21b5c84ba62498bbb0f83300",
"size": 136960
},
"python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "f605d2a075a54f849ef78a3e9bab17388e79c5c0c6fbcccbb9d220280ae80a7b",
"size": 135936
"sha256": "f945d8440598055e7de1902af3c99f4b58f42a664160c46a98d0b6c501e2ddb2",
"size": 135960
},
"python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "2a53684448796dae21cdf163408741682272319aeb25ba16dc8a01568d02c0c6",
"size": 135496
"sha256": "829175e4f8a14caf06dd5d7bc99fca728a34dd527625329f43138ff60af00105",
"size": 135528
},
"python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "21460301b6e7f50e6229120f69c014721cd7582988c180585ce62572b49fdbe4",
"size": 135608
"sha256": "f361ab42f1a8682a2c36c65ef2c2126d225d80fdcb7301b346b1566eb1248ca0",
"size": 135632
},
"python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "c3c26ee2723a170cf15e45ad2763b26bc94fb05f09f25e45ed45e0bce1ce84b9",
"size": 69728
"sha256": "f65a487d3316e672a3cce96dd1bf1f3629f5ae7d60529494e41420b3b5a7d0f9",
"size": 69752
},
"python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "abae4e7ff3ec6f32784708815f06e88d9f9e3db8613f997872240147faf76787",
"sha256": "638115c15efc7db1e33cf003eeadd5c1c416a0ada7d786df721ff2c03f99e3e9",
"size": 68144
},
"python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "b820fcdacd75f085cf59ca0275ccf54a8393f2ccd2318f7004169271f7b9de4d",
"size": 135576
"sha256": "205750c1ce62efe88c2de65c7be25ccbc3fe28055f147a262f65f3b440da1bfa",
"size": 135600
},
"python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "628d0c440e7b815a104a927a68c3fde36298482f5f4e2db7fb425fec4b038a4f",
"size": 135544
"sha256": "379f7bc251937da2c6edbb039ec249773c83c7145e19a5f375d9afa2a5bcffb7",
"size": 135560
},
"python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "17178f3c4e435def59d6a5217cf7017f3ac0ec0cc86112b79de7fb106555e150",
"size": 797272
"sha256": "0c43fd3566bfa772dde16209aeafa01a1831294d46d6b4b57b818aafb1729647",
"size": 797296
},
"python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "91485f5f804e78df018cc8f8e2141bcd4f195f72b1c5f90354be0048d3049dca",
"size": 135320
"sha256": "37c9074d18a0492d58c1176d2dade4d452c60d0f4e47d83d59ea859111629c6e",
"size": 135344
},
"python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "bcff7c84933fc8d9ddb9bf9bbbfc1fd5c88b56c8c38ecf10eb323d363812b3a0",
"size": 135560
"sha256": "fd74128599c4c4cc6a0d5c545430f292aceb9b0dadcda9b7a37c0a868176bb6a",
"size": 135584
},
"python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "037ecb86f7a34f858353d4f63b59d80e8882e33036f07e3fef9ef3f21f361df7",
"size": 136368
"sha256": "b8f93b885107e0c2a36b717bc3fa80873505c8a7d067861342dc33283f2052c0",
"size": 136392
},
"python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "f795ddf5145457fe03e998c9d59bb09cf92fdc7a131a5d9206c8de8e0211ca24",
"size": 136192
"sha256": "4c5a07107ba60783d67810def5dd4df285dbb67482ad239f48350e38a46b8e9e",
"size": 136216
},
"python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "a4901645dc73c97718056562a8ddb7054c755fb96527a16a81c0b74e3fe3cfc2",
"size": 203112
"sha256": "969d6d5b6f42193ff476b989b0dad034dd1a18d1633e8d1fb268f03b63b4ced2",
"size": 203136
},
"python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "e87493497fa8eb3a5d9515b348c288c5856c4ad1c5c8c3c48e96d380c12319af",
"size": 877832
"sha256": "bb9694f32928acfb5402dba9ca5a7755f44f3ab32078813991b6497dfe213d63",
"size": 877864
},
"python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "ac4def546038345a83c2a3bab96f49c7c356629cde881b741af83097f91d64c5",
"size": 135752
"sha256": "309f170a1f21ba35e8ff30680a582a959178622a236e8ecf52a92a932818ffd7",
"size": 135760
},
"python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "6d396fefa3abccf457233e601a50eb884b2c6c2b33d9176e6141c0a8f0d520db",
"size": 69704
"sha256": "4568e6b232a4f57d52152d04cfe819e0a3c614130a027ec46e881554dfe91355",
"size": 69720
},
"python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "769fa2929212886d99d6b38b0f9ae573a91245aad909f8330389de536effe7da",
"size": 69752
"sha256": "f8200244ca7a21c4593a1fc5ad4243ccfab49b6cf2b5e4a94d4a703a0b449d9a",
"size": 69768
},
"python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": {
"mode": 493,
"sha256": "3545b34b58014870e4ba11813f0a3a9361f8ecf4c179e9cac83b237fd8925eda",
"size": 201384
"sha256": "ed05513ace7c59ba86d3d9b813dd1b87efffd039424ec403fc87a47ecc2cb0e7",
"size": 201400
},
"runtime": {
"entries": {
@@ -331,26 +331,26 @@
}
},
"signatures": {
"python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "yl55nNL7twb8/AbcwWig55B0ZRl38OjDSOa3/KW75gCRXedL5+AuyqyfZoea1gvnaqIHIP4Un5mqGzBJbYxJCA==",
"python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": "HSfuPN8O3FYCdK1TgE2V8Xgp9sETxzD3WzOiZFkt9qwDj9EBQWvdeZfaWNsiayxBQn2j/CroPtt87caThEQBCw==",
"python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "s3METdDm+vPRPE6/AdtQwuMZgwPfuRS2RK7AtUa6GDbbrEEGUzJ65vF4gJwMGzDPYlXPm2/aXpQCozIF6nKnCQ==",
"python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "nFAKqKowI7kSPyh+fAG1yc6BArFr7VZe6Gihag1WRWrhCf872yynJvrrEvB+5ckIgxW/R+dR6IfqDT6zEng8Bw==",
"python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": "xVYK7jJkOWGok37YrhDGErg1LN9wAXg/G/vvXJTMwkS/aL/ntVT13mTj9+4fMfuED0j/xpORS9nXanQvuL9VBA==",
"python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "et1IszCWS1xeeq0DCiAHqh4wyKOywFUY1nvBwIwdrKvYEklddK3zF7YoVN5Z6rPluw2n1AEWlQE92JsY6curDg==",
"python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "99iE6KCnINCOnW5QU7NLRl+mGMtngCDpNiYekjKxkYhGf8EJVBysv0rUA9oVK8EbtymTgRcU1TwOEFbawDe6CA==",
"python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "EveeEaNk8Q++H+5XU5DyZavY+BDogi7053aR+EF/cuHjk5037bqndUCdaOIlKvqUdrVaiJcEOA2Mt+8yV6LpCQ==",
"python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "rHtL7+GUTm2VL8gSwnYtYqbOhmqFHUSa+/KJpfB8ncjkQYbDD6Uic6DGuSJzzk2BQN32LFB1sTlLDj4U+oOEDQ==",
"python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": "vQSmPNd7Dwsf/CwGcS/iL0pw4WxaKHXrU0O1Df2q3bBdwAkAMwN9DIou/tOQRtM5YqCtPO98qkX8Ut3Zp1dJCQ==",
"python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "pMr7NwjDNwma7y1mUf/ZAbl42LcKA7qvZdmG6o1flfHYGkXpzHnBsgTkmtJHW757rKYFWZYVwWs6tUeAiNnnDw==",
"python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": "SXTuhzNb1o/GPLhBR0MQj1CaZVxo74z3c/k3rlbeeYQgbip/uCLq2kEE3qtCgByD8T+of3Jz8Q6eD/+ldk6AAQ==",
"python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "IfGrgWQtLBnU0qHoqGzPxtyNGOVaWo0HE9UVe9j+zCtpqrdAySkoEAcjcKW6kH/5bEz7x23ZAL9xXvWpm2xBAw==",
"python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "QY17ZHn3PcCf6Qt8i5TM1sqfRCTZng9Rpln+UJpHycGidh7EsxrBtw1IHru9mkaL7SUrq1faBhneW6GsPoyIAA==",
"python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "e8lxcce1x0l44bOMcOj8Qhv8gxITV7YiIlY2pL9HWZx4QKy1Dfi5fbfZJgxGNaWKPZSLYBxvzcj9mV6Lxv7XBw==",
"python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": "cMi1i3Zdq6o8lycjJm/ehiPqGp1ROfMuLTge3ByIWdcLigeFMoWPeK1/jt/TDRqZa0nLtIEBB5Scd2tN+jgQBg==",
"python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "pYlvQW60hCPcNgXDF+AC9Gce2flCPgxrd2m4Trxhj7H+VeKheMjGE3ghiXK2L7tE7YT5p+iNqO0z+GMInNv3DQ==",
"python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "hp1fhtfzGO7YwllryCsnvweQd9A2o4fdDBeLNVfBEm3d1P/tROK7R7nLRIdlTK8/fc8rqxFHY5lYERyU9sN3AA==",
"python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": "5ApZT2zRewbOCe7iZuBMLzsUvc13iX5+1O28NSIIqgmd3OobJIZGuXxeit7CvsR2sucxJt9Xuw4QKFehHJ2sDw==",
"python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "RW9KnywXYAkZL+NM6tAqcTamMi8RA0wqoXntM1n3B851+PXrJF8ThLl6agHGawBqaKYLAPsehF7ayCN4mzmdAA==",
"python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "3iozDeFP76pN0cIDHohtBvYzr3KZW9vOHDI5H7da5bv+ZCDGMtrnhqWWt5ujnZExl29mPnerQ/3Ogm+y7Z4RCQ=="
"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=="
}
}

View File

@@ -1 +1 @@
11YORph+xdz7ZCuSqO+hm75pQoo2oQPoaspCpBitlCSZZSN0VXLqiL78R99dNIhYqt9A1GOb2slFFE0WDlVwBA==
j1FfVkm/xulHA9W24Ipwnx3XKOZeoIp5yl+/iPAyKihtRp+NWavwvTQpdBgLKrprhskq4ihlY0g7ZPE2gjkJDg==

View File

@@ -41,6 +41,12 @@ def config_realtime_process(cores: int | list[int], priority: int) -> None:
set_core_affinity(c)
def config_background_thread() -> None:
if sys.platform == 'linux' and not PC:
os.sched_setscheduler(0, os.SCHED_OTHER, os.sched_param(0))
set_core_affinity(list(range(os.cpu_count() or 1)))
def lock_memory() -> None:
"""mlockall this process so memory reclaim/compaction can't stall it. RT control
procs only (locking ui/modeld would worsen pressure). Best-effort."""
@@ -76,6 +82,13 @@ class Ratekeeper:
self.avg_dt = MovingAverage(100)
self.avg_dt.add_value(self._interval)
def reset(self) -> None:
self._remaining = 0.0
self._last_monitor_time = -1.
self._next_frame_time = -1.
self.avg_dt = MovingAverage(100)
self.avg_dt.add_value(self._interval)
@property
def frame(self) -> int:
return self._frame
@@ -84,6 +97,10 @@ class Ratekeeper:
def remaining(self) -> float:
return self._remaining
@property
def lag(self) -> float:
return max(0., -self._remaining)
@property
def lagging(self) -> bool:
expected_dt = self._interval * (1 / 0.9)

View File

@@ -366,7 +366,7 @@ class CarController(CarControllerBase):
min_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MIN)
max_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MAX)
target_power_driver = int(np.interp(CS.out.steeringTorque, [self.CCP.STEER_DRIVER_ALLOWANCE, self.CCP.STEER_DRIVER_MAX],
target_power_driver = int(np.interp(abs(CS.out.steeringTorque), [self.CCP.STEER_DRIVER_ALLOWANCE, self.CCP.STEER_DRIVER_MAX],
[self.CCP.STEERING_POWER_MAX, self.CCP.STEERING_POWER_MIN]))
target_power = int(np.interp(CS.out.vEgo, [0., 0.5], [self.CCP.STEERING_POWER_MIN, target_power_driver]))
steering_power = min(max(target_power, min_power), max_power)
@@ -486,7 +486,7 @@ class CarController(CarControllerBase):
acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, long_override)
acc_hold_type, self.acc_hold_ramp_counter = self.CCS.acc_hold_type(
CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping,
CS.esp_hold_confirmation, long_override, self.acc_hold_type_last, self.acc_hold_ramp_counter)
CS.esp_hold_confirmation, CS.out.vEgo, self.acc_hold_type_last, self.acc_hold_ramp_counter)
self.acc_hold_type_last = acc_hold_type
can_sends.extend(self.CCS.create_acc_accel_control(
self.packer_pt, self.CAN.pt, self.CP, CS.acc_type, CC.enabled,

View File

@@ -17,6 +17,7 @@ ACC_HMS_RELEASE = 4
ACC_HMS_HOLD = 1
ACC_HMS_NO_REQUEST = 0
ACC_HMS_RAMP_FRAMES = 5
ACC_HMS_RELEASE_SPEED = 5 * CV.KPH_TO_MS
ACC_HUD_ERROR = 6
ACC_HUD_OVERRIDE = 4
@@ -161,33 +162,34 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, override):
return acc_control
def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override,
def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, v_ego,
prev_acc_hold_type, ramp_counter):
# warning: car is reacting to hold mechanic even with long control off
# HALTEN or ANFAHREN straight to KEINE_ANFORDERUNG faults the car into park, so a ramp always sits
# in between: going inactive ramps for a fixed time, and a release while engaged ramps until the
# car is actually rolling
active = long_active and not acc_faulted
if acc_faulted:
acc_hold_type = ACC_HMS_NO_REQUEST # no hold request
elif not long_active:
acc_hold_type = ACC_HMS_NO_REQUEST # no hold request
elif override:
acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request
elif starting:
acc_hold_type = ACC_HMS_RELEASE # release request and startup
elif stopping or esp_hold:
acc_hold_type = ACC_HMS_HOLD # hold or hold request
else:
acc_hold_type = ACC_HMS_NO_REQUEST # no hold request
if acc_hold_type == ACC_HMS_HOLD:
ramp_counter = 0
elif prev_acc_hold_type == ACC_HMS_HOLD and acc_hold_type == ACC_HMS_NO_REQUEST:
acc_hold_type = ACC_HMS_RAMP_RELEASE
ramp_counter = ACC_HMS_RAMP_FRAMES
elif ramp_counter > 0:
if not active:
if ramp_counter > 0:
acc_hold_type = ACC_HMS_RAMP_RELEASE
ramp_counter -= 1
else:
pass
acc_hold_type = ACC_HMS_NO_REQUEST
else:
was_active = ramp_counter == ACC_HMS_RAMP_FRAMES
ramp_counter = ACC_HMS_RAMP_FRAMES
if stopping:
acc_hold_type = ACC_HMS_HOLD
elif starting:
acc_hold_type = ACC_HMS_RELEASE
else:
releasing = was_active and prev_acc_hold_type in (ACC_HMS_HOLD, ACC_HMS_RELEASE, ACC_HMS_RAMP_RELEASE)
if releasing and v_ego < ACC_HMS_RELEASE_SPEED:
acc_hold_type = ACC_HMS_RAMP_RELEASE
else:
acc_hold_type = ACC_HMS_NO_REQUEST
return acc_hold_type, ramp_counter

View File

@@ -398,6 +398,7 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"OfflineRoutingOnly", {PERSISTENT, BOOL, "0"}},
{"OfflineRoutingHost", {PERSISTENT, STRING, "http://127.0.0.1:8002"}},
{"EnableCurvatureController", {PERSISTENT, BOOL, "0"}},
{"EnableSmoothSteer", {PERSISTENT, BOOL, "0"}},
{"EnableSpeedLimitControl", {PERSISTENT, BOOL, "0"}},
{"MapCurveSpeedController", {PERSISTENT, BOOL, "0"}},
{"VisionCurveSpeedController", {PERSISTENT, BOOL, "0"}},

40
iqpilot/common/pt2.py Normal file
View File

@@ -0,0 +1,40 @@
import math
class PT2Filter:
def __init__(self, w0: float, zeta: float, dt: float):
self.w0 = w0
self.zeta = zeta
self.dt = dt
self.a1, self.a2, self.b0, self.b1, self.b2 = self._design(w0, zeta, dt)
self.y1 = 0.0
self.y2 = 0.0
self.u1 = 0.0
self.u2 = 0.0
@staticmethod
def _design(w0: float, zeta: float, dt: float):
# bilinear transform of H(s) = w0^2 / (s^2 + 2*zeta*w0*s + w0^2)
alpha = 2.0 / dt
a2_den = alpha**2 + (2.0 * zeta * w0 * alpha) + w0**2
a1_den = (-2.0 * alpha**2) + (2.0 * w0**2)
a0_den = alpha**2 - (2.0 * zeta * w0 * alpha) + w0**2
return (a1_den / a2_den, a0_den / a2_den,
w0**2 / a2_den, 2.0 * w0**2 / a2_den, w0**2 / a2_den)
def reset(self, value: float = 0.0) -> None:
self.y1 = value
self.y2 = value
self.u1 = value
self.u2 = value
def update(self, u: float) -> float:
y = (-self.a1 * self.y1) - (self.a2 * self.y2) + (self.b0 * u) + (self.b1 * self.u1) + (self.b2 * self.u2)
self.y2 = self.y1
self.y1 = y
self.u2 = self.u1
self.u1 = u
return y
def steady_state_steps(self) -> int:
return math.ceil((4.0 / (self.zeta * self.w0)) / self.dt)

View File

@@ -8,6 +8,7 @@ import iqpilot.cereal.messaging as messaging
from iqpilot.common.constants import CV
from iqpilot.common.iq_perf import PerfSample, PerfTraceEmitter, PerfTraceRing
from iqpilot.common.params import Params
from iqpilot.common.pt2 import PT2Filter
from iqpilot.common.realtime import config_realtime_process, lock_memory, DT_CTRL, Priority, Ratekeeper
from iqpilot.common.swaglog import cloudlog
@@ -45,6 +46,8 @@ CTRL_PHASE_WARN_US = 8_000
CTRL_TAIL_WARN_US = 8_000
CTRL_FLAG_MISSING_INPUTS = 1 << 0
CTRL_FLAG_RK_OVERRUN = 1 << 1
SMOOTH_STEER_W0 = 46.0
SMOOTH_STEER_ZETA = 1.0
LAT_SMOOTH_SECONDS = 0.0
@@ -77,6 +80,7 @@ class Controls(IQControlsLayer):
self._param_update_time = 0.0
self.enable_curvature_controller = False
self.enable_smooth_steer = False
self.enable_speed_limit_control = False
self.enable_speed_limit_predicative = False
self.enable_pred_react_to_speed_limits = False
@@ -94,6 +98,11 @@ class Controls(IQControlsLayer):
self.LoC = LongControl(self.CP, self.CP_IQ)
self.VM = VehicleModel(self.CP)
self.smooth_steer = PT2Filter(SMOOTH_STEER_W0, SMOOTH_STEER_ZETA, DT_CTRL)
self.is_curvature_car = self.CP.steerControlType == car.CarParams.SteerControlType.curvatureDEPRECATED
if self.is_curvature_car and self.params.get("EnableSmoothSteer") is None:
self.params.put_bool("EnableSmoothSteer", True)
self.LaC: LatControl
if self.CP.steerControlType in (car.CarParams.SteerControlType.angle, car.CarParams.SteerControlType.curvatureDEPRECATED):
self.LaC = LatControlAngle(self.CP, self.CP_IQ, self.CI, DT_CTRL)
@@ -119,6 +128,7 @@ class Controls(IQControlsLayer):
def _update_params(self) -> None:
self.enable_curvature_controller = self.params.get_bool("EnableCurvatureController")
self.enable_smooth_steer = self.params.get_bool("EnableSmoothSteer")
self.enable_speed_limit_control = self.params.get_bool("EnableSpeedLimitControl")
self.enable_speed_limit_predicative = self.params.get_bool("EnableSpeedLimitPredicative")
self.enable_pred_react_to_speed_limits = self.params.get_bool("EnableSLPredReactToSL")
@@ -225,6 +235,11 @@ class Controls(IQControlsLayer):
else:
new_desired_curvature = model_v2.action.desiredCurvature
if self.is_curvature_car and self.enable_smooth_steer and CC.latActive:
new_desired_curvature = self.smooth_steer.update(new_desired_curvature)
else:
self.smooth_steer.reset(new_desired_curvature)
lat_accel_override = bool(CS.gasPressed) or bool(self.sm['iqState'].aol.active)
self.desired_curvature, curvature_limited = clip_curvature(CS.vEgo, self.desired_curvature, new_desired_curvature, lp.roll, lat_accel_override)
lat_delay = lateral_action_delay(self.params, self.CP, self.sm["lateralDelay"].lateralDelay) + LAT_SMOOTH_SECONDS

View File

@@ -198,7 +198,8 @@ class MiciHomeLayout(Widget):
# Expect "version / branch / commit / date"; be tolerant of other formats
try:
version, branch, commit, date = description.split(" / ")
return version, branch, commit, date
# version/date/branch share one 536px line: the brand prefix and clock time push the branch off screen
return version.removeprefix(HOME_TITLE_TEXT).strip() or version, branch, commit, date.split(" ")[0]
except Exception:
return None

View File

@@ -321,7 +321,7 @@ class TargetBranchButton(BigButton):
class DisableUpdatesButton(BigButton):
def __init__(self):
super().__init__(tr("disable\nupdates"), tr("currently on"))
super().__init__(tr("automatic\nupdates"), tr("on"))
self.set_enabled(lambda: ui_state.is_offroad())
self.set_press_effect_enabled(False)
self._label.set_font_size(40)
@@ -335,8 +335,7 @@ class DisableUpdatesButton(BigButton):
def _sync_from_params(self):
disabled = ui_state.params.get_bool("DisableUpdates")
self.set_text(tr("enable\nupdates") if disabled else tr("disable\nupdates"))
self.set_value(tr("currently off") if disabled else tr("currently on"))
self.set_value(tr("off") if disabled else tr("on"))
def _update_state(self):
super()._update_state()

View File

@@ -80,6 +80,8 @@ class VehicleLayoutMici(NavScroller):
self._vw_lateral = BigParamControl(tr("lateral when cruise faulted"), "AllowLateralWhenLongUnavailable")
self._vw_mqb_acc_resume = BigParamControl(tr("MQB ACC resume"), "iqMqbAccResume")
self._vw_mqb_steering_lockout = BigParamControl(tr("MQB steering lockout"), "iqMqbSteeringLockout")
self._vw_curvature_controller = BigParamControl(tr("curvature controller"), "EnableCurvatureController")
self._vw_smooth_steer = BigParamControl(tr("smooth steering"), "EnableSmoothSteer")
self._tesla_vtb = BigParamControl(tr("virtual torque blending"), "IQTeslaTorqueBlend")
self._tesla_fsd_visualization = BigParamControl(tr("FSD visuals"), "IQTeslaFsdVisualization")
@@ -87,7 +89,8 @@ class VehicleLayoutMici(NavScroller):
"toyota": [self._toyota_long],
"hyundai": [self._hyundai_tuning],
"subaru": [self._subaru_snag, self._subaru_manual],
"volkswagen": [self._vw_pq_hca, self._vw_lateral, self._vw_mqb_acc_resume, self._vw_mqb_steering_lockout],
"volkswagen": [self._vw_pq_hca, self._vw_lateral, self._vw_mqb_acc_resume, self._vw_mqb_steering_lockout,
self._vw_curvature_controller, self._vw_smooth_steer],
"tesla": [self._tesla_vtb, self._tesla_fsd_visualization],
}
self._all_brand_widgets = [w for ws in self._brand_widgets.values() for w in ws]
@@ -123,6 +126,10 @@ class VehicleLayoutMici(NavScroller):
flags = self._vw_flags()
return not bool(flags & (VolkswagenFlags.PQ | VolkswagenFlags.MLB | VolkswagenFlags.MEB | VolkswagenFlags.MEB_GEN2 | VolkswagenFlags.MQB_EVO))
def _is_vw_curvature_car(self) -> bool:
from iqdbc.car.volkswagen.values import VolkswagenFlags
return bool(self._vw_flags() & (VolkswagenFlags.MEB | VolkswagenFlags.MQB_EVO))
def _supports_vw_lateral_when_faulted(self) -> bool:
from iqdbc.car.volkswagen.values import VolkswagenFlags
# PQ, MEB, MQB_EVO and base MQB all implement cruiseFaultLateralMode in carstate.py.
@@ -193,6 +200,7 @@ class VehicleLayoutMici(NavScroller):
uses_hca_status_toggle = self._uses_vw_hca_status_toggle()
is_mqb = self._is_vw_mqb()
supports_lateral_when_faulted = self._supports_vw_lateral_when_faulted()
is_curvature_car = self._is_vw_curvature_car()
visible = set(self._brand_widgets.get(brand, []))
for w in self._all_brand_widgets:
show = w in visible
@@ -202,6 +210,8 @@ class VehicleLayoutMici(NavScroller):
show = show and is_mqb
elif w is self._vw_lateral:
show = show and supports_lateral_when_faulted
elif w in (self._vw_curvature_controller, self._vw_smooth_steer):
show = show and is_curvature_car
w.set_visible(show)
if show:
w.refresh()

View File

@@ -1,7 +1,7 @@
import colorsys
import numpy as np
import pyray as rl
from iqpilot.cereal import messaging, car
from iqpilot.cereal import car
from dataclasses import dataclass, field
from iqpilot.common.params import Params
from iqpilot.common.filter_simple import FirstOrderFilter
@@ -9,7 +9,7 @@ from iqpilot.selfdrive.locationd.calibrationd import HEIGHT_INIT
from iqpilot.ui.onroad.hud_overlays import ChevronMetrics
from iqpilot.ui.onroad.lead_confidence import driving_confidence
from iqpilot.selfdrive.locationd.calibration_helpers import get_render_path_height
from iqpilot.selfdrive.ui.ui_state import ui_state, UIStatus
from iqpilot.selfdrive.ui.ui_state import ui_state, UIStatus, log_param_from_bytes
from iqpilot.selfdrive.ui.mici.onroad import blend_colors
from iqpilot.system.ui.lib.application import gui_app
from iqpilot.system.ui.lib.shader_polygon import draw_polygon, Gradient
@@ -94,8 +94,7 @@ class ModelRenderer(Widget):
)
# Get longitudinal control setting from car parameters
if car_params := Params().get("CarParams"):
cp = messaging.log_from_bytes(car_params, car.CarParams)
if (cp := log_param_from_bytes(Params(), "CarParams", car.CarParams)) is not None:
self._longitudinal_control = cp.openpilotLongitudinalControl
def set_transform(self, transform: np.ndarray):

View File

@@ -1,13 +1,13 @@
import colorsys
import numpy as np
import pyray as rl
from iqpilot.cereal import messaging, car, custom
from iqpilot.cereal import car, custom
from dataclasses import dataclass, field
from iqpilot.common.filter_simple import FirstOrderFilter
from iqpilot.common.params import Params
from iqpilot.selfdrive.locationd.calibrationd import HEIGHT_INIT
from iqpilot.selfdrive.locationd.calibration_helpers import get_render_path_height
from iqpilot.selfdrive.ui.ui_state import ui_state
from iqpilot.selfdrive.ui.ui_state import ui_state, log_param_from_bytes
from iqpilot.system.ui.lib.application import gui_app
from iqpilot.system.ui.lib.shader_polygon import draw_polygon, Gradient
from iqpilot.system.ui.widgets import Widget
@@ -108,8 +108,7 @@ class ModelRenderer(Widget):
)
# Get longitudinal control setting from car parameters
if car_params := Params().get("CarParams"):
cp = messaging.log_from_bytes(car_params, car.CarParams)
if (cp := log_param_from_bytes(Params(), "CarParams", car.CarParams)) is not None:
self._longitudinal_control = cp.openpilotLongitudinalControl
def set_transform(self, transform: np.ndarray):

View File

@@ -2026,6 +2026,7 @@ msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr ""
@@ -2665,29 +2666,16 @@ msgid "target branch"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"automatic\n"
"updates"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently off"
msgid "on"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:353
@@ -3986,6 +3974,39 @@ msgid ""
"speed LKAS faults."
msgstr ""
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr ""
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr ""
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "curvature controller"
msgstr ""
#: iqpilot/ui/layouts/settings/iq_panels.py:2369
#, python-brace-format
msgid "PQ HCA Status 7 Mode"

View File

@@ -450,6 +450,15 @@ msgstr "مسح ذاكرة النموذج المحدد وتنزيله مرة أخ
msgid "Close"
msgstr "إغلاق"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"يغلق حلقة التوجيه في مركبات MEB وMQB Evo. يصحّح IQ.Pilot أمر التوجيه بناءً "
"على الانحناء الفعلي للسيارة بدلاً من إرسال الانحناء المخطط مباشرةً."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -579,6 +588,11 @@ msgstr "مثبّت السرعة"
msgid "Current Version"
msgstr "الإصدار الحالي"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "متحكم الانحناء"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1570,6 +1584,15 @@ msgstr "استباق أدنى"
msgid "Low-Speed Turn Planning"
msgstr "تخطيط الانعطاف عند السرعات المنخفضة"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"يمرّر الانحناء المخطط عبر مرشّح تمرير منخفض قبل وصوله إلى صندوق التوجيه في "
"مركبات MEB وMQB Evo، ما يخفّف التذبذب الجانبي. مفعّل افتراضيًا لهذه "
"السيارات."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2554,6 +2577,11 @@ msgstr ""
"يعرض اسم الطريق الحالي فوق عرض القيادة.<br>يتطلب تثبيت بيانات الخرائط دون "
"اتصال لمنطقتك."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "توجيه سلس"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3200,6 +3228,15 @@ msgstr "تلقائي"
msgid "auto dark"
msgstr "تلقائي داكن"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"التحديثات\n"
"التلقائية"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3305,16 +3342,10 @@ msgstr "الانطلاق من الثبات (تجريبي)"
msgid "cruise"
msgstr "مثبّت السرعة"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "معطّل حاليًا"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "مفعّل حاليًا"
msgid "curvature controller"
msgstr "متحكم الانحناء"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3355,16 +3386,6 @@ msgstr "الجهاز"
msgid "device ID"
msgstr "معرّف الجهاز"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"تعطيل\n"
"التحديثات"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3444,15 +3465,6 @@ msgstr "ديناميكي"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"تفعيل\n"
"التحديثات"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3744,6 +3756,7 @@ msgstr "لمسة على المقود"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "إيقاف"
@@ -3753,6 +3766,12 @@ msgstr "إيقاف"
msgid "offline"
msgstr "غير متصل"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "تشغيل"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4008,6 +4027,11 @@ msgstr ""
msgid "slow"
msgstr "بطيء"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "توجيه سلس"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -454,6 +454,16 @@ msgstr "Cache des gewählten Modells leeren und erneut herunterladen?"
msgid "Close"
msgstr "Schließen"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Schließt den Lenkregelkreis bei MEB- und MQB-Evo-Fahrzeugen. IQ.Pilot "
"korrigiert seinen Lenkbefehl anhand der Krümmung, die das Fahrzeug "
"tatsächlich fährt, statt die geplante Krümmung direkt durchzureichen."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -586,6 +596,11 @@ msgstr "Tempomat"
msgid "Current Version"
msgstr "Aktuelle Version"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Krümmungsregler"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1595,6 +1610,15 @@ msgstr "vorausschau niedriger"
msgid "Low-Speed Turn Planning"
msgstr "Abbiegeplanung bei niedriger Geschwindigkeit"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Filtert die geplante Krümmung bei MEB- und MQB-Evo-Fahrzeugen tiefpass, "
"bevor sie die Lenkung erreicht, und dämpft so seitliches Pendeln. Für "
"diese Fahrzeuge standardmäßig an."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2600,6 +2624,11 @@ msgstr ""
"Zeigt den Namen der aktuellen Straße über der Fahransicht.<br>Erfordert "
"installierte Offline-Kartendaten für deine Region."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Sanfte Lenkung"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3266,6 +3295,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto dunkel"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"automatische\n"
"Updates"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3371,16 +3409,10 @@ msgstr "anfahren aus dem stand (beta)"
msgid "cruise"
msgstr "tempomat"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "derzeit aus"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "derzeit an"
msgid "curvature controller"
msgstr "krümmungsregler"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3421,16 +3453,6 @@ msgstr "gerät"
msgid "device ID"
msgstr "geräte-ID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"updates\n"
"deaktivieren"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3510,15 +3532,6 @@ msgstr "dynamisch"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"updates\n"
"aktivieren"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3810,6 +3823,7 @@ msgstr "lenkimpuls"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "aus"
@@ -3819,6 +3833,12 @@ msgstr "aus"
msgid "offline"
msgstr "offline"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "an"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4074,6 +4094,11 @@ msgstr ""
msgid "slow"
msgstr "langsam"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "sanfte lenkung"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -450,6 +450,16 @@ msgstr "Clear the selected model cache and download it again?"
msgid "Close"
msgstr "Close"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -580,6 +590,11 @@ msgstr "Cruise"
msgid "Current Version"
msgstr "Current Version"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Curvature Controller"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1577,6 +1592,14 @@ msgstr "Lookahead Lower"
msgid "Low-Speed Turn Planning"
msgstr "Low-Speed Turn Planning"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2567,6 +2590,11 @@ msgstr ""
"Show the current road's name over the driving view.<br>Requires offline map "
"data for your region to be installed."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Smooth Steering"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3225,6 +3253,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto dark"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"automatic\n"
"updates"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3330,16 +3367,10 @@ msgstr "creep from standstill (beta)"
msgid "cruise"
msgstr "cruise"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "currently off"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "currently on"
msgid "curvature controller"
msgstr "curvature controller"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3380,16 +3411,6 @@ msgstr "device"
msgid "device ID"
msgstr "device ID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"disable\n"
"updates"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3469,15 +3490,6 @@ msgstr "dynamic"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"enable\n"
"updates"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3769,6 +3781,7 @@ msgstr "nudge"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "off"
@@ -3778,6 +3791,12 @@ msgstr "off"
msgid "offline"
msgstr "offline"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "on"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4033,6 +4052,11 @@ msgstr ""
msgid "slow"
msgstr "slow"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "smooth steering"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -453,6 +453,16 @@ msgstr "¿Vaciar la caché del modelo seleccionado y volver a descargarlo?"
msgid "Close"
msgstr "Cerrar"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Cierra el lazo de dirección en vehículos MEB y MQB Evo. IQ.Pilot corrige "
"su comando de dirección según la curvatura que el coche mantiene "
"realmente, en lugar de enviar la curvatura planificada directamente."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -585,6 +595,11 @@ msgstr "Crucero"
msgid "Current Version"
msgstr "Versión actual"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Controlador de curvatura"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1601,6 +1616,15 @@ msgstr "anticipación menor"
msgid "Low-Speed Turn Planning"
msgstr "Planificación de giros a baja velocidad"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Filtra la curvatura planificada con un paso bajo antes de que llegue a la "
"cremallera en vehículos MEB y MQB Evo, lo que amortigua la oscilación "
"lateral. Activado por defecto en estos coches."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2603,6 +2627,11 @@ msgstr ""
"Muestra el nombre de la vía actual sobre la vista de conducción.<br>Requiere"
" tener instalados los mapas sin conexión de tu región."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Dirección suave"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3271,6 +3300,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto oscuro"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"actualizaciones\n"
"automáticas"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3376,16 +3414,10 @@ msgstr "arranque suave (beta)"
msgid "cruise"
msgstr "crucero"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "actualmente desactivado"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "actualmente activado"
msgid "curvature controller"
msgstr "controlador de curvatura"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3426,16 +3458,6 @@ msgstr "dispositivo"
msgid "device ID"
msgstr "ID del dispositivo"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"desactivar\n"
"actualizaciones"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3515,15 +3537,6 @@ msgstr "dinámico"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"activar\n"
"actualizaciones"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3815,6 +3828,7 @@ msgstr "toque de volante"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "apagado"
@@ -3824,6 +3838,12 @@ msgstr "apagado"
msgid "offline"
msgstr "sin conexión"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "encendido"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4079,6 +4099,11 @@ msgstr ""
msgid "slow"
msgstr "lento"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "dirección suave"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -455,6 +455,16 @@ msgstr "Vider le cache du modèle sélectionné et le retélécharger ?"
msgid "Close"
msgstr "Fermer"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Ferme la boucle de direction sur les véhicules MEB et MQB Evo. IQ.Pilot "
"corrige sa commande de direction en fonction de la courbure réellement "
"suivie par la voiture, au lieu d'envoyer directement la courbure planifiée."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -587,6 +597,11 @@ msgstr "Régulateur"
msgid "Current Version"
msgstr "Version actuelle"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Contrôleur de courbure"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1605,6 +1620,15 @@ msgstr "anticipation plus basse"
msgid "Low-Speed Turn Planning"
msgstr "Planification des virages à basse vitesse"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Filtre la courbure planifiée en passe-bas avant qu'elle n'atteigne la "
"crémaillère sur les véhicules MEB et MQB Evo, ce qui amortit les "
"oscillations latérales. Activé par défaut sur ces voitures."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2617,6 +2641,11 @@ msgstr ""
"Affiche le nom de la route actuelle sur la vue de conduite.<br>Nécessite "
"l'installation des cartes hors ligne de votre région."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Direction douce"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3288,6 +3317,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto sombre"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"mises à jour\n"
"automatiques"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3393,16 +3431,10 @@ msgstr "démarrage en douceur (bêta)"
msgid "cruise"
msgstr "régulateur"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "actuellement désactivé"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "actuellement activé"
msgid "curvature controller"
msgstr "contrôleur de courbure"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3443,16 +3475,6 @@ msgstr "appareil"
msgid "device ID"
msgstr "ID appareil"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"désactiver les\n"
"mises à jour"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3532,15 +3554,6 @@ msgstr "dynamique"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"activer les\n"
"mises à jour"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3832,6 +3845,7 @@ msgstr "impulsion"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "arrêt"
@@ -3841,6 +3855,12 @@ msgstr "arrêt"
msgid "offline"
msgstr "hors ligne"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "marche"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4096,6 +4116,11 @@ msgstr ""
msgid "slow"
msgstr "lent"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "direction douce"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -437,6 +437,15 @@ msgstr "選択したモデルのキャッシュを消去して再ダウンロー
msgid "Close"
msgstr "閉じる"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"MEB および MQB Evo 車両でステアリング制御を閉ループにします。IQ.Pilot "
"は計画した曲率をそのまま送るのではなく、車両が実際に描いている曲率に合わせて操舵指令を補正します。"
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -562,6 +571,11 @@ msgstr "クルーズ"
msgid "Current Version"
msgstr "現在のバージョン"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "曲率コントローラー"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1513,6 +1527,14 @@ msgstr "先読みを短く"
msgid "Low-Speed Turn Planning"
msgstr "低速時の右左折プランニング"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"MEB および MQB Evo "
"車両で、計画した曲率をステアリングラックに送る前にローパスフィルタで処理し、横方向のふらつきを抑えます。これらの車では既定で有効です。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2469,6 +2491,11 @@ msgid ""
"data for your region to be installed."
msgstr "現在の道路名を走行画面上に表示します。<br>お使いの地域のオフライン地図データがインストールされている必要があります。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "スムーズステアリング"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3096,6 +3123,15 @@ msgstr "自動"
msgid "auto dark"
msgstr "自動(暗)"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"自動\n"
"アップデート"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3201,16 +3237,10 @@ msgstr "停止からのクリープ(ベータ)"
msgid "cruise"
msgstr "クルーズ"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "現在オフ"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "現在オン"
msgid "curvature controller"
msgstr "曲率コントローラー"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3251,16 +3281,6 @@ msgstr "デバイス"
msgid "device ID"
msgstr "デバイスID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"アップデートを\n"
"無効化"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3340,15 +3360,6 @@ msgstr "ダイナミック"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"アップデートを\n"
"有効化"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3640,6 +3651,7 @@ msgstr "ハンドル操作"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "オフ"
@@ -3649,6 +3661,12 @@ msgstr "オフ"
msgid "offline"
msgstr "オフライン"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "オン"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -3904,6 +3922,11 @@ msgstr ""
msgid "slow"
msgstr "遅い"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "スムーズステアリング"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -439,6 +439,15 @@ msgstr "선택한 모델의 캐시를 비우고 다시 다운로드할까요?"
msgid "Close"
msgstr "닫기"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"MEB 및 MQB Evo 차량에서 조향 제어를 폐루프로 동작시킵니다. IQ.Pilot이 계획한 곡률을 그대로 보내지 않고 차량이 "
"실제로 유지하는 곡률에 맞춰 조향 명령을 보정합니다."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -566,6 +575,11 @@ msgstr "크루즈"
msgid "Current Version"
msgstr "현재 버전"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "곡률 컨트롤러"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1528,6 +1542,14 @@ msgstr "예측 거리 줄이기"
msgid "Low-Speed Turn Planning"
msgstr "저속 회전 경로 계획"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"MEB 및 MQB Evo 차량에서 계획한 곡률을 스티어링 랙에 보내기 전에 저역 통과 필터로 처리해 좌우 흔들림을 줄입니다. 해당 "
"차량에서는 기본으로 켜집니다."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2490,6 +2512,11 @@ msgid ""
"data for your region to be installed."
msgstr "현재 도로 이름을 주행 화면 위에 표시합니다.<br>해당 지역의 오프라인 지도 데이터가 설치되어 있어야 합니다."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "부드러운 조향"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3118,6 +3145,15 @@ msgstr "자동"
msgid "auto dark"
msgstr "자동 어둡게"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"자동\n"
"업데이트"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3223,16 +3259,10 @@ msgstr "정지 상태에서 출발 (베타)"
msgid "cruise"
msgstr "크루즈"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "현재 꺼짐"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "현재 켜짐"
msgid "curvature controller"
msgstr "곡률 컨트롤러"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3273,16 +3303,6 @@ msgstr "기기"
msgid "device ID"
msgstr "기기 ID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"업데이트\n"
"끄기"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3362,15 +3382,6 @@ msgstr "다이내믹"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"업데이트\n"
"켜기"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3662,6 +3673,7 @@ msgstr "핸들 조작"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "끄기"
@@ -3671,6 +3683,12 @@ msgstr "끄기"
msgid "offline"
msgstr "오프라인"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "켜기"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -3926,6 +3944,11 @@ msgstr ""
msgid "slow"
msgstr "느림"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "부드러운 조향"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -455,6 +455,16 @@ msgstr "Wyczyścić pamięć wybranego modelu i pobrać go ponownie?"
msgid "Close"
msgstr "Zamknij"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Zamyka pętlę sterowania kierownicą w pojazdach MEB i MQB Evo. IQ.Pilot "
"koryguje polecenie skrętu względem krzywizny, którą samochód faktycznie "
"utrzymuje, zamiast wysyłać zaplanowaną krzywiznę wprost."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -587,6 +597,11 @@ msgstr "Tempomat"
msgid "Current Version"
msgstr "Bieżąca wersja"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Regulator krzywizny"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1597,6 +1612,15 @@ msgstr "wyprzedzenie w dół"
msgid "Low-Speed Turn Planning"
msgstr "Planowanie skrętu przy niskiej prędkości"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Filtruje dolnoprzepustowo zaplanowaną krzywiznę, zanim trafi do "
"przekładni, w pojazdach MEB i MQB Evo, co tłumi boczne kołysanie. "
"Domyślnie włączone w tych autach."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2599,6 +2623,11 @@ msgstr ""
"Pokazuje nazwę bieżącej drogi na widoku jazdy.<br>Wymaga zainstalowanych map"
" offline dla Twojego regionu."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Płynne kierowanie"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3263,6 +3292,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto ciemny"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"automatyczne\n"
"aktualizacje"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3368,16 +3406,10 @@ msgstr "ruszanie z postoju (beta)"
msgid "cruise"
msgstr "tempomat"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "obecnie wyłączone"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "obecnie włączone"
msgid "curvature controller"
msgstr "regulator krzywizny"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3418,16 +3450,6 @@ msgstr "urządzenie"
msgid "device ID"
msgstr "ID urządzenia"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"wyłącz\n"
"aktualizacje"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3507,15 +3529,6 @@ msgstr "dynamiczny"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"włącz\n"
"aktualizacje"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3807,6 +3820,7 @@ msgstr "poruszenie"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "wył."
@@ -3816,6 +3830,12 @@ msgstr "wył."
msgid "offline"
msgstr "offline"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "wł."
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4071,6 +4091,11 @@ msgstr ""
msgid "slow"
msgstr "wolno"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "płynne kierowanie"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -455,6 +455,16 @@ msgstr "Limpar o cache do modelo selecionado e baixá-lo novamente?"
msgid "Close"
msgstr "Fechar"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Fecha a malha de direção em veículos MEB e MQB Evo. O IQ.Pilot corrige o "
"comando de direção com base na curvatura que o carro realmente mantém, em "
"vez de enviar a curvatura planejada diretamente."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -586,6 +596,11 @@ msgstr "Piloto automático"
msgid "Current Version"
msgstr "Versão Atual"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Controlador de curvatura"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1598,6 +1613,15 @@ msgstr "antecipação menor"
msgid "Low-Speed Turn Planning"
msgstr "Planejamento de curva em baixa velocidade"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Filtra a curvatura planejada com um passa-baixa antes de chegar à "
"cremalheira em veículos MEB e MQB Evo, amortecendo a oscilação lateral. "
"Ligado por padrão nesses carros."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2598,6 +2622,11 @@ msgstr ""
"Mostra o nome da via atual sobre a visão de condução.<br>Requer mapas "
"offline da sua região instalados."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Direção suave"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3265,6 +3294,15 @@ msgstr "auto"
msgid "auto dark"
msgstr "auto escuro"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"atualizações\n"
"automáticas"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3370,16 +3408,10 @@ msgstr "arrancada suave (beta)"
msgid "cruise"
msgstr "piloto automático"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "atualmente desligado"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "atualmente ligado"
msgid "curvature controller"
msgstr "controlador de curvatura"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3420,16 +3452,6 @@ msgstr "dispositivo"
msgid "device ID"
msgstr "ID do dispositivo"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"desativar\n"
"atualizações"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3509,15 +3531,6 @@ msgstr "dinâmico"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"ativar\n"
"atualizações"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3809,6 +3822,7 @@ msgstr "toque no volante"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "desl."
@@ -3818,6 +3832,12 @@ msgstr "desl."
msgid "offline"
msgstr "offline"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "lig."
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4073,6 +4093,11 @@ msgstr ""
msgid "slow"
msgstr "lento"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "direção suave"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -450,6 +450,16 @@ msgstr "ล้างแคชของโมเดลที่เลือกแ
msgid "Close"
msgstr "ปิด"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"ปิดลูปควบคุมพวงมาลัยในรถ MEB และ MQB Evo โดย IQ.Pilot "
"จะแก้ไขคำสั่งบังคับเลี้ยวตามความโค้งที่รถทำได้จริง "
"แทนการส่งความโค้งที่วางแผนไว้ออกไปตรง ๆ"
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -580,6 +590,11 @@ msgstr "ครูซคอนโทรล"
msgid "Current Version"
msgstr "เวอร์ชันปัจจุบัน"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "ตัวควบคุมความโค้ง"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1570,6 +1585,15 @@ msgstr "มองล่วงหน้าน้อยลง"
msgid "Low-Speed Turn Planning"
msgstr "การวางแผนเลี้ยวที่ความเร็วต่ำ"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"กรองความโค้งที่วางแผนไว้ด้วยตัวกรองความถี่ต่ำก่อนส่งไปยังแร็คพวงมาลัยในรถ "
"MEB และ MQB Evo เพื่อลดอาการส่ายด้านข้าง "
"เปิดใช้งานโดยค่าเริ่มต้นสำหรับรถเหล่านี้"
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2557,6 +2581,11 @@ msgid ""
msgstr ""
"แสดงชื่อถนนปัจจุบันทับภาพขับขี่<br>ต้องติดตั้งข้อมูลแผนที่ออฟไลน์สำหรับภูมิภาคของคุณ"
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "การบังคับเลี้ยวที่นุ่มนวล"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3205,6 +3234,15 @@ msgstr "อัตโนมัติ"
msgid "auto dark"
msgstr "อัตโนมัติมืด"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"อัปเดต\n"
"อัตโนมัติ"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3310,16 +3348,10 @@ msgstr "ค่อย ๆ เคลื่อนจากจุดหยุด (
msgid "cruise"
msgstr "ครูซคอนโทรล"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "ขณะนี้ปิดอยู่"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "ขณะนี้เปิดอยู่"
msgid "curvature controller"
msgstr "ตัวควบคุมความโค้ง"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3360,16 +3392,6 @@ msgstr "อุปกรณ์"
msgid "device ID"
msgstr "รหัสอุปกรณ์"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"ปิด\n"
"การอัปเดต"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3449,15 +3471,6 @@ msgstr "ไดนามิก"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"เปิด\n"
"การอัปเดต"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3749,6 +3762,7 @@ msgstr "ขยับพวงมาลัย"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "ปิด"
@@ -3758,6 +3772,12 @@ msgstr "ปิด"
msgid "offline"
msgstr "ออฟไลน์"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "เปิด"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4013,6 +4033,11 @@ msgstr ""
msgid "slow"
msgstr "ช้า"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "การบังคับเลี้ยวที่นุ่มนวล"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -452,6 +452,16 @@ msgstr "Seçili modelin önbelleği temizlenip yeniden indirilsin mi?"
msgid "Close"
msgstr "Kapat"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"MEB ve MQB Evo araçlarda direksiyon kontrolünü kapalı çevrim yapar. "
"IQ.Pilot planlanan eğriliği doğrudan göndermek yerine, aracın gerçekte "
"tuttuğu eğriliğe göre direksiyon komutunu düzeltir."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -582,6 +592,11 @@ msgstr "Hız sabitleyici"
msgid "Current Version"
msgstr "Geçerli Sürüm"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Eğrilik Denetleyicisi"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1583,6 +1598,15 @@ msgstr "daha düşük öngörü"
msgid "Low-Speed Turn Planning"
msgstr "Düşük hızda dönüş planlaması"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"MEB ve MQB Evo araçlarda planlanan eğriliği direksiyon kutusuna ulaşmadan "
"önce alçak geçiren filtreden geçirir ve yanal salınımı söndürür. Bu "
"araçlarda varsayılan olarak açıktır."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2579,6 +2603,11 @@ msgstr ""
"Geçerli yolun adını sürüş görünümünün üzerinde gösterir.<br>Bölgeniz için "
"çevrimdışı harita verisinin kurulu olmasını gerektirir."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Yumuşak Direksiyon"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3240,6 +3269,15 @@ msgstr "otomatik"
msgid "auto dark"
msgstr "otomatik koyu"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"otomatik\n"
"güncellemeler"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3345,16 +3383,10 @@ msgstr "duraktan yavaş kalkış (beta)"
msgid "cruise"
msgstr "hız sabitleyici"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "şu anda kapalı"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "şu anda açık"
msgid "curvature controller"
msgstr "eğrilik denetleyicisi"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3395,16 +3427,6 @@ msgstr "cihaz"
msgid "device ID"
msgstr "cihaz kimliği"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"güncellemeleri\n"
"kapat"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3484,15 +3506,6 @@ msgstr "dinamik"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"güncellemeleri\n"
"aç"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3784,6 +3797,7 @@ msgstr "direksiyon dokunuşu"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "kapalı"
@@ -3793,6 +3807,12 @@ msgstr "kapalı"
msgid "offline"
msgstr "çevrimdışı"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "açık"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4048,6 +4068,11 @@ msgstr ""
msgid "slow"
msgstr "yavaş"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "yumuşak direksiyon"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -454,6 +454,16 @@ msgstr "Очистити кеш обраної моделі й завантаж
msgid "Close"
msgstr "Закрити"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr ""
"Замикає контур керма на автомобілях MEB і MQB Evo. IQ.Pilot коригує "
"команду керування за кривизною, яку автомобіль реально тримає, замість "
"того щоб надсилати заплановану кривизну напряму."
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -585,6 +595,11 @@ msgstr "Круїз"
msgid "Current Version"
msgstr "Поточна версія"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "Регулятор кривизни"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1590,6 +1605,15 @@ msgstr "менше випередження"
msgid "Low-Speed Turn Planning"
msgstr "Планування поворотів на низькій швидкості"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr ""
"Пропускає заплановану кривизну через фільтр низьких частот, перш ніж вона "
"дійде до рейки, на автомобілях MEB і MQB Evo, що гасить бічне коливання. "
"Для цих машин увімкнено типово."
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2590,6 +2614,11 @@ msgstr ""
"Показує назву поточної дороги над видом дороги.<br>Потребує встановлених "
"офлайн-карт для вашого регіону."
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "Плавне кермування"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3249,6 +3278,15 @@ msgstr "авто"
msgid "auto dark"
msgstr "авто темний"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"автоматичні\n"
"оновлення"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3354,16 +3392,10 @@ msgstr "рушання з місця (бета)"
msgid "cruise"
msgstr "круїз"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "зараз вимкнено"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "зараз увімкнено"
msgid "curvature controller"
msgstr "регулятор кривизни"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3404,16 +3436,6 @@ msgstr "пристрій"
msgid "device ID"
msgstr "ID пристрою"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"вимкнути\n"
"оновлення"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3493,15 +3515,6 @@ msgstr "динамічний"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"увімкнути\n"
"оновлення"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3793,6 +3806,7 @@ msgstr "поштовх керма"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "вимк."
@@ -3802,6 +3816,12 @@ msgstr "вимк."
msgid "offline"
msgstr "офлайн"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "увімк."
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -4057,6 +4077,11 @@ msgstr ""
msgid "slow"
msgstr "повільно"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "плавне кермування"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -436,6 +436,13 @@ msgstr "清除所选模型的缓存并重新下载?"
msgid "Close"
msgstr "关闭"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr "在 MEB 和 MQB Evo 车型上闭环控制转向。IQ.Pilot 会根据车辆实际保持的曲率修正转向指令,而不是直接下发规划的曲率。"
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -558,6 +565,11 @@ msgstr "巡航"
msgid "Current Version"
msgstr "当前版本"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "曲率控制器"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1506,6 +1518,12 @@ msgstr "提前量减小"
msgid "Low-Speed Turn Planning"
msgstr "低速转弯规划"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr "在 MEB 和 MQB Evo 车型上,规划的曲率送到转向机之前先经过低通滤波,抑制横向摆动。这些车型默认开启。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2459,6 +2477,11 @@ msgid ""
"data for your region to be installed."
msgstr "在驾驶画面上显示当前道路名称。<br>需要安装你所在地区的离线地图数据。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "平滑转向"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3079,6 +3102,15 @@ msgstr "自动"
msgid "auto dark"
msgstr "自动变暗"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"自动\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3184,16 +3216,10 @@ msgstr "静止起步蠕行Beta"
msgid "cruise"
msgstr "巡航"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "当前已关闭"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "当前已开启"
msgid "curvature controller"
msgstr "曲率控制器"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3234,16 +3260,6 @@ msgstr "设备"
msgid "device ID"
msgstr "设备 ID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"关闭\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3323,15 +3339,6 @@ msgstr "动态"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"开启\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3623,6 +3630,7 @@ msgstr "轻推方向盘"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "关闭"
@@ -3632,6 +3640,12 @@ msgstr "关闭"
msgid "offline"
msgstr "离线"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "开启"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -3887,6 +3901,11 @@ msgstr ""
msgid "slow"
msgstr "慢"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "平滑转向"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -436,6 +436,13 @@ msgstr "清除所選模型的快取並重新下載?"
msgid "Close"
msgstr "關閉"
#: iqpilot/ui/layouts/settings/iq_panels.py:2245
msgid ""
"Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its "
"steering command against the curvature the car is actually holding, "
"instead of sending the planned curvature straight through."
msgstr "在 MEB 與 MQB Evo 車型上閉環控制轉向。IQ.Pilot 會依據車輛實際維持的曲率修正轉向指令,而非直接送出規劃的曲率。"
#: openpilot/selfdrive/ui/layouts/routes.py:174
#, python-brace-format
msgid "Cloud"
@@ -558,6 +565,11 @@ msgstr "巡航"
msgid "Current Version"
msgstr "目前版本"
#: iqpilot/ui/layouts/settings/iq_panels.py:2288
#, python-brace-format
msgid "Curvature Controller"
msgstr "曲率控制器"
#: iqpilot/ui/layouts/settings/iq_panels.py:412
#: iqpilot/ui/layouts/settings/iq_panels.py:449
#, python-brace-format
@@ -1506,6 +1518,12 @@ msgstr "提前量減少"
msgid "Low-Speed Turn Planning"
msgstr "低速轉彎規劃"
#: iqpilot/ui/layouts/settings/iq_panels.py:2249
msgid ""
"Low-pass the planned curvature before it reaches the rack on MEB and MQB "
"Evo vehicles, which damps lateral wobble. On by default for these cars."
msgstr "在 MEB 與 MQB Evo 車型上,規劃的曲率送到轉向機之前先經過低通濾波,抑制橫向擺動。這些車型預設開啟。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2643
#, python-brace-format
msgid "MANUAL"
@@ -2459,6 +2477,11 @@ msgid ""
"data for your region to be installed."
msgstr "在行車畫面上顯示目前的道路名稱。<br>需要安裝你所在區域的離線地圖資料。"
#: iqpilot/ui/layouts/settings/iq_panels.py:2300
#, python-brace-format
msgid "Smooth Steering"
msgstr "平滑轉向"
#: openpilot/selfdrive/ui/widgets/offroad_alerts.py:106
#, python-brace-format
msgid "Snooze Update"
@@ -3081,6 +3104,15 @@ msgstr "自動"
msgid "auto dark"
msgstr "自動變暗"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#, python-brace-format
msgid ""
"automatic\n"
"updates"
msgstr ""
"自動\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/onboarding.py:405
#, python-brace-format
msgid "back"
@@ -3186,16 +3218,10 @@ msgstr "靜止起步潛行Beta"
msgid "cruise"
msgstr "巡航"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:83
#, python-brace-format
msgid "currently off"
msgstr "目前已關閉"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:339
#, python-brace-format
msgid "currently on"
msgstr "目前已開啟"
msgid "curvature controller"
msgstr "曲率控制器"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:94
#, python-brace-format
@@ -3236,16 +3262,6 @@ msgstr "裝置"
msgid "device ID"
msgstr "裝置 ID"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"disable\n"
"updates"
msgstr ""
"關閉\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:56
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:190
#: openpilot/selfdrive/ui/mici/layouts/settings/network/network_layout.py:199
@@ -3325,15 +3341,6 @@ msgstr "動態"
msgid "eSIM"
msgstr "eSIM"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid ""
"enable\n"
"updates"
msgstr ""
"開啟\n"
"更新"
#: openpilot/selfdrive/ui/mici/layouts/settings/dashcam.py:15
#, python-brace-format
msgid "enable dashcam"
@@ -3625,6 +3632,7 @@ msgstr "輕推方向盤"
#: openpilot/selfdrive/ui/mici/layouts/settings/cruise.py:87
#: openpilot/selfdrive/ui/mici/layouts/settings/steering.py:75
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:76
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "off"
msgstr "關閉"
@@ -3634,6 +3642,12 @@ msgstr "關閉"
msgid "offline"
msgstr "離線"
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:324
#: openpilot/selfdrive/ui/mici/layouts/settings/software.py:338
#, python-brace-format
msgid "on"
msgstr "開啟"
#: openpilot/selfdrive/ui/mici/layouts/settings/device.py:146
#, python-brace-format
msgid "online"
@@ -3889,6 +3903,11 @@ msgstr ""
msgid "slow"
msgstr "慢"
#: openpilot/selfdrive/ui/mici/layouts/settings/vehicle.py:84
#, python-brace-format
msgid "smooth steering"
msgstr "平滑轉向"
#: openpilot/selfdrive/ui/mici/layouts/settings/settings.py:107
#, python-brace-format
msgid "software"

View File

@@ -21,6 +21,19 @@ GuidanceState = custom.AlwaysOnLateral.AlwaysOnLateralState
ONROAD_BRIGHTNESS_TIMER_PAUSED = -1
def log_param_from_bytes(params: Params, key: str, schema):
# a capnp param written by anything other than the daemon that owns it takes the whole UI
# down at import time, and the UI cannot repair it -- read it defensively and carry on
dat = params.get(key)
if not dat:
return None
try:
return messaging.log_from_bytes(dat, schema)
except Exception:
cloudlog.exception(f"ui: ignoring malformed {key}")
return None
class OnroadTimerStatus(Enum):
NONE = 0
PAUSE = 1
@@ -158,9 +171,9 @@ class IQUIState:
}
def update_params(self) -> None:
CP_IQ_bytes = self.params.get("IQCarParamsPersistentV2")
if CP_IQ_bytes is not None:
self.CP_IQ = messaging.log_from_bytes(CP_IQ_bytes, custom.IQCarParams)
CP_IQ = log_param_from_bytes(self.params, "IQCarParamsPersistentV2", custom.IQCarParams)
if CP_IQ is not None:
self.CP_IQ = CP_IQ
for attr, (key, kind) in self._PARAM_MIRROR.items():
if kind == "bool":
@@ -412,9 +425,9 @@ class UIState(IQUIState):
self._started_prev = self.started
def update_params(self) -> None:
CP_bytes = self.params.get("CarParamsPersistent")
if CP_bytes is not None:
self.CP = messaging.log_from_bytes(CP_bytes, car.CarParams)
CP = log_param_from_bytes(self.params, "CarParamsPersistent", car.CarParams)
if CP is not None:
self.CP = CP
if self.CP.alphaLongitudinalAvailable:
self.has_longitudinal_control = self.params.get_bool("AlphaLongitudinalEnabled")
else:

View File

@@ -7,6 +7,7 @@ from iqpilot.system.updated.updated import Updater, display_commit_date
def test_display_commit_date():
assert display_commit_date("'1786378834 2026-08-10 11:20:34 -0500'") == "2026-08-10 11:20:34"
assert display_commit_date("1786378834 2026-08-10 11:20:34 -0500") == "2026-08-10 11:20:34"
assert display_commit_date("'1786378834 2026-08-10 11:20:34 -0500'\n") == "2026-08-10 11:20:34"
assert display_commit_date("Jul 02") == "Jul 02"

View File

@@ -76,6 +76,7 @@ def has_git_repo(path: str) -> bool:
def display_commit_date(value: str) -> str:
value = value.strip()
match = re.fullmatch(r"'?\d+ (\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) [+-]\d{4}'?", value)
return match.group(1) if match else value.strip("'")
@@ -479,11 +480,28 @@ def prepare_environment() -> bool:
return False
def publish_running_version(params: Params) -> None:
try:
updater = Updater()
release_notes = parse_release_notes(BASEDIR)
params.put("UpdaterState", "idle")
params.put("UpdaterTargetBranch", updater.target_branch)
params.put("UpdaterCurrentDescription", updater.running_description)
params.put("UpdaterCurrentReleaseNotes", release_notes)
params.put("UpdaterNewDescription", updater.running_description)
params.put("UpdaterNewReleaseNotes", release_notes)
params.put_bool("UpdaterFetchAvailable", False)
params.put_bool("UpdateAvailable", False)
except Exception:
cloudlog.exception("updater: failed to publish running version")
def main() -> None:
params = Params()
if params.get_bool("DisableUpdates"):
cloudlog.warning("updates are disabled by the DisableUpdates param")
publish_running_version(params)
exit(0)
with open(LOCK_FILE, 'w') as ov_lock_fd:

View File

@@ -2242,6 +2242,14 @@ DESCRIPTIONS = {
'iqMqbSteeringLockout': tr_noop(
'Enable MQB steering lockout handling on Volkswagen MQB vehicles with low speed LKAS faults.'
),
'EnableCurvatureController': tr_noop(
'Close the steering loop on MEB and MQB Evo vehicles. IQ.Pilot corrects its steering command against '
'the curvature the car is actually holding, instead of sending the planned curvature straight through.'
),
'EnableSmoothSteer': tr_noop(
'Low-pass the planned curvature before it reaches the rack on MEB and MQB Evo vehicles, which damps '
'lateral wobble. On by default for these cars.'
),
}
class VolkswagenSettings(BrandPanel):
@@ -2280,7 +2288,24 @@ class VolkswagenSettings(BrandPanel):
enabled=lambda: not ui_state.engaged,
)
self.items = [self.pq_hca_toggle, self.lateral_when_long_unavailable, self.mqb_acc_resume, self.mqb_steering_lockout]
self.curvature_controller = toggle_item(
lambda: tr("Curvature Controller"),
description=lambda: tr(DESCRIPTIONS["EnableCurvatureController"]),
initial_state=ui_state.params.get_bool("EnableCurvatureController"),
callback=self._on_curvature_controller,
enabled=lambda: not ui_state.engaged,
)
self.smooth_steer = toggle_item(
lambda: tr("Smooth Steering"),
description=lambda: tr(DESCRIPTIONS["EnableSmoothSteer"]),
initial_state=ui_state.params.get_bool("EnableSmoothSteer"),
callback=self._on_smooth_steer,
enabled=lambda: not ui_state.engaged,
)
self.items = [self.pq_hca_toggle, self.lateral_when_long_unavailable, self.mqb_acc_resume, self.mqb_steering_lockout,
self.curvature_controller, self.smooth_steer]
def _flags(self) -> VolkswagenFlags:
bundle = ui_state.params.get("CarPlatformBundle")
@@ -2305,6 +2330,9 @@ class VolkswagenSettings(BrandPanel):
def _supports_lateral_when_faulted(self) -> bool:
return not bool(self._flags() & VolkswagenFlags.MLB)
def _is_curvature_car(self) -> bool:
return bool(self._flags() & (VolkswagenFlags.MEB | VolkswagenFlags.MQB_EVO))
def _on_pq_hca_toggle(self, state: bool):
ui_state.params.put_bool("pqhca5or7Toggle", state)
@@ -2317,12 +2345,21 @@ class VolkswagenSettings(BrandPanel):
def _on_mqb_steering_lockout(self, state: bool):
ui_state.params.put_bool("iqMqbSteeringLockout", state)
def _on_curvature_controller(self, state: bool):
ui_state.params.put_bool("EnableCurvatureController", state)
def _on_smooth_steer(self, state: bool):
ui_state.params.put_bool("EnableSmoothSteer", state)
def update_settings(self):
self.pq_hca_toggle.set_visible(self._uses_hca_status_toggle())
self.lateral_when_long_unavailable.set_visible(self._supports_lateral_when_faulted())
is_mqb = self._is_mqb()
self.mqb_acc_resume.set_visible(is_mqb)
self.mqb_steering_lockout.set_visible(is_mqb)
is_curvature_car = self._is_curvature_car()
self.curvature_controller.set_visible(is_curvature_car)
self.smooth_steer.set_visible(is_curvature_car)
_REGISTRY: dict[str, type[BrandPanel]] = {
"hyundai": HyundaiSettings,