* deprecated
* cruise main state
* v cruise non pcm state
* acc mads combo
* cancel cruise state
* sp common state
* sp event
* custom stock long
* started mads
* v cruise non pcm state old
* acc mads old
* started mads old
* Hyundai Longitudinal: Enable radar tracks based on availability
* don't loop
* just 2
* missed
* missed
* fix
* do this
* every time
* quicker
* less
* nope
* more
* cleanup
* Hyundai Longitudinal: Enable Cruise Main when started
* don't do this for the ancients (@devtekve 😉)
* okay, toggle per @devtekve xD
* update texts
* non pcm only
* translations
* Remove redundant git lfs pull command
The `git lfs pull` command in the GitHub workflow is redundant and has been removed. Additionally, the `sync-lfs.sh` script has been updated to push all LFS objects to the origin repository.
* using force push instead of trying to merge
* Bumping ssh agent to 0.9.0
* Syntax
---------
Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
* fixing build number + forcing run to test
* Cleaning up and changing the process for the auto builds
* updating the logic for the extra verson identifier
* Return to default master-dev-c3
* if this is MR on gitlab, we also publish prebuilt on private gitlab for internal testing
* Silly formatting issue
* MADS: HKG CAN-FD: Disallow cruise buttons to engage when pcmCruiseSpeed is off
* handle states properly
* this is better
* make sure main button is pressed
* oops flipped main
* same behavior
* handle cruise main button universally
* both
* not needed
* oops
* wtf how did i miss
* car: Check params before car state is updated
* read params in a thread instead
* initialize list
* Do this instead
* type hint
* ParamManager
* make them internal
* MADS: Map cruise main and lateral buttons to button events
* MADS: Map cruise main and lateral buttons to button events
* different style
* nah
(cherry picked from commit 4d7afe3a7b)
* reimplement
* all
* right sz
* what is this
* Revert "what is this"
This reverts commit 3ff771926f109452a055dfb61cee06b34e498164.
* ok
* big
* update intrs
* fl
* more specifuc
* fish
* revert
* revert
---------
Co-authored-by: Comma Device <device@comma.ai>
Enable Sunnylink by default
Sunnylink was previously conditionally enabled based on build metadata. This change ensures that Sunnylink is enabled by default, facilitating immediate access for all builds.
* use new opendbc api
* export pandad_python
* merge master
* merge master
* bump opendbc
* bump opendbc
* improve func
* keep interface unchanged
* fix test_car_interfaces
* bump opendbc
* bump opendbc
* fix test_models
* the interface now has to convert from can capnp to list, so we should include this time
* goes from ~210 to ~240 mean ms real time
* remoe busTime
* lowercase sendcan
* consistent msgtype
* bump
* bump
* not used in lat_mpc
* space
* bump to master
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
* Use livePose instead of llk
* Update process replay sockets
* Fix import
* Fix calib
* Fix field name
* Dont store device_from_calib
* Update ref commit
Remove redundant brightness calculation from DeviceSP by leveraging Device's implementation. Introduce a conditional return to handle Sunnypilot-specific logic cleanly.
Implemented an override for the updateBrightness function in DeviceSP. This ensures proper handling of UIState type by dynamically casting it to UIStateSP.
* use zstd in test_onroad
* debug
* now leans towards 0.4 instead of 0.5
* 5x runs
* better
* more
* Update selfdrive/test/test_onroad.py
* revert Jenkinsfile
* and this
* zstd uploader
* fix that
* fix name of function
* comment
* log failed
* fix comma_api_source for routes with both bz2 and zst rlogs
* TODO
* 10-14 achieves almost no benefit on qlogs in a few cases, but takes 2x the time
* these aren't written out
* regen: specify any list of sources
ooh this is pretty nice
* regen and process replay
* damn, actually we don't need all this (cool tho)
Revert "regen: specify any list of sources"
This reverts commit ceb0b4abed9ad463a9fe98d9b98a05875a52806f.
* just let it auto resolve
* fix athenad/uploader tests
* zst here too
* TODOs
* yes
* Revert "TODOs"
This reverts commit 8c7da1dbd0340c72290b5eb5563b642080ddc131.
* Revert "zst here too"
This reverts commit 23b0023ddfd22c8090be7a7caa09e7026a12aa5c.
* Revert "just let it auto resolve"
This reverts commit f296d62424227ad05facc62abc18a6f81b474e84.
* Revert "regen and process replay"
This reverts commit 0768330e96974a42616d229d159780619d049cd0.
* revert readme
* not in save_log either
* lfg
* Revert "lfg"
This reverts commit 3718559c6c4de7d1f0c80dc9f1a1d335fe679a89.
Refactor the way external scripts 'gitlab_runner.sh' and 'sunnylink_uploader.py' are included in the process list based on their existence. This improves code readability and ensures that the inclusion checks are performed at a single point.
Changed the build option flag from '--sunnypilot' to '--stock-ui' to improve clarity. Updated related conditions and defaults in 'selfdrive/ui/SConscript' and 'SConstruct' files for consistency. Removed unused internal developer check logic from 'SConstruct'.
Added a third chevron type to display Time-to-Collision (TTC) metrics for the lead car. Modified logic to handle the new metrics type, allowing for comprehensive data on distance, speed, and TTC. Adjusted text box dimensions as needed for the additional information.
This commit refactors the networking files and includes a SunnyPilot network UI. Changes in existing files result in the removal of some features not required for SunnyPilot while retaining others. For instance, the 'ToggleControl' functionality for Sunnypilot was removed as Sunnypilot does not require this feature. Other changes include adjustments to the network's user interface layout and the removal of unnecessary widgets.
This refactor was necessitated by the need to provide slightly different functionalities between Comma's default UI and the Sunnypilot UI while avoiding code duplication whenever possible.
The newly created files sp_priv_networking.{c,h} include the relevant elements of the network UI specifically modified for SunnyPilot. These modifications are expected to enhance the overall user experience and usability of the network interface in the SunnyPilot UI.
Please note that the 'ngrok' and 'hotspotOnBoot' functionalities have been excluded from Sunnypilot as they are not required in its use case.
The SConscript file has also been updated accordingly to include the required configurations for the new network UI files.
This update refactors the inclusion of map helper files in various source files for compatibility with SunnyPilot. This involves changes like replacing "#include selfdrive/ui/qt/maps/map_helpers.h" with "#include selfdrive/ui/sunnypilot/qt/maps/sp_priv_map_helpers.h". Added logging information in "sp_priv_onroad_home.cc" to debug the creation of map widgets. This refactoring is necessary to support map related functionalities in the SunnyPilot environment.
The code modifications refactor the onboarding window and terms page in Sunnypilot. It includes moving OnboardingWindow to the protective area, and changing OnboardingWindowSP into a subclass of OnboardingWindow, which enhances code encapsulation and reusability. The expressions for the terms agreement pages are also refined for better readability.
initial onboarding
The presented change refactors the HttpRequest class in the QT API for the OpenPilot project. Unused OpenSSL libraries were removed, and the HttpRequest class was modified to improve readability. The HttpRequest::sendRequest method was refactored, and the logic to prepare the network request was extracted to a new method called HttpRequest::prepareRequest. In addition, the user agent retrieval logic was encapsulated within the HttpRequest class.
The RequestRepeater class was similarly refactored. Timer connection and cache processing logic were moved into separate methods for better code organization.
Several other classes that depend on HttpRequest and RequestRepeater were modified to reflect these changes. Handled security-related changes for SunnyPilot. Added a new file `sp_priv_api.cc` for Sunnylink-specific API operations. Removed unnecessary includes and updated SConscript accordingly.
This commit updates various scripts involved in Sunnypilot's special utilities. Modifications primarily include simplification of several functions in 'util.cc', addition of required exports in 'SConscript', and restructuring `getUserAgent`, `getDongleId`, and `getCarNames` methods under `sp_priv_util.h` and `sp_priv_util.cc`. The changes help segregate Sunnypilot specific utility functions, resulting in cleaner and more maintainable code.
This commit introduces a conditional compilation for 'sunnypilot' within the SConscript file. It also adds a new 'sp_priv_text.cc' file for 'sunnypilot' and performs a significant cleanup on the existing 'text.cc' file, removing unneeded commands. This change helps to customize the build process based on the specific feature flags such as 'sunnypilot'.
* espActive: `IMMEDIATE_DISABLE` -> `SOFT_DISABLE`
* only stock long
* just soft disable for now
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
This update stops calling the parent mousePressEvent function in HomeWindowSP due to conflicts with sidebar code. Previous implementation led to undesired sidebar behaviour following a tap beyond the 300px of the left. Added debug logging to provide more context on the behavior of sidebar and screen wake timeout.
The commit introduces several definitions under the SUNNYPILOT flag in different files for compatibility. These changes are meant to make sure controls previously relying on other labels now properly use specifically defined SunnyPilot labels. The update reduces confusion and enhances code clarity.
Replaced several different ButtonControl, ToggleControl, and LabelControl instances with their corresponding SP versions across various sections of the UI. This improves the consistency of the user interface and lays the groundwork for further enhancements.
Modified the self-driving UI components to better accommodate SunnyPilot's custom behavior. Changes include the reduction of EXTRA_UI_STATES, addition of early returns in updates if in SunnyPilot mode, and revisions in UIStateSP update methods. The refactoring also includes rearrangement of car status updates and removal of duplicate parameters acquisition.
The code was tailored to work with SunnyPilot mode. It includes various changes, such as adding logic to the main window to include SunnyPilot's window when it's active and making changes to the MainWindow constructor for compatibility with SunnyPilot. Additional changes were made to various UI elements to ensure compatibility with the different mode. This update provides a more seamless user experience when switching between the two modes, SunnyPilot and standard.
The MainWindow constructor now accepts optional parameters to allow for more flexibility in window management. This enabled us to add support for a variant of the UI called SunnyPilot. Separate header and source files `sp_priv_window.h` and `sp_priv_window.cc` have been created for this variant, which has its own logic but inherits from the same MainWindow class.
Updated to use new UIStateSP class in Sunnypilot's map and onroad functionality. The previous UIState class has been replaced, to fall in line with other changes in the Sunnypilot system, adapting the function arguments and variable assignments accordingly.
Various improvements have been made to UI state and device classes in both base and sunny pilot. This includes better organization of code, addition of new functionalities and removal of unused code and libraries.
Each UI state update now also updates the sockets and the state itself. Conditions for brightness updates in deviceSP's methods are also simplified. This results in a more streamlined update process.
Changes have been made to update the device brightness according to the specified parameters. If the screen is expected to be off, the brightness is set to 0. Otherwise, the brightness is set to a level according to the onroadScreenOffBrightness parameter.
The rest of the changes involve cleaning up redundant code, updating includes, and removing unnecessary typecasts and conversions. The parameters updating are now handled more succinctly.
Overall, the updated code provides a cleaner, more efficient implementation of the UI and devices.
This commit updates the release_files.py script to include .git-crypt and .venv in the list of blacklisted files. This ensures that these directories are excluded from the release process, maintaining cleaner and more secure releases.
This update tries to unlock the repository with git-crypt at the start of the provision script. If the unlock is successful, it exits early, confirming access.
Check for /TICI file and install git-crypt if found
Previously, the script would exit if git-crypt was not found. Now, the script checks for the presence of the /TICI file and attempts to install git-crypt automatically if the file is detected. This change helps automate setup on systems where /TICI is present.
Remove GPG key file after import in CI script
Ensure GPG key files are removed after importing to improve security. This change mitigates the risk of accidental exposure of key files in subsequent steps.
Refactor key export path handling
Simplify and improve clarity in the key export process by defining a separate variable for the key installation path. This ensures consistency and reduces potential errors in directory management. Additionally, it automates committing and pushing the new public key to the repository.
Add provision script for git-crypt setup
This script checks for gpg and git-crypt installations and sets up a GPG key for git-crypt. It supports user input for name, email, and passphrase, with options for non-interactive execution and displays help information when requested.
Updated .gitlab-ci.yml to support automation of git-crypt provisioning and improved CI configuration.
This update adds a new stage to the pipeline for automatic provisioning of git-crypt when a change is detected in the git-crypt path. It introduces shared configurations to manage SSH key configurations, Git configurations, and git-crypt unlocking across multiple jobs. Unnecessary repetition of scripts has been minimized through reusability of these shared configurations. This ultimately enhances modularity and readability of the pipeline script.
Refactor class names by renaming AbstractControl to AbstractControlSP_TITLED and LayoutWidget to LayoutWidgetSP. Removed conditional compilation definitions for map support to streamline the code and avoid multiple definition errors.
* Reapply "selfdrive/car: ban imports from external modules" (#32993)
This reverts commit 35a4a773f1.
* controls will just use controls
* also these
* ignore
Updated references in the settings UI to replace 'openpilot' with 'sunnypilot' for consistency with branding. This includes various descriptions and warnings related to longitudinal control and driver monitoring.
The file structure of SidebarSP has been revamped. A separate SidebarSP class has been created instead of overriding pieces of Sidebar. The implementation of SidebarSP has been encapsulated in the new SidebarSP class files (sp_priv_sidebar.cc and sp_priv_sidebar.h). The code integrity of Sidebar and its usages in offroad_home.h and sp_priv_home.h have been maintained. This should increase the overall modularity of the code.
This commit introduces several layout and functionality changes in the settings. It extracts various functionalities into separate methods, including those related to on-road settings, and removes redundant panel definitions. The changes aim to make the settings more modular, manageable, and user-friendly. Furthermore, a new file for device panel settings is added to provide a more structured way of managing device-related settings. Please note that some functionalities, such as the fleet manager pin, file system watcher, and off-road button, have been moved and included in the device panel settings. These changes do not affect the functioning of the application but provide a more maintainable code structure.
Consolidate multiple macro-defined functions into inline methods within ListWidgetSP to improve readability and maintainability. This change ensures that the widget functionalities are more straightforward and easier to debug. Adjust related headers and implementation files accordingly.
Consolidate multiple macro-defined functions into inline methods within ListWidgetSP to improve readability and maintainability. This change ensures that the widget functionalities are more straightforward and easier to debug. Adjust related headers and implementation files accordingly.
Introduced the RETURN_IF_SUNNYPILOT macro to handle conditional returns in the settings code. This ensures that certain blocks of code are bypassed when SUNNYPILOT is defined, improving modularity and reducing preprocessor directives.
Eliminated the "Driving Model" label from SoftwarePanel and refactored item management to improve code clarity and functionality. Updated macro naming and added new list widget functions for better handling of UI elements.
Moved the replaceWidget function to sunnypilot_main.h to allow for better code organization and reusability. Commented out the previous static declaration in sp_priv_offroad_home.h and updated replaceWidget calls to ReplaceWidget in sp_priv_offroad_home.cc.
This commit simplifies the conditional preprocessor directives related to SunnyPilot in various parts of the UI code. The previous use of #ifdef SUNNYPILOT has been consolidated to make the code cleaner and easier to read. Also, some unused code blocks have been removed. This refactoring simplifies the management of different configuration setups.
* Increase traversal_limit_in_words to Fix Traversal Limit Errors
* just use log_from_bytes
* come on pycharm
* no free lunch
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
(cherry picked from commit 12d729a0a0)
Converted GPG key check logic into a more modular function `is_sunnypilot_developer` for better readability and maintainability. Updated `External Tools.xml` to include `--sunnypilot` flag in SCons build commands.
Add conditional definition for SUNNYPILOT in SConscript. This allows code to be compiled differently based on the presence of the SUNNYPILOT environment variable.
* improved PlotJuggler layout for lat accel controller
* help estimate steerActuatorDelay
* update Actuator Performance, add Vehicle Dynamics
* disable Y limits on actuator performance because sunny
* apply delay estimation feedback from harald
* gc extra custom series that PJ copied in
* label wordsmithing
* formatting
* function signatures didn't match
* function signatures didn't match
* filtered and raw mean something totally different when it comes to params
filtered and raw mean something totally different when it comes to params
* cmt
* probably better for organization
* add todo
* STASH
* revert some stuff
* clean up
* oof
* how about this
* here
* rename
* revert
* revert this too
* can do this
* ugh inside TorqueBuckets it implicitly limits steer torque to 50%!!!!!!!!
* fix
* move up
* bfg
* filter repo is the new shit
* down to 27M
* move big files to lfs; remove external and phonelibs
* wip - rebase devel; don't delete external and phonelibs anymore
* wip - rebase devel hacks
* wip - rebase devel updates
* wip - rebase updates; lfs updates
* cleaned unused scripts
* wip - lfs fixes
* bfg with rebase with correct dates
* bfg script with cherry-pick method
* latest git-filter-repo analysis
* latest git-filter-repo 'before' analysis
* new lfs import
* latest git-filter-repo analysis
* lfs update; renamed rebase repos
* renamed scripts
* different tmp folders for rewrite scripts; lfs update
* gitattributes after lfs import
* tag-commit-map file with old tags pointing to old commits
* new tags
* final touches
* squash setup commits; cherry-pick validation; reverted to commaai remote
* removed rebase version
* 0.9.7 tag in tag-commit-map
* removed unused openpilot-release-archive
* fixed archive of old history because of 2 GB limit
* archive of old history push master first
* fix tags being deleted
* cleaning and more logs
* rewrite other branches with master history
* Former-commit-id
* updates to previous commits
* cleanup
---------
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* update ci weekly report summary
* don't add skipped jobs to report
* uncomment job condition
* use jinja template
* add run number to failure links
* add run number to failure links
* Log for run #<num>
* use list
---------
Co-authored-by: Maxime Desroches <desroches.maxime@gmail.com>
* Chrysler Pacifica: combine 2017 and 2018 hybrids
torque params are not accurate for either (might be ~1.5 for both checking a few dongles)
* remove duplicate fingerprints
* combine docs lines
fix
* Increase traversal_limit_in_words to Fix Traversal Limit Errors
* just use log_from_bytes
* come on pycharm
* no free lunch
---------
Co-authored-by: Shane Smiskol <shane@smiskol.com>
The `kill_op` command to stop the `comma` service was removed as it is redundant. This change simplifies the `cmd` string construction and ensures the setup process starts with deleting `continue.sh` and restarting the `comma` service.
don't know what diff it makes MinimumExpanding vs Expanding so I am leaving it as I found it and some formatting on the code
Improved user interface of application
The user interface in selfdrive/ui/qt/text.cc was significantly enhanced. This was accomplished by streamlining the QVBoxLayout for displaying text and the QGridLayout for displaying buttons. The QPushButton were updated to handle actions for updating and reinstalling. Additional formatting was also added to improve the visibility of the buttons. Furthermore, unnecessary QWidget import was removed and replaced with QLabel. The QLabel was set to clear before setting newText, creating a smoother update of application status messages. Lastly, QApplication::exec() was used in place of a.exec() to cater for the button states on different platforms and handle the application's exit.
Removed the SunnylinkApi call from the registration process as it was no longer in use. Improved error logging by adding directory checks and more descriptive exception handling in the sunnylink API.
In the Sunnylink API, a line was added to reset the last ping time to zero whenever we are trying to register. The purpose of this change is to ensure that registration attempts start with a clean slate, potentially improving the reliability of the registration process.
This code update sets Sunnylink to be disabled in the event that the registration does not go through successfully. This is to ensure that resources aren't wasted trying to access unregistered Sunnylink hardware.
Updated the error logging in sunnylink.py to include the module name for clarity. In addition, adjusted the status display in sidebar.cc to shorten the "REGISTERING" status text for a cleaner user interface.
This change enhances the Sunnylink registration process by including better error checks and exception handling for cases when the public key is in use or known to be not unique. The commit also adjusts the setting of the ping time right after a successful registration. Additionally, cleanup occurred in the UI to streamline some code relating to the display of Sunnylink status. The handling of the last Sunnylink ping time has been removed from the system manager.
A new functionality has been added to the sunnylinkd script which allows for the toggling of log uploads. This includes the establishment of "DISALLOW_LOG_UPLOAD" as a threading event and a new method, "toggleLogUpload", that sets or clears this event based on whether uploads are enabled or not.
This update streamlines how the system checks the status of Sunnylink. New methods were added to `sunnylink.py` to encapsify status checking logic, such as whether the device is connected to a network, if Sunnylink is enabled, if the device is registered and if registration is needed. This resulted in simplified code in `sunnylinkd.py` and `process_config.py` as these status checks are now standardized. Furthermore, removed repetitive code in `sunnylinkd.py` by replacing it with these new methods and modified the while loop conditions according to the new status methods.
add back the dirinvg model even if dupped. it's not responisibility of this mr
Refactor Sunnylink's operation and default state handling
This update refines the operation and handling of the Sunnylink feature, focusing on its management within the launch script and the logic for its default state.
Starting with the default state, the 'SunnylinkEnabled' parameter is no longer hard-coded to 0. Instead, it now depends on the presence of a release_channel or release_sp_channel. Furthermore, Sunnylink is set to be active in all non-release builds by default.
Regarding the launch script, obsolete invocations of Sunnylink are avoided. This procedure actively checks for Sunnylink registration status before initiating the related processes, effectively conserving system resources. Also, this modifies the launching order of the mapd installer and manager.
As for the functionality of Sunnylink, crucial improvements are brought into effect:
- The status display post Sunnylink registration is made more accurate and informative, with the inclusion of a progress color.
- The handling of Sunnylink capability is overhauled, ensuring that if Sunnylink feature is disabled, a clear warning is logged and the daemon process shuts down correctly.
- System exit conditions now accommodate the Sunnylink registration status to ensure clean termination.
- The start of Sunnylink Uploader is now strictly dependent on the validation of Sunnylink registration.
- This optimization is also incorporated into the 'manage_athenad' method which now gracefully handles any potential null values for Sunnylink Dongle ID.
This comprehensive update aims to enhance the transparency, functionality, and efficient operation of the Sunnylink feature.
Removed spinner from sunnylink.py and stopped reboot prompt in sunnylink_settings.cc. The spinner was unnecessary and the reboot, instead of being prompted, will be handled differently. Additionally, timestamp of the last successful ping is now recorded upon registration in the Sunnylink service.
The sunnylink.py file was unnecessarily initiated in the launch_chffrplus.sh script. This initiation was removed to streamline the script and potentially increase overall runtime efficiency.
The commit introduces a new function, sunnylink_need_register, to check if the Sunnylink feature is registered. It also updates the process list to always include the manage_sunnylinkd process and introduces a new process for Sunnylink registration if it's enabled but not registered.
The condition for Sunnylink registration has been simplified and refactored within the main loop. Previously, the "is_registered" variable was being set outside the registration loop. Now, the checking process of the dongle ID in regard to the registration status is directly integrated into the while condition. This makes the code more concise and the process flow clearer.
The decoding method in the manage_athenad file has been refactored for parameter retrieval. Instead of decoding after receiving the parameter, decoding is now integrated in the parameter retrieval process. Also, the waiting time in the sunnylinkd.py has been reduced from 60 seconds to 10 to enhance performance and reduce lag.
Removed the static check for Sunnylink's enabled status, allowing the feature to be checked dynamically within while loops. This change ensures that if the Sunnylink feature status changes, it can immediately affect the decision-making within the process. This is particularly useful for smooth enabling or disabling of the Sunnylink feature.
The checks for the sunnylink_enabled flag have been restructured to eliminate unnecessary loop iterations. The check has been moved out of the loop to do the evaluation only once, when exiting the loop. This significantly increases the efficiency of the code.
The update introduces a 60-second delay before retrying the execution of sunnylinkd main when SunnylinkEnabled is false. This aims to prevent the immediate termination of the process when SunnylinkEnabled is turned off, allowing for a smoother transition.
The code has been adjusted to perform a check for Sunnylink registration in the main function of the sunnylinkd script. Previously, the script was checking for the SunnylinkEnabled state and if the dongle is registered at the beginning of the script. Now, these checks are executed within the main function, allowing the script to exit with a warning log if Sunnylink is not enabled.
The loop control in sunnylinkd.py was changed from 'continue' to 'break' when Sunnylink is disabled. This prevents unnecessary iterations and makes the code more efficient when the Sunnylink functionality is not in use.
The code has been updated to remove the conditional that sets exit_event in the sunnylinkd.py file. This change simplifies control flow by immediately returning to the top of the loop when Sunnylink is not enabled, instead of managing an additional event.
The code for managing sunnylink processes has been refactored and improved. A function, use_sunnylink, has been added to check if sunnylink is both enabled and registered appropriately. Additionally, the launching of process logic for 'sunnylink_uploader' and 'manage_sunnylinkd' has been adjusted to use this new function. The main function of 'sunnylinkd.py' now also checks if the sunnylink is enabled before running.
The format of the SunnylinkDongleId variable was incorrect in system manager code. It used a dictionary format instead of a tuple. This commit replaces it back with a tuple appropriately to avoid inconsistencies.
The Sunnylink dongle ID is now being formatted directly in the manager.py file, reducing redundancy. Also, the check for sunnylink_dongle_id in sunnylink.py was removed to simplify the SunnlinkEnabled conditional.
The Sunnylink integration has been refactored to improve handling of scenarios where Sunnylink is enabled but the dongle is not registered. Added checks for the registration status of the Sunnylink dongle and updated related defaults and UI indicators correspondingly. Additionally, moved the execution of the sunnylink.py script to the background during launch to prevent blocking other tasks.
The `updateButtonsLayout` function now takes a boolean argument `is_rhd` which adjusts the alignment of the on-screen buttons according to the handedness of the driving. This change was necessary to cater to right-hand drive regions, making the application more user-friendly and adaptable to global user base. No behavior change for left-hand drive.
This commit adds the custom cruise control logic in the GM interface and provides custom minimum cruise speed for GM. It also provides comprehensive updates in GM car controller to manage different scenarios in cruise control. Additionally, the update includes button control for cruise speed modification, maintaining a steady speed and considering curve speed hysteresis. Further, safety checks were implemented in the panda safety module for the GM to check cruise control actions.
Removed the condition check for sunnylink_dongle_id and instead, directly assigned a default value in case it doesn't exist. This simplifies the code by removing an unnecessary if statement.
Several changes have been made to improve the code structure of the athenad and sunnylinkd scripts. The while loop in athenad now uses end_event.wait(5) for cleaner execution control. In sunnylinkd.py, there have been additions to manage exceptions and refinements in the handling of network checks. The final major change is the inclusion of a new constant for sunnylink reconnection timeout that plays major role in various parts of the script.
This commit adds a new script, 'sync-lfs.sh'. This script assists by syncing the git large file storage (LFS) system. It backs up the current LFS configuration, uses the comma-separated configuration for operations like fetch and pull, and then restores the original configuration before pushing to the origin's main branch.
This commit adds a new script, 'sync-lfs.sh'. This script assists by syncing the git large file storage (LFS) system. It backs up the current LFS configuration, uses the comma-separated configuration for operations like fetch and pull, and then restores the original configuration before pushing to the origin's main branch.
The method to copy release files in the continuous integration pipeline has been changed. Instead of using a complex cp command, we are now simply using a Python script with rsync, which provides cleaner and more readable code. The old method is still present but commented out for history or possible future use.
The mapd_manager.py file has been relocated from the selfdrive directory to the system directory. This change in location reflects the file hierarchy restructuring and improves the organization of the codebase.
The `.gitlab-ci.yml` file has been updated to directly use copy command instead of the output from release_files.py script, which was previously used in the pipeline. This change is implemented for security reasons - to validate the output and prevent exposure of unnecessary files. Warning outputs are also efficiently managed now, with the use of grep command.
This change updates the rsync command in the GitLab CI configuration file (.gitlab-ci.yml) from '-av' to '-avm'. This introduces a more efficient synchronization by reducing the amount of file metadata transferred.
The scons command in the GitLab CI file now includes the --minimal flag to boost performance by reducing unnecessary operations. In the release_files script, a redundant exclusion pattern has been removed, simplifying file matching.
The file blacklists and whitelists in release_files.py have been thoroughly updated to reflect changes in project structure and requirements. This includes additions to the sunnypilot_blacklist, such as "system/manager/gitlab_runner.sh" and "README.md", among others. The sunnypilot_whitelist has also been
The mapd_manager.py file has been relocated from the selfdrive directory to the system directory. This change in location reflects the file hierarchy restructuring and improves the organization of the codebase.
The `.gitlab-ci.yml` file has been updated to directly use copy command instead of the output from release_files.py script, which was previously used in the pipeline. This change is implemented for security reasons - to validate the output and prevent exposure of unnecessary files. Warning outputs are also efficiently managed now, with the use of grep command.
This commit significantly updates the list of release files, adding several new ones and removing numerous others. In addition, a large number of test files deemed unnecessary have been removed. This is part of a broader effort to optimize the codebase and improve efficiency.
The Docker-related files, SECURITY.md, codecov.yml, conftest.py, poetry.lock and .clang-tidy were removed from the release_files.py. This cleanup was made to ensure the release contains only the necessary files, reducing potential clutter and confusion.
This commit majorly expands the list of files to be tracked in release_files.py. The additions range from Dockerfile configurations, README documents, test files, builder scripts and many more. This might enhance the overall tracking and versioning capability for a wider scope of files across the project.
The commit adds a list of files related to GitLab CI, Docker, code formatting, and security guidelines to the release_files.py. These additions will provide more control and configuration for the release process.
Two new entries have been added to the sunnypilot_blacklist array in the release_files.py script. This now includes ".run/" and "release/ci/scons_cache/".
The changes here correct a misalignment in the import paths in the sunnylinkd.py and manage_sunnylinkd.py files. These updates ensure that system.athena modules are accurately referenced, which is critical for the function of these scripts.
We are temporarily blacklisting 'sunnylink_uploader.py' by adding it under 'sunnypilot_blacklist' in 'release/release_files.py' until it's ready for widespread roll-out. Alongside, the existing path in 'system/manager/process_config.py' has been updated to reflect the correct location of 'sunnylink_uploader.py'. This will ensure the processes are correctly managed based on its existence.
This commit adds a new script, 'sync-lfs.sh'. This script assists by syncing the git large file storage (LFS) system. It backs up the current LFS configuration, uses the comma-separated configuration for operations like fetch and pull, and then restores the original configuration before pushing to the origin's main branch.
The logging level for 'pong' and 'ping' messages in sunnylinkd.py has been changed from 'info' to 'debug'. This adjustment will help reduce the level of verbosity in the logs and focus more on significant events.
The commit enhances the logging in the selfdrive/athena/sunnylinkd.py by adding an info statement when the handle_long_poll function starts. It also modifies the create_connection function call, removing the fixed 30 seconds timeout, providing more flexibility for connection time.
The logging for an invalid JSON RPC request in athenad.py has been changed from an error log to an event log. The event log still records the request as an error, improving clarity of error handling in the system.
A debug message has been added to the log_handler function in the athenad.py file. This message will get triggered when the function is being invoked on a non-supported PC, providing a clearer indication of potential errors due to platform incompatibility.
An error logging line was added in athenad.py to capture and log the details of any invalid requests received. This additional error handling measure will help to maintain the standards of incoming requests and provide clearer debugging information.
A new parameter "LastSunnylinkPingTime" has been introduced to the manager script, it will now be tracked and stored alongside other car status parameters. Additionally, unnecessary comments and includes have been removed in the sidebar script. The "sunnylinkStatus" calculation has also been updated to accommodate empty strings and prevent potential crashes.
The commit comments out a log statement that outputs an error message if Sunnylink is offline. This change is probably a temporary measure to avoid unnecessary log messages in the output, although it may affect troubleshooting of Sunnylink connection issues.
The sunnylink ping and log statements have been refactored for clarity and optimization. Log levels were changed from debug to info, resulting in more visibility for important processes in sunnylinkd.py. The timeout before re-pinging in ws_ping() was also updated from 80% to 70% to ensure more consistent connections.
The code updates include error logging for debugging when Sunnylink goes offline. Log includes information such as the last ping time and the current time to better understand the cause of possible issues. This logging will aid in resolving status discrepancies with the Sunnylink feature.
This commit abstracts the computation of minimal lateral speed into a function named 'get_min_lateral_speed'. It simplifies the calculation logic used for lane change speed minimum in 'selfdrive/car/interfaces.py'. The 'pause_lateral_speed' value has been changed from a string to an integer and directly used in the new function. This change improves code readability and modularity.
The upload attribute name has been changed from 'user.sunnydv.upload' to 'user.sunny.upload' to improve consistency in nomenclature. Furthermore, logic has been added to handle case when there is no network connection available; the process will now sleep and retry rather than crashing or hanging.
The sunnylink_uploader.py file was modified to include headers in the upload request. The headers are gathered from the 'headers' field in the URL response JSON and passed into the 'put' request method. The debug log message was also updated to display these headers along with the upload URL.
The commit introduces more detailed log events when an attempted upload fails for any reason. Now, when there is a non-null status code like 401 or 403, it will log more information, including the decoded content of the HTTP response. This aids in quickly identifying and resolving upload issues.
Updated the base URL for SUNNYLINK to point to a new staging test environment. Changed the UPLOAD_ATTR_NAME in the sunnylink uploader from 'user.sunny.upload' to 'user.sunnydv.upload'. This provides distinction and prevents potential conflicts.
Removed 401 and 403 status codes from the success conditions in the sunnylink_uploader.py script. The handling for these status codes has been moved to the else clause, as they were unexpectedly marked as successful previously.
The commit adds sunnylink_uploader to the process_config and implements an uploader in a new file, sunnylink_uploader.py. The uploader handles listing, prioritizing, and uploading files to Sunnylink. Modified process_config to conditionally include the uploader process based on SunnylinkEnabled param and file existence. New getxattr and setxattr functions are also used to keep track of the uploaded files.
The import of the 'os' module is eliminated to clean up the code, as it is no longer needed. Furthermore, the code for removing the extended attribute from all files in the current directory has been removed as well. This streamlines the setxattr function and focuses only on setting the attributes without additional file operations.
Adjusted the logging level for certain log entries from info to debug in athenad.py and sunnylinkd.py. This change improves control over the log verbosity allowing for cleaner log files, and to debug specific sections more effectively.
The code for calculating the size of the log file has been revised. Instead of using os.path.getsize, which simply captures the size of the file on disk, we're now calculating the size of the payload after it has been serialized and encoded, plus an overhead of 100 bytes. This change provides a more accurate measure of the data that will be sent.
The `add_log_to_queue` function has been updated to compress and base64 encode log files that exceed a certain size, specifically for the "sunnylink" scenario. This function also provides logging for various stages of the process, including initial file size, size post-compression/encoding, and whether the final payload is small enough to be sent in one request. The change will improve handle of larger log files and prevent payload size related issues.
This commit decreases the maximum chunk size from 32KB to 28KB in the add_log_to_queue function in athenad.py. This size reduction will affect how the log files are loaded and processed.
Updating the maximum chunk size constant in athenad.py to decrease its value from 128KB to 32KB. This change has been made to optimize the handling of log files and data transmission.
The changes refactor the log handling in athenad.py for more efficient processing. The log is now split into maximum chunk sizes of 128KB to prevent oversized requests. Additionally, an invalid request or response exception has been introduced for better error handling.
This commit introduces network metering and PrimeType checking in sunnylinkd. The implementation includes an additional threading event and a new log handler function, 'sunny_log_handler'. It defines PrimeType and metering conditions to set and clear the new threading event as part of the main processing loop in handle_long_poll function.
The unused import, LOG_ATTR_NAME, in the file selfdrive/athena/sunnylinkd.py has been removed to provide cleaner, simpler, and more readable code. This also helps follow good coding practices such as removing unnecessary or unused imports or resources.
This commit adapts the xattr handling in the loggerd module to individual platforms, specifically macOS and others. It imports specific xattr functions based on the running system, enhancing compatibility and reducing the risk of errors. In specific, 'ENOATTR' error is now also taken into account which is relevant in some non-Linux platforms.
The attribute name used for Sunnylink's log upload function was modified. The new attribute name "user.sunny.upload" replaces the previous "sunnylink.user.upload" to reflect recent changes in naming convention.
The commit introduces a custom attribute name for Sunnylink log entries. The custom attribute name 'sunnylink.user.upload' is used for all operations in the athenad.py and sunnylinkd.py files that previously referred to the default LOG_ATTR_NAME. This will allow more flexibility in handling logs specific to Sunnylink.
The 'log_handler' thread in sunnylinkd.py was previously commented out and has now been enabled for execution. This update will allow the 'log_handler' to perform its task in the thread execution sequence.
In model_capabilities.py, the base class of ModelCapabilities has been changed from IntEnum to IntFlag to better suit requirements. This changes how the enumeration values behave and interact.
Expanded the ModelCapabilities class to better represent different model generations and their unique features. The alterations split the "DesiredCurvature" capability into two versions, "DesiredCurvatureV1" and "DesiredCurvatureV2", which have different input parameters. This change also involves updates in the "modeld.py" where conditions checking for "DesiredCurvature" are updated to check for the correct versions.
This commit updates the conditions for the model generation within the modeld.py and map.cc files. Previously, the code was specifically excluding model generation 4, but now it excludes model generations 0 and 4. This might affect features like navigation and model parameters processing.
The use of a custom model is now conditional to non-default model capabilities. This change ensures that a custom model will only be used if the model capabilities are different from the default. This prevents potential issues with using custom models that don't have any distinct capabilities or are not suitable for the current application.
This commit introduces a new class, ModelCapabilities, to manage model features. It changes initializations and conditional statements to use this new class, improving code readability and simplicity. The new class provides an easier and clearer way to check which features are enabled, reducing the complexity associated with generation-dependent feature handling.
The progress indication for downloading of driving, navigation, and metadata models has been improved. We now display "PENDING" if the progress is 0.01 or less instead of showing 0%. This change gives a more intuitive indication to the users during model downloads.
The latest change includes additional default settings for the "CustomDrivingModel" and "DrivingModelGeneration" parameters. These settings were added to the default_params list within the manager.py script to ensure correct functioning under default conditions.
Fixed the conditional statement checking the model generation and custom model status in modeld.py. Now, the navigation features and instructions are only updated if a custom model is being used and the model generation is not 4.
This commit removes the clause checking whether the user is a Sunnylink sponsor before proceeding with the restoration of sunnypilot settings. Now, all users, regardless of their sponsorship status, can restore their sunnypilot settings. The related prompts and UI elements have also been cleaned up accordingly.
In the update information for the changelog, a record of the new feature displaying the sunnylink connectivity status on the left sidebar has been added. This lets users and developers quickly see that this change has been implemented.
A new disabled color has been added to the sidebar items. This change primarily impacts the 'Sunnylink' status where a new state has been introduced. Now, when 'Sunnylink' is not enabled, it will show as 'DISABLED' in the disabled color.
Included a new 'ItemStatus' variable, 'sunnylinkStatus', to the Sidebar class and draw its metric in the UI. The status is determined by the value of 'LastSunnylinkPingTime', turning Sunnylink offline if it equals 0, online if the ping time is less than 80e9, and displaying an error otherwise.
Refactored the command used to extract the version information in the .gitlab-ci.yml file. The new command targets the `#define COMMA_VERSION` line, going through 'common/version.h' and printing the version without quotation marks. This change affects both the "staging-c3" and "release-c3" branches.
This commit introduces a retry parameter under the default settings in .gitlab-ci.yml to improve the robustness of CI/CD pipeline. Additionally, an unnecessary whitespace has been removed from the file to maintain neat and clean code.
This change introduces a connection to the "ExperimentalMode" toggle in the settings.cc file. Whenever the toggle state is flipped, the `updateToggles()` function will be called, maintaining the consistency of toggle update behavior across different settings.
Update dec_toggle enablement criteria
The changes in the code modified the condition for enabling the dec_toggle. Instead of relying on the status of custom_stock_long_planner, dec_toggle will now depend on the toggle status of experimental_mode_toggle. This will ensure the dec_toggle is only enabled when the experimental mode is active.
Enable dec_toggle based on custom_stock_long_planner status
The dec_toggle in the selfdrive user interface now mirrors the enabled status of the custom_stock_long_planner. Whenever the stock long planner toggle is switched, it will automatically enable or disable the dec_toggle.
update also experiemental to disable if no custom stock with planner speed
Update CustomStockLongPlanner settings interface
The interface for the CustomStockLongPlanner function has been updated to improve usability. A new connection to "toggleFlipped" signal was added, allowing real-time settings update. The planner is also now enabled when the long_personality_setting is toggled on. Additionally, the refresh function call for the planner has been added to ensure correct display of current settings. However, the removal of "ExperimentalMode" is now conditional, taking place only if the planner is not toggled on.
The commit introduces a new XML file, tools/External Tools.xml, laying out configurations for several external tool commands using Poetry and SCons. These tools include options for building in debug, clean, and release operations, enhancing the development process.
The build configurations for both Debug and Release modes have been updated to use the Poetry SCons tool. A new customTargets.xml file has been added to specify the build actions for Poetry SCons in Debug and Release targets.
Two new run configurations for Build Release and Build Debug have been added. These configurations include specific options, like location of working directory and external build option. Each configuration includes a unique name and target name.
The GitLab Runner installation and uninstallation scripts have been refined, including directory management improvements and user handling enhancements. The install script now exports the base directory for subprocess availability and validates script arguments presence. An uninstall script has been added for smoother user experience. Additionally, sudo permissions have been granted to the gitlab-runner user group in both scripts and the .gitlab-ci.yml file, enhancing workflow efficiency.
This update adds sudo permissions to the gitlab-runner user group. The .gitlab-ci.yml file has been altered to change user ownership of ${OUTPUT_DIR} in the after_script phase. In install_gitlab_runner.sh, we also add gitlab-runner to the sudo group and explicitly grant it NOPASSWD: ALL rights in the sudoers file.
A new function has been added to the gitlab_runner.sh script to check if a service is present on the system before trying to start or stop it. This will prevent potential errors caused by attempting to interact with nonexistent services.
The commit streamlines the 'rules' condition in our CI/CD pipeline configuration. It removes redundant and unnecessary conditions, leaving only the essential check for a new branch creation. This revision not only makes the code cleaner but also enhances our pipeline's clarity and readability.
* Dynamic End to End Longitudinal
* Revert "Dynamic End to End Longitudinal"
This reverts commit cec0fa8ad23b8473b27c58f6d20ba6d4d58e726e.
* Dynamic Longitudinal Controller
* Update CHANGELOGS.md
* add to builds
* Name change
* Toggle at wrong place :p
* oops take this out for now
* ZeroDivisionError
* add mpc mode to cereal
* add mpc mode to cereal
* Add UI button, replace MEMORY with DLC status in dev UI
* small change
* Higher stop counts
* add blinker logic
* initial set normally if DLC is on
* Update CHANGELOGS.md
* Fix
* fixes
* add dlc to Feature Status
* catch AttributeError
* fix
* add btn
* Dynamic Longitudinal Control (DLC) -> Dynamic Experimental Control (DEC)
* Capitalization on ACC and Blended
* add here
* sync
* sync
* Update CHANGELOGS.md
* cleanup
* more cleanup
* ui: Move toggle to the left of ParamControl
* blank icons
* tesla blue
* tesla blue
* Revert "ui: Move toggle to the left of ParamControl"
This reverts commit 3f6a3c831e5eebc740733ce625ef7dd11985c7e7.
* Revert "blank icons"
This reverts commit d778cf378b6374b89fa679b4f3358dbf48c89a06.
* Hyundai CAN Longitudinal: Parse lead info for camera-based SCC platforms
* typo
* another typo
* camera SCC has them flipped
* disable `radarUnavailble`
* Missing on these platforms
* parse lateral position of lead car from vision model output
* fix CP init
* Torque Lateral Control: Refactor settings
* don't need this
* only offroad allowed
* Don't need this
* allow when offroad
* gate them
* flipped
* handle them better
* cleaner
* remove duplicate
* toggle checks cleanup
* 2.5 second check
* trigger refresh when going offroad
* cleanup
* move toggle
* update title and description
* fix ampersand
* update live torque toggle
* live torqued every 2.5 second
* Subaru: Stop and Go autoresume
* Update CHANGELOGS.md
* Update CHANGELOGS.md
* do this
* sync with subaru-community
* sync for manual parking brake
* no slot machine pls
* fix this too
* flipped
* fix panda
* comments
* Update CHANGELOGS.md
* check every 2.5 second
* move them to a function
* more logical
* frame-based frequency sends
* type hinting
* should be tuple
* better grouping
* for docs regeneration
* same as upstream
* move it down
* cleanup
* use int flag and safety param, only block message when sng is allowed
* Do it here instead
* gate everything
* move comment
* block tx if sng is not allowed on certain platforms
* bump panda
* set core affinity and priority for gpxd and gpx_uploader
* use higher cores
* 4 is available offroad
* sync them all
* set for fleet manager
* only upload gpx while offroad
* ui: Singleton Feature Status text and color
* lower
* move color to eclipse to left of text
* move to right
* does not work
* cleanup
* more cleanup
* move a bit
* rename
* add commment
* ui: `SPOptionControl`
* This works
* only need to initialize
* Use QButtonGroup
* Add method to update specific labels
* Always init label with value
* add method to update external methods
* Update in another PR
* Unnecessary
* construct std map with defined range
* Test that it works
* In separate PR
* change var
* refreshLabels() instead
* Revert "refreshLabels() instead"
This reverts commit ceed9935cf48c7db974e45ab5ab496a7bc3f9f26.
* allow individual `refresh` classes
* now we can do it in another PR!
* General: OnroadScreenOff
* General: OnroadScreenOffBrightness
* General: BrightnessControl
* Controls: CameraOffset
* Controls: PathOffset
* Controls: AutoLaneChangeTimer
* Controls: GapAdjustCruiseMode
* Controls: TorqueFriction
* Controls: TorqueMaxLatAccel
* Controls: SpeedLimitOffsetType
* Controls: SpeedLimitValueOffset
* General: MaxTimeOffroad
* Visuals: DevUiInfo
* Visuals: ChevronInfo
* unused
* add comment
* ui: `SPOptionControl`
* This works
* only need to initialize
* Use QButtonGroup
* Add method to update specific labels
* Always init label with value
* add method to update external methods
* Update in another PR
* Unnecessary
* construct std map with defined range
* Test that it works
* In separate PR
* change var
* refreshLabels() instead
* Revert "refreshLabels() instead"
This reverts commit ceed9935cf48c7db974e45ab5ab496a7bc3f9f26.
* allow individual `refresh` classes
* now we can do it in another PR!
* ui: only allow single speed limit type to display
* Use unit conversion to set speed limit style if not nav
* Remove Speed Limit Style override options
* unused
* unused
* screenrecorder: small fixes
* remove QPushButton press, use mouse release instead
* Revert "remove QPushButton press, use mouse release instead"
This reverts commit 02821f63bf428332c41301a1aeb577b838ac6885.
* use horizonal layout to store buttons
* make button smaller and center text
* make it callable
* ui: disable longitudinal personality when GAC is enabled
* different profiles between stock and gac
* not this class
* update profiles in stock
* only checks once on init
* Match GAC names
* update description
* Add SP Jenkinsfile
* try this
* or this?
* New method
* good ol method
* how about this
* Revert "how about this"
This reverts commit a05741621f86ea65f727c1814c7fee0a819159ae.
* another new method
* try this
* Revert "try this"
This reverts commit a4456e4167bcb47b2ccd1c0c6b2544379563fcf9.
* Revert "another new method"
This reverts commit 7faea7661e5a660411a9bc68b48f119a1bfca1d2.
* skip for now
* do this
* set env
* this
* run in c3
* building now!
* No concurrent builds
* test no concurrent builds
* try discord notifier
* in description
* don't stop
* try this
* always send
* can we do this?
* in a script pls
* ready
* no need
* take a step back
* test
* misspell
* replace cred
* try this
* quote
* this should send it
* gave it wrong URL
* use explicit url for now
* Revert "use explicit url for now"
This reverts commit 932d0117d1e1720caf5d3f0c6af659457f438e7f.
* use explicit url for now
* try this
* working as-is!
* init
* looks good
* left done
* next to speedometer
* adjusted
* pass in x and y
* color & x
* spaced out properly next to speedometer!
* blindspots and pulsing rate
* fixes
* int instead
* Update CHANGELOGS.md
* add road edge block
* lower
* center a bit more
* that's it!
* only show green when hazard is on
* MADS: Cruise Main button engage with cruise state available
* simplify
* Revert "simplify"
This reverts commit 09276bc5d250d4357f593276686045e1359c0c37.
* Hyundai: Longitudinal support for CAN-based Camera SCC cars
* gate FCA12 send to CAMERA_SCC_CARS for now
* unused
* sync with upstream PR
* Update CHANGELOGS.md
* Update CHANGELOGS.md
* separate from upstream
* bump panda
* Auto Lane Change: Delay execution if lane change was blocked by BSM
* add toggle
* add changelogs
* flipped
* show/hide toggles with param updates
* fix docs
* 1 second instead
* Ram: always prioritize user button presses
* Custom Stock Long Control: manual presses need to reset timer
* separate logic for ram_cars
* handle FCA resume button differently
* Ram: CRUISE_BUTTONS rx/tx improvements
* unnecessary
* try forwarding everything
* only block tx for speed set/change buttons if cruise not engaged
* separate pacifica and ram
* flip around
* gotta send set buttons too
* rename
* don't check the buttons then
* bump panda
* cleanup
* General: use ListWidget
* Controls: use ListWidget
* Visuals: use ListWidget
* General: tuple list
* Controls: full refactor based on ListWidget change
* Controls: FINALLYYYYYYY
* Controls: move things around
* check actual toggle as well
* handle this
* Visuals: use ListWidget
* const for
* separate each panel into each file
* rename and move files
* Revert "rename and move files"
This reverts commit 5cfedabe2c6a2cb25355318107f119ade480baac.
* Revert "separate each panel into each file"
This reverts commit aa2c0e9162d5344a5cbbbfaf1ff2bd77d1e5a10b.
* take out toyota stock long for now
* remove scrollbar (use in other areas!)
* use ListWidget for toggles
* Revert "remove scrollbar (use in other areas!)"
This reverts commit 0b6bbc49e968598b204558060e04fb6f64ad1977.
* turn off scrollbar
* new fcr styling
* ui: display CPU temperature on sidebar
* ui: display CPU temperature on sidebar
* take it out for now
* Revert "take it out for now"
This reverts commit 3e7daa11f6a3e8ed6dec92df02bb4c390c99583c.
* small changes
* push this
* string
* flip???
* no setproperty
* check param every 1 second
* wrong param!
* do this
* flip them back
* don't need this
* Tmux error viewer: new file name convention and cleanup
* log in local_osm_install
* show on ui
* add this
* not needed
* just need these
* unused
* log custom_dep
* rename
* cleaner
* Custom Stock Longitudinal Control - base
* HKG
* simpler
* expose toggle
* allow events and engagements
* gate hysteresis for now
* screen tap SLC logic
* Honda
* update with submaster
* Revert "simpler"
This reverts commit 61b9a02faec721d4460c50c6e3f81b7d459d506b.
* send to cereal
* handle new pcm cruise engagement on HKG
* small cleanup
* define vehicle-specific lowest set speed
* not fitting
* new logic to help with weird rapid spam
* comment
* gaspressed don't override
* slow down button send when 2 values away
* less complex
* round them up
* Revert "less complex"
This reverts commit d850c404cccca5940f4e861c5df0317a38a4ab6b.
* gotta convert
* only slow down for slc and normal
* gaspress allow override
* no delay
* gate behind custom stock long
* add hysteresis to curve speed button sends
* remove limiting for Honda
* Revert "remove limiting for Honda"
This reverts commit b50f6199508e313fa1a30e1ab74970c507d89d78.
* 20/4 hz
* 25 times, just like old times
* god damn slow it down
* faster
* a tad bit faster
* slower at the end
* Volkswagen
* more checks
* log vw customs stock long
* change it up
* change it up for vw checks
* oops
* make sure it sends 10 times before changing to another button sets
* unnecessary
* use different count
* better logic
* bring back speed_diff
* vw: faster
* chrysler support
* mazda support
* fixup! chrysler support
* bump panda
* bump panda
* fix upstream merge
* Enable for Mazda
* initial and lowest set speed for all supported brands
* use buttonEvents from carstate for FCA and Mazda
* gate this behind non PCM only
* lower calls
* fix counter in button send
* log FCA and Mazda
* format
* just send one copy
* FCA: make SET+ set instead of resume
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* Revert "FCA: make SET+ set instead of resume"
This reverts commit 523a0537b728e8243e9cecb47169799d519aac3f.
* try this out
* try to match jvepilot's logic
* send with extra incrementing counts
* Revert "Revert "FCA: make SET+ set instead of resume""
This reverts commit f414a51e784b040d0f04881adcfc78d7faacda2a.
* have to block it
* lower send at 4 Hz
* can't be int
* 10 Hz max, 1 copy
* mazda send at 10 Hz
* chrysler at 10 hz
* send at 10 Hz
* remove this check for vw for now
* hkg can-fd go back to 4Hz, 1 copy
* hkg can-fd go back to 5Hz, 1 copy
* vw: different send freq logic
* Set cruise button every frame for FCA and HKG
* Set cruise button every frame for Mazda
* Revert "Set cruise button every frame for HKG"
* can't use brackets
* FCA: only send if counter has changed
* HKG CAN-FD: only send if counter has changed
* only up button frame if needed
* Revert "Set cruise button every frame for FCA"
* HKG CAN-FD: fix name
* FCA: handle resume button press engage cruisestate enabled
* FCA: separate RAM and non-RAM
* bump panda (test CAN Bus Disconnected bad commit)
* bump panda
* bump panda
* Revert "Nicki Minaj Model (#28218)"
This reverts commit 348f68b68c0bd2fcb6fdd6269e911d63ada968b4.
* gate behind customStockLong
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* GAC: Harald's method
* unused
* match harald's
* Revert "match harald's"
This reverts commit f2015eb2d8ffe80f8e02ffb92bd1d244dbfdb38c.
* try this
* Revert "try this"
This reverts commit 993adce26f594c5d2da1752657fe3af21c17cd27.
* do this instead
* fix
* cleanup
* align with harald's method
* fix init at 0
* use cereal
* unused
* maniac, aggro, stock
* unused
* fake lead when no lead
* print desired following distance from lead_0
* default at 3
* update carstate obj
* clip this
* use actual profiles
* cleanup
* scale maniac text smaller
* should be 1
* MADS: FCA Ram: add LKAS button
* FCA: add LKAS button and heartbit send
* bump panda
* non-Ram only
* non-Ram only too
* Revert "FCA: RAM HD - steer down to 0 (hardware modification required)"
* make sure cruise button is forwarded?!
* only check tx for CHRYSLER_PACIFICA, forward all cruise buttons for Ram
* add fw for not working ram 1500 and hd
* Revert "add fw for not working ram 1500 and hd"
This reverts commit 6f60b488ac1cebdbcafaa62ea4df097fd765b7d8.
* add fw for not working ram 1500 and hd
* use this logic
* fixup! use this logic
* does it help?
* Revert "does it help?"
This reverts commit 6cca9105459dd50d657ded94cba863baa0c6151d.
* Revert "fixup! use this logic"
This reverts commit 3a0d43ef76c762244e9edfab5497de9c55ccd468.
* Revert "use this logic"
This reverts commit 337eb1596f1a4e782d11fb15c0bdfe76763fd0d0.
* set event
* Revert "make sure cruise button is forwarded?!"
This reverts commit 1b51818c89fbf31315d1c992efb96298c7b63899.
* Revert "only check tx for CHRYSLER_PACIFICA, forward all cruise buttons for Ram"
This reverts commit c72ef05cf0f4450d21a2be7ddbc1c50273570cc4.
* Revert "Revert "FCA: RAM HD - steer down to 0 (hardware modification required)""
This reverts commit 0849fdc1f1557807af83d8c69fb7432743a95b2d.
* Can't use upstream to check EPS fw for minEnableSpeed
* reversed
* revert and wait for upstream
* bump panda
* Record from OnroadWindow
* not from here
* not needed
* make it whole
* Revert "make it whole"
This reverts commit 318c28c1ac921b52672fdd4665d903c2bdf5ef41.
* Revert "not needed"
This reverts commit 45d9707736b942b3a671bf853333a35741beb079.
* Revert "not from here"
This reverts commit 1bb002ff86630f3b1f6c6171606e4f7a8922253b.
* Revert "Record from OnroadWindow"
This reverts commit f4ceab4d9f4f1be992ba447c1474fdd47063c41b.
* cleaning
* cleaning
* 1 min per clip
* remove
* add back
* don't initialize lane change if road edge detected
* add event
* use frog's method
* sync name
* unused
* Only block during preLaneChange
* change it up
* UI: Display E2E Longitudinal status icon
* don't forget init
* take these out
* and this
* can't leave this
* spam the event
* publish here instead
* try this now
* expose the toggle
* Spam all the time!!!
* Spam all the time with this!
* see if this works
* new way to trigger
* fix
* another one
* more to it
* more of that
* move to car controls instead
* no longer needed
* 20 hz
* unnecessary
* send like this pls
* move to long planner
* let's see what it looks like first
* don't alert yet lol
* re-enable and try out prompt!
* move chime event to longitudinal_planner
* AlertStatus to userPrompt
* Add more reset conditions
* less conditions to test first
* louder sound
* permanent alert
* LOUDER SON!
* use stock prompt
* Revert "less conditions to test first"
This reverts commit b24a096e65e80f303f7d92072cdf273a30dd37e2.
* remove lead car take off alert (in separate PR)
* cleanup
* longer
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* use the event
* move logic to c++
* cleanup
* no prompt border
* use brake light from car state
* lead car take off event
* lead car take off event
* always reset last distance
* show border when prompted
* remove lead car take off alert (in separate PR)
* don't prompt when lead car detected
* Revert "Nicki Minaj Model (#28218)"
This reverts commit b25e96c9d8fe0ac3a93c97eec2e91064c12a5649.
* bad sounds
* simpler
* lead car takeoff prompt
* log to tmux
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* only print when stopping or starting
* remove debug msgs
* Revert "Nicki Minaj Model (#28218)"
This reverts commit 4fa06f12db858f65570bbf4bc2d9ee1709aead19.
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* UI: Display E2E Longitudinal status icon
* don't forget init
* take these out
* and this
* can't leave this
* spam the event
* publish here instead
* try this now
* expose the toggle
* Spam all the time!!!
* Spam all the time with this!
* see if this works
* new way to trigger
* fix
* another one
* more to it
* more of that
* move to car controls instead
* no longer needed
* 20 hz
* unnecessary
* send like this pls
* move to long planner
* let's see what it looks like first
* don't alert yet lol
* re-enable and try out prompt!
* move chime event to longitudinal_planner
* AlertStatus to userPrompt
* Add more reset conditions
* less conditions to test first
* louder sound
* permanent alert
* LOUDER SON!
* use stock prompt
* Revert "less conditions to test first"
This reverts commit b24a096e65e80f303f7d92072cdf273a30dd37e2.
* remove lead car take off alert (in separate PR)
* cleanup
* longer
* Nicki Minaj Model (#28218)
* New model: 2ff7490f-8a2f-4c0d-87a8-b0fa3a4a6a71
* Updated model_replay_ref_commit
(cherry picked from commit 328b5d9d47)
* use the event
* move logic to c++
* cleanup
* no prompt border
* use brake light from car state
* lead car take off event
* lead car take off event
* always reset last distance
* show border when prompted
* remove lead car take off alert (in separate PR)
* don't prompt when lead car detected
* Revert "Nicki Minaj Model (#28218)"
This reverts commit b25e96c9d8fe0ac3a93c97eec2e91064c12a5649.
* bad sounds
* simpler
---------
Co-authored-by: Mitchell Goff <mitchellgoffpc@gmail.com>
* draft
* only in dlp button for now
* update with uiState
* Revert "update with uiState"
This reverts commit cbc755f0601c2595f7357c61a486c570000ecb3c.
* independent variable
* it works!
* faster
* prep for other elements
* apply to brightness checks
* proper
* lasts 30 seconds for now
* init at -1
* fade in when first tapped
* fade in finish at 250ms
* fade in finish at 100ms
* gate behind a toggle now
* redisplay button if tapped before disappear
* apply on gac
* only allow press when at 100% opacity
* mapd: offline/local database
* link overpy before manager
* add path to deps
* down here
* this too
* don't force redownload/reinstall unless db not current
* make things neater in json
* small fix
* Revert "small fix"
This reverts commit dbc70ee6d40b51e4d7c4a4af4523d23737350905.
* Revert "make things neater in json"
This reverts commit 1b244c552c1bf877e8b6bf879ca73ebf72617025.
* neater attempt 2 (no reboot for now)
* neater attempt 2 (no reboot for now)
* "selected" not working
* make it stick
* already QString
* check when menu is up
* check when menu is up
* interactive buttons
* add label to inform users about car off
* update texts
* set all params properly
* clean up ui logic
* test
* revert
* ui logic again
* interactive button
* after confirmation updates
* only check when selected
* stop signs?
* bruh
* missed
* small cleanup
* query for real from local db
* Revert "query for real from local db"
This reverts commit d7eb664da2949b073c7d7eb00e0098aa01c83ad3.
* don't hold in same object
* remote server as fallback if local server fails
* use different waypoint
* use function
* declare missing vars
* skip SSL/TLS verification
* fallback to online query if local query fails
* don't prompt to reboot if none is selected
* update ui on press
* Revert "skip SSL/TLS verification"
This reverts commit 2eb5c0972a08227edbfc4f50c38d22d2ced62423.
* simplier
* handle ConnectionError
* point to sunnypilot-osm S3 bucket
* revert freq of road name
* small cleanup
* small cleanup
* revert
* cleanup
* TEMP: test online/offline switchover
* Revert "TEMP: test online/offline switchover"
This reverts commit 4641b8e6f26f4015559a9aff2271f1850708ab09.
* set user-agent
* more databases!
* new urls
* TEST: remove check here
* parse timestamp from file content instead of HEAD Last Modified
* not correct
* wrong var
* don't need this
* have list in cpp
* don't read from json
* provide expectation
* add var to gate feature speed limits
* remove unused
* Hide 2nd row dev UI when map is visible
* Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* fixup! Dev UI init
* Disable lateraState for now?
* Revert "Disable lateraState for now?"
This reverts commit ff669862e9ab7cfe421a0266dfc503b3b190143a.
* add cs.laterelState
* should be bool
* bruh
* change dm icon too
* Bruh should be y
* don't draw border
* bolded text
* bring back memory usage
* angleSteer status color
* move it higher
* higher
* lower
* closer together
* Move this button too
* fixup! Move this button too
* Move this text?
* to the left
* left and down
* missed an argument
* move them a bit
* readjust bottom row positioning
* test position
* revert to this
* wider!
* proper space reference
* unused
* other method
* fix
* shorter
* more spaces
* wider
* do it like this
* should be width
* add on top
* wider
* lineup right
* align this right
* different one
* try this
* fix
* align right!
* make unit strings standalone
* Try this out
* adjust
* align to unit strings
* adjust!
* adjust!
* Revert "adjust!"
This reverts commit 748b74c21a986b4ed62acdcceb83226ff523e5ce.
* Revert "adjust!"
This reverts commit 4f5373b0de503203098c5fd495e72227f4525be4.
* more adjust
* final adjust?
* final adjust?
* wider
* keep left
* Try this out
* more together
* hmm
* adjust
* align differently
* adjust final
* adjust more
* adjust more
* Try this out
* last
* Try this
* Try that
* wider
* only check when starting
* comment
* remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* fixup! remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* fixup! remove second column and second row; change settings to 5 or 10 metrics; implement in future PRs
* Gap Adjust Cruise (GAC): init
* cs: add longitudinal supported cars
* disable for Toyota for now
* send to car cluster
* more
* KrKeegan: More Aggresive Start from Standstill
* fix
* set prev button after
* init bool
* wrong var
* use common update param function
* bruh no wonder why
* lock to default distance when using exp mode
* make vw match other makes
* implement ui button
* gate ui button
* log desired_TF
* move button
* only show when cruise state available
* only allow press when cruise state available
* Revert "KrKeegan: More Aggresive Start from Standstill"
This reverts commit 20bdff34c83d5a0c248d6996155c995c8a99810f.
* unnecessary
* nothing else
* pass it through
* add toyota support
* fixup! add toyota support
* oops, necessary
* don't show ui button when using e2e long
* different signal to use
* Forgot to update
* Clean it up?
* this?
* ugh
* force int!!
* convert then round
* hide when in exp mode
* toyota: log button
* Revert "different signal to use"
This reverts commit edc64d31af527af842aabe2934e5720f73bf75cc.
* toyota flippy flippy
* wrong signal for vw
* oops
* UI: Debug: Tap on Ui to capture snapshot of debug data
* UI: Debug UI: Toggle to display debug UI elements & UI prerequisites
* UI: VisionTurnController Implementation
* UI: Debug UI: Toggle to display debug UI elements
* UI: LiveMapData: Implementation
* UI: SpeedLimitControl: Implementation
* UI: TurnSpeedController: Implementation
* fixup! UI: SpeedLimitControl: Implementation
* Add adjustable speed limit offset (in % or actual values)
* fix
* fix 2
* fix 3
* wrong value used
* don't need this
* needs this!
* and this?
* needs to be at the top
* has to be public
* take them off
* gotta have this
* wrong!
* update this every time
* try to update
* hmm maybe it was this
* missed this
* Revert "missed this"
This reverts commit 926b45410544e4f1bbc5174d0d7b03fafedf610f.
* Revert "hmm maybe it was this"
This reverts commit 7f75543db71d6f438f6473c66d4f94df317f16f2.
* refresh them
* update them in both places!
* make them public please
* don't forget this path
* try this refresh?
* Revert "make them public please"
This reverts commit 669a3ee1d5607c84109294db7a567ca86cb91b0f.
* revert these
* try using signals to update
* Revert "try using signals to update"
This reverts commit f3ad02bde71467aa7fc27c0b95d03748345193e6.
* update state after it's emitted
* make it public
* Revert "make it public"
This reverts commit ddf431d198133359b8bd656dde9061ec671f2312.
* Revert "update state after it's emitted"
This reverts commit aad2876166843b63d889e90830bf3d32edaa2857.
* try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* don't need this
* fixup! try this out
* fixup! try this out
* fixup! try this out
* fixup! try this out
* make sure we can see it
* make it float
* Try to update this way
* fixup! Try to update this way
* Revert "fixup! Try to update this way"
This reverts commit f4725bcb070cc8e8ebeb6e37afeb930694e96e22.
* Revert "Try to update this way"
This reverts commit af72af8a4a193b24e99931200fac18c6625a2431.
* new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* fixup! new method to hide/show
* omg it works?!
* run these at 2Hz pls
* UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* fixup! UI: use comma speed limit design instead of move-fast
* garbage collection
* redundant
* gc attempt?
* Revert "garbage collection"
This reverts commit 127fc8bd9d1eaea7725cf775dc7034ac6aaf09f4.
* garbage collection
* catch exceptions
* ignore mapd if crashed
* copy dependencies after first download
* changed dir
* oops
* proper termination before exiting
* same class
* Revert "same class"
This reverts commit dda695477371bf259b89aae726210dfe9d5f913e.
* Revert "proper termination before exiting"
This reverts commit 95c039dac86a389c0be043aadf2a3e8cbd4515c8.
* don't let accelerator press to re-engage SLC when NDOG is off
* can we free them up?
* Revert "can we free them up?"
This reverts commit d7736524645376ffb43acb77678086f6ae3c4e0b.
* fixup! don't let accelerator press to re-engage SLC when NDOG is off
* introduce navInstruction speed limits into SLC
* nuke UI for now - memory test
* do this instead
* Overpass: does not exist
* Revert "nuke UI for now - memory test"
This reverts commit fd81ffde0443917580ec4ad71095c178173883fe.
* meh
* Distance button on steering wheel to toggle experimental mode
* HKG and Honda
* Longitudinal: parse distance button from steering wheel
* missing gm signal
* GM, VW (MQB & PQ), Toyota
* try this logic out
* try this out
* he might have gotten it!
* Hmmmm
* white edges!
* wrong
* wider!
* Try to match stock opacity
* too bright
* fix
* dimmer
* Revert to upstream color schemes and show borders
* put them together
* sharper
* UI: screen recorder ;)
* oops
* try out new look
* dep
* Try this
* bruh
* Hmm
* and this
* or this?
* how's this?
* this is fine
* move it move it
* finalize
* small
* bigger
* smaller
* pinpoint this
* Missed this
* and this
* gone?
* press down state
* no sound for now
* Revert "Remove lane planning code (#25651)"
* DLP: preserves lanelines
* MADS: cruiseEngageBlocked event
* change path now!
* Revert "change path now!"
This reverts commit 7db2af33378aa02288b6222ed722d705ca6e92ec.
* Revert "Revert "change path now!""
This reverts commit 19f50a19e98721f7b8b9018b2e788629df45137f.
* c string
* atoi instead
* does this work?
* move it move it
* move there
* Try this one
* dotted line
* looks horrible
* how about this?
* Nah let's keep it simple
* track these with cereals
* send button!
* add more
* don't need this
* and this too
* make sure it shows first
* more
* to right for now
* stock size
* different color
* move some logic around
* don't miss
* don't miss this
* check somewhere else
* oops
* not liking it
* bring back current button
* don't need to be constant
* take it out for now
* wrap for translation
* sunnypilot: MADS - Base + HKG
* fix upstream conflicts
* Don't miss this
* Missed it
* Don't initiate lane change when braking
* HKG: better cluster state
* HKG: only blink when disengaging lateral
* HKG: Optima's icons
* HKG: update vars and blink for CAN-FD
* HKG: don't get stuck
* obsolete
* remove this for now
* border color should sync
* change border color
* simplify things
* HKG: update events
* Honda: MADS
* HKG: cleanup
* Toyota: MADS
* Revert "remove this for now"
This reverts commit 76ddd435084e051ced9a343372900ced96180989.
* Revert "HKG: cleanup"
This reverts commit e1ab96c6f7634508b5f3820868d22f4694361622.
* Toyota: use the working one
* same colors
* block resume press if no previous set speed
* HKG: handle events better
* Honda: handle events better
* Toyota: handle events better
* Volkswagen MQB & PQ: MADS
* Subaru: MADS
* FCA: MADS
* add another argument for per port specifics
* GM: MADS
* Toyota: missed this
* Mazda: MADS
* Nissan: MADS
* have to use this
* pass events to the next
* move it around
* move some stuff around
* cleanup
* simplify and check if cruise is initialized with non PCM
* don't think we need this anymore
* Volkswagen: These 2 buttons don't get used
* check resume available differently
* check better
* simplify
* Mazda: missed one update check
* HKG: Move carstate logic to interface
* check from ret instead
* cruise state enabled spam bug
* check pcm
* set it earlier
* own cruise initialize check
* fixup! own cruise initialize check
* more inclusive
* HKG: redundant
* Honda: Move carstate logic to interface
* only check cruise speed when not PCM
* Toyota: Move carstate logic to interface
* fixup! HKG: Move carstate logic to interface
* fixup! Honda: Move carstate logic to interface
* fixup! Honda: Move carstate logic to interface
* Volkswagen: Move carstate logic to interface
* check if cruise has ever been enabled in state machine
* already exists
* just one more
* do not allow steering in certain situations
* Subaru: Move carstate logic to interface
* FCA: Move carstate logic to interface
* GM: Move carstate logic to interface
* Mazda: Move carstate logic to interface
* Nissan: Move carstate logic to interface
* HKG: move init
* declare at once
* cleanup variables
* prevent stuck engaged
* initialize for all cars
* slimmer
* no entry for brake press engage
* Revert "no entry for brake press engage"
This reverts commit 9e6e1ca5000c213017091765a0e50d2d794cebe9.
* Toyota: Change the logic
* Nissan: Cleanup carstate
* HKG: only disengage when cruise intially not available
* Revert "HKG: only disengage when cruise intially not available"
This reverts commit 123cce1818ea7285cbd433524c4f0e80e7c99cb4.
* allow press anytime
* cancel cruise when control wants to cancel
* remove some stuff
* wrong one
* can't do that
* would this fix it?
<td>{% if jobs[key]["failures"]|length > 0 %}<details>{% for failure in jobs[key]["failures"] %}<a href="{{ failure['link'] }}">Log for run #{{ failure['run_number'] }}</a><br>{% endfor %}</details>{% else %}{% endif %}</td>
# required to fetch internal or private CodeQL packs
packages:read
# only required for workflows in private repositories
actions:read
contents:read
strategy:
fail-fast:false
matrix:
include:
- language:c-cpp
build-mode:autobuild
- language:javascript-typescript
build-mode:none
- language:python
build-mode:none
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
# Use `c-cpp` to analyze code written in C, C++ or both
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name:Checkout repository
uses:actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
build-mode:${{ matrix.build-mode }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
- if:matrix.build-mode == 'manual'
shell:bash
run:|
echo 'If you are using a "manual" build mode for one or more of the' \
'languages you are analyzing, replace this with the commands to build' \
# Note: If you have issues with "push rejected missing LFS" or something make sure you disabled LFS on the GITLAB repo if you intend to use a different LFS repo other than the target repo.
* Re-tuned and tested by the community (July 1, 2024)
* UPDATED: Driving Model Selector v5
* NEW❗: Driving Model additions
* Notre Dame (July 01, 2024) - NDv3
* UPDATED: Neural Network Lateral Control (NNLC)
* NEW❗: Remove Lateral Jerk Response (Alpha)
* FIXED: Hotfix for "lazy" steering performance in tighter curves thanks to twilsonco!
* UPDATED: Toyota: Continued support for Smart DSU (SDSU) and Radar CAN Filter
* In response to the official deprecation of support for Smart DSU (SDSU) and Radar CAN Filter in the upstream ([commaai/openpilot#32777](https://github.com/commaai/openpilot/pull/32777)), sunnypilot will continue maintaining software support for Smart DSU (SDSU) and Radar CAN Filter
* UPDATED: Continued support for Mapbox navigation
* In response to the official temporary deprecation of support for Mapbox navigation in the upstream ([commaai/openpilot#32773](https://github.com/commaai/openpilot/pull/32773)), sunnypilot will continue maintaining software support for Mapbox navigation
* NEW❗: Toyota - Automatic Brake Hold (AHB) thanks to AlexandreSato!
* When you stop the vehicle completely by depressing the brake pedal, sunnypilot will activate Auto Brake Hold
* NOTE: Only for Toyota/Lexus vehicles with TSS2/LSS2
* NEW❗: Toyota - Automatic Door Locking and Unlocking thanks to AlexandreSato, cydia2020, and dragonpilot-community!
* Auto Lock by Speed: All doors are automatically locked when vehicle speed is approximately 6 mph (10 km/h) or higher
* Auto Unlock by Shift to P: All doors are automatically unlocked when shifting the shift lever to P
* FIXED: Driving Personality:
* Maniac mode now correctly enforced when selected
* FIXED: Experimental Model Distance Button Hold
* Experimental Model toggle with distance button hold no longer changes Personality
* Personality setting remains consistent when switching between Chill and Experimental Mode
* UI Updates
* Display Metrics Below Chevron
* NEW❗: Time to Lead Car
* Displays the time to reach the position previously occupied by the lead car
* NEW❗: Display Distance, Speed, and Time to Lead Car simultaneously
* Ford F-150 2022-23 support
* Ford F-150 Lightning 2021-23 support
* Ford Mustang Mach-E 2021-23 support
* Hyundai Kona Electric Non-SCC 2019 support thanks to NikitaNekrasov!
* Kia Ceed Plug-in Hybrid Non-SCC 2022 support thanks to TerminatorNL!
Radar tracks can now be enabled manually on applicable cars through SSH thanks to [@greghogan](https://github.com/greghogan) and [@pd0wm](https://github.com/pd0wm).
Some Hyundai radars can be reconfigured to output (debug) radar points on bus 1.
Reconfiguration is done over UDS by reading/writing to 0x0142 using the Read/Write Data By Identifier
endpoints (0x22 & 0x2E). This script checks your radar firmware version against a list of known
firmware versions. If you want to try on a new radar, make sure to note the default config value
in case it is different from the other radars and you need to revert the changes.
After changing the config the car should not show any faults when openpilot is not running.
These config changes are persistent across car reboots. You need to run this script again
to go back to the default values.
**USE AT YOUR OWN RISK!** Stock system safety features, like AEB and FCW, might be affected by these changes.
**How radar points can be used along with vision:**
* Current OP long policy is identify with vision first, if vision sees a vehicle match it to a radar point. If vision sees nothing you get a false negative and no lead car detection. (Source: [Hubblesphere#7894 from comma.ai community Discord](https://discord.com/channels/469524606043160576/872899198738104330/872913890793635872))
### 🚨 Enable Radar Tracks
***(EXPERIMENTAL, as of January 1st, 2022)***
***(Only applicable to some Hyundai, Kia, and Genesis cars, as of January 1st, 2022)***
*(Base on version 0.8.12 [`devel`](https://github.com/commaai/openpilot/tree/devel))*
**USE AT YOUR OWN RISK!** Stock system safety features, like AEB and FCW, might be affected by these changes.
1. Ensure the car is at the `OFF` ignition position.
2. Connect your compatible comma device (EON, C2, C3) to the car. comma device power should be ON.
3. Use a laptop or applicable device to connect to your comma device via SSH. (Tips: Instructions to SSH in [HERE](https://github.com/commaai/openpilot/wiki/SSH))
4. In the SSH terminal after successfully connected to your comma device, execute the following commands:
*`Power on the vehicle keeping the engine off (press start button twice) then type OK to continue`.
* If successful, the following message should appear: `[DONE]. Restart your vehicle and ensure there are no faults`.
* If the script did not run successfully, reach out to the community in [Sunnyhaibin's Openpilot Discord Server](https://discord.gg/wRW3meAgtx) or `#hyundai-kia-genesis channel` on [commaai community Discord Server](https://discord.comma.ai) for assistance.
4. Reboot your comma device:
1. C3: `sudo reboot`
2. C2 or EON: `reboot`
5. Once your comma device is rebooted, start your car with engine on (with or without comma device connected). Ensure that there are no faults from the car. If there are faults, reach out to the community in [Sunnyhaibin's Openpilot Discord Server](https://discord.gg/wRW3meAgtx) or `#hyundai-kia-genesis channel` on [commaai community Discord Server](https://discord.comma.ai) for assistance.
6. Go for a quick drive and drive behind a lead car with varied follow distance. Then, come back and allow the drive to upload its `rlogs` in [comma Connect](https://connect.comma.ai).
7. With all `rlogs` uploaded, open the drive in Cabana from [comma Connect](https://connect.comma.ai). Load DBC -> `hyundai_kia_mando_front_radar.dbc`, then search `RADAR_TRACK_50x` (`x` could be anything), open any of them, and look at `LONG_DIST`.
8. If the radar tracks data is relevant with the lead car you drove behind, you are done! Your car now have radar tracks enabled.
1) Create a free mapbox account. Account will ask for a credit card for verification. You will not be charged for the free tier.
2) On the Dashboard, you will see a section called Access Tokens. Click `Create a Token`. Name it whatever you like. Set the scopes to allow everything for both Public and Secret. Copy both of these keys. **YOU WON'T BE ABLE TO ACCESS THE SECRET KEY AFTER THIS WINDOW.**
3) Once rebooted, connect your C3 to a network with internet access and find the C3’s IP address.
4) In a browser, navigate to that IP with **port 8082** (i.e 192.168.1.69:8082). You should be greeted with the Comma logo and a public key input field.
5) Paste your Public token (pk.xx), click enter, paste your Secret key (sk.xx), click enter. You can now search for places. This page will be available at your devices’s IP address/port 8082 to search for destinations.
6) To set Home and Work addresses, search for a place, select Home/Work from the dropdown and click Navigate. For non-Home/Work destinations, select Recent Places.<br>*At this time, it is not possible to search directly on the C3.*
**TIPS:**
- If your C3 is showing a black screen that says “Map Loading”, performing a reboot via the UI should fix it.
- If your phone can create a Hotspot, you are able to connect the C3 to your phone hotspot and use your phone browser to search for places.
- In the Navigation panel on the C3, you can select Home, Work, and from a list of Recent Places you have navigated to without needing a browser (assuming the C3 is connected to the internet.)
**IMPORTANT NOTE:** Your C3 will require an active internet connection to download map data, generate driving directions, and ETA. Once map data and directions are downloaded, it *is* possible to use it offline, however nothing will update (such as new driving direction after a missed turn, updated ETA, map data further into your drive etc.)
***NAVIGATION NOTE:** At this time, mapbox does not support alphanumeric addresses (i.e W123N1234 Main St). There is currently no known workaround for this.*
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to view and modify the Software, subject to the following conditions:
1.**Permission Required**: Permission Required for Commercial, For-Profit, or Closed Source Use: Use of the Software, in whole or in part, for any commercial purposes, for-profit projects, or in closed source projects requires explicit written permission from the original author(s).
2.**Redistribution**: Any redistribution of the Software, modified or unmodified, must retain this license notice and the following acknowledgment:
"This software is licensed under a custom license requiring permission for use."
3.**Visibility**: Any project that uses the Software must visibly mention the following acknowledgment:
"This project uses software from Haibin Wen and SUNNYPILOT LLC and is licensed under a custom license requiring permission for use."
4.**No Warranty**: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Contact sunnypilot Support <support@sunnypilot.ai> for permission requests.
@@ -170,16 +170,16 @@ After running the command to install the desired branch, your comma device shoul
* Speed Limit Control (SLC) - Set speed limit based on map data or car interface (if applicable)
* HKG only: Highway Driving Assist (HDA) status integration - Use cars native speed sign detection to set desired speed (on applicable HKG cars only)
- [**Gap Adjust Cruise (GAC)**](#gap-adjust-cruise) - Allow `GAP`/`INTERVAL`/`DISTANCE` button on the steering wheel or on-screen button to adjust the follow distance from the lead car. See table below for options
- [**Quiet Drive 🤫**](#-quiet-drive) - Toggle to mute all notification sounds (excluding driver safety warnings)
- [**Auto Lane Change Timer**](#Auto-Lane-Change-Timer) - Set a timer to delay the auto lane change operation when the blinker is used. No nudge on the steering wheel is required to auto lane change if a timer is set
- [**Force Car Recognition (FCR)**](#Force-Car-Recognition-) - Use a selector to force your car to be recognized by sunnypilot
- [**Fix sunnypilot No Offroad**](#Fix-sunnypilot-No-Offroad) - Enforce sunnypilot to go offroad and turns off after shutting down the car. This feature fixes non-official devices running sunnypilot without comma power
- [**Enable ACC+MADS with RES+/SET-**](#Enable-ACC+MADS-with-RES+/SET-) - Engage both ACC and MADS with a single press of RES+ or SET- button
- [**Offline OSM Maps**](#Offline-OSM-Maps) - OSM database can now be downloaded locally for offline use[^2]. This enables offline SLC, V-TSC and M-TSC. Currently available for US South, US West, US Northeast, Florida, Taiwan, South Africa and New Zealand
- [**Various Live Tuning**](#Various-Live-Tuning) - Ability to tailor your driving experience on the fly:
* Enforce Torque Lateral Control - Use the newest [torque controller](https://blog.comma.ai/0815release/#torque-controller) for all vehicles.
* Torque Lateral Control Live Tune - Ability to adjust the torque controller’s `FRICTION` and `LAT_ACCEL_FACTOR` values to suit your vehicle.
* Torque Lateral Controller Self-Tune - Enable automatic turning for the Torque controller.
- [**Quiet Drive 🤫**](#-quiet-drive) - Toggle to mute all notification sounds (excluding driver safety warnings)
- [**Auto Lane Change Timer**](#Auto-Lane-Change-Timer) - Set a timer to delay the auto lane change operation when the blinker is used. No nudge on the steering wheel is required to auto lane change if a timer is set
- [**Force Car Recognition (FCR)**](#Force-Car-Recognition-) - Use a selector to force your car to be recognized by sunnypilot
- [**Fix sunnypilot No Offroad**](#Fix-sunnypilot-No-Offroad) - Enforce sunnypilot to go offroad and turns off after shutting down the car. This feature fixes non-official devices running sunnypilot without comma power
- [**Enable ACC+MADS with RES+/SET-**](#Enable-ACC+MADS-with-RES+/SET-) - Engage both ACC and MADS with a single press of RES+ or SET- button
- [**Offline OSM Maps**](#Offline-OSM-Maps) - OSM database can now be downloaded locally for offline use[^2]. This enables offline SLC, V-TSC and M-TSC. Currently available for US South, US West, US Northeast, Florida, Taiwan, South Africa and New Zealand
- [**Various Live Tuning**](#Various-Live-Tuning) - Ability to tailor your driving experience on the fly:
* Enforce Torque Lateral Control - Use the newest [torque controller](https://blog.comma.ai/0815release/#torque-controller) for all vehicles.
* Torque Lateral Control Live Tune - Ability to adjust the torque controller’s `FRICTION` and `LAT_ACCEL_FACTOR` values to suit your vehicle.
* Torque Lateral Controller Self-Tune - Enable automatic turning for the Torque controller.
### Visual Enhancements
* **M.A.D.S Status Icon** - Dedicated icon to display M.A.D.S. engagement status
@@ -223,7 +223,7 @@ The goal of Modified Assistive Driving Safety (MADS) is to enhance the user driv
* `SET-` button enables ACC/SCC
* `CANCEL` button only disables ACC/SCC
* `CRUISE (MAIN)` must be `ON` to use ACC/SCC
* `CRUISE (MAIN)` button disables sunnypilot completely when `OFF` **(strictly enforced in panda safety code)**
* `CRUISE (MAIN)` button disables ACC/SCC completely when `OFF` **(strictly enforced in panda safety code)**
### Disengage Lateral ALC on Brake Press Mode toggle
Dedicated toggle to handle Lateral state on brake pedal press and release:
A supported vehicle is one that just works when you install a comma device. All supported cars provide a better experience than any stock system. Supported vehicles reference the US market unless otherwise specified.
A car port enables openpilot support on a particular car. Each car model openpilot supports needs to be individually ported. All car ports live in `openpilot/selfdrive/car/`.
The complexity of a car port varies depending on many factors including:
* existing openpilot support for similar cars
* architecture and APIs available in the car
# Structure of a car port
*`interface.py`: Interface for the car, defines the CarInterface class
*`carstate.py`: Reads CAN from car and builds openpilot CarState message
*`carcontroller.py`: Builds CAN messages to send to car
*`values.py`: Limits for actuation, general constants for cars, and supported car documentation
*`radar_interface.py`: Interface for parsing radar points from the car
# Overiew
[Jason Young](https://github.com/jyoung8607) gave a talk at COMMA_CON with an overview of the car porting process. The talk is available on YouTube:
openpilot records routes in one minute chunks called segments. A route starts on the rising edge of ignition and ends on the falling edge.
Check out our [python library](https://github.com/commaai/openpilot/blob/master/tools/lib/logreader.py) for reading openpilot logs. Also checkout our [tools](https://github.com/commaai/openpilot/tree/master/tools) to replay and view your data. These are the same tools we use to debug and develop openpilot.
## log types
Check out our [Python library](https://github.com/commaai/openpilot/blob/master/tools/lib/logreader.py) for reading openpilot logs. Also checkout our [tools](https://github.com/commaai/openpilot/tree/master/tools) to replay and view your data. These are the same tools we use to debug and develop openpilot.
For each segment, openpilot records the following log types:
@@ -15,9 +13,10 @@ rlogs contain all the messages passed amongst openpilot's processes. See [cereal
## {f,e,d}camera.hevc
Each camera stream is H.265 encoded and written to its respective file.
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](docs/INTEGRATION.md) and [limitations](docs/LIMITATIONS.md).
[openpilot](http://github.com/commaai/openpilot) is an open source driver assistance system. Currently, openpilot performs the functions of Adaptive Cruise Control (ACC), Automated Lane Centering (ALC), Forward Collision Warning (FCW), and Lane Departure Warning (LDW) for a growing variety of [supported car makes, models, and model years](https://github.com/commaai/openpilot/blob/master/docs/CARS.md). In addition, while openpilot is engaged, a camera-based Driver Monitoring (DM) feature alerts distracted and asleep drivers. See more about [the vehicle integration](https://github.com/commaai/openpilot/blob/master/docs/INTEGRATION.md) and [limitations](https://github.com/commaai/openpilot/blob/master/docs/LIMITATIONS.md).
A comma 3/3X is a normal [Linux](https://github.com/commaai/agnos-builder) computer that exposes [SSH](https://wiki.archlinux.org/title/Secure_Shell) and a [serial console](https://wiki.archlinux.org/title/Working_with_the_serial_console).
## Serial Console
On both the comma three and 3X, the serial console is accessible from the main OBD-C port.
Connect the comma 3/3X to your computer with a normal USB C cable, or use a [comma serial](https://comma.ai/shop/comma-serial) for steady 12V power.
On the comma three, the serial console is exposed through a UART-to-USB chip, and `tools/serial/connect.sh` can be used to connect.
On the comma 3X, the serial console is accessible through the [panda](https://github.com/commaai/panda) using the `panda/tests/som_debug.sh` script.
## SSH
In order to SSH into your device, you'll need a GitHub account with SSH keys. See this [GitHub article](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) for getting your account setup with SSH keys.
* Enable SSH in your device's settings
* Enter your GitHub username in the device's settings
* Connect to your device
* Username: `comma`
* Port: `22` or `8022`
* Username: `comma`
* Port: `22`
Here's an example command for connecting to your device using its tethered connection:<br />
`ssh comma@192.168.43.1`
For doing development work on device, it's recommended to use [SSH agent forwarding](https://docs.github.com/en/developers/overview/using-ssh-agent-forwarding).
## Notes
### Notes
The public keys are only fetched from your GitHub account once. In order to update your device's authorized keys, you'll need to re-enter your GitHub username.
The `id_rsa` key in this directory only works while your device is in the setup state with no software installed. After installation, that default key will be removed.
See the [community wiki](https://github.com/commaai/openpilot/wiki/SSH) for more detailed instructions and information.
#### ssh.comma.ai proxy
# Connecting to ssh.comma.ai
SSH into your comma device from anywhere with `ssh.comma.ai`. Requires a [comma prime subscription](https://comma.ai/connect).
With a [comma prime subscription](https://comma.ai/connect), you can SSH into your comma device from anywhere.
## Setup
With software version 0.6.1 or newer, enter your GitHub username on your device under Developer Settings. Your GitHub authorized public keys will become your authorized SSH keys for `ssh.comma.ai`. You can add any additional keys in `/system/comma/home/.ssh/authorized_keys.persist`.
## Recommended .ssh/config
With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.<br />
For example: `ssh comma-ffffffffffffffff`
With the below SSH configuration, you can type `ssh comma-{dongleid}` to connect to your device through `ssh.comma.ai`.
The line right above contains the actual speed. Unfortunately, COLOR_BLUE isn’t defined, but a git grep of COLOR_WHITE shows it’s nvgRGBA(255, 255, 255, 255). Personally, I like a lighter blue, so I went with #8080FF.
"numpy < 2.0.0",# control does not support numpy 2
"numpy",
# body / webrtcd
"aiohttp",
@@ -52,27 +52,30 @@ dependencies = [
"websocket_client",
# acados deps
"casadi",
"casadi @ https://github.com/commaai/casadi/releases/download/nightly-release-3.6.6/casadi-3.6.6-cp312-none-manylinux2014_aarch64.whl ; (python_version == '3.12' and platform_machine == 'aarch64')",# TODO: Go back to pypi casadi when they fix aarch64 for python312
"casadi; platform_machine != 'aarch64' or python_version != '3.12'",
"future-fstrings",
# these should be removed
"psutil",
"pycryptodome",# used in updated/casync, panda, body, and a test
"title":"❗️ Action Required for `${CI_COMMIT_REF_NAME}` ❗️",
"description":"[${CI_PROJECT_NAME}](${CI_PROJECT_URL}): Pipeline [#${CI_PIPELINE_ID}](${CI_PROJECT_URL}/-/pipelines/${CI_PIPELINE_ID}) of branch [${CI_COMMIT_REF_NAME}](${CI_PROJECT_URL}/-/commits/${CI_COMMIT_REF_NAME}) by ${GITLAB_USER_NAME} (${GITLAB_USER_LOGIN}) is ready to publish manually as [${NEW_BRANCH}](${PUBLIC_REPO_URL}/tree/${NEW_BRANCH})",
"title":"🎉 sunnypilot `${NEW_BRANCH}` New Update 🎉",
"description":"[sunnypilot](${PUBLIC_REPO_URL}): Build #${EXTRA_VERSION_IDENTIFIER} of branch [${NEW_BRANCH}](${PUBLIC_REPO_URL}/tree/${NEW_BRANCH}) has been published.\n\nDrive safe! 🚗💨",
# Please note that when the gitlab runner is started, linux implicitly executes "source /etc/profile" for every logged shell. This will make scons available
create_gitlab_runner_service(){
cat <<EOL | sudo tee /etc/systemd/system/${SERVICE_NAME}.service
# the git-filter-repo analysis is bliss - can be found in the repo root/filter-repo/analysis
echo"Analyzing with git-filter-repo..."
/tmp/git-filter-repo --force --analyze
echo"Pushing to openpilot-archive..."
# push to archive repo - in smaller parts because the 2 GB push limit - https://docs.github.com/en/get-started/using-git/troubleshooting-the-2-gb-push-limit
git push --prune $ARCHIVE_REPO +refs/heads/master:refs/heads/master # push master first so it's the default branch (when openpilot-archive is an empty repo)
# git push --mirror $ARCHIVE_REPO || true # fails to push refs/pull/* (deny updating a hidden ref) for pull requests
# we fail and continue - more reading: https://stackoverflow.com/a/34266401/639708 and https://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository/
fi
# REWRITE master and tags
if[ ! -d $SRC_CLONE];then
echo"Cloning $SRC..."
GIT_LFS_SKIP_SMUDGE=1 git clone $SRC$SRC_CLONE
cd$SRC_CLONE
echo"Checking out old history..."
git checkout tags/v0.7.1 > /dev/null 2>&1
# checkout as main, since we need master ref later
git checkout -b main
echo"Creating setup commits..."
# rm these so we don't get conflicts later
git rm -r cereal opendbc panda selfdrive/ui/ui > /dev/null
# echo -ne "[$CURRENT_COMMIT_NUMBER/$TOTAL_COMMITS] Comparing old commit $OLD_COMMIT_SHORT ($OLD_DATE) with new commit $NEW_COMMIT_SHORT ($NEW_DATE)"\\r
echo"[$CURRENT_COMMIT_NUMBER/$TOTAL_COMMITS] Comparing old commit $OLD_COMMIT_SHORT ($OLD_DATE) with new commit $NEW_COMMIT_SHORT ($NEW_DATE)"
# generate lists of files and their hashes for the old and new commits, excluding ignored files
if diff <(echo"$OLD_FILES") <(echo"$NEW_FILES") > /dev/null;then
# echo "Old commit $OLD_COMMIT_SHORT and new commit $NEW_COMMIT_SHORT are equivalent."
COUNT_SAME=$((COUNT_SAME +1))
else
echo"[$CURRENT_COMMIT_NUMBER/$TOTAL_COMMITS] Difference found between old commit $OLD_COMMIT_SHORT and new commit $NEW_COMMIT_SHORT" >> $COMMIT_DIFF_LOG
# delete pull request refs since we can't alter them anyway (https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally#error-failed-to-push-some-refs)
# using this instead to ignore refs/pull/* - since this is also what --mirror does - https://blog.plataformatec.com.br/2013/05/how-to-properly-mirror-a-git-repository/
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.