Commit Graph

48 Commits

Author SHA1 Message Date
DevTekVE cac8527115 sunnylink: pairing and sponsorship (#523)
* Refactor sunnylink panel code for clarity and initialization fixes.

Replaced explicit pointer types with `auto` for cleaner code and added proper initialization for the `offroad` boolean member. Simplified toggle logic by consolidating description updates for enabling/disabling sunnylink. These changes improve code readability and maintainability.

* Add Sunnylink sponsor and GitHub pairing functionality

This update introduces a feature to manage sponsorship-based roles and GitHub account pairing for Sunnylink. It includes new sponsor popups, sponsor-specific widgets, QR code logic, and backend API integrations. Additionally, new models and services support sponsor tier management and user-role synchronization.

* Translation files

* Param keys

* Add setup functions for SunnyLink sponsor and pair buttons

Introduce `setup_settings_sunnylink_sponsor_button` and `setup_settings_sunnylink_pair_button` to handle specific SunnyLink UI interactions. These functions streamline button clicks for sponsor and pairing actions within SunnyLink settings.

* Add new SunnyLink test cases for sponsor and pair buttons

Added `settings_sunnylink_sponsor_button` and `settings_sunnylink_pair_button` to the UI test case dictionary. This extends the SunnyLink test coverage to include sponsor and pairing functionalities.

* No need to import sunnylink from here, and it causes just circular dependency

* Enhance SunnylinkPanel functionality in off-road settings

This commit enhances the functionality of the SunnylinkPanel in the off-road settings of the SunnyPilot user interface. A paramWatcher is added to the SunnylinkPanel to observe "SunnylinkEnabled" parameter changes. Update functionalities are enhanced to handle showing and hiding of components based on various circumstances, such as whether the system is 'on-road' or 'off-road', and whether Sunnylink is enabled or not. The stopSunnylink and startSunnylink functions were also added to start or stop processes accordingly when Sunnylink is enabled or disabled. Additionally, the ui.h file is updated to efficiently handle Sunnylink roles and device users.

* Refactor SunnylinkPanel initialization and handling.

Reorganized SunnylinkPanel to improve structure and clarity by separating sunnylink client initialization and list widget setup. Enabled automatic sunnylink startup when the feature is enabled. Added minor formatting fixes for label display consistency.

* Add missing include for <optional> in ui.h

Including <optional> ensures compatibility with standard C++ features and prevents potential compilation errors. This addition aligns with best practices for maintaining robust and clean code.

* Updated setup_settings_sunnylink_sponsor_button and setup_settings_sunnylink_pair_button function signatures

Added an optional 'scroll' parameter to the setup_settings_sunnylink_sponsor_button and setup_settings_sunnylink_pair_button functions in the test_ui module. The modifications were made to allow for more flexible function usage by potentially enabling scroll operations during the execution of these UI setup steps.

* Enable Sunnylink initialization on panel show event

Begin Sunnylink connection automatically when the panel is displayed, ensuring the feature is active if enabled. Additionally, update the sponsor button text formatting for more concise styling.

* Translations

* Added checks for new UI files in PRs

The git workflow script `ui_preview.yaml` has been modified. The script now checks if the master branch contains a file corresponding to a UI file present in the PR. If a UI file in the PR does not have a match on the master branch, it is marked as new. These enhancements improve the comparison of UI changes between the master and PR branches, particularly with the identification of new UI files.

* cleanup

* duh

---------

Co-authored-by: Jason Wen <haibin.wen3@gmail.com>
2025-03-16 16:22:14 -04:00
Dean Lee c2b13f27b9 api: cache RSA private key (#32566)
old-commit-hash: 9908b729c8af1c608ddd9f2b3d0b1b50a58f39de
2024-05-31 21:40:53 -07:00
Dean Lee db211ce617 cpplint: add filter whitespace/parens (#29565)
old-commit-hash: 5480d32bb5d98d57100fd709b9ffe7bfcc6e020a
2023-08-23 14:25:05 -07:00
Dean Lee 97e9d55588 cpplint: build/include_what_you_use (#29556)
* include_what_you_use

* remove comments

* include <memory>

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 2d99521e7500902070d0aacce69528bcfd8b9964
2023-08-23 13:25:17 -07:00
Adeeb Shihadeh 9a45a3b99b Move selfdrive/hardware/ to system/ (#24725)
* move hardware to system/

* fix mypy
old-commit-hash: 1139fe507b01f34de9714c99228f411558b44231
2022-06-11 16:38:24 -07:00
Adeeb Shihadeh f4675fc260 Merge common/ and selfdrive/common (#24556)
* Merge common/ and selfdrive/common

* fix that

* fix version

* fix unit tests
old-commit-hash: cb8885cffb313bea258c012c3026461a22bf8135
2022-05-18 14:11:57 -07:00
Willem Melching 619b88c1f4 api.cc: expose error type in requestDone signal (#24064)
* put error in requestDone

* only check in tools
old-commit-hash: 34a8a5ea76d05432ee24f5d2a2307b74ad755971
2022-03-30 12:12:33 +02:00
Dean Lee db022f7816 ui: singleton networkAccessManager (#22994)
old-commit-hash: b2bcacf590f0206f7b608c4cc48afe61393dd007
2021-11-29 14:49:53 +01:00
Dean Lee 67c748d62a refactor httprequest: emit single signals (#23039)
* refactor httprequest

* Trigger Build
old-commit-hash: 3fd02649601856b2780168d36c49940ff49f4de2
2021-11-29 11:19:08 +01:00
Cameron Clough 8ad1abd8ba api: send User-Agent on network requests (#22965)
* api: set User-Agent on network requests

The format of the User-Agent header matches the format in `common/api/__init__.py`.

Closes #22954.

* Update selfdrive/ui/qt/util.cc

* fix parentheses

* refactor into function

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 140c7f430cf9372c3706db4af9f58654a3ee2d0f
2021-11-18 15:53:21 +01:00
Dean Lee fd2bc4ce18 Qt/CommaApi: cache private key (#22715)
* cache private key

* space

* no need to check mtime

* call_once

* simplify
old-commit-hash: 3f4cc9a246e2a244e219f9766cd0edec93a54e26
2021-10-27 21:12:00 -07:00
Willem Melching f4ac70557b tools: make auth optional for public routes (#22386)
* tools: make auth optional for public routes

* handle 403

* show warning from c++ replay
old-commit-hash: a31c6ce3f9c352dfe683cc7fa26e1cf630e105e1
2021-09-30 20:13:46 +02:00
Dean Lee 94d534afea hw.h: move Hardware-related paths to namespace Path (#21826)
* refactor getenv and path

* apply review
old-commit-hash: fefc70b4cab71a11b3c5ed1b8680606ee2013a48
2021-08-04 13:29:03 +02:00
Dean Lee c40edd4b56 qt/util: new function getDongleId (#21810)
* new function getDongleId

* return std::optional
old-commit-hash: 073b96e5d16c4780ed4adfb50b506fa1afd40d68
2021-08-02 11:21:51 +02:00
Willem Melching 380a3e1923 nav: Send DELETE to clear next destination on server (#21746)
old-commit-hash: 34bb5b935fd3c2bb481129cb4bc27ce646c24f12
2021-07-28 11:02:32 +02:00
Dean Lee 9d12eb4d3a HttpRequest: don't send request in ctor (#21665)
old-commit-hash: c24227c3abb9bfd371c89845c75b7104d0862fb2
2021-07-25 15:36:04 -07:00
Adeeb Shihadeh 75886ce093 setup qt resources (#21617)
* setup qt resources

* networking

* input

* fix that

* nicer scrolling

* big eye

* fix flashing

* why is it linking against map stuff

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 6039f1e7acb286e9b6705f96084ca90d733df34b
2021-07-15 21:30:23 -07:00
Adeeb Shihadeh 65002c7b53 setup improvements (#21505)
* getting started

* downloading

* some more

* nice checkmark

* nice triangle

* fixup style

* wait for internet

* more responsive

* waiting for internet
old-commit-hash: ddd1342fc548a7a6cc1bdc007eb9d91d9336deb0
2021-07-15 16:47:18 -07:00
Dean Lee 701ee27c91 HttpRequest: move http cache to RequestRepeater (#21228)
* move cache from HttpRequest to RequestRepeater

* apply review
old-commit-hash: 9ebfc2ba8df7dcde5c6ea6be3b61d8577d89d652
2021-06-18 23:47:23 -07:00
Dean Lee 775ed1428f CommaApi: class to namespace (#21329)
old-commit-hash: 85f134da6a1e96e1d4b2e70669cab120f000c2bd
2021-06-18 15:01:56 -07:00
Dean Lee 1256dbb6c3 qt/api.cc: refactor create_jwt (#21281)
* refactor

* cleanup includes
old-commit-hash: de56de78c81116c77b0a8ac3c85ed31f16e9aa6f
2021-06-15 22:35:23 -07:00
Dean Lee 147b355dde add space after function name and if statement (#21225)
old-commit-hash: e4e669bb0fc1a919dfb38800099f8e3ad52346f1
2021-06-11 10:17:52 +02:00
Dean Lee e333e4f189 Cleanup selfdrive/ includes (#20822)
* cleanup include path

* continue

* format includes

* fix testraw.cc

* remove include path from SConstruct

* regroup

* rebase master

* almost done

* apply review

* rename FileReader.xx to filereader.xx

* rename Unlogger.x->unlogger.x

* rename FrameReader.xx -> framereader.xx

* apply reviews

* ui.h

* continue

* fix framebuffer.cc build error:mv util.h up

* full path to msm_media_info

* fix qcom2 camerad

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 7222d0f20dc8edfe0d2f3417d1ce7c84fbd32805
2021-05-08 22:15:17 -07:00
Willem Melching 78bf4f5867 Replace ifdef with hw abstraction layer (#20843)
* Replace ifdefs with hardware abstraction layer (#20801)

* add type to class hadwareXXX

* replace ifdefs with hardware layer

* continue

* continue

* new function get_driver_view_transform

* full path to hw.h

* fix build error setup.cc

* apply review

* fix typo

* fix deprecated error:replace deprecated fromPath with new

* fix build error

* Fixes after ifdef clenaup (#20842)

* inheritance doesnt work with static

* fix debayer

* small cleanup

* Update selfdrive/camerad/cameras/camera_common.cc

* Update selfdrive/ui/qt/offroad/settings.cc

* Update selfdrive/common/modeldata.h

* flip conditions

* fix comment

Co-authored-by: Dean Lee <deanlee3@gmail.com>
old-commit-hash: ab319d4f54a53e1a0aa1c2c0d94d56a9acef8362
2021-05-06 14:39:05 +02:00
Willem Melching 39c18d4c5a Revert "Replace ifdefs with hardware abstraction layer (#20801)"
This reverts commit 9f2ad462f39f4c880f283b71bffbc9248a2b577d.

old-commit-hash: 3a95d3ccaae7168073410cd7d392a9564d9d45ba
2021-05-06 12:29:30 +02:00
Willem Melching f8608d2e7b Revert "Fixes after ifdef clenaup (#20842)"
This reverts commit 59c31bac9a340f120ff40ed541ee377c31e7e85e.

old-commit-hash: d34647bbf7f877f56bacaab04a2a0dc8a332fc6a
2021-05-06 12:29:19 +02:00
Willem Melching 3cc799ecd8 Fixes after ifdef clenaup (#20842)
old-commit-hash: fd7c2b4adf3844e8fc15b6b371cedf33438bbc22
2021-05-06 11:58:35 +02:00
Dean Lee e0282ced49 Replace ifdefs with hardware abstraction layer (#20801)
* add type to class hadwareXXX

* replace ifdefs with hardware layer

* continue

* continue

* new function get_driver_view_transform

* full path to hw.h

* fix build error setup.cc

* apply review

* fix typo

* fix deprecated error:replace deprecated fromPath with new

* fix build error
old-commit-hash: 757d2923d2bfcda620b252e21a348ac3f87f3a63
2021-05-06 11:41:46 +02:00
Dean Lee 9a827fea20 c++ cleanup: standardize file extensions to .cc and .h (#20800)
* c++ cleanup: standardize file extensions to .cc and .h

* cleanup files_common
old-commit-hash: 81491dc57f5080c602a0be58dd5f9feba2fa31b9
2021-05-03 11:53:11 +02:00
Comma Device eda1bcaef9 configure SSL globally on NEOS
old-commit-hash: 23faedd25eb6895c86bb890fdbf4f48889ecf4c3
2021-05-02 16:29:02 -07:00
Dean Lee 309a873e7d Qt: use new signal slot syntax (#20783)
* new signal slot syntax

continue

* continue
old-commit-hash: 4781598e1228b3f8707afa7237864f4cb4df9d71
2021-05-01 14:12:35 -07:00
Dean Lee f3cc81721f CommaApi: passing arguments by reference (#20786)
* passing arguments by reference

* remove unused networkAccessManager

* ref
old-commit-hash: f01c3c649b07b7aefe9917506d094cb44927d689
2021-05-01 14:11:35 -07:00
Dean Lee ee9280d9d3 HttpRequest: passing references in signals (#20782)
old-commit-hash: ad57cd37595919c84c7c8315222a1141d10993fa
2021-04-30 23:58:12 -07:00
iejMac d991de5d30 CommaApi: use auth.py for request authentication when on PC (#20755)
* CommaApi: use auth.py for request authentication when on PC

* whitespace

* only when replay

* nicer way to do this

* tabs

* use bool

* tabs

* tabs

* prefer this to just be state

* initialize with stdString

* tabs

* include order

* fix order + ifdef fix

* whitespace'
old-commit-hash: a337097b5ee515560e9f1a804b997753767d3c9a
2021-04-26 17:25:22 -07:00
iejMac 0b4949057c print error when HttpRequest fails
old-commit-hash: a8e231f8b1805f4b2f9b6692d9c3d0c2c6728087
2021-04-26 10:16:57 -07:00
iejMac ff2138d905 qt replay (#20602)
* initial commit, works

* remove nui

* working again

* visionipc

* cleanup

* cleanup

* moving VisionIpcServer to Unlogger class

* works

* tab cleanup

* headless mode

* headless mode works

* working headless mode

* gitignore update

* small unlogger refactor

* refactor param in UIState

* works, very slow, hacks

* cleanup

* works

* cleanup

* cleanup

* unused

* works for whole route

* nicer

* a little nicer

* different threshold

* maintains 1 segment window

* works with public api

* comments

* networkTimer works

* cleanup

* unified HttpRequest

* tabs

* tabs

* comments'

* gitignore

* gitignore

* only on PC

* same line else

* no changes in home.cc

* scons

* update scons

* works

* revert mainc.c

* revert home

* else

* just api + problem with api send

* works

* include cleanup

* general json fail

* whitespace

* remove active

* adding request repeater

* removing comments

* tabs

* update comment

* cereal

* fix

* trailing new lines

* grammar

* if whitespace

* indentation

* Update selfdrive/ui/SConscript

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update selfdrive/ui/qt/request_repeater.cc

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* works

* sort by dir

* no blockSignal

* replay is now QOBject

* cant take const char

* rename inner it

* get width and height from frame readeR

* resolve TODO

* seek in next pr

* spaces

* ui stuff

* fix CI

* remove comments

* no repalce

* trim segment fix

* remove seek from stream

* no cache key

* final changes'

* fix

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
old-commit-hash: 19d962cdf37b80523deba6518057f2e860f65fee
2021-04-24 00:59:09 -07:00
Dean Lee 65a52f5163 remove memory leak in create_jwt() (#20547)
old-commit-hash: d14aba45803fa3b49c48914d0c38f2c8872286b4
2021-04-05 10:05:04 -07:00
Willem Melching 8a73aabaa4 RequestRepeater remove memory leak through payloads argument
old-commit-hash: 7bc0b27ae540c941914f63e8fc5f81f8c515eb1b
2021-03-31 10:56:42 +02:00
Dean Lee 405df8b165 Params: python-like interface (#20506)
* rebase master

* delete outdated test_params.c

* putBool & more robust getBool

* putBool(SshEnabled)
old-commit-hash: 98e55996f67aaaf715c941d417ae4d3b0187f388
2021-03-30 12:54:59 +02:00
Willem Melching 8c296312e3 Cache prime/points widget (#20497)
* cache prime status on homescreen

* use stacked widget

* add caching and clear on 404
old-commit-hash: d43d62561063c4d3f8b10b08d7bde9ed8bd0f395
2021-03-26 14:53:12 +01:00
Dean Lee ae8893a77f Qt: cache home screen state (#20395)
* cache drive stats

* don't parse response if it's the same as previous

* remove blank line

* cleanup

* update stats in place

* validate json

* add DriveStats to params.pyx

* cleanup

* cleanup

* remove //#include

* simplify

* add cache to RequestRepeater

* rename CachedDriveStats to ApiCacheDriveStats

* rename ApiCacheDriveStats to ApiCache_DriveStats

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 80ae6a7e1b1d1ec231c4719b677fd08b22818ce1
2021-03-26 13:29:30 +01:00
Adeeb Shihadeh 30f036680b Qt touchups (#20465)
* reduce minimum size

* clean that up

* consistent

* feels pretty good

* cleanup

* less laggy toggle

* openpilot

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 7f56991b41c40a765125635919a91bca55815bd6
2021-03-24 21:18:12 -07:00
Dean Lee 0818f7166d UI: Move the variables need to be updated by socket to UIScene (#19783)
* move variables into UIScene

* rebase master

* rebase master

* rebase master

* rebase master

* rebase master

* rebase master

* fix build error

* cleanup

Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: dd603a89f642ea73d2c9b0def94d228adf9d52df
2021-03-03 17:40:50 +01:00
Comma Device feeb570cd3 fix typo
old-commit-hash: f96e8f2f175ed9dfa162da451fe01d141a9ac990
2021-03-02 20:59:46 -08:00
Adeeb Shihadeh 54df1204e8 fix SSL errors in Qt UI on NEOS (#20225)
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 60a9443b61af66976533fe4d26422740db392171
2021-03-02 20:46:46 -08:00
Adeeb Shihadeh 7ac52e2374 qt fixups (#20171)
* no outline

* disable on qcom for now

* fix qt 5.12.8

* cleanup drive stats

* widgets cleanup

* ssl test

* revert that

* disable by default

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: ec8b21c261b28d62dd84c2a6fa28bef09f5c8ed0
2021-02-28 18:10:50 -08:00
grekiki eea78cd686 Qt parents3 (#19870)
Not just parents, we also made the UI look nicer. 
old-commit-hash: 2eb81aa1d33887bd11083bc4f57e6f51271198f9
2021-01-22 13:51:26 +01:00
grekiki 0c141e45aa Qt offroad: pairing (#19675)
* kind of works now

* QR code is now on screen

* testing is needed

* works, waiting for server update

* reduce diff

* refactoring part1

* refactor part2

* refactor part3

* works on PC

* fix build, annoying bug though...

* git is annoying

* more classes, still crashes after a while

* better style

* clearer qr code

* less code and test new ssh key

* no more AA

* rename and collect garbage

* no pairing widget without the internet connection

* No network connection

* more logs

* refactor the network calls

* no more leaking

* works

* cleanup

* spaces

* works on device

* fix merge

* don't run if screen is off

* always initialized

* stats updating, not running without scrren

* formatting

* nicer QR code

* ensure the registration

* no qr code if no IMEI or no HWSerial

* all works

* refactor

* better networking

* all functionality seems to work

* small cleanup

* get serial once

* Small cleanup

* No internet text

* Don't crash if private key not found

* no network should say so

* new qr code every 30 minutes

* 20FPS sidebar

* more responsive networking and QR

* more logs

* no log spam

* fix merge

* no running onroad

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Willem Melching <willem.melching@gmail.com>
old-commit-hash: 10bd761cd6fb59f8113f88cc4dc764fbc4f5abf2
2021-01-18 12:07:55 +01:00