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: 9908b729c8
2024-05-31 21:40:53 -07:00
Dean Lee db211ce617 cpplint: add filter whitespace/parens (#29565)
old-commit-hash: 5480d32bb5
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: 2d99521e75
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: 1139fe507b
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: cb8885cffb
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: 34a8a5ea76
2022-03-30 12:12:33 +02:00
Dean Lee db022f7816 ui: singleton networkAccessManager (#22994)
old-commit-hash: b2bcacf590
2021-11-29 14:49:53 +01:00
Dean Lee 67c748d62a refactor httprequest: emit single signals (#23039)
* refactor httprequest

* Trigger Build
old-commit-hash: 3fd0264960
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: 140c7f430c
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: 3f4cc9a246
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: a31c6ce3f9
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: fefc70b4ca
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: 073b96e5d1
2021-08-02 11:21:51 +02:00
Willem Melching 380a3e1923 nav: Send DELETE to clear next destination on server (#21746)
old-commit-hash: 34bb5b935f
2021-07-28 11:02:32 +02:00
Dean Lee 9d12eb4d3a HttpRequest: don't send request in ctor (#21665)
old-commit-hash: c24227c3ab
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: 6039f1e7ac
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: ddd1342fc5
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: 9ebfc2ba8d
2021-06-18 23:47:23 -07:00
Dean Lee 775ed1428f CommaApi: class to namespace (#21329)
old-commit-hash: 85f134da6a
2021-06-18 15:01:56 -07:00
Dean Lee 1256dbb6c3 qt/api.cc: refactor create_jwt (#21281)
* refactor

* cleanup includes
old-commit-hash: de56de78c8
2021-06-15 22:35:23 -07:00
Dean Lee 147b355dde add space after function name and if statement (#21225)
old-commit-hash: e4e669bb0f
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: 7222d0f20d
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: ab319d4f54
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: 3a95d3ccaa
2021-05-06 12:29:30 +02:00
Willem Melching f8608d2e7b Revert "Fixes after ifdef clenaup (#20842)"
This reverts commit 59c31bac9a340f120ff40ed541ee377c31e7e85e.

old-commit-hash: d34647bbf7
2021-05-06 12:29:19 +02:00
Willem Melching 3cc799ecd8 Fixes after ifdef clenaup (#20842)
old-commit-hash: fd7c2b4adf
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: 757d2923d2
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: 81491dc57f
2021-05-03 11:53:11 +02:00
Comma Device eda1bcaef9 configure SSL globally on NEOS
old-commit-hash: 23faedd25e
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: 4781598e12
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: f01c3c649b
2021-05-01 14:11:35 -07:00
Dean Lee ee9280d9d3 HttpRequest: passing references in signals (#20782)
old-commit-hash: ad57cd3759
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: a337097b5e
2021-04-26 17:25:22 -07:00
iejMac 0b4949057c print error when HttpRequest fails
old-commit-hash: a8e231f8b1
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: 19d962cdf3
2021-04-24 00:59:09 -07:00
Dean Lee 65a52f5163 remove memory leak in create_jwt() (#20547)
old-commit-hash: d14aba4580
2021-04-05 10:05:04 -07:00
Willem Melching 8a73aabaa4 RequestRepeater remove memory leak through payloads argument
old-commit-hash: 7bc0b27ae5
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: 98e55996f6
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: d43d625610
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: 80ae6a7e1b
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: 7f56991b41
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: dd603a89f6
2021-03-03 17:40:50 +01:00
Comma Device feeb570cd3 fix typo
old-commit-hash: f96e8f2f17
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: 60a9443b61
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: ec8b21c261
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: 2eb81aa1d3
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: 10bd761cd6
2021-01-18 12:07:55 +01:00