From fde770bf031dc6dd92fcafbb1c3adc26175b350a Mon Sep 17 00:00:00 2001 From: "IQ.Lvbs CI [bot]" Date: Fri, 4 Sep 2026 12:33:30 -0500 Subject: [PATCH] IQ.Pilot Release Commit @ ba009d5 --- artifacts/iqpilot_emac_private/manifest.json | 34 +- .../iqpilot_emac_private/manifest.json.sig | 2 +- .../iqpilot/selfdrive/iqmodeld/daemon.py | 3 + .../selfdrive/iqmodeld/model_channel.py | 8 + .../selfdrive/iqmodeld/tools/compile_warp.py | 6 +- ...transport.cpython-312-aarch64-linux-gnu.so | Bin 333808 -> 333808 bytes ...fs_holder.cpython-312-aarch64-linux-gnu.so | Bin 68072 -> 68072 bytes ...ac_client.cpython-312-aarch64-linux-gnu.so | Bin 267864 -> 267864 bytes ..._protocol.cpython-312-aarch64-linux-gnu.so | Bin 203552 -> 203552 bytes ...ciqmodeld.cpython-312-aarch64-linux-gnu.so | Bin 399040 -> 399128 bytes .../iqpilot_navassist_private/manifest.json | 174 ++ .../manifest.json.sig | 1 + .../python/_iqclosure/_vendored.json | 19 + .../python/_iqclosure/iqpilot}/__init__.py | 0 .../_iqclosure/iqpilot/common/__init__.py | 0 .../python/_iqclosure/iqpilot/common/gpio.py | 89 + .../python/_iqclosure/iqpilot/common/i2c.py | 81 + .../iqpilot/common/logging_extra.py | 249 +++ .../_iqclosure/iqpilot/common/realtime.py | 134 ++ .../_iqclosure/iqpilot/common/swaglog.py | 165 ++ .../_iqclosure/iqpilot/common/time_helpers.py | 15 + .../python/_iqclosure/iqpilot/common/utils.py | 271 +++ .../_iqclosure/iqpilot/system/__init__.py | 0 .../iqpilot/system/hardware/__init__.py | 22 + .../iqpilot/system/hardware/base.py | 228 +++ .../_iqclosure/iqpilot/system/hardware/hw.py | 137 ++ .../iqpilot/system/hardware/pc/__init__.py | 0 .../iqpilot/system/hardware/pc/hardware.py | 12 + .../iqpilot/system/hardware/tici/__init__.py | 0 .../iqpilot/system/hardware/tici/amplifier.py | 159 ++ .../iqpilot/system/hardware/tici/hardware.py | 740 ++++++++ .../iqpilot/system/hardware/tici/iwlist.py | 35 + .../iqpilot/system/hardware/tici/lpa.py | 1482 +++++++++++++++++ .../iqpilot/system/hardware/tici/pins.py | 30 + .../python/iqpilot_private/__init__.py | 0 .../__init__.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 67640 bytes .../iqpilot_private/navassist/__init__.py | 1 + .../appsetup.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 135328 bytes .../assets.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 201704 bytes ...container.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 134016 bytes .../daemon.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 203048 bytes .../guard.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 68240 bytes .../paths.cpython-312-aarch64-linux-gnu.so | Bin 0 -> 69656 bytes artifacts/iqpilot_navd_private/manifest.json | 106 +- .../iqpilot_navd_private/manifest.json.sig | 2 +- .../__init__.cpython-312-aarch64-linux-gnu.so | Bin 67568 -> 67568 bytes ...r_matcher.cpython-312-aarch64-linux-gnu.so | Bin 269896 -> 269896 bytes ...ap_client.cpython-312-aarch64-linux-gnu.so | Bin 202088 -> 202088 bytes ...t_builder.cpython-312-aarch64-linux-gnu.so | Bin 136928 -> 136928 bytes .../helpers.cpython-312-aarch64-linux-gnu.so | Bin 135928 -> 135928 bytes ...dent_feed.cpython-312-aarch64-linux-gnu.so | Bin 135496 -> 135496 bytes .../iqmapd.cpython-312-aarch64-linux-gnu.so | Bin 135600 -> 135600 bytes ...ong_decel.cpython-312-aarch64-linux-gnu.so | Bin 135256 -> 135256 bytes ...ox_client.cpython-312-aarch64-linux-gnu.so | Bin 68128 -> 68128 bytes ...v_cameras.cpython-312-aarch64-linux-gnu.so | Bin 203024 -> 203024 bytes ...n_signals.cpython-312-aarch64-linux-gnu.so | Bin 135536 -> 135536 bytes ...ge_source.cpython-312-aarch64-linux-gnu.so | Bin 136576 -> 136576 bytes .../navd.cpython-312-aarch64-linux-gnu.so | Bin 862920 -> 862920 bytes ...incidentd.cpython-312-aarch64-linux-gnu.so | Bin 135464 -> 135272 bytes ...avrenderd.cpython-312-aarch64-linux-gnu.so | Bin 135552 -> 135552 bytes ...m_cameras.cpython-312-aarch64-linux-gnu.so | Bin 267936 -> 267936 bytes .../reroute.cpython-312-aarch64-linux-gnu.so | Bin 136224 -> 136224 bytes ...incidents.cpython-312-aarch64-linux-gnu.so | Bin 203096 -> 203096 bytes ...e_manager.cpython-312-aarch64-linux-gnu.so | Bin 1009128 -> 1009128 bytes ...me_common.cpython-312-aarch64-linux-gnu.so | Bin 135752 -> 135752 bytes .../traffic.cpython-312-aarch64-linux-gnu.so | Bin 69688 -> 69688 bytes ...c_sources.cpython-312-aarch64-linux-gnu.so | Bin 135944 -> 135944 bytes ...ic_writer.cpython-312-aarch64-linux-gnu.so | Bin 136944 -> 136944 bytes ...rn_desire.cpython-312-aarch64-linux-gnu.so | Bin 135280 -> 135280 bytes ...a_process.cpython-312-aarch64-linux-gnu.so | Bin 204064 -> 204064 bytes ...eb_server.cpython-312-aarch64-linux-gnu.so | Bin 201368 -> 201368 bytes conftest.py | 21 + iqpilot/common/params_keys.h | 5 + iqpilot/selfdrive/iqmodeld/daemon.py | 3 + .../selfdrive/iqmodeld/tools/compile_warp.py | 6 +- .../ui/mici/layouts/settings/models.py | 3 +- .../ui/mici/onroad/augmented_road_view.py | 19 +- .../ui/mici/onroad/model_renderer.py | 6 +- iqpilot/selfdrive/ui/ui_state.py | 7 + iqpilot/system/android/androidd.py | 200 --- iqpilot/system/hardware/hardwared.py | 7 +- iqpilot/system/manager/process_config.py | 4 +- iqpilot/ui/layouts/settings/iq_panels.py | 6 +- iqpilot/ui/mici/onroad/speed_limit_sign.py | 16 +- 84 files changed, 4206 insertions(+), 302 deletions(-) create mode 100644 artifacts/iqpilot_navassist_private/manifest.json create mode 100644 artifacts/iqpilot_navassist_private/manifest.json.sig create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/_vendored.json rename {iqpilot/system/android => artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot}/__init__.py (100%) create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/__init__.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/gpio.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/i2c.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/logging_extra.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/realtime.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/swaglog.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/time_helpers.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/utils.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/__init__.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/__init__.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/base.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/hw.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/__init__.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/hardware.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/__init__.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/amplifier.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/hardware.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/iwlist.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/lpa.py create mode 100644 artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/pins.py create mode 100644 artifacts/iqpilot_navassist_private/python/iqpilot_private/__init__.py create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/__init__.cpython-312-aarch64-linux-gnu.so create mode 100644 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/__init__.py create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/appsetup.cpython-312-aarch64-linux-gnu.so create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/assets.cpython-312-aarch64-linux-gnu.so create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/container.cpython-312-aarch64-linux-gnu.so create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/daemon.cpython-312-aarch64-linux-gnu.so create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/guard.cpython-312-aarch64-linux-gnu.so create mode 100755 artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/paths.cpython-312-aarch64-linux-gnu.so delete mode 100644 iqpilot/system/android/androidd.py diff --git a/artifacts/iqpilot_emac_private/manifest.json b/artifacts/iqpilot_emac_private/manifest.json index ed66bffe9..a339c1150 100644 --- a/artifacts/iqpilot_emac_private/manifest.json +++ b/artifacts/iqpilot_emac_private/manifest.json @@ -191,8 +191,8 @@ }, "python/_iqclosure/iqpilot/selfdrive/iqmodeld/daemon.py": { "mode": 420, - "sha256": "15002cb6c81cca8c7aec572568da1e202c55777bbd21fefaf8fda36fd0d39b6e", - "size": 30295 + "sha256": "581e57ffcafab0f796346e657f8cd975daf7b22a92878f20603fd367cb127346", + "size": 30513 }, "python/_iqclosure/iqpilot/selfdrive/iqmodeld/driving_action.py": { "mode": 420, @@ -231,8 +231,8 @@ }, "python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_channel.py": { "mode": 420, - "sha256": "2d706993df418501d93dc766ffe452131e565bfbc2e8412b527dc14915e92832", - "size": 1872 + "sha256": "092d4762710cf453f94741ebd5f63dc8e1c6aac97a177c4cdc5afb7fc868b1d7", + "size": 2112 }, "python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_warp.py": { "mode": 420, @@ -341,8 +341,8 @@ }, "python/_iqclosure/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py": { "mode": 420, - "sha256": "2cc299b2cfda88ee2dbc52658f145fb7840e2dfc49a7371e22fe671beed0e57f", - "size": 5436 + "sha256": "6b3992f2bd68774511fe8fe313ee801387f89ef8a52d88e772cf47ca09b75bfe", + "size": 5438 }, "python/_iqclosure/iqpilot/selfdrive/locationd/__init__.py": { "mode": 420, @@ -536,28 +536,28 @@ }, "python/iqpilot_private/emac/bulk_transport.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "c069d85362528e1f1e36c419950096eb81dd07e96fdb14fa6aac6c50178bad27", + "sha256": "fea0dc4e8eb2f65ff5ef03158534aad4e862b2d35522c6a69bb84cd745aafa0b", "size": 333808 }, "python/iqpilot_private/emac/ffs_holder.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "846394e2620f16d5bb457a22a01bf44b0c7ba2c3511e90a1b6a2f57bf60e65ef", + "sha256": "b5c161b71fb5cfaded8810938a3270124b99fbf18ae4759945555a19c258aaa0", "size": 68072 }, "python/iqpilot_private/emac/mac_client.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "af7708ec07d580ed547985fd45b11ae92c5aa44b3b3222c2550b694e3caaf110", + "sha256": "e140b44ab0dcd34ac2d33afd89d440af3ccfae04b4c75b1148ff8773ecb5a122", "size": 267864 }, "python/iqpilot_private/emac/mac_protocol.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "abefe36ce82767927f9c258a08ef13421b724d85736291043d3062fe19451dcd", + "sha256": "45f0062fe6c79527a635cccf85e68fcb1294561096d67dcb9f832ce2eecb30de", "size": 203552 }, "python/iqpilot_private/emac/maciqmodeld.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "518157f68e397db8bc4ac345989b62abccddd5fa91f41c4a0c42d5408cde4477", - "size": 399040 + "sha256": "ee6a34c2d0f42c45338c0cf97d55c3a7575c5c1cc5879c6fd49805e3101eed3d", + "size": 399128 }, "runtime": { "entries": { @@ -568,10 +568,10 @@ } }, "signatures": { - "python/iqpilot_private/emac/bulk_transport.cpython-312-aarch64-linux-gnu.so": "U9GH0luMCR2czyM8p33BMAvmT48ZKjlSndkx1YpTDKAvCvmksXlrhckumbk65JX9vXR8xLRLYGksR7muXvDpBw==", - "python/iqpilot_private/emac/ffs_holder.cpython-312-aarch64-linux-gnu.so": "I1r0dLpsIGW/UufeQJ2s/DVEzB1t1ANW5HwsILHbf7nh6ifasd7JrfEIkQPl+U+fbu2N5D0ciSKaMNJXFwXYAQ==", - "python/iqpilot_private/emac/mac_client.cpython-312-aarch64-linux-gnu.so": "zxJFn+T/NY/qBNRYJ/s7Xqp8PFVO9GCTiMqH03Y2TiZGiisgwrUGDEcBjBVAIjDDYqjYTn8s01p7cN2PCK92Dg==", - "python/iqpilot_private/emac/mac_protocol.cpython-312-aarch64-linux-gnu.so": "y0TNy549j35aJ7lnS4N21Fx5XRwfWjCZxyObB+SQnZWJQ8sW63r4lVS+t01koyQUXLmzT3/y1mYJ3WujlkxACQ==", - "python/iqpilot_private/emac/maciqmodeld.cpython-312-aarch64-linux-gnu.so": "K1glyNgXfg7KVRXYhfsGS53iH9hxv+k5TOzylw6Cu3KA2JvyOYUgMhQlVDg+p+t4DJYfOr69H/d5ENtgHGVNDg==" + "python/iqpilot_private/emac/bulk_transport.cpython-312-aarch64-linux-gnu.so": "LYNTQr1MnMp3btqtnZ+IcvQYgE9VnRVPyAGms0QUARkSUs3poUIIuV/iYKA14wIUS5/gxHrqiGTNZcyJdNuBCw==", + "python/iqpilot_private/emac/ffs_holder.cpython-312-aarch64-linux-gnu.so": "8mWAxk4HILq0BLA2SQSwjuZuqx+Dl/WZdOf8JY2leDUMxDXla1KoMzLPBL/ngL1uQ1r2MqFlLohli4jBYPmtBA==", + "python/iqpilot_private/emac/mac_client.cpython-312-aarch64-linux-gnu.so": "T744Rj5GuQl9Xyzc7nxEtE+Wx8rIteZDC+TiPNcSqsyBOBvf5luN7gtrIWfM+dB5fp36EJhCJZFl48E/WgqNAQ==", + "python/iqpilot_private/emac/mac_protocol.cpython-312-aarch64-linux-gnu.so": "WCv8ts3H+9N+OtgxaESxadcS7eRu/bDxvIQIRkj24LLeHJ3hL/Z/0zWJlALqkQuL/eBTjs/nTaziIDwwu9UHAA==", + "python/iqpilot_private/emac/maciqmodeld.cpython-312-aarch64-linux-gnu.so": "o+2jZmIPfaJV8QPleFWyB24sLCVvkJ3Hwg+7kFYXIE7cHXQm2tzkrgdPhUlWhslTk/gRKFBYg67FrjFvBpjRAw==" } } diff --git a/artifacts/iqpilot_emac_private/manifest.json.sig b/artifacts/iqpilot_emac_private/manifest.json.sig index c126d077b..53e75d345 100644 --- a/artifacts/iqpilot_emac_private/manifest.json.sig +++ b/artifacts/iqpilot_emac_private/manifest.json.sig @@ -1 +1 @@ -xwY/6EveM0uSrV6q37dNH9aAkFdYr5Wr1YSawQtQNWBSyzDwA5qacLqCqZFbLbLAx1A9d8wUSEDPeAESmMHMBA== +NIDyUgCyKnLKNpWgrqG5yIPAYBaD61T6Yv4KV4uzFhKpqo0OInBCXl1AcEGupEFLfTXdsrS5gDnm/4KdU2jiDw== diff --git a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/daemon.py b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/daemon.py index 97327992f..8828032d3 100644 --- a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/daemon.py +++ b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/daemon.py @@ -513,6 +513,9 @@ class InferenceDaemon: self._lat_smooth_extra_sec = 0.0 def _load_car_params(self, demo: bool): + if not demo and self._params.get_bool("IQBenchIgnition") and self._params.get("CarParams") is None: + cloudlog.warning("iqmodeld: bench ignition with no CarParams; running with the demo car") + demo = True car_params = get_demo_car_params() if demo else messaging.log_from_bytes( self._params.get("CarParams", block=True), car.CarParams) cloudlog.info("iqmodeld got CarParams: %s", car_params.brand) diff --git a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_channel.py b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_channel.py index a9fa710bc..937a2d932 100644 --- a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_channel.py +++ b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/model_channel.py @@ -44,6 +44,14 @@ class ModelChannel: return None return frame_id + def peek(self) -> tuple[int | None, bool]: + seq, frame_id, length = HEADER.unpack(self.mm[:HEADER.size]) + if seq % 2 != 0: + return None, True + if seq == 0 or length == 0: + return None, False + return frame_id, False + def read(self) -> tuple[int, dict] | None: seq1, frame_id, length = HEADER.unpack(self.mm[:HEADER.size]) if seq1 == 0 or seq1 % 2 != 0 or length == 0: diff --git a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py index 07e4886eb..03fe6a88d 100644 --- a/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py +++ b/artifacts/iqpilot_emac_private/python/_iqclosure/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py @@ -87,8 +87,6 @@ def main() -> None: print(f"saved warp JIT to {out} ({os.path.getsize(out) / 1e6:.2f} MB)") -if __name__ == "__main__": - main() def selftest_inputs(cam_w: int, cam_h: int, nv12_size: int): @@ -117,3 +115,7 @@ def selftest_digest(compiled, cam_w: int, cam_h: int, nv12_size: int) -> str: frame=Tensor(frame, device=dev).realize(), big_frame=Tensor(big_frame, device=dev).realize()) return hashlib.sha256(out.numpy().astype(np.uint8).tobytes()).hexdigest() + + +if __name__ == "__main__": + main() diff --git a/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/bulk_transport.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/bulk_transport.cpython-312-aarch64-linux-gnu.so index 079dda44c9c898d107be5e9c22dbdf34e01a9cd6..ff196001a89b40f69ff6fba70b4c39534202f1b4 100755 GIT binary patch delta 1431 zcmY*ZJ#U;v5PlQh5+Na3=tM)xNJi1@%zn%^Q5pnvsSp*Xo!uGvB*!-P<*RZE*C}~B zO4>9?{uh+gh=LNOq(aQaIRjUnZuaJx=VRvWn}fG+4qjc|xw?Dx!O!!Bg)dN|)ZN}&}A0jM^LF(8T*!G_b+k54aj znx^%7^ZnVHq(=#vX$%S@*Ng?n&@@d)+K#tJFW|wJkU~7^ZLcMZ7&?^=3Uaz6?B+54izZ=s%ELv z)VBAYoL+3F_4Bq_K7{$xmDDgK*H95unFSF72FB$f%#T-w#atwprnZ7m+_qRuc=-wD z`z!C>io4qxqk$w5id4;(KVW|GNCHb9#Ifbn+)aQ8CINO+4n1~tZl?7oDTF$jYn`>W zp@GSGEI)>MwQ?>vR7T`c6~ZX36o9VFFS{yaO$vkANz|5|Z%hc=r``>!@fQ!W1gJO{4LmF|Dy~eFtve*)M zzAQkEkP>*J_I1b39uDq^%{2i)&QOaiAJM#eRI;_)tkvF43yN!Af(DPy(6jB)t&=fw z=GI2e!?hMmsKa67V&t0@IgT6#k7A9is#`2F(0x8R|8MYw9NQXK?W17oYPED!Ux{FuXaPyX!^eO*SC?j>)R ze3^Z_hWc84@uEAs&FRU_aQjqOPZjU9BoDyw)en}DeD81aAvJYO`D3N5nrrp@V&oa5 z<%c-Kr6&S4(4gI_kSMs1!YxjdJavY*u7%{(k4Tv1x`>vm#Z??L=czNQSzP<%$9w*Qonja(=HL`+Rkp@xrC(? n_NF#Gx+4({zZ`b`I?cb|IZz#3{hmc2{}$a_vFoccAOH3b!uF6~ delta 1431 zcmY*Zy>DDa5Pu1;L`X;$I?<3al2J6fv$MO?L}^fik&y}o8QO0d%O4U?cVG2JLh-LKl){UxWBSuEop3- z3Pr8f3p2OO%eVXU!Kxb9l7mVZg>8)9720TR`E7r`cMyAR6g%S(gPdy%02*mblO7&# zZJMU_dh^4{T2XKmY{;By7@7fF&s?VIz~pdu@alaXWJ$3U&OHN5QwJ5Y54iaL%lXOO zFNC<#C{?1S9BUVctvPs`&CzCeZ+ZQA-e3NHFn@ODShZG&!-4}Jm_tNskZ%AL4KZqW zuwnQ=586ihtAG5TJWNzO#-Dd zqH`0O2F9@b6z0`Rz^W!uOh_qI4w}u9_2t*gS5$4xJz_0gUBd=qv zYk|erYnakV%Y!(7yTDtJE8gL(PrJ z6Tz{HCJe1!Qgdq#^ME*$1fhaBC=(8m7?w|PUOgIBhbD6BlX4UdNx%VwY3g>eJGfQS zm1FlqFmy=`%%~Q(7%c-mSqiAqdkyN|1nkiU>bUH3boyW8l|fEn*V4r8IbskQUdGdO zYFpdgPD_RX5oHLCOa#O8$}!RMmt#J2yOZNo4~oS|HkvCIt23g<&yGHHp^_yR>}sZx z!S_aNzQZ(q^-_Ji&GFGSxcB;Z9)3`IhY_hdt1htTUgHhZCXup~!d~sgp!{7e}Wy_64 diff --git a/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/ffs_holder.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/ffs_holder.cpython-312-aarch64-linux-gnu.so index 97372609f3b7c9f291b881442703d641fda86f93..605719d38166a9967824531193ab81e41124dbc4 100755 GIT binary patch delta 166 zcmWm4u?@m75CFgwG;H7ok&4>?_WSLI8ZiZq|1CvGh=NVrlCT02J5VzLb;dwkeM?&{ zZT0-#x1`1A2pOybMgpw?qZ94A@iN}}_IdPeGp$WxhRPJxsdy;=>QnNr?Wd~|ij>gT z8e$O7naDAh!M68wFp#tqMI5STM9)M4DLHAo`DCokkwf7sAXtVWo3^yQQ{E zZC}5~j;H|l$+8EVvO+15Eri%K<8{1u_51AVcG?(BkaDENB)Kq0aKri#>tVVXiM_hu zvj)zhj!H@r2Icyhjz-8UdPEYmNQET{Ldd@E=d-~RU-g&wAc6$8aN$40Fw9c`RbOvoE zkqfL=o6YH87n^EC$Qjg{p;;oUl%wJI^WIt*gF2^P3U=X&n3~G+=D~C_`%C38S}UoM zRE0>TLypU@2NTT^I}Wr)mNlmYFd&Z}^YY?g`eiP;7jBIMtB$5Bq+D8W%YXj%5&Ly$ zBGhsy$bJDr6VTP_;{5V@M znQEdG^T_HvH|H0&b)L6AD`-IGjyZG(C=8jU6)QT2SbWS_+pMfO-MGb&N=l8QLFzsAgq_=PLd(a)Ta_`HNK4c!HP5+d zWv1oc(e(VEl6gec7%gFekpiI-%dRIUc6N5YvFCEqw}09we}6JkOh}lg;w;@$}Q(q{@~BCFfGAxn84K z%kum2G|#*4v7zwr7F%i|M4w%4d2u`)%_*o>gC2*Q>^UXvR%6k3{~u3(?9C%!hf!^m kY*K^Uf;iNV*S}3a?EPrw#&N0`lJ8LK;PLM1!|BueFSDlg?EnA( delta 848 zcmXw%y=s*~5QdNWI;#|dAA(>dR{RM8@}?ROI) zm6*%0lU#vUA>xE2yUqU1ywAL|*B7hT7pvdSADplJ7`E5mcjeGE5(kLcu?9eI%P^ZQ z7Q3Gh7AbcP7`0UHvD#Y+*}ItU??Y}iC2R=N1yb{vN-wTXmuth$sL}hB?ATseXf2^T zpA@H;>q8l1FDbRyC>9K@bk`s-^){WY56{NTwQG`&0VG0Cg%BnAHvP2NH_~fKS#D(2 zAw)q2s7SNf!T#a#%*GczJlfq~-qq0vrTOFuiVq!g^o2aQKBc*7Sp^uK5(e&}I>(jJ zL-o^gKD-z~N@jycjwCrkbfIu#nJ(v61;*^XmIe)leT5#xX$d&}n-Alr@@I`MV-vtd=*g`E->G=S8&xmvrU zK0V(YPQR8M%%hrX>%^)xx)ROCWVv^AZ*PC0r@TYUk9wzNz*QSVCaoRWC3Tre`#lRs z=X^t|UMgTIS`~5&H~Hj{c9)BzW7^Z3J|3JL?JTCJTf>vbu_9QXNO~q$9ahbaxJ_@j zhH+#_Y~&#kms9K?9DK=jy}j;qR~i?gH?a diff --git a/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/mac_protocol.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_emac_private/python/iqpilot_private/emac/mac_protocol.cpython-312-aarch64-linux-gnu.so index 50a7ef9e3eec226afee8893fad18b60301d24c7b..6a6d20727a6698ca7aa5d8edfec3fc61c37a7162 100755 GIT binary patch delta 858 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 literal 399040 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

Z4iorbzpszpVRB~UtM>a#{_LN0#6)g{ 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

7tKd%mrr&52PLW9v!=NF4ukD(x1(gWfykk|KsUP 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 None: + try: + with open(f"/sys/class/gpio/gpio{pin}/direction", 'wb') as f: + f.write(b"out" if output else b"in") + except Exception as e: + print(f"Failed to set gpio {pin} direction: {e}") + +def gpio_set(pin: int, high: bool) -> None: + try: + with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f: + f.write(b"1" if high else b"0") + except Exception as e: + print(f"Failed to set gpio {pin} value: {e}") + +def gpio_read(pin: int) -> bool | None: + val = None + try: + with open(f"/sys/class/gpio/gpio{pin}/value", 'rb') as f: + val = bool(int(f.read().strip())) + except Exception as e: + print(f"Failed to set gpio {pin} value: {e}") + + return val + +def gpio_export(pin: int) -> None: + if os.path.isdir(f"/sys/class/gpio/gpio{pin}"): + return + + try: + with open("/sys/class/gpio/export", 'w') as f: + f.write(str(pin)) + except Exception: + print(f"Failed to export gpio {pin}") + +@cache +def get_irq_action(irq: int) -> list[str]: + try: + with open(f"/sys/kernel/irq/{irq}/actions") as f: + actions = f.read().strip().split(',') + return actions + except FileNotFoundError: + return [] + +def get_irqs_for_action(action: str) -> list[str]: + ret = [] + with open("/proc/interrupts") as f: + for l in f.readlines(): + irq = l.split(':')[0].strip() + if irq.isdigit() and action in get_irq_action(irq): + ret.append(irq) + return ret + +# *** gpiochip *** + +class gpioevent_data(ctypes.Structure): + _fields_ = [ + ("timestamp", ctypes.c_uint64), + ("id", ctypes.c_uint32), + ] + +class gpioevent_request(ctypes.Structure): + _fields_ = [ + ("lineoffset", ctypes.c_uint32), + ("handleflags", ctypes.c_uint32), + ("eventflags", ctypes.c_uint32), + ("label", ctypes.c_char * 32), + ("fd", ctypes.c_int) + ] + +def gpiochip_get_ro_value_fd(label: str, gpiochip_id: int, pin: int) -> int: + GPIOEVENT_REQUEST_BOTH_EDGES = 0x3 + GPIOHANDLE_REQUEST_INPUT = 0x1 + GPIO_GET_LINEEVENT_IOCTL = 0xc030b404 + + rq = gpioevent_request() + rq.lineoffset = pin + rq.handleflags = GPIOHANDLE_REQUEST_INPUT + rq.eventflags = GPIOEVENT_REQUEST_BOTH_EDGES + rq.label = label.encode('utf-8')[:31] + b'\0' + + fd = os.open(f"/dev/gpiochip{gpiochip_id}", os.O_RDONLY) + fcntl.ioctl(fd, GPIO_GET_LINEEVENT_IOCTL, rq) + os.close(fd) + return int(rq.fd) diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/i2c.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/i2c.py new file mode 100644 index 000000000..1dfaa659a --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/i2c.py @@ -0,0 +1,81 @@ +import os +import fcntl +import ctypes + +# I2C constants from /usr/include/linux/i2c-dev.h +I2C_SLAVE = 0x0703 +I2C_SLAVE_FORCE = 0x0706 +I2C_SMBUS = 0x0720 + +# SMBus transfer types +I2C_SMBUS_READ = 1 +I2C_SMBUS_WRITE = 0 +I2C_SMBUS_BYTE_DATA = 2 +I2C_SMBUS_I2C_BLOCK_DATA = 8 + +I2C_SMBUS_BLOCK_MAX = 32 + + +class _I2cSmbusData(ctypes.Union): + _fields_ = [ + ("byte", ctypes.c_uint8), + ("word", ctypes.c_uint16), + ("block", ctypes.c_uint8 * (I2C_SMBUS_BLOCK_MAX + 2)), + ] + + +class _I2cSmbusIoctlData(ctypes.Structure): + _fields_ = [ + ("read_write", ctypes.c_uint8), + ("command", ctypes.c_uint8), + ("size", ctypes.c_uint32), + ("data", ctypes.POINTER(_I2cSmbusData)), + ] + + +class SMBus: + def __init__(self, bus: int): + self._fd = os.open(f'/dev/i2c-{bus}', os.O_RDWR) + + def __enter__(self) -> 'SMBus': + return self + + def __exit__(self, *args) -> None: + self.close() + + def close(self) -> None: + if hasattr(self, '_fd') and self._fd >= 0: + os.close(self._fd) + self._fd = -1 + + def _set_address(self, addr: int, force: bool = False) -> None: + ioctl_arg = I2C_SLAVE_FORCE if force else I2C_SLAVE + fcntl.ioctl(self._fd, ioctl_arg, addr) + + def _smbus_access(self, read_write: int, command: int, size: int, data: _I2cSmbusData) -> None: + ioctl_data = _I2cSmbusIoctlData(read_write, command, size, ctypes.pointer(data)) + fcntl.ioctl(self._fd, I2C_SMBUS, ioctl_data) + + def read_byte_data(self, addr: int, register: int, force: bool = False) -> int: + self._set_address(addr, force) + data = _I2cSmbusData() + self._smbus_access(I2C_SMBUS_READ, register, I2C_SMBUS_BYTE_DATA, data) + return int(data.byte) + + def write_byte_data(self, addr: int, register: int, value: int, force: bool = False) -> None: + self._set_address(addr, force) + data = _I2cSmbusData() + data.byte = value & 0xFF + self._smbus_access(I2C_SMBUS_WRITE, register, I2C_SMBUS_BYTE_DATA, data) + + def read_i2c_block_data(self, addr: int, register: int, length: int, force: bool = False) -> list[int]: + self._set_address(addr, force) + if not (0 <= length <= I2C_SMBUS_BLOCK_MAX): + raise ValueError(f"length must be 0..{I2C_SMBUS_BLOCK_MAX}") + + data = _I2cSmbusData() + data.block[0] = length + self._smbus_access(I2C_SMBUS_READ, register, I2C_SMBUS_I2C_BLOCK_DATA, data) + read_len = int(data.block[0]) or length + read_len = min(read_len, length) + return [int(b) for b in data.block[1 : read_len + 1]] diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/logging_extra.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/logging_extra.py new file mode 100644 index 000000000..ceaf083cd --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/logging_extra.py @@ -0,0 +1,249 @@ +import io +import os +import sys +import copy +import json +import time +import uuid +import socket +import logging +import traceback +import numpy as np +from threading import local +from collections import OrderedDict +from contextlib import contextmanager + +LOG_TIMESTAMPS = "LOG_TIMESTAMPS" in os.environ + +def json_handler(obj): + if isinstance(obj, np.bool_): + return bool(obj) + # if isinstance(obj, (datetime.date, datetime.time)): + # return obj.isoformat() + return repr(obj) + +def json_robust_dumps(obj): + return json.dumps(obj, default=json_handler) + +class NiceOrderedDict(OrderedDict): + def __str__(self): + return json_robust_dumps(self) + +class SwagFormatter(logging.Formatter): + def __init__(self, swaglogger): + logging.Formatter.__init__(self, None, '%a %b %d %H:%M:%S %Z %Y') + + self.swaglogger = swaglogger + self.host = socket.gethostname() + + def format_dict(self, record): + record_dict = NiceOrderedDict() + + if isinstance(record.msg, dict): + record_dict['msg'] = record.msg + else: + try: + record_dict['msg'] = record.getMessage() + except (ValueError, TypeError): + record_dict['msg'] = [record.msg]+record.args + + record_dict['ctx'] = self.swaglogger.get_ctx() + + if record.exc_info: + record_dict['exc_info'] = self.formatException(record.exc_info) + + record_dict['level'] = record.levelname + record_dict['levelnum'] = record.levelno + record_dict['name'] = record.name + record_dict['filename'] = record.filename + record_dict['lineno'] = record.lineno + record_dict['pathname'] = record.pathname + record_dict['module'] = record.module + record_dict['funcName'] = record.funcName + record_dict['host'] = self.host + record_dict['process'] = record.process + record_dict['thread'] = record.thread + record_dict['threadName'] = record.threadName + record_dict['created'] = record.created + + return record_dict + + def format(self, record): + if self.swaglogger is None: + raise Exception("must set swaglogger before calling format()") + return json_robust_dumps(self.format_dict(record)) + +class SwagLogFileFormatter(SwagFormatter): + def fix_kv(self, k, v): + # append type to names to preserve legacy naming in logs + # avoids overlapping key namespaces with different types + # e.g. log.info() creates 'msg' -> 'msg$s' + # log.event() creates 'msg.health.logMonoTime' -> 'msg.health.logMonoTime$i' + # because overlapping namespace 'msg' caused problems + if isinstance(v, (str, bytes)): + k += "$s" + elif isinstance(v, float): + k += "$f" + elif isinstance(v, bool): + k += "$b" + elif isinstance(v, int): + k += "$i" + elif isinstance(v, dict): + nv = {} + for ik, iv in v.items(): + ik, iv = self.fix_kv(ik, iv) + nv[ik] = iv + v = nv + elif isinstance(v, list): + k += "$a" + return k, v + + def format(self, record): + if isinstance(record, str): + v = json.loads(record) + else: + v = self.format_dict(record) + + mk, mv = self.fix_kv('msg', v['msg']) + del v['msg'] + v[mk] = mv + v['id'] = uuid.uuid4().hex + + return json_robust_dumps(v) + +class SwagErrorFilter(logging.Filter): + def filter(self, record): + return record.levelno < logging.ERROR + +def _tmpfunc(): + return 0 + +def _srcfile(): + return os.path.normcase(_tmpfunc.__code__.co_filename) + +class SwagLogger(logging.Logger): + def __init__(self): + logging.Logger.__init__(self, "swaglog") + + self.global_ctx = {} + + self.log_local = local() + self.log_local.ctx = {} + + def local_ctx(self): + try: + return self.log_local.ctx + except AttributeError: + self.log_local.ctx = {} + return self.log_local.ctx + + def get_ctx(self): + return dict(self.local_ctx(), **self.global_ctx) + + @contextmanager + def ctx(self, **kwargs): + old_ctx = self.local_ctx() + self.log_local.ctx = copy.copy(old_ctx) or {} + self.log_local.ctx.update(kwargs) + try: + yield + finally: + self.log_local.ctx = old_ctx + + def bind(self, **kwargs): + self.local_ctx().update(kwargs) + + def bind_global(self, **kwargs): + self.global_ctx.update(kwargs) + + def event(self, event, *args, **kwargs): + evt = NiceOrderedDict() + evt['event'] = event + if args: + evt['args'] = args + evt.update(kwargs) + if 'error' in kwargs: + self.error(evt) + elif 'debug' in kwargs: + self.debug(evt) + else: + self.info(evt) + + def timestamp(self, event_name): + if LOG_TIMESTAMPS: + t = time.monotonic() + tstp = NiceOrderedDict() + tstp['timestamp'] = NiceOrderedDict() + tstp['timestamp']["event"] = event_name + tstp['timestamp']["time"] = t*1e9 + self.debug(tstp) + + def findCaller(self, stack_info=False, stacklevel=1): + """ + Find the stack frame of the caller so that we can note the source + file name, line number and function name. + """ + f = sys._getframe(3) + #On some versions of IronPython, currentframe() returns None if + #IronPython isn't run with -X:Frames. + if f is not None: + f = f.f_back + orig_f = f + while f and stacklevel > 1: + f = f.f_back + stacklevel -= 1 + if not f: + f = orig_f + rv = "(unknown file)", 0, "(unknown function)", None + while hasattr(f, "f_code"): + co = f.f_code + filename = os.path.normcase(co.co_filename) + + if filename == _srcfile: + f = f.f_back + continue + sinfo = None + if stack_info: + sio = io.StringIO() + sio.write('Stack (most recent call last):\n') + traceback.print_stack(f, file=sio) + sinfo = sio.getvalue() + if sinfo[-1] == '\n': + sinfo = sinfo[:-1] + sio.close() + rv = (co.co_filename, f.f_lineno, co.co_name, sinfo) + break + return rv + +if __name__ == "__main__": + log = SwagLogger() + + stdout_handler = logging.StreamHandler(sys.stdout) + stdout_handler.setLevel(logging.INFO) + stdout_handler.addFilter(SwagErrorFilter()) + log.addHandler(stdout_handler) + + stderr_handler = logging.StreamHandler(sys.stderr) + stderr_handler.setLevel(logging.ERROR) + log.addHandler(stderr_handler) + + log.info("asdasd %s", "a") + log.info({'wut': 1}) + log.warning("warning") + log.error("error") + log.critical("critical") + log.event("test", x="y") + + with log.ctx(): + stdout_handler.setFormatter(SwagFormatter(log)) + stderr_handler.setFormatter(SwagFormatter(log)) + log.bind(user="some user") + log.info("in req") + print("") + log.warning("warning") + print("") + log.error("error") + print("") + log.critical("critical") + print("") + log.event("do_req", a=1, b="c") diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/realtime.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/realtime.py new file mode 100644 index 000000000..9fd2f695d --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/realtime.py @@ -0,0 +1,134 @@ +"""Utilities for reading real time clocks and keeping soft real time constraints.""" +import gc +import os +import sys +import time + +from setproctitle import getproctitle + +from iqpilot.common.utils import MovingAverage +from iqpilot.system.hardware import PC + + +# time step for each process +DT_CTRL = 0.01 # controlsd +DT_MDL = 0.05 # model +DT_HW = 0.5 # hardwared and manager +DT_DMON = 0.05 # driver monitoring + + +class Priority: + # CORE 2 + # - modeld = 55 + # - camerad = 54 + CTRL_LOW = 51 # plannerd & radard + + # CORE 3 + # - pandad = 55 + CTRL_HIGH = 53 + + +def set_core_affinity(cores: list[int]) -> None: + if sys.platform == 'linux' and not PC: + os.sched_setaffinity(0, cores) + + +def config_realtime_process(cores: int | list[int], priority: int) -> None: + gc.disable() + if sys.platform == 'linux' and not PC: + os.sched_setscheduler(0, os.SCHED_FIFO, os.sched_param(priority)) + c = cores if isinstance(cores, list) else [cores, ] + 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.""" + if sys.platform != 'linux' or PC: + return + try: + import ctypes + import resource + resource.setrlimit(resource.RLIMIT_MEMLOCK, (resource.RLIM_INFINITY, resource.RLIM_INFINITY)) + MCL_CURRENT, MCL_FUTURE = 0x1, 0x2 + libc = ctypes.CDLL("libc.so.6", use_errno=True) + if libc.mlockall(MCL_CURRENT | MCL_FUTURE) != 0: + raise OSError(ctypes.get_errno(), os.strerror(ctypes.get_errno())) + except Exception as e: + try: + from iqpilot.common.swaglog import cloudlog + cloudlog.warning(f"lock_memory (mlockall) failed: {e}") + except Exception: + pass + + +class Ratekeeper: + def __init__(self, rate: float, print_delay_threshold: float | None = 0.0) -> None: + """Rate in Hz for ratekeeping. print_delay_threshold must be nonnegative.""" + self._interval = 1. / rate + self._print_delay_threshold = print_delay_threshold + self._frame = 0 + self._remaining = 0.0 + self._process_name = getproctitle() + self._last_monitor_time = -1. + self._next_frame_time = -1. + + 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 + + @property + 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) + return self.avg_dt.get_average() > expected_dt + + # Maintain loop rate by calling this at the end of each loop + def keep_time(self) -> bool: + lagged = self.monitor_time() + if self._remaining > 0: + time.sleep(self._remaining) + return lagged + + # Monitors the cumulative lag, but does not enforce a rate + def monitor_time(self) -> bool: + if self._last_monitor_time < 0: + self._next_frame_time = time.monotonic() + self._interval + self._last_monitor_time = time.monotonic() + + prev = self._last_monitor_time + self._last_monitor_time = time.monotonic() + self.avg_dt.add_value(self._last_monitor_time - prev) + + lagged = False + remaining = self._next_frame_time - time.monotonic() + self._next_frame_time += self._interval + if self._print_delay_threshold is not None and remaining < -self._print_delay_threshold: + print(f"{self._process_name} lagging by {-remaining * 1000:.2f} ms") + lagged = True + self._frame += 1 + self._remaining = remaining + return lagged diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/swaglog.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/swaglog.py new file mode 100644 index 000000000..f8fd9d392 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/swaglog.py @@ -0,0 +1,165 @@ +import logging +import os +import sys +import time +import warnings +from pathlib import Path +from logging.handlers import BaseRotatingHandler + +import zmq + +from iqpilot.common.logging_extra import SwagLogger, SwagFormatter, SwagLogFileFormatter +from iqpilot.system.hardware.hw import Paths + + +def get_file_handler(): + Path(Paths.swaglog_root()).mkdir(parents=True, exist_ok=True) + base_filename = os.path.join(Paths.swaglog_root(), "swaglog") + handler = SwaglogRotatingFileHandler(base_filename) + return handler + +class SwaglogRotatingFileHandler(BaseRotatingHandler): + def __init__(self, base_filename, interval=60, max_bytes=1024*256, backup_count=2500, encoding=None): + super().__init__(base_filename, mode="a", encoding=encoding, delay=True) + self.base_filename = base_filename + self.interval = interval # seconds + self.max_bytes = max_bytes + self.backup_count = backup_count + self.log_files = self.get_existing_logfiles() + log_indexes = [f.split(".")[-1] for f in self.log_files] + self.last_file_idx = max([int(i) for i in log_indexes if i.isdigit()] or [-1]) + self.last_rollover = None + self.doRollover() + + def _open(self): + self.last_rollover = time.monotonic() + self.last_file_idx += 1 + next_filename = f"{self.base_filename}.{self.last_file_idx:010}" + stream = open(next_filename, self.mode, encoding=self.encoding) + self.log_files.insert(0, next_filename) + return stream + + def get_existing_logfiles(self): + log_files = list() + base_dir = os.path.dirname(self.base_filename) + for fn in os.listdir(base_dir): + fp = os.path.join(base_dir, fn) + if fp.startswith(self.base_filename) and os.path.isfile(fp): + log_files.append(fp) + return sorted(log_files) + + def shouldRollover(self, record): + size_exceeded = self.max_bytes > 0 and self.stream.tell() >= self.max_bytes + time_exceeded = self.interval > 0 and self.last_rollover + self.interval <= time.monotonic() + return size_exceeded or time_exceeded + + def doRollover(self): + if self.stream: + self.stream.close() + self.stream = self._open() + + if self.backup_count > 0: + while len(self.log_files) > self.backup_count: + to_delete = self.log_files.pop() + if os.path.exists(to_delete): # just being safe, should always exist + os.remove(to_delete) + +class UnixDomainSocketHandler(logging.Handler): + def __init__(self, formatter): + logging.Handler.__init__(self) + self.setFormatter(formatter) + self.pid = None + + self.zctx = None + self.sock = None + + def __del__(self): + self.close() + + def close(self): + if self.sock is not None: + self.sock.close() + if self.zctx is not None: + self.zctx.term() + + def connect(self): + self.zctx = zmq.Context() + self.sock = self.zctx.socket(zmq.PUSH) + self.sock.setsockopt(zmq.LINGER, 10) + self.sock.connect(Paths.swaglog_ipc()) + self.pid = os.getpid() + + def emit(self, record): + if os.getpid() != self.pid: + # TODO suppresses warning about forking proc with zmq socket, fix root cause + warnings.filterwarnings("ignore", category=ResourceWarning, message="unclosed.*") + self.connect() + + msg = self.format(record).rstrip('\n') + # print("SEND".format(repr(msg))) + try: + s = chr(record.levelno)+msg + self.sock.send(s.encode('utf8'), zmq.NOBLOCK) + except zmq.error.Again: + # drop :/ + pass + + +class ForwardingHandler(logging.Handler): + def __init__(self, target_logger): + super().__init__() + self.target_logger = target_logger + + def emit(self, record): + self.target_logger.handle(record) + + +def add_file_handler(log): + """ + Function to add the file log handler to swaglog. + This can be used to store logs when logmessaged is not running. + """ + handler = get_file_handler() + handler.setFormatter(SwagLogFileFormatter(log)) + log.addHandler(handler) + + +cloudlog = log = SwagLogger() +log.setLevel(logging.DEBUG) + + +class PrettyConsoleFormatter(logging.Formatter): + # StreamHandler writes to stderr, so tty-gate on that + _COLOR = sys.stderr.isatty() and os.environ.get('NO_COLOR') is None + + def format(self, record): + msg = record.getMessage() + if not self._COLOR: + return f"{record.filename}: {msg}" + lvl = record.levelno + if lvl >= 50: lc, ln = "\033[1;38;5;196m", "CRIT" + elif lvl >= 40: lc, ln = "\033[1;38;5;203m", " ERR" + elif lvl >= 30: lc, ln = "\033[38;5;214m", "WARN" + elif lvl >= 20: lc, ln = "\033[38;5;110m", "info" + else: lc, ln = "\033[38;5;244m", " dbg" + body = f"\033[1;38;5;210m{msg}\033[0m" if lvl >= 40 else msg + src = "" if record.filename == "(unknown file)" else f"\033[2m{record.filename}\033[0m " + return f"{lc}{ln:>4}\033[0m {src}{body}" + + +outhandler = logging.StreamHandler() +outhandler.setFormatter(PrettyConsoleFormatter()) + +print_level = os.environ.get('LOGPRINT', 'warning') +if print_level == 'debug': + outhandler.setLevel(logging.DEBUG) +elif print_level == 'info': + outhandler.setLevel(logging.INFO) +elif print_level == 'warning': + outhandler.setLevel(logging.WARNING) + +ipchandler = UnixDomainSocketHandler(SwagFormatter(log)) + +log.addHandler(outhandler) +# logs are sent through IPC before writing to disk to prevent disk I/O blocking +log.addHandler(ipchandler) diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/time_helpers.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/time_helpers.py new file mode 100644 index 000000000..8564e270c --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/time_helpers.py @@ -0,0 +1,15 @@ +import datetime +from pathlib import Path + +MIN_DATE = datetime.datetime(year=2025, month=2, day=21) + +def min_date(): + # on systemd systems, the default time is the systemd build time + systemd_path = Path("/lib/systemd/systemd") + if systemd_path.exists(): + d = datetime.datetime.fromtimestamp(systemd_path.stat().st_mtime) + return max(MIN_DATE, d + datetime.timedelta(days=1)) + return MIN_DATE + +def system_time_valid(): + return datetime.datetime.now() > min_date() diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/utils.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/utils.py new file mode 100644 index 000000000..e0aa1605d --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/common/utils.py @@ -0,0 +1,271 @@ +import io +import os +import tempfile +import contextlib +import subprocess +import time +import functools +from subprocess import Popen, PIPE, TimeoutExpired +import zstandard as zstd + +LOG_COMPRESSION_LEVEL = 10 # little benefit up to level 15. level ~17 is a small step change + +class Timer: + """Simple lap timer for profiling sequential operations.""" + + def __init__(self): + self._start = self._lap = time.monotonic() + self._sections = {} + + def lap(self, name): + now = time.monotonic() + self._sections[name] = now - self._lap + self._lap = now + + @property + def total(self): + return time.monotonic() - self._start + + def fmt(self, duration): + parts = ", ".join(f"{k}={v:.2f}s" + (f" ({duration/v:.0f}x)" if k == 'render' and v > 0 else "") for k, v in self._sections.items()) + total = self.total + realtime = f"{duration/total:.1f}x realtime" if total > 0 else "N/A" + return f"{duration}s in {total:.1f}s ({realtime}) | {parts}" + +def sudo_write(val: str, path: str) -> None: + try: + with open(path, 'w') as f: + f.write(str(val)) + except PermissionError: + os.system(f"sudo chmod a+w {path}") + try: + with open(path, 'w') as f: + f.write(str(val)) + except PermissionError: + # fallback for debugfs files + os.system(f"sudo su -c 'echo {val} > {path}'") + + +def sudo_read(path: str) -> str: + try: + return subprocess.check_output(f"sudo cat {path}", shell=True, encoding='utf8').strip() + except Exception: + return "" + + +class MovingAverage: + def __init__(self, window_size: int): + self.window_size: int = window_size + self.buffer: list[float] = [0.0] * window_size + self.index: int = 0 + self.count: int = 0 + self.sum: float = 0.0 + + def add_value(self, new_value: float): + # Update the sum: subtract the value being replaced and add the new value + self.sum -= self.buffer[self.index] + self.buffer[self.index] = new_value + self.sum += new_value + + # Update the index in a circular manner + self.index = (self.index + 1) % self.window_size + + # Track the number of added values (for partial windows) + self.count = min(self.count + 1, self.window_size) + + def get_average(self) -> float: + if self.count == 0: + return float('nan') + return self.sum / self.count + + +class CallbackReader: + """Wraps a file, but overrides the read method to also + call a callback function with the number of bytes read so far.""" + + def __init__(self, f, callback, *args): + self.f = f + self.callback = callback + self.cb_args = args + self.total_read = 0 + + def __getattr__(self, attr): + return getattr(self.f, attr) + + def read(self, *args, **kwargs): + chunk = self.f.read(*args, **kwargs) + self.total_read += len(chunk) + self.callback(*self.cb_args, self.total_read) + return chunk + + +@contextlib.contextmanager +def atomic_write(path: str, mode: str = 'w', buffering: int = -1, encoding: str | None = None, newline: str | None = None, + overwrite: bool = False): + """Write to a file atomically using a temporary file in the same directory as the destination file.""" + dir_name = os.path.dirname(path) + + if not overwrite and os.path.exists(path): + raise FileExistsError(f"File '{path}' already exists. To overwrite it, set 'overwrite' to True.") + + with tempfile.NamedTemporaryFile(mode=mode, buffering=buffering, encoding=encoding, newline=newline, dir=dir_name, delete=False) as tmp_file: + yield tmp_file + tmp_file_name = tmp_file.name + os.replace(tmp_file_name, path) + + +def get_upload_stream(filepath: str, should_compress: bool) -> tuple[io.BufferedIOBase, int]: + if not should_compress: + file_size = os.path.getsize(filepath) + file_stream = open(filepath, "rb") + return file_stream, file_size + + # Compress the file on the fly + compressed_stream = io.BytesIO() + compressor = zstd.ZstdCompressor(level=LOG_COMPRESSION_LEVEL) + + with open(filepath, "rb") as f: + compressor.copy_stream(f, compressed_stream) + compressed_size = compressed_stream.tell() + compressed_stream.seek(0) + return compressed_stream, compressed_size + + +# remove all keys that end in DEPRECATED +def strip_deprecated_keys(d): + for k in list(d.keys()): + if isinstance(k, str): + if k.endswith('DEPRECATED'): + d.pop(k) + elif isinstance(d[k], dict): + strip_deprecated_keys(d[k]) + return d + + +def run_cmd(cmd: list[str], cwd=None, env=None) -> str: + return subprocess.check_output(cmd, encoding='utf8', cwd=cwd, env=env).strip() + + +def run_cmd_default(cmd: list[str], default: str = "", cwd=None, env=None) -> str: + try: + return run_cmd(cmd, cwd=cwd, env=env) + except subprocess.CalledProcessError: + return default + + +@contextlib.contextmanager +def managed_proc(cmd: list[str], env: dict[str, str]): + proc = Popen(cmd, env=env, stdout=PIPE, stderr=PIPE) + try: + yield proc + finally: + if proc.poll() is None: + proc.terminate() + try: + proc.wait(timeout=5) + except TimeoutExpired: + proc.kill() + + +def tabulate(tabular_data, headers=(), tablefmt="simple", floatfmt="g", stralign="left", numalign=None): + rows = [list(row) for row in tabular_data] + + def fmt(val): + if isinstance(val, str): + return val + if isinstance(val, (bool, int)): + return str(val) + try: + return format(val, floatfmt) + except (TypeError, ValueError): + return str(val) + + formatted = [[fmt(c) for c in row] for row in rows] + hdrs = [str(h) for h in headers] if headers else None + + ncols = max((len(r) for r in formatted), default=0) + if hdrs: + ncols = max(ncols, len(hdrs)) + if ncols == 0: + return "" + + for r in formatted: + r.extend([""] * (ncols - len(r))) + if hdrs: + hdrs.extend([""] * (ncols - len(hdrs))) + + widths = [0] * ncols + if hdrs: + for i in range(ncols): + widths[i] = len(hdrs[i]) + for row in formatted: + for i in range(ncols): + widths[i] = max(widths[i], max(len(ln) for ln in row[i].split('\n'))) + + def _align(s, w): + if stralign == "center": + return s.center(w) + return s.ljust(w) + + if tablefmt == "html": + parts = [""] + if hdrs: + parts.append("") + parts.append("" + "".join(f"" for h in hdrs) + "") + parts.append("") + parts.append("") + for row in formatted: + parts.append("" + "".join(f"" for c in row) + "") + parts.append("") + parts.append("
{h}
{c}
") + return "\n".join(parts) + + if tablefmt == "simple_grid": + def _sep(left, mid, right): + return left + mid.join("─" * (w + 2) for w in widths) + right + + top, mid_sep, bot = _sep("┌", "┬", "┐"), _sep("├", "┼", "┤"), _sep("└", "┴", "┘") + + def _fmt_row(cells): + split = [c.split('\n') for c in cells] + nlines = max(len(s) for s in split) + for s in split: + s.extend([""] * (nlines - len(s))) + return ["│" + "│".join(f" {_align(split[i][li], widths[i])} " for i in range(ncols)) + "│" for li in range(nlines)] + + lines = [top] + if hdrs: + lines.extend(_fmt_row(hdrs)) + lines.append(mid_sep) + for ri, row in enumerate(formatted): + lines.extend(_fmt_row(row)) + lines.append(mid_sep if ri < len(formatted) - 1 else bot) + return "\n".join(lines) + + gap = " " + lines = [] + if hdrs: + lines.append(gap.join(h.ljust(w) for h, w in zip(hdrs, widths, strict=True))) + lines.append(gap.join("-" * w for w in widths)) + for row in formatted: + lines.append(gap.join(_align(row[i], widths[i]) for i in range(ncols))) + return "\n".join(lines) + + +def retry(attempts=3, delay=1.0, ignore_failure=False): + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + for _ in range(attempts): + try: + return func(*args, **kwargs) + except Exception: + print(f"{func.__name__} failed, trying again") + time.sleep(delay) + + if ignore_failure: + print(f"{func.__name__} failed after retry") + else: + raise Exception(f"{func.__name__} failed after retry") + return wrapper + return decorator diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/__init__.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/__init__.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/__init__.py new file mode 100644 index 000000000..1338aa2cf --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/__init__.py @@ -0,0 +1,22 @@ +import os +from typing import cast + +from iqpilot.system.hardware.base import HardwareBase +from iqpilot.system.hardware.tici.hardware import Tici +from iqpilot.system.hardware.pc.hardware import Pc + +TICI = os.path.isfile('/TICI') +AGNOS = os.path.isfile('/AGNOS') +PC = not TICI + + +if TICI: + HARDWARE = cast(HardwareBase, Tici()) +else: + HARDWARE = cast(HardwareBase, Pc()) + +# Only comma 3/3X expose the DMA-BUF EGL extensions used by the zero-copy +# camera renderer and the direct EGL frame-pacing calls. /TICI is also present +# on comma 4, so it identifies the AGNOS hardware family rather than this GPU +# capability. +EGL_DMA_BUF_SUPPORTED = TICI and HARDWARE.get_device_type() in ("tici", "tizi") diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/base.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/base.py new file mode 100644 index 000000000..217696e09 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/base.py @@ -0,0 +1,228 @@ +import os +from abc import abstractmethod, ABC +from dataclasses import dataclass, fields + +from iqpilot.cereal import log + +NetworkType = log.DeviceState.NetworkType +NetworkStrength = log.DeviceState.NetworkStrength + +class LPAError(RuntimeError): + pass + +class LPAProfileNotFoundError(LPAError): + pass + +@dataclass +class Profile: + iccid: str + nickname: str + enabled: bool + provider: str + +@dataclass +class ThermalZone: + # a zone from /sys/class/thermal/thermal_zone* + name: str # a.k.a type + scale: float = 1000. # scale to get degrees in C + zone_number = -1 + + def read(self) -> float: + if self.zone_number < 0: + for n in os.listdir("/sys/devices/virtual/thermal"): + if not n.startswith("thermal_zone"): + continue + with open(os.path.join("/sys/devices/virtual/thermal", n, "type")) as f: + if f.read().strip() == self.name: + self.zone_number = int(n.removeprefix("thermal_zone")) + break + + try: + with open(f"/sys/devices/virtual/thermal/thermal_zone{self.zone_number}/temp") as f: + return int(f.read()) / self.scale + except FileNotFoundError: + return 0 + +@dataclass +class ThermalConfig: + cpu: list[ThermalZone] | None = None + gpu: list[ThermalZone] | None = None + dsp: ThermalZone | None = None + pmic: list[ThermalZone] | None = None + memory: ThermalZone | None = None + intake: ThermalZone | None = None + exhaust: ThermalZone | None = None + case: ThermalZone | None = None + + def get_msg(self): + ret = {} + for f in fields(ThermalConfig): + v = getattr(self, f.name) + if v is not None: + if isinstance(v, list): + ret[f.name + "TempC"] = [x.read() for x in v] + else: + ret[f.name + "TempC"] = v.read() + return ret + +class LPABase(ABC): + @abstractmethod + def list_profiles(self) -> list[Profile]: + pass + + @abstractmethod + def get_active_profile(self) -> Profile | None: + pass + + @abstractmethod + def delete_profile(self, iccid: str) -> None: + pass + + @abstractmethod + def bootstrap(self) -> None: + pass + + @abstractmethod + def download_profile(self, qr: str, nickname: str | None = None) -> None: + pass + + @abstractmethod + def nickname_profile(self, iccid: str, nickname: str) -> None: + pass + + @abstractmethod + def switch_profile(self, iccid: str) -> None: + pass + + def is_comma_profile(self, iccid: str) -> bool: + return any(iccid.startswith(prefix) for prefix in ('8985235',)) + +class HardwareBase(ABC): + @staticmethod + def get_cmdline() -> dict[str, str]: + with open('/proc/cmdline') as f: + cmdline = f.read() + return {kv[0]: kv[1] for kv in [s.split('=') for s in cmdline.split(' ')] if len(kv) == 2} + + @staticmethod + def read_param_file(path, parser, default=0): + try: + with open(path) as f: + return parser(f.read()) + except Exception: + return default + + def booted(self) -> bool: + return True + + def reboot(self, reason=None): + print("REBOOT!") + + def uninstall(self): + print("uninstall") + + def get_os_version(self): + return None + + @abstractmethod + def get_device_type(self): + pass + + def get_imei(self, slot) -> str: + return "" + + def get_serial(self): + return "" + + def get_network_info(self): + return None + + def get_network_type(self): + return NetworkType.none + + def get_sim_info(self): + return { + 'sim_id': '', + 'mcc_mnc': None, + 'network_type': ["Unknown"], + 'sim_state': ["ABSENT"], + 'data_connected': False + } + + def get_sim_lpa(self) -> LPABase: + raise NotImplementedError("SIM LPA not available") + + def get_network_strength(self, network_type): + return NetworkStrength.unknown + + def get_network_metered(self, network_type) -> bool: + return network_type not in (NetworkType.none, NetworkType.wifi, NetworkType.ethernet) + + def get_current_power_draw(self): + return 0 + + def get_som_power_draw(self): + return 0 + + def shutdown(self): + print("SHUTDOWN!") + + def get_thermal_config(self): + return ThermalConfig() + + def set_display_power(self, on: bool): + pass + + def set_screen_brightness(self, percentage): + pass + + def get_screen_brightness(self): + return 0 + + def set_power_save(self, powersave_enabled): + pass + + def get_gpu_usage_percent(self): + return 0 + + def get_modem_version(self): + return None + + def get_modem_temperatures(self): + return [] + + def initialize_hardware(self): + pass + + def configure_modem(self): + pass + + def reboot_modem(self): + pass + + def recover_sim_detection(self) -> bool: + return False + + def get_networks(self): + return None + + def has_internal_panda(self) -> bool: + return False + + def reset_internal_panda(self): + pass + + def recover_internal_panda(self): + pass + + def get_modem_data_usage(self): + return -1, -1 + + def get_voltage(self) -> float: + return 0. + + def get_current(self) -> float: + return 0. + + def set_ir_power(self, percent: int): + pass diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/hw.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/hw.py new file mode 100644 index 000000000..7263ddbfc --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/hw.py @@ -0,0 +1,137 @@ +import os +import platform +from pathlib import Path + +from iqpilot.system.hardware import PC + +DEFAULT_DOWNLOAD_CACHE_ROOT = "/tmp/comma_download_cache" + +class Paths: + _persist_root_cache: str | None = None + + @staticmethod + def _is_writable_persist_root(path: str) -> bool: + try: + os.makedirs(path, exist_ok=True) + comma_dir = os.path.join(path, "comma") + os.makedirs(comma_dir, exist_ok=True) + + probe_path = os.path.join(comma_dir, ".rw_probe") + with open(probe_path, "w") as f: + f.write("1") + os.remove(probe_path) + return True + except OSError: + return False + + @staticmethod + def comma_home() -> str: + return os.path.join(str(Path.home()), ".comma" + os.environ.get("OPENPILOT_PREFIX", "")) + + @staticmethod + def params() -> str: + if os.environ.get("PARAMS_ROOT"): + return os.environ["PARAMS_ROOT"] + return os.path.join(Paths.comma_home(), "params") if PC else "/data/params" + + @staticmethod + def log_root() -> str: + if os.environ.get('LOG_ROOT', False): + return os.environ['LOG_ROOT'] + elif PC: + return str(Path(Paths.comma_home()) / "media" / "0" / "realdata") + else: + return '/data/media/0/realdata/' + + @staticmethod + def log_root_external() -> str: + return '/mnt/external_realdata/' + + @staticmethod + def swaglog_root() -> str: + if PC: + return os.path.join(Paths.comma_home(), "log") + else: + return "/data/log/" + + @staticmethod + def swaglog_ipc() -> str: + return "ipc:///tmp/logmessage" + os.environ.get("OPENPILOT_PREFIX", "") + + @staticmethod + def download_cache_root() -> str: + if os.environ.get('COMMA_CACHE', False): + return os.environ['COMMA_CACHE'] + "/" + return DEFAULT_DOWNLOAD_CACHE_ROOT + os.environ.get("OPENPILOT_PREFIX", "") + "/" + + @staticmethod + def persist_root() -> str: + if PC: + return os.path.join(Paths.comma_home(), "persist") + + if Paths._persist_root_cache is not None: + return Paths._persist_root_cache + + for candidate in ("/persist", "/data/persist"): + if Paths._is_writable_persist_root(candidate): + Paths._persist_root_cache = candidate + return candidate + + # Keep previous behavior as a last resort. + Paths._persist_root_cache = "/persist" + return Paths._persist_root_cache + + @staticmethod + def stats_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "stats") + else: + return "/data/stats/" + + @staticmethod + def stats_iq_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "stats") + else: + return "/data/stats_iq/" + + @staticmethod + def config_root() -> str: + if PC: + return Paths.comma_home() + else: + return "/tmp/.comma" + + @staticmethod + def shm_path() -> str: + if PC and platform.system() == "Darwin": + return "/tmp" # This is not really shared memory on macOS, but it's the closest we can get + return "/dev/shm" + + @staticmethod + def model_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "media" / "0" / "models") + else: + return "/data/media/0/models" + + @staticmethod + def crash_log_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "community" / "crashes") + else: + return "/data/community/crashes" + + @staticmethod + def mapd_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "media" / "0" / "osm") + else: + return "/data/media/0/osm" + + @staticmethod + def screen_recordings_root() -> str: + if PC: + return str(Path(Paths.comma_home()) / "media" / "0" / "screen_recordings") + else: + return "/data/media/0/screen_recordings" diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/__init__.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/hardware.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/hardware.py new file mode 100644 index 000000000..72ef2f235 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/pc/hardware.py @@ -0,0 +1,12 @@ +from iqpilot.cereal import log +from iqpilot.system.hardware.base import HardwareBase + +NetworkType = log.DeviceState.NetworkType + + +class Pc(HardwareBase): + def get_device_type(self): + return "pc" + + def get_network_type(self): + return NetworkType.wifi diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/__init__.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/amplifier.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/amplifier.py new file mode 100644 index 000000000..48a34ea48 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/amplifier.py @@ -0,0 +1,159 @@ +#!/usr/bin/env python3 +import time +from collections import namedtuple + +from iqpilot.common.i2c import SMBus + +# https://datasheets.maximintegrated.com/en/ds/MAX98089.pdf + +AmpConfig = namedtuple('AmpConfig', ['name', 'value', 'register', 'offset', 'mask']) +EQParams = namedtuple('EQParams', ['K', 'k1', 'k2', 'c1', 'c2']) + + +def configs_from_eq_params(base, eq_params): + return [ + AmpConfig("K (high)", (eq_params.K >> 8), base, 0, 0xFF), + AmpConfig("K (low)", (eq_params.K & 0xFF), base + 1, 0, 0xFF), + AmpConfig("k1 (high)", (eq_params.k1 >> 8), base + 2, 0, 0xFF), + AmpConfig("k1 (low)", (eq_params.k1 & 0xFF), base + 3, 0, 0xFF), + AmpConfig("k2 (high)", (eq_params.k2 >> 8), base + 4, 0, 0xFF), + AmpConfig("k2 (low)", (eq_params.k2 & 0xFF), base + 5, 0, 0xFF), + AmpConfig("c1 (high)", (eq_params.c1 >> 8), base + 6, 0, 0xFF), + AmpConfig("c1 (low)", (eq_params.c1 & 0xFF), base + 7, 0, 0xFF), + AmpConfig("c2 (high)", (eq_params.c2 >> 8), base + 8, 0, 0xFF), + AmpConfig("c2 (low)", (eq_params.c2 & 0xFF), base + 9, 0, 0xFF), + ] + + +BASE_CONFIG = [ + AmpConfig("MCLK prescaler", 0b01, 0x10, 4, 0b00110000), + AmpConfig("PM: enable speakers", 0b11, 0x4D, 4, 0b00110000), + AmpConfig("PM: enable DACs", 0b11, 0x4D, 0, 0b00000011), + AmpConfig("Enable PLL1", 0b1, 0x12, 7, 0b10000000), + AmpConfig("Enable PLL2", 0b1, 0x1A, 7, 0b10000000), + AmpConfig("DAI1: I2S mode", 0b00100, 0x14, 2, 0b01111100), + AmpConfig("DAI2: I2S mode", 0b00100, 0x1C, 2, 0b01111100), + AmpConfig("DAI1 Passband filtering: music mode", 0b1, 0x18, 7, 0b10000000), + AmpConfig("DAI1 voice mode gain (DV1G)", 0b00, 0x2F, 4, 0b00110000), + AmpConfig("DAI1 attenuation (DV1)", 0x0, 0x2F, 0, 0b00001111), + AmpConfig("DAI2 attenuation (DV2)", 0x0, 0x31, 0, 0b00001111), + AmpConfig("DAI2: DC blocking", 0b1, 0x20, 0, 0b00000001), + AmpConfig("DAI2: High sample rate", 0b0, 0x20, 3, 0b00001000), + AmpConfig("ALC enable", 0b1, 0x43, 7, 0b10000000), + AmpConfig("ALC/excursion limiter release time", 0b101, 0x43, 4, 0b01110000), + AmpConfig("ALC multiband enable", 0b1, 0x43, 3, 0b00001000), + AmpConfig("DAI1 EQ enable", 0b0, 0x49, 0, 0b00000001), + AmpConfig("DAI2 EQ clip detection disabled", 0b1, 0x32, 4, 0b00010000), + AmpConfig("DAI2 EQ attenuation", 0x5, 0x32, 0, 0b00001111), + AmpConfig("Excursion limiter upper corner freq", 0b100, 0x41, 4, 0b01110000), + AmpConfig("Excursion limiter lower corner freq", 0b00, 0x41, 0, 0b00000011), + AmpConfig("Excursion limiter threshold", 0b000, 0x42, 0, 0b00001111), + AmpConfig("Distortion limit (THDCLP)", 0x6, 0x46, 4, 0b11110000), + AmpConfig("Distortion limiter release time constant", 0b0, 0x46, 0, 0b00000001), + AmpConfig("Right DAC input mixer: DAI1 left", 0b0, 0x22, 3, 0b00001000), + AmpConfig("Right DAC input mixer: DAI1 right", 0b0, 0x22, 2, 0b00000100), + AmpConfig("Right DAC input mixer: DAI2 left", 0b1, 0x22, 1, 0b00000010), + AmpConfig("Right DAC input mixer: DAI2 right", 0b0, 0x22, 0, 0b00000001), + AmpConfig("DAI1 audio port selector", 0b10, 0x16, 6, 0b11000000), + AmpConfig("DAI2 audio port selector", 0b01, 0x1E, 6, 0b11000000), + AmpConfig("Enable left digital microphone", 0b1, 0x48, 5, 0b00100000), + AmpConfig("Enable right digital microphone", 0b1, 0x48, 4, 0b00010000), + AmpConfig("Enhanced volume smoothing disabled", 0b0, 0x49, 7, 0b10000000), + AmpConfig("Volume adjustment smoothing disabled", 0b0, 0x49, 6, 0b01000000), + AmpConfig("Zero-crossing detection disabled", 0b0, 0x49, 5, 0b00100000), +] + +CONFIGS = { + "tici": [ + AmpConfig("Right speaker output from right DAC", 0b1, 0x2C, 0, 0b11111111), + AmpConfig("Right Speaker Mixer Gain", 0b00, 0x2D, 2, 0b00001100), + AmpConfig("Right speaker output volume", 0x1c, 0x3E, 0, 0b00011111), + AmpConfig("DAI2 EQ enable", 0b1, 0x49, 1, 0b00000010), + *configs_from_eq_params(0x84, EQParams(0x274F, 0xC0FF, 0x3BF9, 0x0B3C, 0x1656)), + *configs_from_eq_params(0x8E, EQParams(0x1009, 0xC6BF, 0x2952, 0x1C97, 0x30DF)), + *configs_from_eq_params(0x98, EQParams(0x0F75, 0xCBE5, 0x0ED2, 0x2528, 0x3E42)), + *configs_from_eq_params(0xA2, EQParams(0x091F, 0x3D4C, 0xCE11, 0x1266, 0x2807)), + *configs_from_eq_params(0xAC, EQParams(0x0A9E, 0x3F20, 0xE573, 0x0A8B, 0x3A3B)), + ], + "tizi": [ + AmpConfig("Left speaker output from left DAC", 0b1, 0x2B, 0, 0b11111111), + AmpConfig("Right speaker output from right DAC", 0b1, 0x2C, 0, 0b11111111), + AmpConfig("Left Speaker Mixer Gain", 0b00, 0x2D, 0, 0b00000011), + AmpConfig("Right Speaker Mixer Gain", 0b00, 0x2D, 2, 0b00001100), + AmpConfig("Left speaker output volume", 0x17, 0x3D, 0, 0b00011111), + AmpConfig("Right speaker output volume", 0x17, 0x3E, 0, 0b00011111), + AmpConfig("DAI2 EQ enable", 0b0, 0x49, 1, 0b00000010), + AmpConfig("DAI2: DC blocking", 0b0, 0x20, 0, 0b00000001), + AmpConfig("ALC enable", 0b0, 0x43, 7, 0b10000000), + AmpConfig("DAI2 EQ attenuation", 0x2, 0x32, 0, 0b00001111), + AmpConfig("Excursion limiter upper corner freq", 0b001, 0x41, 4, 0b01110000), + AmpConfig("Excursion limiter threshold", 0b100, 0x42, 0, 0b00001111), + AmpConfig("Distortion limit (THDCLP)", 0x0, 0x46, 4, 0b11110000), + AmpConfig("Distortion limiter release time constant", 0b1, 0x46, 0, 0b00000001), + AmpConfig("Left DAC input mixer: DAI1 left", 0b0, 0x22, 7, 0b10000000), + AmpConfig("Left DAC input mixer: DAI1 right", 0b0, 0x22, 6, 0b01000000), + AmpConfig("Left DAC input mixer: DAI2 left", 0b1, 0x22, 5, 0b00100000), + AmpConfig("Left DAC input mixer: DAI2 right", 0b0, 0x22, 4, 0b00010000), + AmpConfig("Right DAC input mixer: DAI2 left", 0b0, 0x22, 1, 0b00000010), + AmpConfig("Right DAC input mixer: DAI2 right", 0b1, 0x22, 0, 0b00000001), + AmpConfig("Volume adjustment smoothing disabled", 0b1, 0x49, 6, 0b01000000), + ], +} + + +class Amplifier: + AMP_I2C_BUS = 0 + AMP_ADDRESS = 0x10 + + def __init__(self, debug=False): + self.debug = debug + + def _get_shutdown_config(self, amp_disabled: bool) -> AmpConfig: + return AmpConfig("Global shutdown", 0b0 if amp_disabled else 0b1, 0x51, 7, 0b10000000) + + def _set_configs(self, configs: list[AmpConfig]) -> None: + with SMBus(self.AMP_I2C_BUS) as bus: + for config in configs: + if self.debug: + print(f"Setting \"{config.name}\" to {config.value}:") + + old_value = bus.read_byte_data(self.AMP_ADDRESS, config.register, force=True) + new_value = (old_value & (~config.mask)) | ((config.value << config.offset) & config.mask) + bus.write_byte_data(self.AMP_ADDRESS, config.register, new_value, force=True) + + if self.debug: + print(f" Changed {hex(config.register)}: {hex(old_value)} -> {hex(new_value)}") + + def set_configs(self, configs: list[AmpConfig]) -> bool: + tries = 15 + backoff = 0. + for i in range(tries): + try: + self._set_configs(configs) + return True + except OSError: + backoff += 0.1 + time.sleep(backoff) + print(f"Failed to set amp config, {tries - i - 1} retries left") + return False + + def set_global_shutdown(self, amp_disabled: bool) -> bool: + return self.set_configs([self._get_shutdown_config(amp_disabled), ]) + + def initialize_configuration(self, model: str) -> bool: + cfgs = [ + self._get_shutdown_config(True), + *BASE_CONFIG, + *CONFIGS[model], + self._get_shutdown_config(False), + ] + return self.set_configs(cfgs) + + +if __name__ == "__main__": + with open("/sys/firmware/devicetree/base/model") as f: + model = f.read().strip('\x00') + model = model.split('comma ')[-1] + + amp = Amplifier() + amp.initialize_configuration(model) diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/hardware.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/hardware.py new file mode 100644 index 000000000..b9fa7fbff --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/hardware.py @@ -0,0 +1,740 @@ +import math +import os +import sys +import subprocess +import time +import tempfile +from enum import IntEnum +from functools import cached_property, lru_cache +from pathlib import Path + +from iqpilot.cereal import log +from iqpilot.common.utils import sudo_read, sudo_write +from iqpilot.common.gpio import gpio_set, gpio_init, get_irqs_for_action +from iqpilot.system.hardware.base import HardwareBase, LPABase, ThermalConfig, ThermalZone +from iqpilot.system.hardware.tici import iwlist +from iqpilot.system.hardware.tici.lpa import TiciLPA +from iqpilot.system.hardware.tici.pins import GPIO +from iqpilot.system.hardware.tici.amplifier import Amplifier + +NM = 'org.freedesktop.NetworkManager' +NM_CON_ACT = NM + '.Connection.Active' +NM_DEV = NM + '.Device' +NM_DEV_WL = NM + '.Device.Wireless' +NM_DEV_STATS = NM + '.Device.Statistics' +NM_AP = NM + '.AccessPoint' +DBUS_PROPS = 'org.freedesktop.DBus.Properties' + +MM = 'org.freedesktop.ModemManager1' +MM_MODEM = MM + ".Modem" +MM_MODEM_SIMPLE = MM + ".Modem.Simple" +MM_SIM = MM + ".Sim" + +class MM_MODEM_STATE(IntEnum): + FAILED = -1 + UNKNOWN = 0 + INITIALIZING = 1 + LOCKED = 2 + DISABLED = 3 + DISABLING = 4 + ENABLING = 5 + ENABLED = 6 + SEARCHING = 7 + REGISTERED = 8 + DISCONNECTING = 9 + CONNECTING = 10 + CONNECTED = 11 + +class NMActiveConnectionState(IntEnum): + UNKNOWN = 0 + ACTIVATING = 1 + ACTIVATED = 2 + DEACTIVATING = 3 + DEACTIVATED = 4 + +class NMMetered(IntEnum): + NM_METERED_UNKNOWN = 0 + NM_METERED_YES = 1 + NM_METERED_NO = 2 + NM_METERED_GUESS_YES = 3 + NM_METERED_GUESS_NO = 4 + +TIMEOUT = 0.1 +REFRESH_RATE_MS = 1000 + +NetworkType = log.DeviceState.NetworkType +NetworkStrength = log.DeviceState.NetworkStrength + +# https://developer.gnome.org/ModemManager/unstable/ModemManager-Flags-and-Enumerations.html#MMModemAccessTechnology +MM_MODEM_ACCESS_TECHNOLOGY_UMTS = 1 << 5 +MM_MODEM_ACCESS_TECHNOLOGY_LTE = 1 << 14 + +# MMModemStateFailedReason +MM_MODEM_STATE_FAILED_REASON_SIM_MISSING = 2 + + +def affine_irq(val, action): + irqs = get_irqs_for_action(action) + if len(irqs) == 0: + return + + for i in irqs: + sudo_write(str(val), f"/proc/irq/{i}/smp_affinity_list") + +@lru_cache +def get_device_type(): + # lru_cache and cache can cause memory leaks when used in classes + try: + with open("/sys/firmware/devicetree/base/model") as f: + model = f.read().strip('\x00') + except FileNotFoundError: + # off-device (e.g. the prebuilt build container fakes /TICI but has no + # devicetree); import must not crash. Not a real device type. + return "unknown" + return model.split('comma ')[-1] + +class Tici(HardwareBase): + @staticmethod + def _ensure_system_python_path() -> None: + system_site = "/usr/lib/python3/dist-packages" + if system_site not in sys.path and os.path.isdir(system_site): + sys.path.append(system_site) + + @staticmethod + def _run_direct_modem_command(command: str) -> None: + import serial + + last_error: Exception | None = None + for device in ("/dev/ttyUSB2", "/dev/ttyUSB3"): + if not os.path.exists(device): + continue + + try: + with serial.Serial(device, baudrate=9600, timeout=2) as modem: + modem.reset_input_buffer() + modem.write((command + "\r").encode("ascii")) + + deadline = time.monotonic() + 3.0 + while time.monotonic() < deadline: + line = modem.readline().decode(errors="ignore").strip() + if not line: + continue + if line == "OK": + return + if line == "ERROR" or "ERROR" in line: + raise RuntimeError(f"{device}: {line}") + raise TimeoutError(f"{device}: timed out waiting for modem response") + except Exception as e: + last_error = e + + if last_error is not None: + raise last_error + raise RuntimeError("No modem AT port available") + + @cached_property + def bus(self): + try: + import dbus + except ModuleNotFoundError: + self._ensure_system_python_path() + import dbus + return dbus.SystemBus() + + @cached_property + def nm(self): + return self.bus.get_object(NM, '/org/freedesktop/NetworkManager') + + @property # this should not be cached, in case the modemmanager restarts + def mm(self): + return self.bus.get_object(MM, '/org/freedesktop/ModemManager1') + + @cached_property + def amplifier(self): + if self.get_device_type() == "mici": + return None + if os.path.exists('/tmp/lite_hw') or os.environ.get('LITE') == '1': + return None + return Amplifier() + + def get_os_version(self): + with open("/VERSION") as f: + return f.read().strip() + + def get_device_type(self): + return get_device_type() + + def reboot(self, reason=None): + subprocess.check_output(["sudo", "reboot"]) + + def uninstall(self): + Path("/data/__system_reset__").touch() + os.sync() + self.reboot() + + def get_serial(self): + return self.get_cmdline()['androidboot.serialno'] + + def get_voltage(self): + with open("/sys/class/hwmon/hwmon1/in1_input") as f: + return int(f.read()) + + def get_current(self): + with open("/sys/class/hwmon/hwmon1/curr1_input") as f: + return int(f.read()) + + def set_ir_power(self, percent: int): + if self.get_device_type() in ("tici", "tizi"): + return + + value = int((percent / 100) * 300) + with open("/sys/class/leds/led:switch_2/brightness", "w") as f: + f.write("0\n") + with open("/sys/class/leds/led:torch_2/brightness", "w") as f: + f.write(f"{value}\n") + with open("/sys/class/leds/led:switch_2/brightness", "w") as f: + f.write(f"{value}\n") + + def get_network_type(self): + try: + primary_connection = self.nm.Get(NM, 'PrimaryConnection', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + primary_connection = self.bus.get_object(NM, primary_connection) + primary_type = primary_connection.Get(NM_CON_ACT, 'Type', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + + if primary_type == '802-3-ethernet': + return NetworkType.ethernet + elif primary_type == '802-11-wireless': + return NetworkType.wifi + else: + active_connections = self.nm.Get(NM, 'ActiveConnections', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + for conn in active_connections: + c = self.bus.get_object(NM, conn) + tp = c.Get(NM_CON_ACT, 'Type', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if tp == 'gsm': + modem = self.get_modem() + modem_state = modem.Get(MM_MODEM, 'State', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if modem_state < MM_MODEM_STATE.REGISTERED: + return NetworkType.none + access_t = modem.Get(MM_MODEM, 'AccessTechnologies', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if access_t >= MM_MODEM_ACCESS_TECHNOLOGY_LTE: + return NetworkType.cell4G + elif access_t >= MM_MODEM_ACCESS_TECHNOLOGY_UMTS: + return NetworkType.cell3G + else: + return NetworkType.cell2G + except Exception: + pass + + return NetworkType.none + + def get_modem(self): + objects = self.mm.GetManagedObjects(dbus_interface="org.freedesktop.DBus.ObjectManager", timeout=TIMEOUT) + if not objects: + raise RuntimeError("ModemManager returned no modems") + modem_path = next(iter(objects)) + return self.bus.get_object(MM, modem_path) + + def get_wlan(self): + wlan_path = self.nm.GetDeviceByIpIface('wlan0', dbus_interface=NM, timeout=TIMEOUT) + return self.bus.get_object(NM, wlan_path) + + def get_wwan(self): + wwan_path = self.nm.GetDeviceByIpIface('wwan0', dbus_interface=NM, timeout=TIMEOUT) + return self.bus.get_object(NM, wwan_path) + + def get_sim_info(self): + modem = self.get_modem() + sim_path = modem.Get(MM_MODEM, 'Sim', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + + if sim_path == "/": + return { + 'sim_id': '', + 'mcc_mnc': None, + 'network_type': ["Unknown"], + 'sim_state': ["ABSENT"], + 'data_connected': False + } + else: + sim = self.bus.get_object(MM, sim_path) + return { + 'sim_id': str(sim.Get(MM_SIM, 'SimIdentifier', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)), + 'mcc_mnc': str(sim.Get(MM_SIM, 'OperatorIdentifier', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)), + 'network_type': ["Unknown"], + 'sim_state': ["READY"], + 'data_connected': modem.Get(MM_MODEM, 'State', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) == MM_MODEM_STATE.CONNECTED, + } + + def get_sim_lpa(self) -> LPABase: + return TiciLPA() + + def get_imei(self, slot): + if slot != 0: + return "" + + return str(self.get_modem().Get(MM_MODEM, 'EquipmentIdentifier', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)) + + def get_network_info(self): + if self.get_device_type() == "mici": + return None + try: + modem = self.get_modem() + info = modem.Command("AT+QNWINFO", math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + extra = modem.Command('AT+QENG="servingcell"', math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + state = modem.Get(MM_MODEM, 'State', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + except Exception: + return None + + if info and info.startswith('+QNWINFO: '): + info = info.replace('+QNWINFO: ', '').replace('"', '').split(',') + extra = "" if extra is None else extra.replace('+QENG: "servingcell",', '').replace('"', '') + state = "" if state is None else MM_MODEM_STATE(state).name + + if len(info) != 4: + return None + + technology, operator, band, channel = info + + return({ + 'technology': technology, + 'operator': operator, + 'band': band, + 'channel': int(channel), + 'extra': extra, + 'state': state, + }) + else: + return None + + def parse_strength(self, percentage): + if percentage < 25: + return NetworkStrength.poor + elif percentage < 50: + return NetworkStrength.moderate + elif percentage < 75: + return NetworkStrength.good + else: + return NetworkStrength.great + + def get_network_strength(self, network_type): + network_strength = NetworkStrength.unknown + + try: + if network_type == NetworkType.none: + pass + elif network_type == NetworkType.wifi: + wlan = self.get_wlan() + active_ap_path = wlan.Get(NM_DEV_WL, 'ActiveAccessPoint', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if active_ap_path != "/": + active_ap = self.bus.get_object(NM, active_ap_path) + strength = int(active_ap.Get(NM_AP, 'Strength', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)) + network_strength = self.parse_strength(strength) + else: # Cellular + modem = self.get_modem() + strength = int(modem.Get(MM_MODEM, 'SignalQuality', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)[0]) + network_strength = self.parse_strength(strength) + except Exception: + pass + + return network_strength + + def get_network_metered(self, network_type) -> bool: + try: + primary_connection = self.nm.Get(NM, 'PrimaryConnection', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + primary_connection = self.bus.get_object(NM, primary_connection) + primary_devices = primary_connection.Get(NM_CON_ACT, 'Devices', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + + for dev in primary_devices: + dev_obj = self.bus.get_object(NM, str(dev)) + metered_prop = dev_obj.Get(NM_DEV, 'Metered', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + + if network_type == NetworkType.wifi: + if metered_prop in [NMMetered.NM_METERED_YES, NMMetered.NM_METERED_GUESS_YES]: + return True + elif network_type in [NetworkType.cell2G, NetworkType.cell3G, NetworkType.cell4G, NetworkType.cell5G]: + if metered_prop == NMMetered.NM_METERED_NO: + return False + except Exception: + pass + + return super().get_network_metered(network_type) + + def get_modem_version(self): + try: + modem = self.get_modem() + return modem.Get(MM_MODEM, 'Revision', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + except Exception: + return None + + def get_modem_temperatures(self): + timeout = 0.2 # Default timeout is too short + try: + modem = self.get_modem() + temps = modem.Command("AT+QTEMP", math.ceil(timeout), dbus_interface=MM_MODEM, timeout=timeout) + return list(filter(lambda t: t != 255, map(int, temps.split(' ')[1].split(',')))) + except Exception: + return [] + + + def get_current_power_draw(self): + return (self.read_param_file("/sys/class/hwmon/hwmon1/power1_input", int) / 1e6) + + def get_som_power_draw(self): + return (self.read_param_file("/sys/class/power_supply/bms/voltage_now", int) * self.read_param_file("/sys/class/power_supply/bms/current_now", int) / 1e12) + + def shutdown(self): + os.system("sudo poweroff") + + def get_thermal_config(self): + intake, exhaust, case = None, None, None + if self.get_device_type() == "mici": + case = ThermalZone("case") + intake = ThermalZone("intake") + exhaust = ThermalZone("exhaust") + return ThermalConfig(cpu=[ThermalZone(f"cpu{i}-silver-usr") for i in range(4)] + + [ThermalZone(f"cpu{i}-gold-usr") for i in range(4)], + gpu=[ThermalZone("gpu0-usr"), ThermalZone("gpu1-usr")], + dsp=ThermalZone("compute-hvx-usr"), + memory=ThermalZone("ddr-usr"), + pmic=[ThermalZone("pm8998_tz"), ThermalZone("pm8005_tz")], + intake=intake, + exhaust=exhaust, + case=case) + + def set_display_power(self, on): + try: + with open("/sys/class/backlight/panel0-backlight/bl_power", "w") as f: + f.write("0" if on else "4") + except Exception: + pass + + def set_screen_brightness(self, percentage): + try: + with open("/sys/class/backlight/panel0-backlight/max_brightness") as f: + max_brightness = float(f.read().strip()) + + val = int(percentage * (max_brightness / 100.)) + with open("/sys/class/backlight/panel0-backlight/brightness", "w") as f: + f.write(str(val)) + except Exception: + pass + + def get_screen_brightness(self): + try: + with open("/sys/class/backlight/panel0-backlight/max_brightness") as f: + max_brightness = float(f.read().strip()) + + with open("/sys/class/backlight/panel0-backlight/brightness") as f: + return int(float(f.read()) / (max_brightness / 100.)) + except Exception: + return 0 + + def set_power_save(self, powersave_enabled): + # amplifier, 100mW at idle + if self.amplifier is not None: + self.amplifier.set_global_shutdown(amp_disabled=powersave_enabled) + if not powersave_enabled: + self.amplifier.initialize_configuration(self.get_device_type()) + + # *** CPU config *** + + # offline big cluster + for i in range(4, 8): + val = '0' if powersave_enabled else '1' + sudo_write(val, f'/sys/devices/system/cpu/cpu{i}/online') + + for n in ('0', '4'): + if powersave_enabled and n == '4': + continue + gov = 'ondemand' if powersave_enabled else 'performance' + sudo_write(gov, f'/sys/devices/system/cpu/cpufreq/policy{n}/scaling_governor') + + # *** IRQ config *** + + # GPU, modeld core + affine_irq(7, "kgsl-3d0") + + # camerad core + camera_irqs = ("a5", "cci", "cpas_camnoc", "cpas-cdm", "csid", "ife", "csid-lite", "ife-lite") + for n in camera_irqs: + affine_irq(6, n) + + def get_gpu_usage_percent(self): + try: + with open('/sys/class/kgsl/kgsl-3d0/gpubusy') as f: + used, total = f.read().strip().split() + return 100.0 * int(used) / int(total) + except Exception: + return 0 + + def initialize_hardware(self): + if self.amplifier is not None: + self.amplifier.initialize_configuration(self.get_device_type()) + + # Allow hardwared to write engagement status to kmsg + os.system("sudo chmod a+w /dev/kmsg") + + # Ensure fan gpio is enabled so fan runs until shutdown, also turned on at boot by the ABL + gpio_init(GPIO.SOM_ST_IO, True) + gpio_set(GPIO.SOM_ST_IO, 1) + + # *** IRQ config *** + + # mask off big cluster from default affinity + sudo_write("f", "/proc/irq/default_smp_affinity") + + # move these off the default core + affine_irq(1, "msm_vidc") # encoders + affine_irq(1, "i2c_geni") # sensors + + # *** GPU config *** + # https://github.com/commaai/agnos-kernel-sdm845/blob/master/arch/arm64/boot/dts/qcom/sdm845-gpu.dtsi#L216 + affine_irq(5, "fts_ts") # touch + affine_irq(5, "msm_drm") # display + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/min_pwrlevel") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/max_pwrlevel") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_bus_on") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_clk_on") + sudo_write("1", "/sys/class/kgsl/kgsl-3d0/force_rail_on") + sudo_write("1000", "/sys/class/kgsl/kgsl-3d0/idle_timer") + sudo_write("performance", "/sys/class/kgsl/kgsl-3d0/devfreq/governor") + sudo_write("710", "/sys/class/kgsl/kgsl-3d0/max_clock_mhz") + + # setup governors + sudo_write("performance", "/sys/class/devfreq/soc:qcom,cpubw/governor") + sudo_write("performance", "/sys/class/devfreq/soc:qcom,memlat-cpu0/governor") + sudo_write("performance", "/sys/class/devfreq/soc:qcom,memlat-cpu4/governor") + + # *** VIDC (encoder) config *** + sudo_write("N", "/sys/kernel/debug/msm_vidc/clock_scaling") + sudo_write("Y", "/sys/kernel/debug/msm_vidc/disable_thermal_mitigation") + + # pandad core + affine_irq(3, "spi_geni") # SPI + if "tici" in self.get_device_type(): + affine_irq(3, "xhci-hcd:usb3") + affine_irq(3, "xhci-hcd:usb1") + try: + pid = subprocess.check_output(["pgrep", "-f", "spi0"], encoding='utf8').strip() + subprocess.call(["sudo", "chrt", "-f", "-p", "1", pid]) + subprocess.call(["sudo", "taskset", "-pc", "3", pid], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + except subprocess.CalledProcessException as e: + print(str(e)) + + def configure_modem(self): + from iqpilot.common.params import Params + + sim_info = self.get_sim_info() + sim_id = sim_info.get('sim_id', '') + params = Params() + manual_apn = params.get("GsmApn", encoding="utf-8") or "" + metered_enabled = params.get_bool("GsmMetered") + + modem = self.get_modem() + try: + manufacturer = str(modem.Get(MM_MODEM, 'Manufacturer', dbus_interface=DBUS_PROPS, timeout=TIMEOUT)) + except Exception: + manufacturer = None + + cmds = [] + is_comma_profile = self.get_sim_lpa().is_comma_profile(sim_id) + roaming_enabled = params.get_bool("GsmRoaming") + initial_eps_apn = "" if is_comma_profile else manual_apn + + if not is_comma_profile and params.get("GsmRoaming") is None: + params.put_bool("GsmRoaming", True) + roaming_enabled = True + + subprocess.call([ + "nmcli", "connection", "modify", "lte", + "gsm.auto-config", "no" if manual_apn else "yes", + "gsm.apn", manual_apn, + "gsm.home-only", "no" if roaming_enabled else "yes", + "gsm.network-id", "", + "gsm.initial-eps-bearer-configure", "yes" if initial_eps_apn else "no", + "gsm.initial-eps-bearer-apn", initial_eps_apn, + "connection.metered", "unknown" if metered_enabled else "no", + ], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + + if self.get_device_type() in ("tici", "tizi"): + if initial_eps_apn: + subprocess.call(["mmcli", "-m", "any", f'--3gpp-set-initial-eps-bearer-settings=apn={initial_eps_apn}']) + else: + subprocess.call(["mmcli", "-m", "any", '--3gpp-set-initial-eps-bearer-settings=apn=']) + + cmds += [ + # configure modem as data-centric + 'AT+QNVW=5280,0,"0102000000000000"', + 'AT+QNVFW="/nv/item_files/ims/IMS_enable",00', + 'AT+QNVFW="/nv/item_files/modem/mmode/ue_usage_setting",01', + ] + if self.get_device_type() == "tizi": + cmds += [ + 'AT+QSIMDET=1,0', + 'AT+QSIMSTAT=1', + ] + elif manufacturer == 'Cavli Inc.': + cmds += [ + 'AT^SIMSWAP=1', # use SIM slot, instead of internal eSIM + 'AT$QCSIMSLEEP=0', # disable SIM sleep + 'AT$QCSIMCFG=SimPowerSave,0', # more sleep disable + + # ethernet config + 'AT$QCPCFG=usbNet,0', + 'AT$QCNETDEVCTL=3,1', + ] + else: + # this modem gets upset with too many AT commands + if sim_id is None or len(sim_id) == 0: + cmds += [ + # SIM sleep disable + 'AT$QCSIMSLEEP=0', + 'AT$QCSIMCFG=SimPowerSave,0', + + # ethernet config + 'AT$QCPCFG=usbNet,1', + ] + + for cmd in cmds: + try: + modem.Command(cmd, math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + except Exception: + pass + + # eSIM prime + dest = "/etc/NetworkManager/system-connections/esim.nmconnection" + if self.get_sim_lpa().is_comma_profile(sim_id) and not os.path.exists(dest): + with open(Path(__file__).parent/'esim.nmconnection') as f, tempfile.NamedTemporaryFile(mode='w') as tf: + dat = f.read() + dat = dat.replace("sim-id=", f"sim-id={sim_id}") + tf.write(dat) + tf.flush() + + # needs to be root + os.system(f"sudo cp {tf.name} {dest}") + os.system(f"sudo nmcli con load {dest}") + + def recover_sim_detection(self) -> bool: + # A worn SIM-tray presence switch can read "removed" while the SIM pads still make + # contact; with hot-swap detect armed (AT+QSIMDET=1) the modem never powers the SIM + # and lands in failed/sim-missing. Disabling detect and rebooting the modem makes it + # probe the SIM electrically. Safe to retry on failure: firing disarms the QSIMDET + # gate, so a genuinely SIM-less device gets at most one extra modem reboot per boot. + if self.get_device_type() not in ("tici", "tizi"): + return False + + try: + modem = self.get_modem() + state = modem.Get(MM_MODEM, 'State', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if state != MM_MODEM_STATE.FAILED: + return False + reason = modem.Get(MM_MODEM, 'StateFailedReason', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if reason != MM_MODEM_STATE_FAILED_REASON_SIM_MISSING: + return False + detect = str(modem.Command('AT+QSIMDET?', math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT)).strip() + if not detect.startswith('+QSIMDET: 1'): + return False + modem.Command('AT+QSIMDET=0,0', math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + modem.Command('AT+CFUN=1,1', math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + return True + except Exception: + return False + + def reboot_modem(self): + modem = None + try: + modem = self.get_modem() + except Exception: + pass + + if modem is not None: + for state in (0, 1): + try: + modem.Command(f'AT+CFUN={state}', math.ceil(TIMEOUT), dbus_interface=MM_MODEM, timeout=TIMEOUT) + except Exception: + pass + return + + for state in (0, 1): + try: + self._run_direct_modem_command(f"AT+CFUN={state}") + except Exception: + pass + + def get_networks(self): + r = {} + + wlan = iwlist.scan() + if wlan is not None: + r['wlan'] = wlan + + lte_info = self.get_network_info() + if lte_info is not None: + extra = lte_info['extra'] + + # ,"LTE",,,,,,,, + # ,,,,,,, + if 'LTE' in extra: + extra = extra.split(',') + try: + r['lte'] = [{ + "mcc": int(extra[3]), + "mnc": int(extra[4]), + "cid": int(extra[5], 16), + "nmr": [{"pci": int(extra[6]), "earfcn": int(extra[7])}], + }] + except (ValueError, IndexError): + pass + + return r + + def get_modem_data_usage(self): + try: + wwan = self.get_wwan() + + # Ensure refresh rate is set so values don't go stale + refresh_rate = wwan.Get(NM_DEV_STATS, 'RefreshRateMs', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + if refresh_rate != REFRESH_RATE_MS: + u = type(refresh_rate) + wwan.Set(NM_DEV_STATS, 'RefreshRateMs', u(REFRESH_RATE_MS), dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + + tx = wwan.Get(NM_DEV_STATS, 'TxBytes', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + rx = wwan.Get(NM_DEV_STATS, 'RxBytes', dbus_interface=DBUS_PROPS, timeout=TIMEOUT) + return int(tx), int(rx) + except Exception: + return -1, -1 + + def has_internal_panda(self): + return True + + def reset_internal_panda(self): + gpio_init(GPIO.STM_RST_N, True) + gpio_init(GPIO.STM_BOOT0, True) + + gpio_set(GPIO.STM_RST_N, 1) + gpio_set(GPIO.STM_BOOT0, 0) + time.sleep(1) + gpio_set(GPIO.STM_RST_N, 0) + + def recover_internal_panda(self): + gpio_init(GPIO.STM_RST_N, True) + gpio_init(GPIO.STM_BOOT0, True) + + gpio_set(GPIO.STM_RST_N, 1) + gpio_set(GPIO.STM_BOOT0, 1) + time.sleep(0.5) + gpio_set(GPIO.STM_RST_N, 0) + time.sleep(0.5) + gpio_set(GPIO.STM_BOOT0, 0) + + def booted(self): + # this normally boots within 8s, but on rare occasions takes 30+s + encoder_state = sudo_read("/sys/kernel/debug/msm_vidc/core0/info") + if "Core state: 0" in encoder_state and (time.monotonic() < 60*2): + return False + return True + +if __name__ == "__main__": + t = Tici() + t.configure_modem() + t.initialize_hardware() + t.set_power_save(False) + print(t.get_sim_info()) diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/iwlist.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/iwlist.py new file mode 100644 index 000000000..1e7c428b4 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/iwlist.py @@ -0,0 +1,35 @@ +import subprocess + + +def scan(interface="wlan0"): + result = [] + try: + r = subprocess.check_output(["iwlist", interface, "scan"], encoding='utf8') + + mac = None + for line in r.split('\n'): + if "Address" in line: + # Based on the adapter eithere a percentage or dBm is returned + # Add previous network in case no dBm signal level was seen + if mac is not None: + result.append({"mac": mac}) + mac = None + + mac = line.split(' ')[-1] + elif "dBm" in line: + try: + level = line.split('Signal level=')[1] + rss = int(level.split(' ')[0]) + result.append({"mac": mac, "rss": rss}) + mac = None + except ValueError: + continue + + # Add last network if no dBm was found + if mac is not None: + result.append({"mac": mac}) + + return result + + except Exception: + return None diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/lpa.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/lpa.py new file mode 100644 index 000000000..a636742d5 --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/lpa.py @@ -0,0 +1,1482 @@ +#!/usr/bin/env python3 +# SGP.22 v2.3: https://www.gsma.com/solutions-and-impact/technologies/esim/wp-content/uploads/2021/07/SGP.22-v2.3.pdf + +import argparse +import atexit +import base64 +import hashlib +import json +import math +import os +import re +import requests +import serial +import subprocess +import sys +import time + +from collections.abc import Generator +from contextlib import contextmanager +from pathlib import Path +from typing import Literal +from iqpilot.common.time_helpers import system_time_valid +from iqpilot.system.hardware.base import LPABase, LPAError, LPAProfileNotFoundError, Profile + +GSMA_CI_BUNDLE = str(Path(__file__).parent / 'gsma_ci_bundle.pem') + + +DEFAULT_DEVICE = "/dev/modem_at0" +DEFAULT_BAUD = 9600 +DEFAULT_TIMEOUT = 5.0 +# https://euicc-manual.osmocom.org/docs/lpa/applet-id/ +ISDR_AID = "A0000005591010FFFFFFFF8900000100" +ES10X_MSS = 120 +MM = "org.freedesktop.ModemManager1" +MM_MODEM = MM + ".Modem" + +# TLV Tags +TAG_ICCID = 0x5A +TAG_STATUS = 0x80 +TAG_EUICC_INFO = 0xBF20 +TAG_PREPARE_DOWNLOAD = 0xBF21 +TAG_PROFILE_INFO_LIST = 0xBF2D +TAG_EUICC_CHALLENGE = 0xBF2E +TAG_SET_NICKNAME = 0xBF29 +TAG_LIST_NOTIFICATION = 0xBF28 +TAG_RETRIEVE_NOTIFICATION = 0xBF2B +TAG_NOTIFICATION_METADATA = 0xBF2F +TAG_NOTIFICATION_SENT = 0xBF30 +TAG_ENABLE_PROFILE = 0xBF31 +TAG_DISABLE_PROFILE = 0xBF32 +TAG_DELETE_PROFILE = 0xBF33 +TAG_BPP = 0xBF36 +TAG_PROFILE_INSTALL_RESULT = 0xBF37 +TAG_AUTH_SERVER = 0xBF38 +TAG_CANCEL_SESSION = 0xBF41 + +STATE_LABELS = {0: "disabled", 1: "enabled", 255: "unknown"} +ICON_LABELS = {0: "jpeg", 1: "png", 255: "unknown"} +CLASS_LABELS = {0: "test", 1: "provisioning", 2: "operational", 255: "unknown"} +PROFILE_ERROR_CODES = { + 0x01: "iccidOrAidNotFound", 0x02: "profileNotInDisabledState", + 0x03: "disallowedByPolicy", 0x04: "wrongProfileReenabling", + 0x05: "catBusy", 0x06: "undefinedError", +} +AUTH_SERVER_ERROR_CODES = { + 0x01: "eUICCVerificationFailed", 0x02: "eUICCCertificateExpired", + 0x03: "eUICCCertificateRevoked", 0x05: "invalidServerSignature", + 0x06: "euiccCiPKUnknown", 0x0A: "matchingIdRefused", + 0x10: "insufficientMemory", +} +BPP_COMMAND_NAMES = { + 0: "initialiseSecureChannel", 1: "configureISDP", 2: "storeMetadata", + 3: "storeMetadata2", 4: "replaceSessionKeys", 5: "loadProfileElements", +} +BPP_ERROR_REASONS = { + 1: "incorrectInputValues", 2: "invalidSignature", 3: "invalidTransactionId", + 4: "unsupportedCrtValues", 5: "unsupportedRemoteOperationType", + 6: "unsupportedProfileClass", 7: "scp03tStructureError", 8: "scp03tSecurityError", + 9: "iccidAlreadyExistsOnEuicc", 10: "insufficientMemoryForProfile", + 11: "installInterrupted", 12: "peProcessingError", 13: "dataMismatch", + 14: "invalidNAA", +} +CANCEL_SESSION_REASON = { + 0: "endUserRejection", 1: "postponed", 2: "timeout", + 3: "pprNotAllowed", 127: "undefinedReason", +} + +ESIM_TLS_BUNDLE_ENV = "IQPILOT_ESIM_CA_BUNDLE" +ESIM_QESIM_INIT_ENV = "IQPILOT_ESIM_QESIM_INIT" +ESIM_EXCLUSIVE_MODEM_ENV = "IQPILOT_ESIM_EXCLUSIVE_MODEM" + + +def _ensure_dbus_import(): + try: + import dbus # noqa: F401 + return + except ModuleNotFoundError: + dist_packages = "/usr/lib/python3/dist-packages" + if dist_packages not in sys.path and os.path.isdir(dist_packages): + sys.path.append(dist_packages) + import dbus # noqa: F401 + + +def _tls_verify_option() -> bool | str: + # Default to the GSMA CI bundle used by the reference eSIM branch. + # Allow explicit override for local testing or forced system trust behavior. + override = os.getenv(ESIM_TLS_BUNDLE_ENV, "").strip() + if not override: + return GSMA_CI_BUNDLE + if override.lower() in ("0", "false", "off"): + return False + if override.lower() in ("1", "true", "on", "system"): + return True + return override + + +def b64e(data: bytes) -> str: + return base64.b64encode(data).decode("ascii") + + +def b64d(s: str) -> bytes: + return base64.b64decode(base64_trim(s)) + + +def _decode_apdu_response_blob(raw: str, label: str) -> bytes: + filtered = re.sub(r"[^0-9A-Fa-f]", "", raw) + if len(filtered) < 2 or len(filtered) % 2: + raise RuntimeError(f"Malformed {label} response payload") + return bytes.fromhex(filtered) + + +class AtClient: + def __init__(self, device: str, baud: int, timeout: float, verbose: bool) -> None: + self._device = device + self._baud = baud + self._timeout = timeout + self.verbose = verbose + self.channel: str | None = None + self._serial: serial.Serial | None = None + self._use_csim = False + self._has_qesim = False + self._qesim_lpa_enabled = False + try: + self._serial = serial.Serial(device, baudrate=baud, timeout=timeout) + self._disable_echo() + except (serial.SerialException, PermissionError, OSError): + self._serial = None + if self.verbose: + print(f"!! using ModemManager DBus AT transport for {device}", file=sys.stderr) + + def close(self) -> None: + try: + if self.channel: + try: + self.query(f"AT+CCHC={self.channel}") + except Exception as e: + if self.verbose: + print(f"!! ignoring channel close failure: {e}", file=sys.stderr) + finally: + self.channel = None + finally: + if self._serial is not None: + self._serial.close() + + @staticmethod + def _is_busy_open_error(error: Exception) -> bool: + text = str(error).lower() + return "errno 16" in text or "device or resource busy" in text + + def _disable_echo(self) -> None: + if self._serial is None: + return + self._serial.reset_input_buffer() + self._serial.write(b"ATE0\r") + time.sleep(0.1) + self._serial.reset_input_buffer() + + def _send(self, cmd: str) -> None: + if self.verbose: + print(f">> {cmd}", file=sys.stderr) + assert self._serial is not None + self._serial.write((cmd + "\r").encode("ascii")) + + def _expect(self) -> list[str]: + lines: list[str] = [] + while True: + assert self._serial is not None + raw = self._serial.readline() + if not raw: + raise TimeoutError("AT command timed out") + line = raw.decode(errors="ignore").strip() + if not line: + continue + if self.verbose: + print(f"<< {line}", file=sys.stderr) + if line == "OK": + return lines + if line == "ERROR": + raise RuntimeError("AT command failed") + if "ERROR" in line and line.startswith("+"): + # Catch +CME ERROR / +CMS ERROR and similar modem-specific failures. + raise RuntimeError(f"AT command failed: {line}") + lines.append(line) + + def _get_modem(self): + _ensure_dbus_import() + import dbus + + bus = dbus.SystemBus() + mm = bus.get_object(MM, '/org/freedesktop/ModemManager1') + objects = mm.GetManagedObjects(dbus_interface="org.freedesktop.DBus.ObjectManager", timeout=self._timeout) + modem_paths = [path for path in objects.keys() if "/Modem/" in str(path)] + if not modem_paths: + raise RuntimeError("ModemManager returned no modems") + return bus.get_object(MM, modem_paths[0]) + + def _dbus_query(self, cmd: str) -> list[str]: + if self.verbose: + print(f"DBUS >> {cmd}", file=sys.stderr) + try: + result = str(self._get_modem().Command(cmd, math.ceil(self._timeout), dbus_interface=MM_MODEM, timeout=self._timeout)) + except Exception as e: + raise RuntimeError(f"AT command failed: {e}") from e + lines = [line.strip() for line in result.splitlines() if line.strip()] + if self.verbose: + for line in lines: + print(f"DBUS << {line}", file=sys.stderr) + return lines + + def _reconnect_serial(self) -> None: + self.channel = None + try: + if self._serial is not None: + self._serial.close() + except Exception: + pass + self._serial = serial.Serial(self._device, baudrate=self._baud, timeout=self._timeout) + self._disable_echo() + + def query(self, cmd: str) -> list[str]: + if self._serial is None: + return self._dbus_query(cmd) + try: + self._send(cmd) + return self._expect() + except (OSError, serial.SerialException) as e: + try: + self._reconnect_serial() + self._send(cmd) + return self._expect() + except Exception: + raise RuntimeError(f"AT transport error ({cmd}): {e}") from e + except TimeoutError as e: + raise TimeoutError(f"AT command timed out ({cmd})") from e + except RuntimeError as e: + raise RuntimeError(f"AT command failed ({cmd}): {e}") from e + + def _supports_qesim(self) -> bool: + try: + lines = self.query("AT+QESIM=?") + except Exception: + return False + return any(line.startswith("+QESIM:") for line in lines) + + def _set_quectel_lpa_mode(self) -> None: + self._has_qesim = self._supports_qesim() + self._qesim_lpa_enabled = False + if not self._has_qesim: + return + + # Some Quectel firmwares require enabling internal LPA mode before + # ISO7816 channel open commands (CCHO/CGLA) will succeed. + lpa_enable_cmds = ( + 'AT+QESIM="lpa_enable",1', + 'AT+QESIM="lpa_enable"', + ) + for cmd in lpa_enable_cmds: + try: + self.query(cmd) + self._qesim_lpa_enabled = True + break + except Exception: + continue + + # Keep BIP auth enabled when supported; this is needed by some firmware + # revisions for profile download/auth paths. + try: + lines = self.query('AT+QCFG="bip/auth"?') + needs_enable = any('"bip/auth",0' in line for line in lines) + if needs_enable: + self.query('AT+QCFG="bip/auth",1') + except Exception: + pass + + def ensure_capabilities(self) -> None: + if self._serial is None: + return + + # Some modem firmwares reject command test forms (e.g. AT+CCHO=?) + # while still supporting real execution. Keep these probes non-fatal. + self.query("AT") + # Keep IQ-specific QESIM initialization opt-in for debugging only. + # Default behavior should match upstream greatgitsby/esim transport flow. + if os.getenv(ESIM_QESIM_INIT_ENV, "").strip() == "1": + try: + self.query("AT+CMEE=2") + except Exception: + pass + self._set_quectel_lpa_mode() + for command in ("AT+CCHO", "AT+CCHC", "AT+CGLA", "AT+CSIM"): + try: + self.query(f"{command}=?") + except Exception as e: + if self.verbose: + print(f"!! capability probe failed for {command}: {e}", file=sys.stderr) + + def open_isdr(self) -> None: + try: + self.query(f'AT+CCHC=1') + except Exception: + pass + ccho_candidates = [ + f'AT+CCHO="{ISDR_AID}"', + f"AT+CCHO={ISDR_AID}", + ] + for cmd in ccho_candidates: + try: + lines = self.query(cmd) + except Exception: + continue + for line in lines: + if line.startswith("+CCHO:") and (ch := line.split(":", 1)[1].strip()): + self.channel = ch + return + + # Fallback for modems that reject CCHO but allow APDUs over basic channel. + self.channel = "0" + aid_len = len(ISDR_AID) // 2 + select_isdr = bytes.fromhex(f"00A40400{aid_len:02X}{ISDR_AID}") + try: + _, sw1, sw2 = self.send_apdu(select_isdr) + if (sw1, sw2) == (0x90, 0x00): + return + raise RuntimeError(f"ISD-R SELECT failed on basic channel SW={sw1:02X}{sw2:02X}") + except Exception: + self.channel = None + # Final fallback for modems that only support APDU via CSIM. + try: + _, sw1, sw2 = self._send_csim_apdu(select_isdr) + if (sw1, sw2) == (0x90, 0x00): + self._use_csim = True + self.channel = "csim" + if self.verbose: + print("!! using CSIM APDU transport fallback", file=sys.stderr) + return + raise RuntimeError(f"ISD-R SELECT failed on CSIM SW={sw1:02X}{sw2:02X}") + except Exception: + self.channel = None + if self._has_qesim and not self._qesim_lpa_enabled and os.getenv(ESIM_QESIM_INIT_ENV, "").strip() == "1": + raise RuntimeError( + "Modem exposes AT+QESIM but rejects LPA enable and ISD-R access; " + "this firmware/SKU likely does not provide usable eSIM functionality" + ) + raise RuntimeError("Failed to access eUICC ISD-R (CCHO/CGLA/CSIM all failed)") + + def send_apdu(self, apdu: bytes) -> tuple[bytes, int, int]: + for attempt in range(3): + try: + if not self.channel: + self.open_isdr() + if self._use_csim: + return self._send_csim_apdu(apdu) + hex_payload = apdu.hex().upper() + cmd = f'AT+CGLA={self.channel},{len(hex_payload)},"{hex_payload}"' + for query_attempt in range(2): + for line in self.query(cmd): + if line.startswith("+CGLA:"): + parts = line.split(":", 1)[1].split(",", 1) + if len(parts) == 2: + data = _decode_apdu_response_blob(parts[1].strip().strip('"'), "+CGLA") + if len(data) >= 2: + return data[:-2], data[-2], data[-1] + if query_attempt == 0: + time.sleep(0.2) + raise RuntimeError("Missing +CGLA response") + except RuntimeError: + self.channel = None + self._use_csim = False + if attempt == 2: + raise + time.sleep(1 + attempt) + raise RuntimeError("send_apdu failed") + + def _send_csim_apdu(self, apdu: bytes) -> tuple[bytes, int, int]: + hex_payload = apdu.hex().upper() + cmd = f'AT+CSIM={len(hex_payload)},"{hex_payload}"' + for attempt in range(2): + for line in self.query(cmd): + if line.startswith("+CSIM:"): + parts = line.split(":", 1)[1].split(",", 1) + if len(parts) == 2: + data = _decode_apdu_response_blob(parts[1].strip().strip('"'), "+CSIM") + if len(data) >= 2: + return data[:-2], data[-2], data[-1] + if attempt == 0: + time.sleep(0.2) + raise RuntimeError("Missing +CSIM response") + + +# --- TLV utilities --- + +def iter_tlv(data: bytes, with_positions: bool = False) -> Generator: + idx, length = 0, len(data) + while idx < length: + start_pos = idx + tag = data[idx] + idx += 1 + if tag & 0x1F == 0x1F: # Multi-byte tag + tag_value = tag + while idx < length: + next_byte = data[idx] + idx += 1 + tag_value = (tag_value << 8) | next_byte + if not (next_byte & 0x80): + break + else: + tag_value = tag + if idx >= length: + break + size = data[idx] + idx += 1 + if size & 0x80: # Multi-byte length + num_bytes = size & 0x7F + if idx + num_bytes > length: + break + size = int.from_bytes(data[idx : idx + num_bytes], "big") + idx += num_bytes + if idx + size > length: + break + value = data[idx : idx + size] + idx += size + yield (tag_value, value, start_pos, idx) if with_positions else (tag_value, value) + + +def find_tag(data: bytes, target: int) -> bytes | None: + return next((v for t, v in iter_tlv(data) if t == target), None) + + +def encode_tlv(tag: int, value: bytes) -> bytes: + tag_bytes = bytes([(tag >> 8) & 0xFF, tag & 0xFF]) if tag > 255 else bytes([tag]) + vlen = len(value) + if vlen <= 127: + return tag_bytes + bytes([vlen]) + value + length_bytes = vlen.to_bytes((vlen.bit_length() + 7) // 8, "big") + return tag_bytes + bytes([0x80 | len(length_bytes)]) + length_bytes + value + + +def tbcd_to_string(raw: bytes) -> str: + return "".join(str(n) for b in raw for n in (b & 0x0F, b >> 4) if n <= 9) + + +def string_to_tbcd(s: str) -> bytes: + digits = [int(c) for c in s if c.isdigit()] + return bytes(digits[i] | ((digits[i + 1] if i + 1 < len(digits) else 0xF) << 4) for i in range(0, len(digits), 2)) + + +def base64_trim(s: str) -> str: + return "".join(c for c in s if c not in "\n\r \t") + + +# --- Shared helpers --- + +def _int_bytes(n: int) -> bytes: + """Encode a positive integer as minimal big-endian bytes (at least 1 byte).""" + return n.to_bytes((n.bit_length() + 7) // 8 or 1, "big") + + +def _extract_status(response: bytes, tag: int, name: str) -> int: + """Extract the status byte from a tagged ES10x response.""" + root = find_tag(response, tag) + if root is None: + raise RuntimeError(f"Missing {name}Response") + status = find_tag(root, TAG_STATUS) + if status is None: + raise RuntimeError(f"Missing status in {name}Response") + return status[0] + + +# Profile field decoders: TLV tag -> (field_name, decoder) +_PROFILE_FIELDS = { + TAG_ICCID: ("iccid", tbcd_to_string), + 0x4F: ("isdpAid", lambda v: v.hex().upper()), + 0x9F70: ("profileState", lambda v: STATE_LABELS.get(v[0], "unknown")), + 0x90: ("profileNickname", lambda v: v.decode("utf-8", errors="ignore") or None), + 0x91: ("serviceProviderName", lambda v: v.decode("utf-8", errors="ignore") or None), + 0x92: ("profileName", lambda v: v.decode("utf-8", errors="ignore") or None), + 0x93: ("iconType", lambda v: ICON_LABELS.get(v[0], "unknown")), + 0x94: ("icon", b64e), + 0x95: ("profileClass", lambda v: CLASS_LABELS.get(v[0], "unknown")), +} + + +def _decode_profile_fields(data: bytes) -> dict: + """Parse known profile metadata TLV fields into a dict.""" + result = {} + for tag, value in iter_tlv(data): + if (field := _PROFILE_FIELDS.get(tag)): + result[field[0]] = field[1](value) + return result + + +# Notification field decoders: TLV tag -> (field_name, decoder) +_NOTIF_FIELDS = { + TAG_STATUS: ("seqNumber", lambda v: int.from_bytes(v, "big")), + 0x81: ("profileManagementOperation", lambda v: next((m for m in [0x80, 0x40, 0x20, 0x10] if len(v) >= 2 and v[1] & m), 0xFF)), + 0x0C: ("notificationAddress", lambda v: v.decode("utf-8", errors="ignore")), + TAG_ICCID: ("iccid", tbcd_to_string), +} + + +# --- ES10x command transport --- + +def es10x_command(client: AtClient, data: bytes) -> bytes: + response = bytearray() + sequence = 0 + offset = 0 + while offset < len(data): + chunk = data[offset : offset + ES10X_MSS] + offset += len(chunk) + is_last = offset == len(data) + apdu = bytes([0x80, 0xE2, 0x91 if is_last else 0x11, sequence & 0xFF, len(chunk)]) + chunk + segment, sw1, sw2 = client.send_apdu(apdu) + response.extend(segment) + while True: + if sw1 == 0x61: # More data available + segment, sw1, sw2 = client.send_apdu(bytes([0x80, 0xC0, 0x00, 0x00, sw2 or 0])) + response.extend(segment) + continue + if (sw1 & 0xF0) == 0x90: + break + raise RuntimeError(f"APDU failed with SW={sw1:02X}{sw2:02X}") + sequence += 1 + return bytes(response) + + +# --- ES9P HTTP --- + +def es9p_request(smdp_address: str, endpoint: str, payload: dict, error_prefix: str = "Request") -> dict: + if not system_time_valid(): + raise RuntimeError("System time is not set; TLS certificate validation requires a valid clock") + url = f"https://{smdp_address}/gsma/rsp2/es9plus/{endpoint}" + headers = {"User-Agent": "gsma-rsp-lpad", "X-Admin-Protocol": "gsma/rsp/v2.3.0", "Content-Type": "application/json"} + resp = requests.post(url, json=payload, headers=headers, timeout=30, verify=_tls_verify_option()) + resp.raise_for_status() + if not resp.content: + return {} + data = resp.json() + if "header" in data and "functionExecutionStatus" in data["header"]: + status = data["header"]["functionExecutionStatus"] + if status.get("status") == "Failed": + sd = status.get("statusCodeData", {}) + raise RuntimeError(f"{error_prefix} failed: {sd.get('reasonCode', 'unknown')}/{sd.get('subjectCode', 'unknown')} - {sd.get('message', 'unknown')}") + return data + + +# --- Profile operations --- + +def decode_profiles(blob: bytes) -> list[dict]: + root = find_tag(blob, TAG_PROFILE_INFO_LIST) + if root is None: + raise RuntimeError("Missing ProfileInfoList") + list_ok = find_tag(root, 0xA0) + if list_ok is None: + return [] + defaults = {name: None for name, _ in _PROFILE_FIELDS.values()} + return [{**defaults, **_decode_profile_fields(value)} for tag, value in iter_tlv(list_ok) if tag == 0xE3] + + +def list_profiles(client: AtClient) -> list[dict]: + return decode_profiles(es10x_command(client, bytes.fromhex("BF2D00"))) + + +def _profile_op(client: AtClient, tag: int, iccid: str, refresh: bool, action: str) -> None: + inner = encode_tlv(TAG_ICCID, string_to_tbcd(iccid)) + if tag != TAG_DELETE_PROFILE: + if not refresh: + inner += encode_tlv(0x81, b'\x00') + inner = encode_tlv(0xA0, inner) + code = _extract_status(es10x_command(client, encode_tlv(tag, inner)), tag, f"{action.capitalize()}Profile") + if code == 0x00: + return + if code == 0x02 and tag != TAG_DELETE_PROFILE: + print(f"profile {iccid} already {action}d") + return + raise RuntimeError(f"{action.capitalize()}Profile failed: {PROFILE_ERROR_CODES.get(code, 'unknown')} (0x{code:02X})") + + +def enable_profile(client: AtClient, iccid: str, refresh: bool = True) -> None: + _profile_op(client, TAG_ENABLE_PROFILE, iccid, refresh, "enable") + + +def disable_profile(client: AtClient, iccid: str, refresh: bool = True) -> None: + _profile_op(client, TAG_DISABLE_PROFILE, iccid, refresh, "disable") + + +def delete_profile(client: AtClient, iccid: str) -> None: + _profile_op(client, TAG_DELETE_PROFILE, iccid, True, "delete") + + +def set_profile_nickname(client: AtClient, iccid: str, nickname: str) -> None: + nickname_bytes = nickname.encode("utf-8") + if len(nickname_bytes) > 64: + raise ValueError("Profile nickname must be 64 bytes or less") + content = encode_tlv(TAG_ICCID, string_to_tbcd(iccid)) + encode_tlv(0x90, nickname_bytes) + code = _extract_status(es10x_command(client, encode_tlv(TAG_SET_NICKNAME, content)), TAG_SET_NICKNAME, "SetNickname") + if code == 0x01: + raise RuntimeError(f"profile {iccid} not found") + if code != 0x00: + raise RuntimeError(f"SetNickname failed with status 0x{code:02X}") + + +# --- Notifications --- + +def list_notifications(client: AtClient) -> list[dict]: + response = es10x_command(client, encode_tlv(TAG_LIST_NOTIFICATION, b"")) + root = find_tag(response, TAG_LIST_NOTIFICATION) + if root is None: + raise RuntimeError("Missing ListNotificationResponse") + metadata_list = find_tag(root, 0xA0) + if metadata_list is None: + return [] + notifications: list[dict] = [] + for tag, value in iter_tlv(metadata_list): + if tag != TAG_NOTIFICATION_METADATA: + continue + notification = {"seqNumber": None, "profileManagementOperation": None, "notificationAddress": None, "iccid": None} + for t, v in iter_tlv(value): + if (field := _NOTIF_FIELDS.get(t)): + notification[field[0]] = field[1](v) + if notification["seqNumber"] is not None and notification["profileManagementOperation"] is not None and notification["notificationAddress"]: + notifications.append(notification) + return notifications + + +def retrieve_notification(client: AtClient, seq_number: int) -> dict: + request = encode_tlv(TAG_RETRIEVE_NOTIFICATION, encode_tlv(0xA0, encode_tlv(TAG_STATUS, _int_bytes(seq_number)))) + response = es10x_command(client, request) + root = find_tag(response, TAG_RETRIEVE_NOTIFICATION) + if root is None: + raise RuntimeError("Invalid RetrieveNotificationsListResponse") + a0_content = find_tag(root, 0xA0) + if a0_content is None: + raise RuntimeError("Invalid RetrieveNotificationsListResponse") + pending_notif, pending_tag = None, None + for tag, value in iter_tlv(a0_content): + if tag in (TAG_PROFILE_INSTALL_RESULT, 0x30): + pending_notif, pending_tag = value, tag + break + if pending_notif is None: + raise RuntimeError("Missing PendingNotification") + if pending_tag == TAG_PROFILE_INSTALL_RESULT: + result_data = find_tag(pending_notif, 0xBF27) + notif_meta = find_tag(result_data, TAG_NOTIFICATION_METADATA) if result_data else None + else: + notif_meta = find_tag(pending_notif, TAG_NOTIFICATION_METADATA) + if notif_meta is None: + raise RuntimeError("Missing NotificationMetadata") + addr = find_tag(notif_meta, 0x0C) + if addr is None: + raise RuntimeError("Missing notificationAddress") + return {"notificationAddress": addr.decode("utf-8", errors="ignore"), "b64_PendingNotification": b64e(pending_notif)} + + +def remove_notification(client: AtClient, seq_number: int) -> None: + response = es10x_command(client, encode_tlv(TAG_NOTIFICATION_SENT, encode_tlv(TAG_STATUS, _int_bytes(seq_number)))) + root = find_tag(response, TAG_NOTIFICATION_SENT) + if root is None: + raise RuntimeError("Invalid NotificationSentResponse") + status = find_tag(root, TAG_STATUS) + if status is None or int.from_bytes(status, "big") != 0: + raise RuntimeError("RemoveNotificationFromList failed") + + +def process_notifications(client: AtClient) -> None: + for notification in list_notifications(client): + seq_number, smdp_address = notification["seqNumber"], notification["notificationAddress"] + if not seq_number or not smdp_address: + continue + try: + notif_data = retrieve_notification(client, seq_number) + es9p_request(smdp_address, "handleNotification", {"pendingNotification": notif_data["b64_PendingNotification"]}, "HandleNotification") + remove_notification(client, seq_number) + except Exception: + pass + + +# --- Authentication & Download --- + +def get_challenge_and_info(client: AtClient) -> tuple[bytes, bytes]: + challenge_resp = es10x_command(client, encode_tlv(TAG_EUICC_CHALLENGE, b"")) + root = find_tag(challenge_resp, TAG_EUICC_CHALLENGE) + if root is None: + raise RuntimeError("Missing GetEuiccDataResponse") + challenge = find_tag(root, TAG_STATUS) + if challenge is None: + raise RuntimeError("Missing challenge in response") + info_resp = es10x_command(client, encode_tlv(TAG_EUICC_INFO, b"")) + if not info_resp.startswith(bytes([0xBF, 0x20])): + raise RuntimeError("Missing GetEuiccInfo1Response") + return challenge, info_resp + + +def authenticate_server(client: AtClient, b64_signed1: str, b64_sig1: str, b64_pk_id: str, b64_cert: str, matching_id: str | None = None) -> str: + # Build request + tac = bytes([0x35, 0x29, 0x06, 0x11]) + device_info = encode_tlv(TAG_STATUS, tac) + encode_tlv(0xA1, b"") + ctx_inner = b"" + if matching_id: + ctx_inner += encode_tlv(TAG_STATUS, matching_id.encode("utf-8")) + ctx_inner += encode_tlv(0xA1, device_info) + content = base64.b64decode(b64_signed1) + base64.b64decode(b64_sig1) + base64.b64decode(b64_pk_id) + base64.b64decode(b64_cert) + encode_tlv(0xA0, ctx_inner) + request = encode_tlv(TAG_AUTH_SERVER, content) + + response = es10x_command(client, request) + if not response.startswith(bytes([0xBF, 0x38])): + raise RuntimeError("Invalid AuthenticateServerResponse") + + # Check for eUICC-side errors + root = find_tag(response, TAG_AUTH_SERVER) + if root is not None: + error_tag = find_tag(root, 0xA1) + if error_tag is not None: + code = int.from_bytes(error_tag, "big") if error_tag else 0 + desc = AUTH_SERVER_ERROR_CODES.get(code, "unknown") + raise RuntimeError(f"AuthenticateServer rejected by eUICC: {desc} (0x{code:02X})") + + return b64e(response) + + +def prepare_download(client: AtClient, b64_signed2: str, b64_sig2: str, b64_cert: str, cc: str | None = None) -> str: + smdp_signed2 = base64.b64decode(b64_signed2) + smdp_signature2 = base64.b64decode(b64_sig2) + smdp_certificate = base64.b64decode(b64_cert) + smdp_signed2_root = find_tag(smdp_signed2, 0x30) + if smdp_signed2_root is None: + raise RuntimeError("Invalid smdpSigned2") + transaction_id = find_tag(smdp_signed2_root, TAG_STATUS) + cc_required_flag = find_tag(smdp_signed2_root, 0x01) + if transaction_id is None or cc_required_flag is None: + raise RuntimeError("Invalid smdpSigned2") + content = smdp_signed2 + smdp_signature2 + if int.from_bytes(cc_required_flag, "big") != 0: + if not cc: + raise RuntimeError("Confirmation code required but not provided") + content += encode_tlv(0x04, hashlib.sha256(hashlib.sha256(cc.encode("utf-8")).digest() + transaction_id).digest()) + content += smdp_certificate + response = es10x_command(client, encode_tlv(TAG_PREPARE_DOWNLOAD, content)) + if not response.startswith(bytes([0xBF, 0x21])): + raise RuntimeError("Invalid PrepareDownloadResponse") + return b64e(response) + + +def _parse_tlv_header_len(data: bytes) -> int: + """Return the combined tag + length header size for a TLV element.""" + tag_len = 2 if data[0] & 0x1F == 0x1F else 1 + length_byte = data[tag_len] + return tag_len + (1 + (length_byte & 0x7F) if length_byte & 0x80 else 1) + + +def load_bpp(client: AtClient, b64_bpp: str) -> dict: + bpp = b64d(b64_bpp) + if not bpp.startswith(bytes([0xBF, 0x36])): + raise RuntimeError("Invalid BoundProfilePackage") + + bpp_root_value = None + for tag, value, start, end in iter_tlv(bpp, with_positions=True): + if tag == TAG_BPP: + bpp_root_value = value + bpp_value_start = start + _parse_tlv_header_len(bpp[start:end]) + break + if bpp_root_value is None: + raise RuntimeError("Invalid BoundProfilePackage") + + chunks = [] + for tag, value, start, end in iter_tlv(bpp_root_value, with_positions=True): + if tag == 0xBF23: + chunks.append(bpp[0 : bpp_value_start + end]) + elif tag == 0xA0: + chunks.append(bpp[bpp_value_start + start : bpp_value_start + end]) + elif tag in (0xA1, 0xA3): + hdr_len = _parse_tlv_header_len(bpp_root_value[start:end]) + chunks.append(bpp[bpp_value_start + start : bpp_value_start + start + hdr_len]) + for _, _, child_start, child_end in iter_tlv(value, with_positions=True): + chunks.append(value[child_start:child_end]) + elif tag == 0xA2: + chunks.append(bpp[bpp_value_start + start : bpp_value_start + end]) + + result = {"seqNumber": 0, "success": False, "bppCommandId": None, "errorReason": None} + for chunk in chunks: + response = es10x_command(client, chunk) + if not response: + continue + root = find_tag(response, TAG_PROFILE_INSTALL_RESULT) + if not root: + continue + result_data = find_tag(root, 0xBF27) + if not result_data: + break + notif_meta = find_tag(result_data, TAG_NOTIFICATION_METADATA) + if notif_meta: + seq_num = find_tag(notif_meta, TAG_STATUS) + if seq_num: + result["seqNumber"] = int.from_bytes(seq_num, "big") + final_result = find_tag(result_data, 0xA2) + if final_result: + for tag, value in iter_tlv(final_result): + if tag == 0xA0: + result["success"] = True + elif tag == 0xA1: + bpp_cmd = find_tag(value, TAG_STATUS) + if bpp_cmd: + result["bppCommandId"] = int.from_bytes(bpp_cmd, "big") + err = find_tag(value, 0x81) + if err: + result["errorReason"] = int.from_bytes(err, "big") + break # ProfileInstallResult received — eUICC session is finalized + if not result["success"] and result["errorReason"] is not None: + cmd_name = BPP_COMMAND_NAMES.get(result["bppCommandId"], f"unknown({result['bppCommandId']})") + err_name = BPP_ERROR_REASONS.get(result["errorReason"], f"unknown({result['errorReason']})") + raise RuntimeError(f"Profile installation failed at {cmd_name}: {err_name} (bppCommandId={result['bppCommandId']}, errorReason={result['errorReason']})") + return result + + +def parse_metadata(b64_metadata: str) -> dict: + root = find_tag(b64d(b64_metadata), 0xBF25) + if root is None: + raise RuntimeError("Invalid profileMetadata") + defaults = {"iccid": None, "serviceProviderName": None, "profileName": None, "iconType": None, "icon": None, "profileClass": None} + return {**defaults, **_decode_profile_fields(root)} + + +def cancel_session(client: AtClient, transaction_id: bytes, reason: int = 127) -> str: + content = encode_tlv(0x80, transaction_id) + encode_tlv(0x81, bytes([reason])) + response = es10x_command(client, encode_tlv(TAG_CANCEL_SESSION, content)) + return b64e(response) + + +def parse_lpa_activation_code(activation_code: str) -> tuple[str, str, str]: + if not activation_code.startswith("LPA:"): + raise ValueError("Invalid activation code format") + + parts = activation_code[4:].split("$") + if len(parts) != 3: + raise ValueError("Invalid activation code format") + + version, smdp, matching_id = [p.strip() for p in parts] + if version != "1": + raise ValueError("Unsupported activation code version") + if len(smdp) == 0 or "." not in smdp: + raise ValueError("Invalid SM-DP+ address in activation code") + if len(matching_id) == 0: + raise ValueError("Missing matching ID in activation code") + return version, smdp, matching_id + + +def download_profile(client: AtClient, activation_code: str) -> str: + _, smdp, matching_id = parse_lpa_activation_code(activation_code) + + challenge, euicc_info = get_challenge_and_info(client) + + payload = {"smdpAddress": smdp, "euiccChallenge": b64e(challenge), "euiccInfo1": b64e(euicc_info)} + if matching_id: + payload["matchingId"] = matching_id + auth = es9p_request(smdp, "initiateAuthentication", payload, "Authentication") + tx_id = base64_trim(auth.get("transactionId", "")) + tx_id_bytes = base64.b64decode(tx_id) if tx_id else b"" + + try: + b64_auth_resp = authenticate_server( + client, base64_trim(auth.get("serverSigned1", "")), base64_trim(auth.get("serverSignature1", "")), + base64_trim(auth.get("euiccCiPKIdToBeUsed", "")), base64_trim(auth.get("serverCertificate", "")), + matching_id=matching_id) + + cli = es9p_request(smdp, "authenticateClient", {"transactionId": tx_id, "authenticateServerResponse": b64_auth_resp}, "Authentication") + metadata = parse_metadata(base64_trim(cli.get("profileMetadata", ""))) + iccid = str(metadata.get("iccid") or "") + print(f'Downloading profile: {iccid} - {metadata["serviceProviderName"]} - {metadata["profileName"]}') + + b64_prep = prepare_download( + client, base64_trim(cli.get("smdpSigned2", "")), base64_trim(cli.get("smdpSignature2", "")), base64_trim(cli.get("smdpCertificate", ""))) + + bpp = es9p_request(smdp, "getBoundProfilePackage", {"transactionId": tx_id, "prepareDownloadResponse": b64_prep}, "GetBoundProfilePackage") + + result = load_bpp(client, base64_trim(bpp.get("boundProfilePackage", ""))) + if result["success"]: + print(f"Profile installed successfully (seqNumber: {result['seqNumber']})") + return iccid + else: + raise RuntimeError(f"Profile installation failed: {result}") + except Exception: + if tx_id_bytes: + b64_cancel_resp = "" + try: + b64_cancel_resp = cancel_session(client, tx_id_bytes) + except Exception: + pass + try: + es9p_request(smdp, "cancelSession", { + "transactionId": tx_id, + "cancelSessionResponse": b64_cancel_resp, + }, "CancelSession") + except Exception: + pass + raise + + +class TiciLPA(LPABase): + handles_modem_restart = True + _instance = None + + def __new__(cls, *args, **kwargs): + if cls._instance is None: + cls._instance = super().__new__(cls) + return cls._instance + + def __init__(self, interface: Literal["qmi", "at"] = "at", device: str = DEFAULT_DEVICE, baud: int = DEFAULT_BAUD, + timeout: float = DEFAULT_TIMEOUT, verbose: bool = False): + if getattr(self, "_initialized", False): + self.verbose = verbose or self.verbose + return + # This backend is AT-only. Keep interface arg for compatibility with existing CLI/call sites. + self.interface = interface + self.device = device + self.baud = baud + self.timeout = timeout + self.verbose = verbose + self._last_good_device = device + self._euicc_present_cache: bool | None = None + from iqpilot.system.hardware.tici.hardware import get_device_type + self._is_eg25 = get_device_type() in ("tizi",) + self._client: AtClient | None = None + self._initialized = True + # _client is opened lazily via _ensure_client() on first actual eSIM operation. + # Do NOT call _open_ready_client() here: on pSIM devices (no eUICC) it retries + # for 10–30 s against the AT port, blocking hw_state_thread and starving the + # network-type polling loop that drives the WiFi/LTE sidebar indicator. + atexit.register(self.close) + + def close(self) -> None: + if self._client is not None: + try: + self._client.close() + finally: + self._client = None + + @staticmethod + def _set_modemmanager_running(running: bool) -> None: + action = "start" if running else "stop" + subprocess.check_call(["sudo", "systemctl", action, "ModemManager"]) + + @staticmethod + def _is_modemmanager_running() -> bool: + res = subprocess.run(["systemctl", "is-active", "ModemManager"], + capture_output=True, text=True, check=False) + return res.stdout.strip() == "active" + + def _probe_euicc_present(self) -> bool | None: + if self._euicc_present_cache is not None: + return self._euicc_present_cache + + if self._is_modemmanager_running(): + return None + + restarted_modemmanager = False + try: + res = subprocess.run( + ["sudo", "qmicli", "-p", "-d", "/dev/cdc-wdm0", "--uim-get-slot-status"], + capture_output=True, text=True, check=False, timeout=12, + ) + output = f"{res.stdout}\n{res.stderr}" + if "Is eUICC: yes" in output: + self._euicc_present_cache = True + elif "Is eUICC: no" in output: + self._euicc_present_cache = False + else: + self._euicc_present_cache = None + except Exception: + self._euicc_present_cache = None + finally: + if restarted_modemmanager: + self._set_modemmanager_running(True) + time.sleep(2.0) + + return self._euicc_present_cache + + @staticmethod + def _ttyusb2_mm_ignored() -> bool: + # AGNOS PR 521 marks ttyUSB2 with ID_MM_PORT_IGNORE=1 for EG25. + # If missing, ModemManager may contend with direct AT eSIM operations. + if not os.path.exists("/dev/ttyUSB2"): + return False + try: + res = subprocess.run( + ["udevadm", "info", "-q", "property", "-n", "/dev/ttyUSB2"], + capture_output=True, text=True, check=False, + ) + if res.returncode != 0: + return False + return "ID_MM_PORT_IGNORE=1" in res.stdout + except Exception: + return False + + def _ensure_client(self) -> AtClient: + if self._client is None: + self._client = self._open_ready_client() + return self._client + + @contextmanager + def _open_client(self): + yield self._ensure_client() + + def _open_ready_client(self) -> AtClient: + euicc_present = self._probe_euicc_present() + if euicc_present is False: + raise LPAError("Modem reports no eUICC support on this unit (QMI: Is eUICC: no)") + + last_error: Exception | None = None + recovery_attempted = False + for attempt in range(1, 6): + for device in self._candidate_devices(): + client: AtClient | None = None + try: + if self.verbose: + print(f"!! trying modem AT device: {device} (attempt {attempt})", file=sys.stderr) + client = AtClient(device, self.baud, self.timeout, self.verbose) + client.ensure_capabilities() + client.open_isdr() + self._last_good_device = device + if self.verbose: + print(f"!! selected modem AT device: {device}", file=sys.stderr) + return client + except Exception as e: + if self.verbose: + print(f"!! modem AT device failed: {device}: {e}", file=sys.stderr) + last_error = e + if client is not None: + try: + client.close() + except Exception: + pass + if not recovery_attempted and last_error is not None and self._should_recover_isdr(last_error): + recovery_attempted = self._recover_isdr_access() + if recovery_attempted: + continue + # Give modem a moment to finish startup / channel release. + time.sleep(min(0.4 * attempt, 1.5)) + assert last_error is not None + raise last_error + + def _candidate_devices(self) -> list[str]: + if self.device and not os.path.exists(self.device): + return [self.device] + + candidates = [ + self._last_good_device, + self.device, + "/dev/modem_at0", + "/dev/ttyUSB3", + "/dev/ttyUSB2", + "/dev/ttyUSB1", + "/dev/ttyUSB0", + ] + ordered: list[str] = [] + for dev in candidates: + should_include = dev in (self.device, "/dev/modem_at0") or os.path.exists(dev) + if dev and dev not in ordered and should_include: + ordered.append(dev) + return ordered if ordered else [self.device] + + @staticmethod + def _to_profile(data: dict) -> Profile: + return Profile( + iccid=str(data.get("iccid") or ""), + nickname=str(data.get("profileNickname") or ""), + enabled=str(data.get("profileState") or "") == "enabled", + provider=str(data.get("serviceProviderName") or ""), + ) + + def _clear_cat_busy(self) -> None: + time.sleep(3) + try: + self._ensure_client().query('AT+QSTKRSP=254') + except Exception: + pass + time.sleep(1) + try: + self._ensure_client().query('AT+CFUN=4') + except Exception: + pass + time.sleep(2) + try: + self._ensure_client().query('AT+CFUN=1') + except Exception: + pass + self._ensure_client().channel = None + time.sleep(5) + + def _wait_for_modem(self, timeout: float = 45.0) -> None: + start = time.monotonic() + last_error: Exception | None = None + while time.monotonic() - start < timeout: + try: + self.close() + self._client = self._open_ready_client() + return + except Exception as e: + last_error = e + time.sleep(2) + if last_error is not None: + raise RuntimeError("Modem did not recover after reboot") from last_error + raise RuntimeError("Modem did not recover after reboot") + + def _restart_modem(self) -> None: + client = self._ensure_client() + for cmd in ('AT+CFUN=0', 'AT+CFUN=1,1'): + try: + client.query(cmd) + except Exception: + pass + client.channel = None + client._use_csim = False + self._wait_for_modem() + + @staticmethod + def _should_recover_isdr(error: Exception) -> bool: + message = str(error).lower() + markers = ( + "failed to open isd-r", + "failed to access euicc isd-r", + "simfilenotfound", + "at+ccho", + "at+cgla", + ) + return any(marker in message for marker in markers) + + def _recover_isdr_access(self) -> bool: + was_modemmanager_running = self._is_modemmanager_running() + self.close() + try: + if was_modemmanager_running: + self._set_modemmanager_running(False) + time.sleep(2.0) + + for cmd in ( + ["sudo", "qmicli", "-p", "-d", "/dev/cdc-wdm0", "--uim-reset"], + ["sudo", "qmicli", "-p", "-d", "/dev/cdc-wdm0", "--uim-sim-power-off=1"], + ["sudo", "qmicli", "-p", "-d", "/dev/cdc-wdm0", "--uim-sim-power-on=1"], + ): + subprocess.check_call(cmd) + time.sleep(2.0) + + self._euicc_present_cache = None + return True + except Exception as e: + if self.verbose: + print(f"!! ISD-R recovery failed: {e}", file=sys.stderr) + return False + finally: + if was_modemmanager_running: + self._set_modemmanager_running(True) + time.sleep(2.0) + + def _with_lpa_error(self, fn): + last_error: Exception | None = None + recovery_attempted = False + for attempt in range(3): + try: + return fn() + except LPAError: + raise + except RuntimeError as e: + last_error = e + if "does not provide usable esim functionality" in str(e).lower(): + raise LPAError(str(e)) from e + if not recovery_attempted and self._should_recover_isdr(e): + recovery_attempted = self._recover_isdr_access() + if recovery_attempted: + continue + if self._is_transient_transport_error(str(e)) and attempt == 0: + self._wait_for_modem() + continue + raise LPAError(str(e)) from e + except (OSError, serial.SerialException) as e: + last_error = e + if not recovery_attempted and self._should_recover_isdr(e): + recovery_attempted = self._recover_isdr_access() + if recovery_attempted: + continue + if self._is_transient_transport_error(str(e)) and attempt == 0: + self._wait_for_modem() + continue + raise LPAError(f"AT transport error: {e}") from e + except TimeoutError as e: + raise LPAError(f"AT modem timeout: {e}") from e + except ValueError as e: + raise LPAError(str(e)) from e + assert last_error is not None + raise LPAError(str(last_error)) + + @staticmethod + def _is_transient_transport_error(message: str) -> bool: + lower = message.lower() + transient_markers = ( + "broken pipe", + "resource busy", + "input/output error", + "device disconnected", + "device reports readiness to read but returned no data", + "transport error", + "missing +cgla response", + "missing +csim response", + "malformed +cgla response payload", + "malformed +csim response payload", + "non-hexadecimal number found in fromhex", + ) + return any(m in lower for m in transient_markers) + + def list_profiles(self) -> list[Profile]: + def _run() -> list[Profile]: + return [self._to_profile(p) for p in list_profiles(self._ensure_client())] + return self._with_lpa_error(_run) + + def get_active_profile(self) -> Profile | None: + return next((p for p in self.list_profiles() if p.enabled), None) + + def _validate_profile_exists(self, iccid: str) -> None: + if not any(p.iccid == iccid for p in self.list_profiles()): + raise LPAProfileNotFoundError(f"profile {iccid} does not exist") + + def _is_bootstrapped(self) -> bool: + return not any(self.is_comma_profile(p.iccid) for p in self.list_profiles()) + + def _ensure_switchable_profile(self, iccid: str) -> None: + if self.is_comma_profile(iccid): + return + + if not self._is_bootstrapped(): + raise LPAError( + "Delete the existing Comma pSIM profile before activating a user eSIM profile" + ) + + def _process_notifications_after_delete(self, client: AtClient, iccid: str) -> None: + try: + process_notifications(client) + return + except Exception as error: + notification_error = error + + self._restart_modem() + + try: + deleted = not any(p.iccid == iccid for p in self.list_profiles()) + except Exception: + raise RuntimeError( + "Profile delete may have succeeded, but modem notification cleanup failed; " + "refresh profiles and retry if needed" + ) from notification_error + + if deleted: + return + + raise RuntimeError( + "Profile delete did not finish cleanly; refresh profiles and retry" + ) from notification_error + + def _process_notifications_after_state_change( + self, + validator, + recovery_message: str, + failure_message: str, + ) -> None: + try: + process_notifications(self._ensure_client()) + return + except Exception as notification_error: + pass + + self._wait_for_modem() + + try: + if validator(): + return + except Exception: + raise RuntimeError(recovery_message) from notification_error + + raise RuntimeError(failure_message) from notification_error + + def delete_profile(self, iccid: str) -> None: + self._validate_profile_exists(iccid) + active = self.get_active_profile() + if active is not None and active.iccid == iccid: + raise LPAError("cannot delete active profile, switch to another profile first") + + def _run() -> None: + client = self._ensure_client() + try: + delete_profile(client, iccid) + except RuntimeError as error: + if "catbusy" in str(error).lower(): + self._clear_cat_busy() + delete_profile(client, iccid) + else: + raise + self._process_notifications_after_delete(client, iccid) + + self._with_lpa_error(_run) + + def bootstrap(self) -> None: + comma_profiles = [p for p in self.list_profiles() if self.is_comma_profile(p.iccid)] + if not comma_profiles: + return + + def _run() -> None: + client = self._ensure_client() + for profile in comma_profiles: + if profile.enabled: + disable_profile(client, profile.iccid, refresh=True) + process_notifications(client) + delete_profile(client, profile.iccid) + process_notifications(client) + self._restart_modem() + + self._with_lpa_error(_run) + + def download_profile(self, qr: str, nickname: str | None = None) -> None: + # Strict upfront validation to provide immediate user feedback. + parse_lpa_activation_code(qr) + before = {p.iccid for p in self.list_profiles()} + + def _run() -> None: + client = self._ensure_client() + iccid = download_profile(client, qr) + self._process_notifications_after_state_change( + lambda: any(profile.iccid == iccid for profile in self.list_profiles()), + "Profile add may have succeeded, but modem notification cleanup failed; refresh profiles", + "Profile add did not finish cleanly; refresh profiles and retry", + ) + + self._with_lpa_error(_run) + + if nickname: + after = self.list_profiles() + new_profile = next((p for p in after if p.iccid not in before), None) + if new_profile is not None and new_profile.iccid: + self.nickname_profile(new_profile.iccid, nickname) + + def nickname_profile(self, iccid: str, nickname: str) -> None: + self._validate_profile_exists(iccid) + + def _run() -> None: + set_profile_nickname(self._ensure_client(), iccid, nickname) + self._with_lpa_error(_run) + + def switch_profile(self, iccid: str) -> None: + self._validate_profile_exists(iccid) + self._ensure_switchable_profile(iccid) + active = self.get_active_profile() + if active is not None and active.iccid == iccid: + return + + def _run() -> None: + client = self._ensure_client() + use_refresh = self._is_eg25 + try: + enable_profile(client, iccid, refresh=use_refresh) + except RuntimeError as error: + if "catbusy" in str(error).lower(): + self._clear_cat_busy() + enable_profile(client, iccid, refresh=use_refresh) + else: + raise + client.channel = None + client._use_csim = False + if use_refresh: + self._wait_for_modem() + else: + self._restart_modem() + self._process_notifications_after_state_change( + lambda: any(profile.iccid == iccid and profile.enabled for profile in self.list_profiles()), + "Profile switch may have succeeded, but modem notification cleanup failed; refresh profiles", + "Profile switch did not finish cleanly; refresh profiles and retry", + ) + self._with_lpa_error(_run) + + # Compatibility methods retained for old tests/scripts. + def process_notifications(self) -> None: + def _run() -> None: + process_notifications(self._ensure_client()) + self._with_lpa_error(_run) + + def enable_profile(self, iccid: str, refresh: bool = True) -> None: + self._validate_profile_exists(iccid) + + def _run() -> None: + client = self._ensure_client() + enable_profile(client, iccid, refresh=refresh) + client.channel = None + client._use_csim = False + self._wait_for_modem() + self._process_notifications_after_state_change( + lambda: any(profile.iccid == iccid and profile.enabled for profile in self.list_profiles()), + "Profile enable may have succeeded, but modem notification cleanup failed; refresh profiles", + "Profile enable did not finish cleanly; refresh profiles and retry", + ) + self._with_lpa_error(_run) + + def disable_profile(self, iccid: str, refresh: bool = True) -> None: + self._validate_profile_exists(iccid) + + def _run() -> None: + client = self._ensure_client() + disable_profile(client, iccid, refresh=refresh) + client.channel = None + client._use_csim = False + self._wait_for_modem() + self._process_notifications_after_state_change( + lambda: any(profile.iccid == iccid and not profile.enabled for profile in self.list_profiles()), + "Profile disable may have succeeded, but modem notification cleanup failed; refresh profiles", + "Profile disable did not finish cleanly; refresh profiles and retry", + ) + self._with_lpa_error(_run) + + +# --- CLI --- + +def main() -> None: + parser = argparse.ArgumentParser(description="Minimal AT-only LPA implementation") + parser.add_argument("--device", default=DEFAULT_DEVICE) + parser.add_argument("--baud", type=int, default=DEFAULT_BAUD) + parser.add_argument("--timeout", type=float, default=DEFAULT_TIMEOUT) + parser.add_argument("--verbose", action="store_true") + parser.add_argument("--enable", type=str) + parser.add_argument("--disable", type=str) + parser.add_argument("--delete", type=str, metavar="ICCID", help="Delete a disabled profile") + parser.add_argument("--no-refresh", action="store_true", help="Skip REFRESH after enable/disable") + parser.add_argument("--set-nickname", nargs=2, metavar=("ICCID", "NICKNAME")) + parser.add_argument("--list-notifications", action="store_true") + parser.add_argument("--process-notifications", action="store_true") + parser.add_argument("--download", type=str, metavar="CODE") + args = parser.parse_args() + + lpa = TiciLPA(device=args.device, baud=args.baud, timeout=args.timeout, verbose=args.verbose) + + if args.enable: + lpa.enable_profile(args.enable, refresh=not args.no_refresh) + elif args.disable: + lpa.disable_profile(args.disable, refresh=not args.no_refresh) + elif args.delete: + lpa.delete_profile(args.delete) + elif args.set_nickname: + lpa.nickname_profile(args.set_nickname[0], args.set_nickname[1]) + elif args.list_notifications: + with lpa._open_client() as client: + print(json.dumps(list_notifications(client), indent=2)) + return + elif args.process_notifications: + lpa.process_notifications() + return + elif args.download: + lpa.download_profile(args.download) + + profiles_out = [{ + "iccid": p.iccid, + "profileNickname": p.nickname, + "profileState": "enabled" if p.enabled else "disabled", + "serviceProviderName": p.provider, + } for p in lpa.list_profiles()] + print(json.dumps(profiles_out, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/pins.py b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/pins.py new file mode 100644 index 000000000..d53183f7a --- /dev/null +++ b/artifacts/iqpilot_navassist_private/python/_iqclosure/iqpilot/system/hardware/tici/pins.py @@ -0,0 +1,30 @@ +# GPIO pin definitions +class GPIO: + # both GPIO_STM_RST_N and GPIO_LTE_RST_N are misnamed, they are high to reset + HUB_RST_N = 30 + UBLOX_RST_N = 32 + UBLOX_SAFEBOOT_N = 33 + GNSS_PWR_EN = 34 # SCHEMATIC LABEL: GPIO_UBLOX_PWR_EN + + STM_RST_N = 124 + STM_BOOT0 = 134 + STM_PWR_EN_N = 41 # because STM32H7 RST doesn't generate a full power-on-reset + + SIREN = 42 + SOM_ST_IO = 49 + + LTE_RST_N = 50 + LTE_PWRKEY = 116 + LTE_BOOT = 52 + + # GPIO_CAM0_DVDD_EN = /sys/kernel/debug/regulator/camera_rear_ldo + CAM0_AVDD_EN = 8 + CAM0_RSTN = 9 + CAM1_RSTN = 7 + CAM2_RSTN = 12 + + # Sensor interrupts + BMX055_ACCEL_INT = 21 + BMX055_GYRO_INT = 23 + BMX055_MAGN_INT = 87 + LSM_INT = 84 diff --git a/artifacts/iqpilot_navassist_private/python/iqpilot_private/__init__.py b/artifacts/iqpilot_navassist_private/python/iqpilot_private/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/__init__.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/__init__.cpython-312-aarch64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..7f3850256f3735fafe2d75869c351575d9e67ff1 GIT binary patch literal 67640 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 UtXs$NsmniB8HsnmQF}n#-kXsspMzLjs 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

u%>`&J@JG2 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 AeE^1@5#><$IKx-s`?-zt?@yeotPzgz)kj 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 literal 0 HcmV?d00001 diff --git a/artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/guard.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navassist_private/python/iqpilot_private/navassist/guard.cpython-312-aarch64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..3ca2c9256062e301e2dbff04438e8fefeda4c572 GIT binary patch literal 68240 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 xzQ11&pkl%{j1knWIto|7!mvo=fg<{s%RIT(JNE literal 0 HcmV?d00001 diff --git a/artifacts/iqpilot_navd_private/manifest.json b/artifacts/iqpilot_navd_private/manifest.json index 146a9618d..a58269c43 100644 --- a/artifacts/iqpilot_navd_private/manifest.json +++ b/artifacts/iqpilot_navd_private/manifest.json @@ -186,7 +186,7 @@ }, "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "10896807faa5044f6d42807fb7e5efefc6ef64243edea9da5639332964e1cb19", + "sha256": "68beafb13bbfbb47a690606c024441d913d91ef1ed3d9cbee386153ace26acfa", "size": 67568 }, "python/iqpilot_private/navd/__init__.py": { @@ -196,127 +196,127 @@ }, "python/iqpilot_private/navd/alpr_matcher.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "5faf834f012075671a390de2fe4ebb09f9c7d4c05406fa89407aa9e011e9d38c", + "sha256": "6d0ebc52d23e240fa3e25505892be041c7a585d1de20d32b965d795734be5afe", "size": 269896 }, "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "a8361fe53878b61d30d430d0b0488eaabe1641e11b7e584e1ad3566370e55085", + "sha256": "51ddca1a6f6c21c572c5c128e31b0897a13d960f02880c43a2dc8ecd2339ae57", "size": 202088 }, "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "47c673a898e6ceb321f01eff980250bbc85ddd058a8161098e8e91cb02f8f4a6", + "sha256": "940f72d2f887373cb57309002aae0966f1614a63375fc2ec17346aa3fb600a39", "size": 136928 }, "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "55a8b9eb2e17f9baa1a851919d3ce908b69004bfbd09591985195af2da4cc40c", + "sha256": "306115c538bc64b20e9af74dde0f6f2c18ec43d71327f27fbdf6d23c6c77a853", "size": 135928 }, "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "115b57594d411fde87f66d0d030cd5de043bf8d986274dfb8fa7007b8f752c87", + "sha256": "a92305a433ad021259f5b4c41b7d2a5d7f153bc7bae32c846f2da2aede624554", "size": 135496 }, "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "90c8b38b5c0a328c9ccce27292f8399546a237cc72caf837ffa4c1a55a529c47", + "sha256": "e449066b14e6df8642d6698bdc3b0bd54640c84316241100e96c7a80b26d932f", "size": 135600 }, "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "6d80f03b5a4da8083d4b7f2d4b165748556230859bcdb96c2ff5164aa5500b6c", + "sha256": "19e25e5bf234362b49acb086943501b0ba92d4ea31a74b6daf51e92778d8a0c8", "size": 135256 }, "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "a6809b5c118c603706e6b709597a29daa2345fd53d736526f6a055a009ad70ac", + "sha256": "c41e63179df6208e5eb52db1c56a9977d9350fe54182229ea08c6d73933f7403", "size": 68128 }, "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "05f7b0433be88afdae23a68f7acd92ff0c8ce6b04d83fc46ad2233c3df51dea0", + "sha256": "6dd6a2ebf5484a1e402e00e89d590b154a56f251b03be980a4a13af711f87b5e", "size": 203024 }, "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "96414985cacbd85d02f69473b84ff8215fbf959996ca1f1f0dfdf7c77503c9cc", + "sha256": "4c56805bb05a3e50f83e9b754beec1c5a44ac08b4a3b7df7f94087c1a7175bf6", "size": 135536 }, "python/iqpilot_private/navd/navbridge_source.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "8bd53fba3f00e3f8320f873e72b3665f22b6065ee10425d270167b21d2348ad9", + "sha256": "99e82bafcd3b80e19e77065476dd5bd8444833f0c9589793c7051485a64b618d", "size": 136576 }, "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "d395b00b81da1acdab40d6033b5ccf084effcc6531978af63d568d4ba17ee894", + "sha256": "860867152a5282fc86a5b10f524430f0b4c0750d506c7eb24a9c5fd28b32c5e9", "size": 862920 }, "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "43bdd7f93c317f26bfa9203953b3a35bf91bd0475dc3777aa5fc3e991216c3f4", - "size": 135464 + "sha256": "742355765901f26bf133d17d7a8d8dd0c21ea0a0da4e01c9a4b0d0066e8a3b14", + "size": 135272 }, "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "4678f2e256e0fd2b01d4441af848056b173d7d2d6c8ba590ad32b8e23ee8591e", + "sha256": "1f1e7fb278183bb96e249257bf21194ba5cb8e7a8ecd1df07584a5b74e477a3a", "size": 135552 }, "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "52e4d03639c9d9be88209ab2e4a1f0f23c0adf81631983248f7d069d46cf61a5", + "sha256": "c934cf04ab106482177c548ead39b61b1f92d6f693e55fcbc968685e745fe01f", "size": 267936 }, "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "cb066c1e5637b8a6b60b44753b6a0855a04ce7f5771464d71fc9da245de4a56e", + "sha256": "20144a661ca25686604c85c6d64f2ef517f73cdb46bfe07fcbe2dd69e002c39e", "size": 136224 }, "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "2e226e29757151bc3cf350a933f6e8f402d7149b0b9e66b82ac9cb721cadef8e", + "sha256": "c8e10f4f2cd3eee95534b4e5b362337b162f9125c2b9d6d0c498d047f6f99a5b", "size": 203096 }, "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "2b12153db93198ec46c268384cfbd65a9ae526faa584274987ed8a289531547c", + "sha256": "64fd9294cb08ddc2268caa77b07a6e97ae2f6dc1d055f29d9bd117946be1d2ef", "size": 1009128 }, "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "6ba9e9ae810a4e283a8ad544e1f42e899e2e98939754f9b88ffc21f320a8514f", + "sha256": "23f6847a4e2f28309fcf733dc5b8644cd85c0cc0820d77f46762314a3aceaad1", "size": 135752 }, "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "0e233af11a3c07d6469e221b5f02cebee4addfe1706d635f8ed7624eb16ff908", + "sha256": "aaf80b19f6d181c1c7cba4a5ec244226b7cc1d3119818f26ddd134cbb2f6cdd0", "size": 69688 }, "python/iqpilot_private/navd/traffic_sources.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "8485347d40907cd0e654b93e1e872dffd156278c3868c640f7d2e51884d52a00", + "sha256": "bf832215e0b9567488ad9505faaf7c8c4b6128174f7023f29717398e3951147d", "size": 135944 }, "python/iqpilot_private/navd/traffic_writer.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "c8b907c51c69c7950bc99ff577ddf4473dbb42f90e53252e3dd325df2a4f9ed3", + "sha256": "b97b65d8ddfa544e14248297f2d000b20bf6f2cd74e560ed2d34c31c95d68f8a", "size": 136944 }, "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "c13b5fdec4a8d4a33dbd7c25d9ffba30f6faffa1d286438d80c4d9a615b31145", + "sha256": "93ff254bb89bf423981f9aa1fc08168a4eae11851df00431e3a08fd330d4a0ef", "size": 135280 }, "python/iqpilot_private/navd/valhalla_process.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "695322ac198a75121f05989387bd32a733f18921f01f373d45e22f7ec839e8a5", + "sha256": "02869f86b96e880a41fc1e221957b2cbf3849967d741412d6fb631dc670f6394", "size": 204064 }, "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "24d967c264e1b879b0517da9cd6fddefdc4787efe6a52adcd2429efaac2db3db", + "sha256": "da4d12c2905fb60fbae9b8c267cf008b2ed49ee7606a646eb3d7f4d80c022712", "size": 201368 }, "runtime": { @@ -356,31 +356,31 @@ } }, "signatures": { - "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "3zeWvLW0gfxiEeHYfOO7atzH0V9/YxbbPpLV6cdokoSP+UlxRJUrMTkJiNCiLBzXuhnNbEhj0Y6q9dLK8QNDDw==", - "python/iqpilot_private/navd/alpr_matcher.cpython-312-aarch64-linux-gnu.so": "1vJWjDPECvOrFe5UfWFN3rFeZSfO3Te9o3Xj0ue1Q+2Zt+gMkvaXgOZG3DNfbs7yaZ2yheabOhKRdwvwHGumCA==", - "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": "6IWRbqN7iDaCKDPQ3Ho6cEhWrP0Tp6f5nKoo5sXEEAtYfUJVZADBHXY7Qk5MszNoa13Sn+8H2eE0imUwjGUtDA==", - "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "gakLE/auDWpkOm9vOzHryjZm5dAIln/GbASMoFl4iMiMRVmFmBjdV0uyY6bkVDKPVHX6FRr65f1yuJbF1d09DA==", - "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "yOqbMSdUVZSlHAiw08Yb+vSyEr2YoHBsSIWtFQa1RqoSmLbeLUeFpTiuczVaW/HtCNeZZU8mJYXWyTUM1N0xCQ==", - "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": "8uEYXTWYXVzhDctzoEBbSc5wJ0mqX8qAe9DuXeKgfmpPsM6rR8jHpjHiyjkLAAPorWDRVN3a5W3iyH2u2tD6Cw==", - "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "+kTCQnh0TKGtTVl/XqtKJfrFDVJloVVhsUmt793WbvaULUK9aAJmtaEJRvTNV/DiOjYGdgL1texfnBw3x3CkDw==", - "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "oFJS3s2xxAmMxBpLAiaFklhstR8719Ah/GtUy+YMPdaDZBP6TYLIe89aqmPjW7LUHagkmxsJogppJXl3YtFUAg==", - "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "rsDD81jJXWuvS+IYSDwKVZy/C2lvnmmEh+wYucqLuUg64BIW5Q8YpdtRM9Z++fYpSut90FeYHtrIJsAavTmOAA==", - "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "5CiNWqZqmmiNfnj1plhm67WEF5PXkPGr6dMsVui4VplsrVwaWCSQYJ4ywPHlsoUeX+c4FoCX7HJSNqwxjn5IBg==", - "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": "dkNKNQEHnq0Wzw/Usmwf/qNxN72cpBZBnPHRKN1ZEq5nExMqrrraTe6bn+EWM2yo1hMsXsep5JPpNGxpqqusBQ==", - "python/iqpilot_private/navd/navbridge_source.cpython-312-aarch64-linux-gnu.so": "0PDFbzaD2KoWZRAP6I38SKdUG0T11j86Ue27RgjziWLAPuxDSd6ogJPbTuPxKLV6pBIASN6y1KU3Cf4BLOkKBg==", - "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "WikwGS5js59suyyzVj90X0dYz6I+wBb7N/KHRGkD4kYEX59jP8hAK+MlLsUAr9Vbmss131S8z5inlifsCjN4BA==", - "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": "LOnh9gEJeT8leh4xo0gabomCwTOo1Xhp2oALjrsL0Ij1MCur9bLl5QE33iFVcomQr8jGH0iw7Vq1vXDMlIRuBg==", - "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "KthwWou6yvP+17m4g/3PGY7aPTKKjUqLT8KTtsiTr8/y3Le6YTntbn680C1hJU/xKm1j+IcnAomDw7wdma1PDA==", - "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "cdd78rET10BlVNmGXsNJgYpbS9VCSNEB5HJQ9krzeMu05ikqVnI7vHA/zlxmuHHFiHnZyAN00c16mEmgf62dDw==", - "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "QyrJUPOGnI39p3n24ZCKdHG+MI/bqIvBwUdFyGO527eqHVVWJyinfneK+X7vARV+HLwxqO5bBcgwqHLdi9enAQ==", - "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": "YkM9q3yJaDmYhExd3Te/7tpFQXXrt+/82M0QRZrVxjKRKOxrR7xu3jdjXQIT67I6WxpHzsNIFhnzX2Bl2/9eBQ==", - "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "+Uu9KthRwOh5+YJaj1/SD/QuSOfEuT0d4CwO//wB7sCueUKsVx7+CcyAC5T2YB8bRN+42NJDn8pQeA9JcrPoDg==", - "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "BoQYpXsWgO+RdUhI5HL4WSk8La2HJ8V8DSFWvAylCaDNWJX3yaClso603Nf0CcKd1MDycb8J33hiHvJSd7R7AQ==", - "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": "5+ip8rEk+Upsvyp2tlfdVhmIdQnlamloY1SCuwFzkSM39y+W9tvo4r7JTeb5pcMiUijmwK54m4Rvx0XWvxz5AA==", - "python/iqpilot_private/navd/traffic_sources.cpython-312-aarch64-linux-gnu.so": "WtPKZHGDG8iQj7q1UsXw6jTXxJsWLfNaw9kfJ3huWYjxWcHz0K7ibJ5JzEGSc5l5u3LdRkt6/aZHlBMrDPBaBA==", - "python/iqpilot_private/navd/traffic_writer.cpython-312-aarch64-linux-gnu.so": "VVFiWnkiwn7nwhq+6q3aYsnxMW1GLdfaGB/a/h8JV46OoSn0NOTVA72jPYlzs0d4bacEN+IgMAelCjnMlqiBBA==", - "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "upuJWa/0B6du9cu3JwdzK1cSqSAORKfvd6ir7sh/oWSRPEhkxyjPmo9/uoNw4Qeq2zoh3iKkV2udK5gue/PzCQ==", - "python/iqpilot_private/navd/valhalla_process.cpython-312-aarch64-linux-gnu.so": "DXSI5ljQTXPHV+QvQCQu1+oOfLKcPXMkx7qx6id0NTFPHI/M5KIooBYKgJjbN4abl+mzUXKrtOmGF/y3f0lwDw==", - "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "h4bQodknw1y0emCI3aJYviy3kzaQH8hElJMFmpS/sMvvC+sCHfOGUo+8BK+T7JGZ9/VzNXBzP8RKkHG5cAf0Cg==" + "python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so": "HqvQHuszUk6/MEm2nHzmWFCj53k63QEJUa9FhP6n1wBQRhSvzLPPS5zYoQlwV9tguWcIa64N5IRd0oA8M3KgBg==", + "python/iqpilot_private/navd/alpr_matcher.cpython-312-aarch64-linux-gnu.so": "Akv5Etd1UVJ0+KWYfMfhqFVp/XT1WjPEEUKLX/ijn44W/plrVaw5VJphiXPW6TSmVixVz2itiKGaZ6cYTJMQAg==", + "python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so": "b8+ucEd/I1rmHWIFTfnNg7Il8p+MAtiuUqD8bQ4CJD8sApGGd0uF4xUkB/VYVfMiy6FLONIXY+SHxEr3RyX0Aw==", + "python/iqpilot_private/navd/event_builder.cpython-312-aarch64-linux-gnu.so": "Ep3uIUav6jaSUjwb1oR+A0Ss3Jpkiy0n77/GZqeSpTBTOwQpaysbfAsPAaQs/UfKyhggHPYavLiODxpDZLP6CQ==", + "python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so": "wGejxqMf8IUMSgLIL5z+RYGwFZokGAmyQ/1Ev/W9kMMrsEkFL8/upFi36e3bLzF3JojFXv8t1SApDXTaNhNtAA==", + "python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so": "yzc0IeL2KSVmquBnWfY9zzgVH0PM71JZIr0nWjCliC/jvX4hQFCaQx+8H8vrGhJ8s/5i+Potjq3nKUdMMpJpBQ==", + "python/iqpilot_private/navd/iqmapd.cpython-312-aarch64-linux-gnu.so": "DQuL1PP6QD34O73YvlbiV0bc2tfB0vkfsBc8dekjCGR5HuK6+Fs/z+JS7btjGPWnpkQwGgAQqVYUwIhYkO39Dw==", + "python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so": "4kjuCRTUQYO6iRNpVb9MSgJOcBXpY946PWgnCT78SkliIp7JPA8wmdaKnQEY8/79u5o5YpR9O5/TDriH30YWCg==", + "python/iqpilot_private/navd/mapbox_client.cpython-312-aarch64-linux-gnu.so": "GadPtY3B1UgUAngKJ2495TcBZDKoIJgmTC+LFlk7mgdWC/B491cag0c/NATgWQuZxGxSG8MoO+I2RQ2Xe6NTCA==", + "python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so": "1Maph+7ojm3ycePrVhb2qa/y34HkpCEEPGv/HpsnuwvgrwuFwqoaLFgkm4wk/XkFsLM44V2+dGQbv9LurWx2CQ==", + "python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so": "YrcE7SIleObN5ABgDWaFIKu+eLgqSDY5c8QcIYyaZxdwLwyYtiS9GnZh8ZXZr8oTXCzKDl7IzaWcaHHMITWQDQ==", + "python/iqpilot_private/navd/navbridge_source.cpython-312-aarch64-linux-gnu.so": "4ONoDnKgAD3EsLM5SxZyfCuQMJc/w0hKXRTtYlYzuRuTjZU3u1Myh72/FDt6/4s8mgFGiPUcGpxPi9H80yjDBA==", + "python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so": "sDHR5jK0jMRVk9Ms0DfxoH4ppJyO3of0tYV/SMxf/5lGPEhUrhiQ3Sxh7E8vRuQMjQMxcpK4xinVsEkAgo1zCg==", + "python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so": "qcqd/kQQOsbm8pf4E/skWlf2SoAykc3Yz/sk/Ic4sg7EIoK6thwapk+3SP+OOyJOlyvv2nBM9CJZ/tmAJM5YDw==", + "python/iqpilot_private/navd/navrenderd.cpython-312-aarch64-linux-gnu.so": "nWBumz9rDCROfCQr/hzfaDOwlC8hHoOHXOl7UGMZREXA1BdShgxfwLC5Y89GpM+LqOi007lNfw8XA5E2xUxdBA==", + "python/iqpilot_private/navd/osm_cameras.cpython-312-aarch64-linux-gnu.so": "KZUxh2P4fL/cnLlD5hdRoBBRZERkKRksgaeE4g5xd0LCKWIyTa74emzbPWJM04Iax8bG5vG/8qr92v/uMGieAA==", + "python/iqpilot_private/navd/reroute.cpython-312-aarch64-linux-gnu.so": "uZxb9Gi1kYTrRFLxSQ7bFK/kfJXIv+uTQbNCQofM/f7p2QWqRVnrsccr2H4/UwzWkq6/oXvDYKl7kt8RYwqWCA==", + "python/iqpilot_private/navd/road_incidents.cpython-312-aarch64-linux-gnu.so": "B+0mOr/weMU0dYotSKJ+0fZAtl0EhJq5VLPQNWXDSRYxHydTNMlNFwJYfRVG+0W6crrMgCK1/FmfKdvg6wK5AA==", + "python/iqpilot_private/navd/route_manager.cpython-312-aarch64-linux-gnu.so": "llgYyFkE5NGwVzq6X2rF92Jt7jVCqoSKWfHDo8XAPU5uxf0WMlmgqqGvSTqxyef2PIA6/4xPsycmECPh2dbuCQ==", + "python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so": "1IhEI94wbdRwcec3LSt1ed7O5ipXqUYqh/xdWPpdOjnsqoc1UxqL5k2aGvQsSw24ugYTtujL08WfZg5U5KKgAQ==", + "python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so": "1BO+xJ81fxdFd4LX8Qjl8pTRE2J7uEa6nXAxe2RxLplThga3ygojXvOdc4fdsrJe6CeP06d++Q7Q+7twWjBVDg==", + "python/iqpilot_private/navd/traffic_sources.cpython-312-aarch64-linux-gnu.so": "uUU02Y2ATNN1II1yflbxoFolAbi7i82231ZzXKe0HXMEx4Ul69DtRbDPPDt3QSMPRuvq7MkMdfUg/vjsNtGbCA==", + "python/iqpilot_private/navd/traffic_writer.cpython-312-aarch64-linux-gnu.so": "3RyqM4h3zCP8+a+h23mLdNPipPxaHEGikeGTejsvovIAG+3e6vqXp1qJ5p9Iv6+cgkiOjwTi1tNsZL5sPfF4Aw==", + "python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so": "AqDfZIJx5Q9qhsnKOe69YkpBZvFjSyFBwScG1U7VbGpqpqAsZQu2DisH6t9+b50J1vDMZV6O7dzeQ4O8uCl8Dg==", + "python/iqpilot_private/navd/valhalla_process.cpython-312-aarch64-linux-gnu.so": "SqWu7atpm0cv9Xrz+In6JLKjUubIRgmO1GiUTWRmxXe7BJKAGvqqOwmIl7CuQGiIBm7U9QEaXIoiUh50jl9QAg==", + "python/iqpilot_private/navd/web_server.cpython-312-aarch64-linux-gnu.so": "SIE6woZzt8xDyoFCbtRCUMRu1nRi3RY95KTh1LurBjdk0YB92sEsE/7/KgTpiuWIAMtzR6mGqXglIc5ATZMbDQ==" } } diff --git a/artifacts/iqpilot_navd_private/manifest.json.sig b/artifacts/iqpilot_navd_private/manifest.json.sig index 1cd57d4f4..51371690b 100644 --- a/artifacts/iqpilot_navd_private/manifest.json.sig +++ b/artifacts/iqpilot_navd_private/manifest.json.sig @@ -1 +1 @@ -kmjHw5sbr1uhbckWG6FoCjTR0idPL+RGlQ19Wri9phayqsni9P3V2rqLDUPeZ0ds+CRqMb378Jgghj6eJ6gxCQ== +895wuDUENqe6UUjsi9Cjy0ZHiFxVMYtjNXm8ngrGYhTxzA4PUr5j3EM2LLlqq1oqQmGBsLjsilpILKUt3o8aAw== diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/__init__.cpython-312-aarch64-linux-gnu.so index 51a6fa75323ad76fc69d57d73b7d052be9fa1d1c..3f847f2f5e8de643d36e2dc2c4662efccec0edbc 100755 GIT binary patch delta 39 vcmey+&+?(4Wy3i|i8P~R1LNdWlSBhcb4ydhv@}yoBO_CDA@tDS5&>l502 zQ*x9IwNdcdL6xYY+%c6BsSd+d&SYnbk2uzb4JZd`8!FZr-;Vcxb!x>y zWhX6UtOA`KVoK(rod~TK=HThK?vI{DJ&+UwCCF@6Sj38<`L&%k<<@+wpJ{CX!_RhL)#;Srf z=D@^iam64W%KZ1c(M`pIsAgZJWHx6pjFPBMAF|8PD2 z^~1RuEe7iLFPGSy20q9-eQ-2S*)xi5yoF|F6arY;-{-(SGm;NPXcs9Z&UPoh&yCpy c+dNxD0nroz=`eq|*{<8eGuhvK9A7;C3ZcUf6#xJL delta 926 zcmYk4F^`lt5QabaXef{;T6FQ7{y7}aVzK;vv#8$GArdzuDlTeB9zC~VI4P%93J%A;WD2n`VGXf> z`i3zy`(vwzXXlR>!=++WK@;cFXzR z)%e5YksKxpn$UtPfR$N&lKIE0j^`bjH70@}nU#{1nw!LVbv3@9K)9(kB?=2s?i{$yqyMyb79EvB9 z(m5qc;%;1M{_t*u2|@eqp2}nGn9;iPP_o}Y`1?>*6xXn^8Edsj!dZeT!~UP^@%5c^ zL5rzHE9e9HY+k#}VK{yCO}G=(-Y0kk`biNEtnCIJ<<1b0nY$pkhlbo YsZr^la2OtMw(IuzO!qhcjxT=s0*e(4`~Uy| diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/amap_client.cpython-312-aarch64-linux-gnu.so index 5381178762b44336b1286abc3f331060207eaa46..a5336e75548ef580977a1a2a0b324c14624780ee 100755 GIT binary patch delta 813 zcmXw1y>3-U5I&qD5)wT(O+-l*?auD}HHeamk}_AjvonbmbFYm}K?OyWG9{-YqNSj+ z9bNiu_g!&VdpN;a_vaVvOm7Q z+#h3aznvV~GUxrt`Pm)_5S$@sKzPf&hq2|py+2*kLuwuBkU(#>Fe!BG!mxcgT|e$B zW=96Y+AHKXAaSPN)As)5`t+^Z5bvcYbIXcArkPqU%kryV?tk|;cLY$XhP$;vjYA7M z+9(wN6U0<&!YE!@IR=wRiPCIYF8t!+E-{Wz+(UPCB;F$BE1; z^Q?z91NW@a(3-TeeLb%5ghwJuq7|Dsl_^_jXeXSVI7x z1&)E8lhOpgzInC&vsUPt`)!$8BP#{xUTy`y{Q0}()h3rrz-hTr427@nP#{3|ye>h;PK88L614;wGiA)!2T~$aqt1JFY!8{*q3GDLcT3SV zLni~?GUNy3A7l;kGeQH-C<)}@`408<{ll;CAO7*@$<6xW?0HFTYVNF~mLh$oRJ$?b zvh0u7SNo&y$FHXcS>n7uy*S^Snkfit%Lx&D(!f@Qwtvpn^az+-vjEGGY@)3ul$N*8 zXX}5vH0v-MRtn8Yxwke1phfBH_1W)LQ0LSrDX0xZi3@@8vb?gZ{cra6et-fhP(xkv z1ThxLC|&LQfbL_Y(rZtJI(nmNKpAyeF75L2^mw@MgASTY$_(8V%L4_cLAZ1DE?`TFCdRv00h2X+#J4oPKt+diDH&v!}`wDQaZ zSsM!{E@gDz9$y5~+JdvH1CjThVsTm+$$fiq5wb=Kc`A0w9EpX8ES6>5{uQq$I~4|E z?MqKz?VKA zywh=iI_^Kd!~0K=%~VRbACpeFMSVbm*??20=kV48>D8S1{R3nCt8%jCH^l z{qXTl$KC0;`}hv;`$J16vDT53Fk~w!qdK;>eD1^7L7QSVCd!et5fF&8%2@8tH;taH zck9gLPEbUwA_^^67vXkONT~yOYhIHYuy!}1^=;E2t$INwQNhHec!|_KMVh90et3DF zx0C?@#WW67&2>0XTz@XZ-5FWc!BI`gv0%iUn5S(|H~(++oJDK1B$63w^HJ8<>+tyd E2bw)bqW}N^ diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/helpers.cpython-312-aarch64-linux-gnu.so index 7ea4bb95a98e6cd4917b6a7c82c0ba6da9104e1b..baef642f3c4fa85a08aa600121e751059b6980d8 100755 GIT binary patch delta 636 zcmYk4F>aJG5QTp?C>14H3LqsF^32#CPlG5q0ir-!jmNfF2@)Wi8cJ^PpCI*ak`-yW zKu&<*9H|gqDT=VW@tc`X@A>xp;P(9B+s?h%yo$hBLxpZxf=OseyNB4Osh+H-{aG$o zpFb^wqyQ~8?j#@u~2&R77FrkW|tHyihOf!&H0uO(#wr5LL( zeyp7TZrt+)VGB_hYC=o37i^sk8qP1bF2C14#*)t^z-SzlkSX;R_E=i$a(Rc>yRj89 zLaiAwk=1|^(q4CZR_=8w$jIaqLXJT*Ns5HR^PjCdT9h8V58b2$UsQdel329Qk1kwZ zcoXtUwCkrk_tQNaW8;vM0;gQMQ6gUqX_{8YtM$>m-MORdCqLY;cmDu4Yqy&K delta 636 zcmYk3KW>yU5XC14H3LqsFvOV^Ur$LmQ08t>V#^bSA2{yoPYACtEcY@Tr`6JSD zft&!rIZ`1UDT)|ry5~2~?{{;0aC3U_?b5y2y{fDlvq`~@+^s<{6oD{J?RY!g&T_f> z{ApPvt5h_Nid?LC?*V%%^LpoAA7ZSn_MA9)!9)!uwdi@i-nqw%z|v^=n&qJ6V+x5R zNuB@h-19}WjG<~Rk$?aK^dQzsnqTf+c@Kgfg4QJ9Nr$ho!LYlHC9N%&ck$SIEulcj zVoHrETTb5KR<}8+_qq_3v8fjs2~*eT6##3W|Lon-LdYZ-7^U2`*CA?+&C2}f%#}r} zl4Fjsmx!K&jT0=yHup34ec{tMShWj#ppnG;pwcSL56<1&ufQ!w0V2tsHHGmKWqf#= zHrp?EHGe$$aGz6Pz=)&dRDB)gwqluT#erqD*~(gNxjp_5PaFUv2`MGBMx)a1F<={d z+nUb5&j$$hDRt-&$9Ba=$aRQeet6-+VPcOOjkETyK6jE@yukeC!tEF8JC?>cdXYMC uh1go>P_CX{x}WY@;!LTxC`rkfH6t2fF4MGHueL|?{?Z*?J^A5&z554ZQ@i5; diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/incident_feed.cpython-312-aarch64-linux-gnu.so index ccd477f856740d66a7251ec537f0ed7c51b43f58..451945ad1a0f0b4cb120d789a58ada875c664b82 100755 GIT binary patch delta 205 zcmWNLD{ezE5JlsnEWxOalnspS`8`&WSCti&k3UZe3CaSp3-f@$s-RMKkYqK*g|&3y z(K+{VUO&$3(~tYw`Ic&#G6`Tv6iiGl0weX?&b|5^Qq2t5B!FhMv_J-J)SqX!@scS} zjM6GGm|&VXC2ZI~XQy5#Rj}5ykk|qibwSBk`ek0M9j>uLRY4&VEj#MDTAE0wHi(Sj5BgyVM~b`eC(3f897mEEmtGAuYA=dg)_)!DaI zs!+wEiW7-681Hl7=$2CNjST<`Gu1>3CmvsOn4;vAl~}AxHx}mw10r4im-*p|vf*;M ddTIbtOcQ6Qd9^wm4X~c5JlrI8wh%$h{6u+nXx@?sZy{2x`)RzqaP`RgrA5Gv5QxPA0kDfPJxsi zuq=d&^!J>rd!L_W8HjT;h)`3M#10)JXY!+?b-lQ`UR5JQ6ESh^?3&Pq zJLK)(eKp>y-vk=gohH z-MK)tQhKUbI8~5gH6|CFw$FBJU-zrn?KiWlSDTCW9$Coyppmn)a-Hb*<`CYU6z`CY zQp*WcWO#9d?ZY9wU99HW+eXH!IKZnX1YzF3AHw58=rk9XR)~DAHdLuR(pDbA$3-%< zl81LCZ8b+$ibm|)?}zYdNi2YpYwI!EsMxW4$uYj1{t6rxq%`m8sWr6uX=|lMAJ$*4 I9>e>a{|#JwDgXcg delta 408 zcmXYsJ5C)z5Jl;X4PcENAiRUF?&?paLd-HsHeKijTzJ74eD5I<+kh`j|Ecd(cJZUaAqLV5OjuNeORvx(2r|@H1RSpQF zAmmgi;z&Fq(enBfeokI`GK-}Gt4rdf&Ir~&4*!H6CUA2@FT=1ifEYy5g7xF#IUHaA E2l^U(+yDRo diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/long_decel.cpython-312-aarch64-linux-gnu.so index 1b78dd316eb8ec551dce81aad13bbc93f1b2d511..8b6859d40e50b71a164044d6c03c6522bb8087a1 100755 GIT binary patch delta 137 zcmWN{u?+$-3;;lxZx9lFN=6`w?Kll1e2HjnCz*qej`rIh0_j)zido?5+t=g19-kk$ zL9i&pvsBeot7jjSy87Vd4sZ!h&h7 delta 137 zcmWN|D-Odj3;$C<_IC7fth9AF7x)~Q-fH8 z1q~*Nyhl!6tpdp~jN|@v979Gd&VUBRVxxrJ8s~a{OrM=9w-{JJ0bBCaDMu#B>+^cq lw1U{obK)Q%3dOr?F9d%YOnQc2#^@QDKq}P$x*l%t^A{(!GUfmP delta 162 zcmXxcu?@mN3;@6&WeCP_-u|~UO=Q3Q5)Fcu2`GXnNR2W9LS#8gDsF&VmwsLPcbi3X zt*#)^lp-WXNMR+_uA8RA`80u!m?8rwvk0r%LmCX}@tnVVbPi~$A$0&@Pli;A4cqH> m-HA8|v7)k9BjhM97*PH-QOhJ)xj9mHYmJ7?sN3=Wx%>dQoHM%s diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/nav_cameras.cpython-312-aarch64-linux-gnu.so index efbaa657b0e7e57a9b02c95ab3c56c2bcf6f467a..90613ded16e1647eee9e610e6bfec92e44f7c074 100755 GIT binary patch delta 606 zcmXw%ziw7B48^}jj1}``K^+hyO6>SgHl_+OFtfB5Cr(hM7L}HP4F+b^iMukfB2`G= zEARw71rI?Gbns&TY#p8Bo7=;i+ry8a4t|6eCyVsLSQJWk(ZNHyn0N2nI0;7|dhJR> zxENun(nx!gPHnfl>ev01mj423r<%7}VtPzpqeW<2(IrlX1w1vO2wcsw?`Qi4K4K?emjO2xKRv`7)s zeFdI?r{E!&5JYMD_~(4*`sVQZ=J4aEgCFyYlf^rDp_WRCp1D}XEEQYc{A51*KsB={ zQpBuP*ODDI|!JYbg$0M_=B&KC`v&+=u$VzEP{z zRT+shm0U6PhBi%Sa^AZ9(>++d=T=%EWwPYLk&+S>+#a6JUzgCcnyC?C?-(ny3IOBw z>vVp(&{&O_dl1Urduj+dw-mPHbuLRGbhm~j2F{G!Tjd6)}rFawXo5We!VF30cX}a_v5BF@#an?X%49pJEuNF*c}` zEkUNN*jlf{^Mzbq4F-2i-LXP-^jO4#QLk8BqwJ5{{Bt~rScG_Fl9B^vgUo;g+v7ez zE93dpl956Xsa^*%GxOUce*@##Dvn48RYYgW!!JkV{kJ|pzlSQtDHJW(p+bP1h;Gw6 Ze{wf&DHzjW76(}eatO44w3~l_{{!dzs{H@} diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/nav_turn_signals.cpython-312-aarch64-linux-gnu.so index 743c916306b5f4123e18059b3312efb40b8a78a3..6e902d60504b08d0c3cfa9ad1f6dcc6583d4a6d0 100755 GIT binary patch delta 261 zcmWO0F;W9D3;@7$mmlP+^mLMJ%T`Cp6R5b8WqF2<05y{jP+y-ODrWKv-jd-3P=bi0C|VsFZog|d%?YyBg5nazIW?o+lY8EV z2Hcw^u34a(2{xtM0a~){Tf^hbP?HckjDd!1puII|d^xo65N3mJ%`M6ext)v)Q>rj7 J9~S<;{sF?xO=AE6 delta 261 zcmWO0J5mEN3;@t|mm6fO^mLMC#a2hj5vbU;Bx{C_U(MtK)Z3?rikaMkvt&2{yc4|Z zd3QbUPT%RU-Xa$nwKg@15Nl|L$U@WfGG52qG)>F$`24hpW^i>x9Z}4rGF#=K?O{#x zzJpkF3lxJY=u|r@_3dL#H!~sv5Qd|~AUxWjK_y`OS<`9m>|Tm?WK$_6XV(G}u|-d~ zj}mp(Zr%;a94_yc Hen0;Jh!9P5 diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navbridge_source.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navbridge_source.cpython-312-aarch64-linux-gnu.so index 950c6ffb5b16e74520652b06bd80b1a6b4b6fefa..0a99278a62d47b2cfd93d46fe1e360194fde5394 100755 GIT binary patch delta 394 zcmXBOy-Gwu3QG--$Fl|4Y z)6sioiJ^&T6WeTw!BuTMeXLd#aItX(?8lZ8iPPGMr_CpGII{D|NF_J0o;0~EnyL%a z-IF=kM@=b2p{^?xW2Tma^(79&{Oaa>=$X$KmltydbtyT{&1NaKWP*m4-L(E}W@FA! z9CT$tF2Mtam^=edd#km!ramfI5&{ZdBgEK6%iCx3Znm-yT)U`}2DT9qrKu$xhQ;~f ydNv)tn4RVEt2tUDTYRF_A1DKY?+$P)O)C^nJjwemcMW2^X(7(+-}+c delta 394 zcmXAly-J-y5Qe|CkX(U$T}~BJg_)h*o!us+v=lH!`!}pxE=ZHUhZaNq*@U)Duw2u*T#_ymVbBdc!mH?4Ld^Vp1Avx z&1#h8)4e;HeNsrFW$u9n)R>&>X-dT zx0^@=~eW1Ay{}?!WuyMTi zY1*7^E?3LZFZX%-Y=9bDM8u3J-I(m E?}rp|Q~&?~ diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navd.cpython-312-aarch64-linux-gnu.so index ddd9a89dfae98dfe4dc357f7b36792ca7337427b..ac66026bf8137faa5c74c90298926d86b10c06e1 100755 GIT binary patch delta 3160 zcmYjTJ&c}55k5n32rr6g@O?-TN}7l?*8b0IV_g-6CQ5};-7z~m3rN^Fwu7jg6es9X zdb^0q6>7ASD&HW?$ z-`fB7{uBG(*+07f)`ie5(D+WNJeY+d};-rlcX zJH1DZTz5ppdgR(lDvn&!J`dhqp51hAJ@^rVu~p*W)38WG=hIhl8jEoXwMJLS#a>!S zB?<1nxSr;y7Hk-o;!RxYO$J`GdH(9M*%X&pOnolBx!gk)JneFtm)29Gs+_YlElyo_ zK08WyXWqTK{Be`Aw@g8EYAJZ>!I3Ymxq0EA%TG4Fx>y{VO=j8q#({)Vw0W?ejv!>N z^qSSF6z_c3Afe1-?=22h0UFXUs#8a@M zKUiMcICRwspJOjseG1W`74PTK4^b!4XyQgzYu41WHWxFa&J!O3Jqd9D%TB(bac!jr zGNC@tucuK7pB^PtBRAAl03;)Z`SYcSzAB$o%p(f3BUb?nywlU)py_FKf z80bCvVb$@xb8UIyRdyOvM9tlW%o>At9rZDgeW;FLwU1~CMO83XGI1}`SL7e5#~13P zIb_g{auq6oyXf5gXkn-)4b@KzFtg3L4r^^XC35xnU}7E z$FcNCrH?8RboM=TW6iG4``1?<7r^CG@TTr8i$K2&mc*d*Jg#mt5YJBFG^UnD zsw1)`H~)s48-^WJ1_oeMByL9VmQ-opzlnlTPVkXd=)3a-tuW-PV;(hoI(#}&N*!)JV6B6_!IM(6Zu8~a%g%;^4?Q*ngc8Of47WsWeO|l`x_8VD zzb&A1Yz|gC5^_;_esvpYrjV!)+<+TFWT}L;e$)B@GBLPF?T-& zWf3(&T!phCHwnfB?<|()+qlZYu@F+Kz-fsnCJJd}dh8u&2zN(<4c5r;jwB^>$n*aC zVJj7hO|T!t9}ia{9N37=<9Ak_iNJ+Hbpk0h@GxV+$mi}I-0cww8Job@T!V{P4p5nI z^8!wP&YlWfutcc7H8@^IhLh3O*4cBvIlYCyN8SdBT4e2&BmAcgj;cuVcz8~UT4RQ- zwbDTq3)lgwN21*Y=vFPaqNvNmPrR>O;DOHO?p+W(8DP<3)&nq#j<_&*p6A;*g@&># zMbU1R+$oMU{OJC%GoobV7IhDEUBSyCsdh^9!QJJj+u6aQ0gy$_)D<%w9jn0H{r3U{ zb6LrfPynhUBpr5(@i0ms8v0Pn;PnU*w7`lG(V4+^=M~)E$q~C0Xq3^Ygp7;}$oRFe zGxpl+cJ?rUwL7j99LRzQg(YeLK4Z-CpXDEHv2X!85E!^M+-S)4*z+N<*td{&3PlIh zUJa`P5DIY~zqh&$yBrN$55QD`V25Ix2{cdLTimv)iVL2wFTt-AP4YW4B>gfg<^&f#)Ol!}Ek} z^A%nA@-3OdTU#fOKWY{(G(w5e zO+k^QZp8M@bF3dw#DH}mq@%e?g2w)TpFH;JQk{d7<*cE5@4j*V!#(&#^d9vKLeD4X Tusi+XnJ<^i&wTm)KkfVvdz_&` delta 3160 zcmY*bJ&c}55k5n32rr6g@O?-TN}7l?r~R4Tooy^vQD~x6DAgUivonB%jbl5A>XPCF zT}p2kQKdqz09PQYD2mCCWBW|v*x*EIQbbfPEuJ^Yoq}bZEzRw_v(G#~^VThT>lVFw zaN^)w2j4z;7Beb3To@g{?wv}Uhi@-WZhCe-bXP*oU85!%#YSP9k6%NzdCiHq3HLxL z_vlBiIj8yTTCJ^0$`-tDA=X+3=Mq{DbN|}1*>oSPAFQNKYG_R}MW4ydD{D0q8I9Cq z7HZLxcs3hd=DlmnA2)7fQ58+-XOOR@NDHCRy!_AQCz~!Mk$LSDOAVIuC<$eohig?U zF{MTn*CU}i9qP66JoV1vHc^EudWpStueg^IdM-M5*DAFZwR`TG@T2$~oQRO0Z@h!| z8V7a3*CBfPnP8;1`&2?_WGKSFJ(R~|Oz zkKbF)JZC*%f)rX$H3UaJhSXT<*4Ey|X1aI2U1(?bexaAXp6SRKT1qtmnsuBdB#Fb9 z`Nn(8bDLP1oZ>BwYK&DvH0J91Jo!HQ1SV{G0OHI(ShVc8Mo#ne`zy9h@Tx9O8@ud- zRO=Q@=Kfj@!H1I2J&ro6m|+Tqwa&kD4NFXUbW%bRKj6`tqagHb&%8C<8#x7$b1#?iM& zl3}dbrw{@p98A>+c%8hlys&X!p1ZM5LODXp0CR8yl(FN(9W%ai z13ZR$Vv}A3uSz4NZ!^zDE85g#malZRTsYCft^?Yy(4f_G54q+~R0Lh{q6c-=n&LMiTnyZrp zH4k6m1FQ``%6XnUTzDa3-rLOpi}vmWz{J3tcv^gh5zcv)2hgF=M3Xg>Whs;T0DOC=d@ba|}PP#D$R z{TP(3l~wzQ9o!X=puw8)Yx8v+iwoSi z$28_;RDTYKNAkGZQ^dHcDttx}En8a`Fa75H7XEw%IYI${6Ly1QtE^*!I+FIIx~hw? zmJ|p^uh<`Q8`uJnr1t>2p*w5_1QEwpn=If}k zGO}@$2n&HOke97Sa+!{9hWOXs)R4`bsQJzeXvchbZ~5tVfKd;a3~VjRkOcH8BMo-{ zy*RjB916{V`BX-W7^qc_#}t-Y3I`4usR4_J5et_*boBX``^!^| zG&jt;lQknGPZCK8B|W;h6!0G=S~8CuNRgMUg~ELN6I_hof_ba~2-C?9eM1!1c|QLM zIJZV$7lVyDJQOC49SwG$=I__D5-<=g39*78N9<%W2^r3h>MMdhG9(8-g4!61q%=5R zI3CJy08vA;f(^A|@#=&I&7<#^&yRLV_oSWG3&#Lv1jO1b+yV<&)W9N8>ap?|fvyNe zBEVDhF+6cp%GKs?KZTpDdM*b2AXT&&0=864vt51n)8z*z;6E?{cnp9itdQCi`~x6i5(v`oj~S NFIS)V{QG}8^FLLso+JPO diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/navincidentd.cpython-312-aarch64-linux-gnu.so index d4cc3160254210ab9fd17a93013b69df45064819..4e5a89f47a9b616787a0c3d6a4742b54b89802a6 100755 GIT binary patch literal 135272 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 literal 135464 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

Ais8i`y+fa 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 delta 757 zcmX|5eAV)2Szv(RF(zkm4lc;6&p2S8Nq#i*8?g&@oi*4^{TQ`UhU ztmr+)oO?x!;O9^4?s$S$*jhxNx?zpAm}01v=ba6AFol9BRjhL=K4wfsk+`<`^MU}`5>zEj&*|@7fBAAah z2e~AuF_n;{P_hi*Yb&kF{C(3+Q!wmF4M|izKsQJde53h#(=GR!@0B@9_ST>`DWNf# zmm!OlP7aS=F8-cB@8+6tT9UQnqj`)a_18cj{%bm|D})mZq`eR zIDc5W`%g-V&6r6*Mv93w30rE5#W9_n>i(NEJvpY+)Bk<+9I}pH#@dXSX?zZ2uVlVi zy4^_zzExUhlqP!hW!p_FQ%0rA9W6v(DftY! e6Z(GjsjB;X1n9_ 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 diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/runtime_common.cpython-312-aarch64-linux-gnu.so index 15a0c3a12b888459cb644fa4ac5f72ba40a6a0d0..a80c21c0805db0a568c3ff7801d71a1858521f1f 100755 GIT binary patch delta 525 zcmXw#JBpP-5Jsm3VayFW5~IPeyZTXG*{r}&%`Ww75JWT?uX?%Y4$S@y%mNI=yM@6u z7#JB2MuuV=7@vBa@4LA^zqvmD@FhICidmU^&d3eOoyN>Ca&5f5yb703dowFot(S(9 z5RBEznDy*zw|oBj)ee*h*$ov379Bj>Nb31N_eosIGB;;!>LPP0_tV`s;a-S51WPK= z2N#oUMiZ(|+Aj9tGNz76md~1~BvpJ&_AX^R?!&W)m|YsSvi>KZ)lx>&3ES;H{D`$> zZwT6|RLE?QFn5u({d^l9MV@2^mb^(H(%Qt7sPuHYco#m0ICVvpG}(MQ8TNHSN*~+p z`w(LuBn<3Imb6k+bsI2fdvI8^*CN6+nTgh(vvXgC^zHFKTC6tU(^SnrHHhRCuW da{6-&-|pP63MJt@aqKwm_5_qb_Z7#EgoF?@%Ll%`;0AQLz#f1C@vpGr z3=~w9D=JDvXmDrG$etPBT%X@upMUrgo?LCnDIv#VIg7BQ@btyyBg@gHvxlW2l0PR$sSqyc`q`zG8A>ozeb z?xk_|+`NdFmeA+LK3s0xqZ{UeLOR4HEpAMs&Eq~i+Z+W!2G^t%Yc)q2W|rseKK$6C zmG0i12+fv!=H37p=g+s{(N<+-914xmU7dRE-dm;9#k=r1Y*DT9(i`2mt7xvNMM!Dh zz7N~xBMx6~jR3iW!f?*D<9u*fXkKHWbypC<(RKLhIL^oaP$`1iS0P)?Yt6E(mU$iz z;o+veP%M?!FFHVj%xWWYonH@2v}glrG+Z;FMjnOgBJk<=A^cidCaP!=T2(GRQ?(VS ewto6^4BzhD_Z)qtZJNrk0W=`e>HEj<;?rM@@0n!) diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic.cpython-312-aarch64-linux-gnu.so index 1995b9f60b778e12cf55531ca2b26374420e21c3..41cb9b8c241a4a3d9d0cb38fcd0bd12b439b4c1a 100755 GIT binary patch delta 200 zcmXYrD-yym6ad3aH5MdCXqx2Z#UeQXHuI9a%v8|fQ;)@6t=i?bTX0QerLz3V!Xv~%(3322Tw?0yn>O?II@9V?f8y#YBmZfnS16Wi{T#*!$ zZ|c^2@#oi*Bbyi%p>vu5lQuR(sfB20$E(|Qd@Pi!sC1z;s3yzV%J5z3x6jLLDJw+; TWlEY1l8Om2voYAeU+c{Wgq=OX delta 200 zcmXYpD{ccZ5I`MiacK&B1b?QUF%9eiLap(5EG_7&ZI*|I1myxbLX;)TH@Q-9TeXkA zr#GLw`P^NemOa~qHoPK4f&_)5197Tk%$M$T%)&$ME01b&?ms^=HZDNIOPi@x~1Nt}mzKa$Rc?O5g;Gav&zlhyi)p-VUqh WkjP8m5<_v~0|Gg$h%!Cyo40Q2bgD6$GW4!IgZvNu6- z0WLup!;{}jKJixT?bUkw<`{rK2ZuN7Alus5=a?dJ9E);jaa#l;5{GiAjJqa$aXE!s5q_f1@QHst< zwp=li-F)qvkFC~$>jlO&Gia_h`4B66*}NZ`r>$M}HU${lRHhg`xPZ7ho|*5TKW=hs A1^@s6 delta 384 zcmXw!p;8?|5Jh)T7+l24R{fWagxg^FE=L`S6R z{Yg}QfS;gP!@cr~bI;@R{^Rrh&%bUvjU^QoXtk+gF*eDy3Kp1uP3~f3pjLvU9Eq@Z zG*Syi+x$AYv#}RK%-j+y`WPV;4i+)aUk_dRfslkcRbMmIoFI!5L$+bK<*S=ZU4Os6 zztdsKdcFB}v(B-hFCkMRWS=Q_V$|C|ZRUfOI~l(^b diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic_writer.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/traffic_writer.cpython-312-aarch64-linux-gnu.so index b9c4bbe4c1a2deaecf7af3902a2300526be054bd..1a22978dd61e65a2ae7698a67d6ad90401d7af37 100755 GIT binary patch delta 466 zcmX|-v5r(R3`JiMLR(Q$Oa)U?I*y$<-F^lV#S$mB7zxm#U3wb6;dQhOtY$z0XL7v1%Pu_FOMb_iT z*{h=utJZ*WO+>LqP;FLE_dbOu;hZ=c7wk+rwc9`_F;A9dxw>vIFaOJxuGU9Xu7hV= zceBQxXnlV(0Y%ASP9|90Dr)~L(-NJ2+yn@l#>1l|!a9EdBXmQLs;7sCu)XuB7lB%0 wEl5%cD%Qv%G8uNScGuhW`yo6&z55)V-hDtFQ;Zo)8I}-F^lV#p1-V7zxm#U3wb6;dQhOtY$z0XJvGN{K4~kldrs@| z|!a;kqr1}6hQ-TM@tgmbXc$LND7o8>6Ac15gtS+1`2<>h}laVPHDN1Zi^ z7cH|7>V18GGXW)!1};9L`LtBP(n`$z^y4N#*f^2E7-SWENH#?fP{Y&1L)hMVRFWxk xmk2a0D!19ekZ8-Yd$qgXuHO&g@#)>?@bvD3kziD+)?#sUBuAjrudm^E`vd6GiK+kq diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/turn_desire.cpython-312-aarch64-linux-gnu.so index 11fccb337340e21e706aea2a9ea15c3b25b32c28..1b7ea1e4f4a30c7bf6e2f4f881f631c56ea96413 100755 GIT binary patch delta 239 zcmXAhF;0R(5Js1d3z*P)gMVgrcXm4}k6`RJJ3F%pF%ktdv9j<8UVsx25(;|{V@-)v z{(-N3?|sMZ^thew?@k|DtE$&X%!~*r1sKdcI=8a5ZJcwZEMA_A)YdYgZ^ousF=*q& zv0wOdu_t6s3y`#;kO$8)Hl|$$MoBxk9Aw zn7@8c4>PM0gerKaJWfi=o-#5V?*HbKnF?E9dmzdpqpeLFB&5&X`FnSs{M`Hl!L~{y diff --git a/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/valhalla_process.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_navd_private/python/iqpilot_private/navd/valhalla_process.cpython-312-aarch64-linux-gnu.so index 946608bb7792c6106e12e547405d92733081ea5d..f8feb8dfd89953497301969815c8910ce2ab5a66 100755 GIT binary patch delta 786 zcmYk4v2K+y425qa28N1}{v%It6+5<*K)W!Ni4`%lvg1T8Dpe8eFfbz4f9=HB2~ml+ zU}fS7cmpJY(3LtyR?e}%bFRPdUw_~K@Nw^JIG_X10$iF{Cs*g5GPdHpZYf+XLjb$v zJ}gQ~(Wn%PCCU1Y!lNY#j7Eskx#cl6x+{XG^*4pHg%~ zXm%S|SeQD*s^HewPdU6iXjF@PL+1qE`V=w%k@Zgw&z9CjssLz|sw~Y^YRTQ#lM

6B<428c&3=9<`eMhdKavVFhpOGfx_+VXU?Flxu2d^&&4!8@N|Ukvpm4lE%eD8~nW;63CQ=ijs?^XBFejc+|K@#C2}>(6k2a78!hiET6PooY#SuKGn~U?~o6X7D P>oaJG5QR6cQ^QXKTc$!Dd&c8w&^8DTfFin;$M%RV2p}P93a*fNcT?vEDCu$z zY7USaAmL`)k>k zJ3yuGbF=X{+{JSYB3eBVvd7|;Q^jaH{tfqHp^=d1qCM- z%x{g_inTa%oB{+ZYAHl$wXjbuY77xu9glmrS)@%bALbDDdXwr^1=*|6W5l*Tpfx>?lVOhZ*JWtSK`um?%tz7PswJw cf*em=Q`T4*8G4wlRqV+~2p;Zl-QOSo0e2#>;{X5v delta 613 zcmX|&M)1slNXf|mVliTdG=W~A*F6%wc1_mzOJvX+DYraHnwB^@Ao!NJVb^hSa32D+KK8DYOtnXhZ9E*@*(QZL zdwB#7T(DKiLFXf{R{hiV&FgoM{3KG$!2gRskQAIEIyuJq(Y;+PfiUuf?vY8FuM%iV zjoYJJFKnrpSSi+H&n-?;$;>z&j!u>;R=p%kU1wyorAd-PI$mA7jU=clGNVEA0COWk en)9JOa)FPTs5DWJb04C{TF^l6Zm-?%Z+`)J@3A)k diff --git a/conftest.py b/conftest.py index ba4b3fc4a..4652a1d90 100644 --- a/conftest.py +++ b/conftest.py @@ -1,6 +1,8 @@ import contextlib import gc import os +import shutil +import uuid import pytest from iqpilot.common.prefix import OpenpilotPrefix @@ -17,6 +19,25 @@ collect_ignore_glob = [ ] +def _isolate_session_prefix() -> OpenpilotPrefix | None: + if os.environ.get("OPENPILOT_PREFIX"): + return None + prefix = OpenpilotPrefix(prefix="pytest" + uuid.uuid4().hex[:12], clean_dirs_on_exit=False) + prefix.__enter__() + return prefix + + +# msgq only reclaims dead-reader slots on Linux (/proc check), so shared /tmp/msgq_* files on the macOS runner fill up and ENOBUFS every later subscriber. +SESSION_PREFIX = _isolate_session_prefix() + + +def pytest_sessionfinish(session, exitstatus): + if SESSION_PREFIX is None or os.environ.get("PYTEST_XDIST_WORKER"): + return + SESSION_PREFIX.clean_dirs() + shutil.rmtree(SESSION_PREFIX.msgq_path, ignore_errors=True) + + def pytest_sessionstart(session): # TODO: fix tests and enable test order randomization if session.config.pluginmanager.hasplugin('randomly'): diff --git a/iqpilot/common/params_keys.h b/iqpilot/common/params_keys.h index 44ec73f94..27fd3a3da 100644 --- a/iqpilot/common/params_keys.h +++ b/iqpilot/common/params_keys.h @@ -369,6 +369,11 @@ inline static std::unordered_map keys = { // never meant to survive a manager restart or reach a log. {"IQAndroidNavEmail", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}}, {"IQAndroidNavPassword", {CLEAR_ON_MANAGER_START | DONT_LOG, STRING}}, + // Report-request flags: the UI writes 1 to ask navassist to file that report in the nav + // app; navassist sets it back to 0 once the app confirms it was sent, so 0 == done. + {"IQNavReportPolice", {PERSISTENT, BOOL, "0"}}, + {"IQNavReportCrash", {PERSISTENT, BOOL, "0"}}, + {"IQNavReportHazard", {PERSISTENT, BOOL, "0"}}, {"IQLiveSteerDelay", {PERSISTENT, BOOL, "1"}}, {"IQLateralAccelSlew", {PERSISTENT, BOOL, "0"}}, {"IQLateralCurvatureLookahead", {PERSISTENT, BOOL, "0"}}, diff --git a/iqpilot/selfdrive/iqmodeld/daemon.py b/iqpilot/selfdrive/iqmodeld/daemon.py index 97327992f..8828032d3 100755 --- a/iqpilot/selfdrive/iqmodeld/daemon.py +++ b/iqpilot/selfdrive/iqmodeld/daemon.py @@ -513,6 +513,9 @@ class InferenceDaemon: self._lat_smooth_extra_sec = 0.0 def _load_car_params(self, demo: bool): + if not demo and self._params.get_bool("IQBenchIgnition") and self._params.get("CarParams") is None: + cloudlog.warning("iqmodeld: bench ignition with no CarParams; running with the demo car") + demo = True car_params = get_demo_car_params() if demo else messaging.log_from_bytes( self._params.get("CarParams", block=True), car.CarParams) cloudlog.info("iqmodeld got CarParams: %s", car_params.brand) diff --git a/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py b/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py index 07e4886eb..03fe6a88d 100644 --- a/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py +++ b/iqpilot/selfdrive/iqmodeld/tools/compile_warp.py @@ -87,8 +87,6 @@ def main() -> None: print(f"saved warp JIT to {out} ({os.path.getsize(out) / 1e6:.2f} MB)") -if __name__ == "__main__": - main() def selftest_inputs(cam_w: int, cam_h: int, nv12_size: int): @@ -117,3 +115,7 @@ def selftest_digest(compiled, cam_w: int, cam_h: int, nv12_size: int) -> str: frame=Tensor(frame, device=dev).realize(), big_frame=Tensor(big_frame, device=dev).realize()) return hashlib.sha256(out.numpy().astype(np.uint8).tobytes()).hexdigest() + + +if __name__ == "__main__": + main() diff --git a/iqpilot/selfdrive/ui/mici/layouts/settings/models.py b/iqpilot/selfdrive/ui/mici/layouts/settings/models.py index 5a3ba628a..f8c3623bd 100644 --- a/iqpilot/selfdrive/ui/mici/layouts/settings/models.py +++ b/iqpilot/selfdrive/ui/mici/layouts/settings/models.py @@ -552,7 +552,8 @@ class ModelsLayoutMici(NavScroller): def _update_steer_delay_subtext(self): if self._steer_delay._checked: try: - self._steer_delay.set_value(f"measured {ui_state.sm['lateralDelay'].lateralDelay:.3f} s") + measured = ui_state.measured_steer_delay() + self._steer_delay.set_value("calibrating" if measured is None else f"measured {measured:.3f} s") except Exception: self._steer_delay.set_value("") return diff --git a/iqpilot/selfdrive/ui/mici/onroad/augmented_road_view.py b/iqpilot/selfdrive/ui/mici/onroad/augmented_road_view.py index 73802dfd9..d445a7e8b 100644 --- a/iqpilot/selfdrive/ui/mici/onroad/augmented_road_view.py +++ b/iqpilot/selfdrive/ui/mici/onroad/augmented_road_view.py @@ -54,7 +54,9 @@ MICI_BORDER_THICKNESS = 50 MICI_BORDER_ROUNDNESS = 0.2 * 1.02 MICI_BORDER_BOTTOM_ONLY_HEIGHT = 95 MICI_EXPERIMENTAL_ICON_SIZE = 28 -MICI_EXPERIMENTAL_ICON_SPACING = 8 +MICI_EXPERIMENTAL_ICON_SLOT = 60 +MICI_EXPERIMENTAL_ICON_MARGIN_X = 16 +MICI_EXPERIMENTAL_ICON_MARGIN_Y = 10 class BookmarkIcon(Widget): @@ -274,7 +276,7 @@ class AugmentedRoadView(CameraView): # don't draw the experimental/IQ.Dynamic icon over alert text (it falls back to the # top-left alert anchor when the DMoji is hidden while disengaged) if alert_to_render is None: - self._draw_experimental_icon(should_draw_dmoji) + self._draw_experimental_icon() # End clipping region rl.end_scissor_mode() @@ -304,7 +306,7 @@ class AugmentedRoadView(CameraView): rl.draw_rectangle(int(self.rect.x), int(self.rect.y), int(self.rect.width), int(self.rect.height), rl.Color(0, 0, 0, 175)) self._offroad_label.render(self._content_rect) - def _draw_experimental_icon(self, draw_below_driver_state: bool) -> None: + def _draw_experimental_icon(self) -> None: if not ui_state.started: return @@ -316,13 +318,10 @@ class AugmentedRoadView(CameraView): else: icon = self._iqstandard_txt - if draw_below_driver_state: - pos_x = self._rect.x + 16 + (self._driver_state_renderer.rect.width - icon.width) / 2 - pos_y = self._rect.y + 10 + self._driver_state_renderer.rect.height + MICI_EXPERIMENTAL_ICON_SPACING - else: - pos_x = self._rect.x + 18 - pos_y = self._rect.y + 18 - + slot_x = self._content_rect.x + self._content_rect.width - MICI_EXPERIMENTAL_ICON_MARGIN_X - MICI_EXPERIMENTAL_ICON_SLOT + slot_y = self._content_rect.y + MICI_EXPERIMENTAL_ICON_MARGIN_Y + pos_x = slot_x + (MICI_EXPERIMENTAL_ICON_SLOT - icon.width) / 2 + pos_y = slot_y + (MICI_EXPERIMENTAL_ICON_SLOT - icon.height) / 2 rl.draw_texture(icon, int(pos_x), int(pos_y), rl.WHITE) def _draw_border(self): diff --git a/iqpilot/selfdrive/ui/mici/onroad/model_renderer.py b/iqpilot/selfdrive/ui/mici/onroad/model_renderer.py index b4169be20..a8ddd0ce9 100644 --- a/iqpilot/selfdrive/ui/mici/onroad/model_renderer.py +++ b/iqpilot/selfdrive/ui/mici/onroad/model_renderer.py @@ -14,6 +14,7 @@ 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 from iqpilot.system.ui.widgets import Widget +from iqpilot.ui.theme import NeonTheme CLIP_MARGIN = 500 MIN_DRAW_DISTANCE = 10.0 @@ -297,7 +298,10 @@ class ModelRenderer(Widget): def _get_ll_color(self, prob: float, adjacent: bool, left: bool): alpha = np.clip(prob, 0.0, 0.7) if adjacent: - _base_color = LANE_LINE_COLORS.get(ui_state.status, LANE_LINE_COLORS[UIStatus.DISENGAGED]) + if gui_app.iqpilot_ui() and ui_state.status == UIStatus.ENGAGED: + _base_color = NeonTheme.glow() + else: + _base_color = LANE_LINE_COLORS.get(ui_state.status, LANE_LINE_COLORS[UIStatus.DISENGAGED]) color = rl.Color(_base_color.r, _base_color.g, _base_color.b, int(alpha * 255)) # turn adjacent lls orange if torque is high diff --git a/iqpilot/selfdrive/ui/ui_state.py b/iqpilot/selfdrive/ui/ui_state.py index 07af7795b..7e19df516 100644 --- a/iqpilot/selfdrive/ui/ui_state.py +++ b/iqpilot/selfdrive/ui/ui_state.py @@ -424,6 +424,13 @@ class UIState(IQUIState): self._started_prev = self.started + def measured_steer_delay(self) -> float | None: + # estimatord is onroad-only, so offroad the lateralDelay socket reads back a default 0.0 + if self.sm.alive['lateralDelay']: + return float(self.sm['lateralDelay'].lateralDelay) + lag = log_param_from_bytes(self.params, "LiveDelay", log.Event) + return float(lag.lateralDelay.lateralDelay) if lag is not None else None + def update_params(self) -> None: CP = log_param_from_bytes(self.params, "CarParamsPersistent", car.CarParams) if CP is not None: diff --git a/iqpilot/system/android/androidd.py b/iqpilot/system/android/androidd.py deleted file mode 100644 index 404ced7c2..000000000 --- a/iqpilot/system/android/androidd.py +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright © IQ.Lvbs, apart of Project Teal Lvbs, All Rights Reserved, licensed under https://konn3kt.com/tos -from __future__ import annotations - -import json -import os -import socket -import subprocess -import time - -from iqpilot.cereal import messaging -from iqpilot.common.params import Params -from iqpilot.common.realtime import Ratekeeper -from iqpilot.common.swaglog import cloudlog - -ANDROID_ROOT = "/data/android" -HEADLESS = f"{ANDROID_ROOT}/waydroid_headless.sh" -TRIM = f"{ANDROID_ROOT}/android_trim.sh" -GUARD = f"{ANDROID_ROOT}/android_guard.sh" -LXC_ATTACH = f"{ANDROID_ROOT}/root/usr/bin/lxc-attach" -LD = f"{ANDROID_ROOT}/root/usr/lib/aarch64-linux-gnu" - -# Waze's launcher is FreeMapAppActivity; there is no com.waze.MainActivity, and asking for -# one fails with "Activity class does not exist" rather than anything that names the problem. -NAV_APPS = { - "waze": ("com.waze", "com.waze/.FreeMapAppActivity"), - "maps": ("com.google.android.apps.maps", "com.google.android.apps.maps/com.google.android.maps.MapsActivity"), -} -BRIDGE_HOST = "192.168.240.112" -BRIDGE_PORT = 8099 -GPS_SOURCES = ["iqLiveLocation", "liveLocationKalman", "gpsLocationExternal", "gpsLocation"] -PROVIDERS = ("gps", "fused", "network") -GPS_INTERVAL_S = 0.5 - - -def attach(*args: str, timeout: float = 10.0) -> subprocess.CompletedProcess: - cmd = ["sudo", "-n", "env", f"LD_LIBRARY_PATH={LD}", LXC_ATTACH, - "-P", "/var/lib/waydroid/lxc", "-n", "waydroid", "--", *args] - return subprocess.run(cmd, capture_output=True, text=True, timeout=timeout, check=False) - - -def container_booted() -> bool: - try: - return attach("/system/bin/getprop", "sys.boot_completed", timeout=8).stdout.strip() == "1" - except (subprocess.SubprocessError, OSError): - return False - - -def bring_up() -> None: - # AGNOS mounts / read-only, so no unit file can be installed; a transient unit is the only - # way the compositor and lxc-start survive this process exiting. - subprocess.run(["sudo", "-n", "systemd-run", "--unit=iq-android", "--service-type=oneshot", - "--remain-after-exit", HEADLESS, "up"], - capture_output=True, text=True, timeout=120, check=False) - - -def start_guard() -> None: - subprocess.run(["sudo", "-n", "systemd-run", "--unit=iq-android-guard", GUARD], - capture_output=True, text=True, timeout=30, check=False) - - -def trim(nav_app: str) -> None: - subprocess.run(["sudo", "-n", "env", f"ANDROID_NAV_APP={nav_app}", TRIM], - capture_output=True, timeout=240, check=False) - - -def enable_mock_location() -> None: - # Wiped by every container restart, and the package form does not cover uid 0: without the - # --uid form every injection fails with SecurityException and the apps just say "no GPS". - attach("/system/bin/cmd", "appops", "set", "--uid", "0", "android:mock_location", "allow") - for p in PROVIDERS: - attach("/system/bin/cmd", "location", "providers", "add-test-provider", p) - attach("/system/bin/cmd", "location", "providers", "set-test-provider-enabled", p, "true") - # The a11y tree is only updated while the display is awake; asleep it emits nothing at all. - attach("/system/bin/svc", "power", "stayon", "true") - - -def inject(lat: float, lon: float) -> None: - for p in PROVIDERS: - attach("/system/bin/cmd", "location", "providers", "set-test-provider-location", p, - "--location", f"{lat:.6f},{lon:.6f}", "--accuracy", "4", timeout=6) - - -def read_position(sm: messaging.SubMaster) -> tuple[float, float] | None: - for src in GPS_SOURCES: - if src not in sm.data or not sm.valid.get(src, False): - continue - msg = sm[src] - for lat_a, lon_a in (("latitude", "longitude"), ("lat", "lon")): - lat = getattr(msg, lat_a, None) - lon = getattr(msg, lon_a, None) - if lat is not None and lon is not None and (lat or lon): - return float(lat), float(lon) - return None - - -class AndroidNavDaemon: - def __init__(self) -> None: - self.params = Params() - self.sources = [s for s in GPS_SOURCES if s in messaging.SERVICE_LIST] - self.sm = messaging.SubMaster(self.sources) if self.sources else None - self.last_inject = 0.0 - self.up = False - - def status(self, text: str) -> None: - self.params.put("IQAndroidNavStatus", text) - - def sign_in(self) -> None: - email = self.params.get("IQAndroidNavEmail", encoding="utf8") - password = self.params.get("IQAndroidNavPassword", encoding="utf8") - if not email or not password: - return - try: - with socket.create_connection((BRIDGE_HOST, BRIDGE_PORT), timeout=10) as s: - s.sendall(json.dumps({"cmd": "signin", "email": email, "password": password}).encode() + b"\n") - self.status("sign-in requested") - except OSError: - cloudlog.exception("androidd: sign-in request failed") - self.status("sign-in failed") - finally: - # Never let the credential outlive the one use it was handed over for. - self.params.remove("IQAndroidNavEmail") - self.params.remove("IQAndroidNavPassword") - - def nav_app(self) -> str: - value = self.params.get("IQAndroidNavApp", encoding="utf8") or "waze" - return value if value in NAV_APPS else "waze" - - def enforce_single_app(self, nav_app: str) -> None: - for name, (pkg, _) in NAV_APPS.items(): - if name != nav_app: - attach("/system/bin/am", "force-stop", pkg) - - def ensure_app_running(self, nav_app: str) -> None: - pkg, component = NAV_APPS[nav_app] - if attach("/system/bin/pidof", pkg, timeout=8).stdout.strip(): - return - attach("/system/bin/am", "start", "-n", component, timeout=20) - - def ensure_up(self) -> None: - if container_booted(): - if not self.up: - nav_app = self.nav_app() - enable_mock_location() - trim(nav_app) - self.enforce_single_app(nav_app) - start_guard() - self.status(f"running:{nav_app}") - self.up = True - return - self.up = False - self.status("starting") - bring_up() - - def step(self) -> None: - if not self.params.get_bool("IQAndroidNav"): - if self.up: - subprocess.run(["sudo", "-n", "systemctl", "stop", "iq-android", "iq-android-guard"], - capture_output=True, timeout=60, check=False) - self.up = False - self.status("disabled") - return - - self.ensure_up() - if not self.up: - return - - self.sign_in() - self.ensure_app_running(self.nav_app()) - - if self.sm is None: - return - self.sm.update(0) - now = time.monotonic() - if now - self.last_inject < GPS_INTERVAL_S: - return - position = read_position(self.sm) - if position is not None: - self.last_inject = now - try: - inject(*position) - except subprocess.SubprocessError: - cloudlog.exception("androidd: location inject failed") - - -def main() -> None: - if not os.path.exists(HEADLESS): - cloudlog.warning("androidd: android stack not staged, exiting") - return - daemon = AndroidNavDaemon() - rk = Ratekeeper(2.0, print_delay_threshold=None) - while True: - try: - daemon.step() - except Exception: - cloudlog.exception("androidd: step failed") - rk.keep_time() - - -if __name__ == "__main__": - main() diff --git a/iqpilot/system/hardware/hardwared.py b/iqpilot/system/hardware/hardwared.py index 10fe93ed2..ad4a7ecbf 100755 --- a/iqpilot/system/hardware/hardwared.py +++ b/iqpilot/system/hardware/hardwared.py @@ -427,8 +427,6 @@ def hardware_thread(end_event, hw_queue) -> None: # Set ignition based on any panda connected onroad_conditions["ignition"] = any(ps.ignitionLine or ps.ignitionCan for ps in pandaStates if ps.pandaType != log.PandaState.PandaType.unknown) - if params.get_bool("IQBenchIgnition"): - onroad_conditions["ignition"] = True pandaState = pandaStates[0] @@ -439,6 +437,9 @@ def hardware_thread(end_event, hw_queue) -> None: onroad_conditions["ignition"] = False cloudlog.error("panda timed out onroad") + if params.get_bool("IQBenchIgnition"): + onroad_conditions["ignition"] = True + # Run at 2Hz, plus either edge of ignition ign_edge = (started_ts is not None) != all(onroad_conditions.values()) if (sm.frame % round(SERVICE_LIST['pandaStates'].frequency * DT_HW) != 0) and not ign_edge: @@ -470,7 +471,7 @@ def hardware_thread(end_event, hw_queue) -> None: online_cpu_usage = [int(round(n)) for n in psutil.cpu_percent(percpu=True)] offline_cpu_usage = [0., ] * (len(msg.deviceState.cpuTempC) - len(online_cpu_usage)) msg.deviceState.cpuUsagePercent = online_cpu_usage + offline_cpu_usage - if msg.deviceState.memoryUsagePercent > 85: + if msg.deviceState.memoryUsagePercent > 95: avg_cpu_usage = int(round(sum(online_cpu_usage) / max(1, len(online_cpu_usage)))) perf.emit( "hardware_low_memory", diff --git a/iqpilot/system/manager/process_config.py b/iqpilot/system/manager/process_config.py index 3f84ddf00..f37008826 100644 --- a/iqpilot/system/manager/process_config.py +++ b/iqpilot/system/manager/process_config.py @@ -67,7 +67,7 @@ def qcomgps(started: bool, params: Params, CP: car.CarParams) -> bool: def always_run(started: bool, params: Params, CP: car.CarParams) -> bool: return True -def android_nav(started: bool, params: Params, CP: car.CarParams) -> bool: +def nav_assist(started: bool, params: Params, CP: car.CarParams) -> bool: return params.get_bool("IQAndroidNav") def only_onroad(started: bool, params: Params, CP: car.CarParams) -> bool: @@ -179,7 +179,7 @@ procs = [ PythonProcess("journald", "iqpilot.system.journald", only_onroad, platform.system() != "Darwin"), PythonProcess("micd", "iqpilot.system.micd", or_(iscar, livestream)), PythonProcess("timed", "iqpilot.system.timed", always_run, enabled=not PC), - PythonProcess("androidd", "iqpilot.system.android.androidd", android_nav, enabled=TICI, restart_if_crash=True), + BundleProcess("navassistd", "iqpilot_navassist_private", "iqpilot_private.navassist.daemon", nav_assist, enabled=TICI, restart_if_crash=True), PythonProcess("dmonitoringmodeld", "iqpilot.selfdrive.dmonitoringmodeld.dmonitoringmodeld", driver_monitoring, enabled=not PC), diff --git a/iqpilot/ui/layouts/settings/iq_panels.py b/iqpilot/ui/layouts/settings/iq_panels.py index 859354dc2..e7bb65356 100644 --- a/iqpilot/ui/layouts/settings/iq_panels.py +++ b/iqpilot/ui/layouts/settings/iq_panels.py @@ -900,7 +900,11 @@ class SteeringLayout(Widget): delay_desc = tr("Let IQ.Pilot measure how long your steering takes to respond and keep that figure up to date. " "Switch it off to pin the timing yourself.") if live_delay: - delay_desc += f"
{tr('Measured:')} {ui_state.sm['lateralDelay'].lateralDelay:.3f} s" + measured = ui_state.measured_steer_delay() + if measured is None: + delay_desc += f"
{tr('Measured:')} {tr('not yet, drive to calibrate')}" + else: + delay_desc += f"
{tr('Measured:')} {measured:.3f} s" elif ui_state.CP: sw = float(ui_state.params.get("IQSoftwareSteerDelay", "0.2")) cp = ui_state.CP.steerActuatorDelay diff --git a/iqpilot/ui/mici/onroad/speed_limit_sign.py b/iqpilot/ui/mici/onroad/speed_limit_sign.py index 565f939b6..899d3c58d 100644 --- a/iqpilot/ui/mici/onroad/speed_limit_sign.py +++ b/iqpilot/ui/mici/onroad/speed_limit_sign.py @@ -9,10 +9,10 @@ from iqpilot.system.ui.iqwidgets.lib import canvas from iqpilot.system.ui.lib.application import gui_app from iqpilot.ui.onroad.hud_overlays import IQSpeedLimitOverlay, _SL_ASSIST, _SL_DARK, _dim -_SIGN_X = 16 -_SIGN_Y = 108 -_SIGN_W = 60 -_SIGN_H = 64 +_SIGN_X = 17 +_SIGN_Y = 86 +_SIGN_W = 58 +_SIGN_H = 74 _BADGE_SIDE = 24 @@ -47,8 +47,8 @@ class MiciSpeedLimitSign(IQSpeedLimitOverlay): (self._vienna if ui_state.is_metric else self._mutcd)(box, value, badge, tint, has_limit, alpha) def _vienna(self, rect, value, badge, tint, has_limit, alpha=1.0): - hub = canvas.Pt(rect.x + rect.width / 2, rect.y + rect.height / 2) radius = rect.width / 2 + hub = canvas.Pt(rect.x + radius, rect.y + rect.height / 2) canvas.disc_at(hub, radius, _dim(canvas.WHITE, alpha)) canvas.annulus(hub, radius * 0.78, radius, 0, 360, 36, _dim(canvas.RED, alpha)) canvas.glyphs_centered(self._bold, value, 22 if len(value) >= 3 else 28, hub, _dim(tint, alpha)) @@ -64,9 +64,9 @@ class MiciSpeedLimitSign(IQSpeedLimitOverlay): inner = canvas.Box(rect.x + 4, rect.y + 4, rect.width - 8, rect.height - 8) canvas.panel_outline(inner, 0.25, 8, 2, _dim(canvas.BLACK, alpha)) mid = rect.x + rect.width / 2 - canvas.glyphs_centered(self._demi, "SPEED", 12, canvas.Pt(mid, rect.y + 14), _dim(canvas.BLACK, alpha)) - canvas.glyphs_centered(self._demi, "LIMIT", 12, canvas.Pt(mid, rect.y + 25), _dim(canvas.BLACK, alpha)) - canvas.glyphs_centered(self._bold, value, 30 if len(value) <= 2 else 24, canvas.Pt(mid, rect.y + 45), _dim(tint, alpha)) + canvas.glyphs_centered(self._demi, "SPEED", 13, canvas.Pt(mid, rect.y + 16), _dim(canvas.BLACK, alpha)) + canvas.glyphs_centered(self._demi, "LIMIT", 13, canvas.Pt(mid, rect.y + 29), _dim(canvas.BLACK, alpha)) + canvas.glyphs_centered(self._bold, value, 34 if len(value) <= 2 else 27, canvas.Pt(mid, rect.y + 52), _dim(tint, alpha)) if badge: chip = canvas.Box(rect.x + rect.width - _BADGE_SIDE * 0.55, rect.y - _BADGE_SIDE * 0.55, _BADGE_SIDE, _BADGE_SIDE) canvas.panel(chip, 0.35, 8, _dim(canvas.BLACK, alpha))