E.118 specifies decimal digits, but many real SIMs carry hex characters
in EF_ICCID (e.g. China Mobile's 898600B5... range, some MVNO/IoT SIMs).
AT+QCCID returns them verbatim, and the strict isdigit() check blanked
the ICCID, leaving the modem daemon stuck in INITIALIZING forever and
cellular dead. ModemManager parses ICCID as hex for the same reason.
Verified on a comma four with a China Mobile SIM (EG916Q-GL): previously
stuck retrying 'identity read incomplete', now dials and passes traffic.
The destructor built its cleanup commands as "rm %s -rf", with the flags
after the operand. GNU rm permutes arguments so this works on device and
in CI, but BSD rm on macOS stops option parsing at the first operand and
treats "-rf" as a second filename:
$ mkdir -p /tmp/rmtest/sub && rm /tmp/rmtest -rf
rm: /tmp/rmtest: is a directory
rm: -rf: No such file or directory
exit=1
So nothing is removed, and each of the four calls prints two errors plus
"system command failed (256)" from check_system. Every run of a tool that
owns an OpenpilotPrefix (replay, cabana) leaks its params dir, its
comma_home and its /tmp/msgq_ dir; 33 of each had accumulated on my
machine.
Pass the flags first.
* system: add chestnut offroad alerts
* system: refine chestnut offroad alerts
* system: refine chestnut power alerts
* system: confirm chestnut power recovery from PCIe
* system: detect missing chestnut power from INA voltage
* models: dual-slot backend (qcom/usbgpu) with ref-based downloads
* models: restore get_active_source and the usbgpu-to-qcom fallback
* models: fix per-slot validation and cap mismatched-source refetches
* ui/models: select models by ref and seed the usbgpu slot on migration
* models: drop defensive attribute guards on capnp bundles
* models: remove vestigial fetcher state and dead fallbacks
* models: resolve the active bundle from the active source slot only
* models: pass the usbgpu kwarg through the modeld test stubs
* models: resolve the displayed model from the active slot in ui_state
* models: correct the validation memo type hint
* models: drop docstrings that restate the function name
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* modeld_v2: Support eGpu
* bump tg
* egpu
* no pkls please
* god no onnx either
* fix test
* done in build model now
* lint
* rip
* egpu ready build all split
* manual seed , reuse memory buffers across runs
* dont download big when we dont have big lol
* whoops
* no i and x
* cd
* who put those there. ??
* reduce flakiness by using artifact-name from build-model to regex, speed up pub b y checking the name before trying to clone and publish again
* try hf as a trusted publisher :)
* mf its a dataaset. i knew that
* fucking validation wants raw to fetch and full to push. grr
* smh
* dude i am missing so much
* pkl name
* move build all to hf
* tests: migrate sunnypilot tests to unittest and remove pytest
* red diff mf
* im scared , this may be a bad idea lol
* fetch latest commit.
* transition to requests
* models: use requests instead of aiohttp
* tici
* fix
* gpu fixes from upstream
* lint
* bump
* needed to say
* old
* how??
* epgu flag reduce
* this made me cry
* support monolith still
* precache warp in legacy
* Move jsons to param for sunnylink
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* relc
* so picky
* clean up
* switch to distance based
* same calls
* all you brother i'm just here to red diff
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* init
* more init
* keep it alive
* fixes
* more fixes
* more fix
* new submodule for nn data
* bump submodule
* update path to submodule
* spacing???
* update submodule path
* update submodule path
* bump
* dump
* bump
* introduce params
* Add Neural Network Lateral Control toggle to developer panel
This introduces a new toggle for enabling Neural Network Lateral Control (NNLC), providing detailed descriptions of its functionality and compatibility. It includes UI integration, car compatibility checks, and feedback links for unsupported vehicles.
* decouple even more
* static
* codespell
* remove debug
* in structs
* fix import
* convert to capnp
* fixes
* debug
* only initialize if NNLC is enabled or allow to enable
* oops
* fix initialization
* only allow engage if nnlc is off
* fix toggle param
* fix tests
* lint
* fix more test
* capnp test
* try this out
* validate if it's not None
* make it 33 to match
* align
* share the same friction input calculation
* return stock values if not enabled
* unused
* split base and child
* space
* rename
* NeuralNetworkFeedForwardModel
* less
* just use file name
* try this
* more explicit
* rename
* move it
* child class for additional controllers
* rename
* time to split out custom lateral acceleration
* move around
* space
* fix
* TODO-SP
* TODO-SP
* update regardless, it's an extension now
* update name and expose toggle
* ui: sunnypilot Panel -> Steering Panel
* Update selfdrive/ui/sunnypilot/qt/offroad/settings/lateral_panel.h
* merge
* move to steering panel
* no need for this
* live params in a thread
* no live for now
* new structs
* more ui
* more flexible
* more ui
* no longer needed
* another ui
* cereal changes
* bump opendbc
* simplify checks
* all in one place
* just Enhanced Lat Accel only
* no submodule for this
* Enhanced Lateral Acceleration: fix bugs, restore NNLC, add UI/schema
Fix 4 bugs in latcontrol_torque_lat_accel.py: missing CI param, wrong
method name (torque_from_lateral_accel → torque_from_lateral_accel_in_torque_space),
self.enabled collision with NNLC, missing output torque recomputation.
Restore NNLC + ExtOverride inheritance chain with Enhanced slotted between
ExtBase and NNLC. Add mutual exclusion constraints, Python UI toggle,
sunnylink schema entries, and controller init/update tests.
* fix lint: remove unused default params list, add ty ignore, fix test fixture
* use the og name
* rename
* need gates
* TODOs
* wrong
* gate them all on init
---------
Co-authored-by: DevTekVE <devtekve@gmail.com>
* Process eSIM notifications after profile operations
* Clarify sleep purpose after operation in execute_and_process_notifications
Added comment to clarify the purpose of the sleep.