Compare commits

..

12 Commits

Author SHA1 Message Date
Jason Wen c590c39362 bump 2025-10-09 01:31:38 -04:00
Jason Wen 1b0ae07a0c see if it's better 2025-10-09 01:17:07 -04:00
Jason Wen a564824c85 bump 2025-10-08 23:10:57 -04:00
Jason Wen 78635eee88 bump 2025-10-08 22:23:12 -04:00
Jason Wen 97c7eacbf4 fix 2025-10-08 16:29:10 -04:00
Jason Wen 4a204b8a22 new-ish resume logic 2025-10-08 12:30:40 -04:00
Jason Wen ae658b82d7 only send this while we want to command 2025-10-08 11:58:23 -04:00
Jason Wen 11aeebf452 only for ones with higher min enable speed 2025-10-06 03:27:53 -04:00
Jason Wen f6be0110b8 disable for now for fca 2025-10-06 02:40:33 -04:00
Jason Wen 8981993def disable for now for fca 2025-10-06 02:40:30 -04:00
Jason Wen 209cbaed01 init differently 2025-10-06 02:31:16 -04:00
Jason Wen 028c3691f6 bump 2025-10-06 01:32:54 -04:00
99 changed files with 606 additions and 6210 deletions
+2 -2
View File
@@ -29,11 +29,11 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
target: /^(?!master-tici$).*/
target: /^(?!master$).*/
exclude: /sunnypilot:.*/
change-to: ${{ github.base_ref }}
already-exists-action: close_this
already-exists-comment: "Your PR should be made against the `master-tici` branch"
already-exists-comment: "Your PR should be made against the `master` branch"
update-pr-labels:
name: Update fork's PR Labels
+1 -1
View File
@@ -5,7 +5,7 @@ on:
workflow_dispatch:
env:
BASE_IMAGE: sunnypilot-tici-base
BASE_IMAGE: sunnypilot-base
DOCKER_REGISTRY: ghcr.io/sunnypilot
RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $DOCKER_REGISTRY/$BASE_IMAGE:latest /bin/bash -c
+2 -2
View File
@@ -3,7 +3,7 @@ name: cereal validation
on:
push:
branches:
- master-tici
- master
pull_request:
paths:
- 'cereal/**'
@@ -16,7 +16,7 @@ on:
type: string
concurrency:
group: cereal-validation-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
group: cereal-validation-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
cancel-in-progress: true
env:
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
strategy:
fail-fast: false
matrix: ${{fromJSON(needs.setup.outputs.ci_runs)}}
uses: sunnypilot/sunnypilot/.github/workflows/ci_weekly_run.yaml@master-tici
uses: sunnypilot/sunnypilot/.github/workflows/ci_weekly_run.yaml@master
with:
run_number: ${{ matrix.run_number }}
+1 -1
View File
@@ -12,6 +12,6 @@ concurrency:
jobs:
selfdrive_tests:
uses: sunnypilot/sunnypilot/.github/workflows/selfdrive_tests.yaml@master-tici
uses: sunnypilot/sunnypilot/.github/workflows/selfdrive_tests.yaml@master
with:
run_number: ${{ inputs.run_number }}
@@ -15,7 +15,7 @@ runs:
scons -j$(nproc) --cache-populate"
- name: Save scons cache
uses: actions/cache/save@v4
if: github.ref == 'refs/heads/master-tici'
if: github.ref == 'refs/heads/master'
with:
path: .ci_cache/scons_cache
key: scons-${{ runner.arch }}-${{ env.CACHE_COMMIT_DATE }}-${{ github.sha }}
+4 -4
View File
@@ -3,7 +3,7 @@ name: docs
on:
push:
branches:
- master-tici
- master
pull_request:
workflow_call:
inputs:
@@ -12,7 +12,7 @@ on:
required: true
type: string
concurrency:
group: docs-tests-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
group: docs-tests-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
@@ -35,13 +35,13 @@ jobs:
# Push to docs.comma.ai
- uses: actions/checkout@v4
if: github.ref == 'refs/heads/master-tici' && github.repository == 'sunnypilot/sunnypilot'
if: github.ref == 'refs/heads/master' && github.repository == 'sunnypilot/sunnypilot'
with:
path: openpilot-docs
ssh-key: ${{ secrets.OPENPILOT_DOCS_KEY }}
repository: sunnypilot/sunnypilot-docs
- name: Push
if: github.ref == 'refs/heads/master-tici' && github.repository == 'sunnypilot/sunnypilot'
if: github.ref == 'refs/heads/master' && github.repository == 'sunnypilot/sunnypilot'
run: |
set -x
+2 -2
View File
@@ -24,11 +24,11 @@ jobs:
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: lewagon/wait-on-check-action@ccfb013c15c8afb7bf2b7c028fb74dc5a068cccc
with:
ref: master-tici
ref: master
wait-interval: 30
running-workflow-name: 'build prebuilt'
repo-token: ${{ secrets.GITHUB_TOKEN }}
check-regexp: ^((?!.*(build __nightly).*).)*$
check-regexp: ^((?!.*(build master-ci).*).)*$
- uses: actions/checkout@v4
with:
submodules: true
-1
View File
@@ -19,7 +19,6 @@ jobs:
contents: write
pull-requests: write
runs-on: ubuntu-latest
if: False
steps:
- uses: release-drafter/release-drafter@v6
with:
+2 -2
View File
@@ -10,7 +10,7 @@ jobs:
env:
ImageOS: ubuntu24
container:
image: ghcr.io/sunnypilot/sunnypilot-tici-base:latest
image: ghcr.io/sunnypilot/sunnypilot-base:latest
runs-on: ubuntu-latest
if: github.repository == 'sunnypilot/sunnypilot'
permissions:
@@ -25,7 +25,7 @@ jobs:
if: ${{ github.event_name == 'schedule' }}
uses: lewagon/wait-on-check-action@ccfb013c15c8afb7bf2b7c028fb74dc5a068cccc
with:
ref: master-tici
ref: master
wait-interval: 30
running-workflow-name: 'build __nightly'
repo-token: ${{ secrets.GITHUB_TOKEN }}
+4 -4
View File
@@ -6,7 +6,7 @@ on:
workflow_dispatch:
env:
BASE_IMAGE: sunnypilot-tici-base
BASE_IMAGE: sunnypilot-base
BUILD: release/ci/docker_build_sp.sh base
RUN: docker run --shm-size 2G -v $PWD:/tmp/openpilot -w /tmp/openpilot -e CI=1 -e PYTHONWARNINGS=error -e FILEREADER_CACHE=1 -e PYTHONPATH=/tmp/openpilot -e NUM_JOBS -e JOB_ID -e GITHUB_ACTION -e GITHUB_REF -e GITHUB_HEAD_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_RUN_ID -v $GITHUB_WORKSPACE/.ci_cache/scons_cache:/tmp/scons_cache -v $GITHUB_WORKSPACE/.ci_cache/comma_download_cache:/tmp/comma_download_cache -v $GITHUB_WORKSPACE/.ci_cache/openpilot_cache:/tmp/openpilot_cache $BASE_IMAGE /bin/bash -c
@@ -28,7 +28,7 @@ jobs:
title: "[bot] Update translations"
body: "Automatic PR from repo-maintenance -> update_translations"
branch: "update-translations"
base: "master-tici"
base: "master"
delete-branch: true
labels: bot
@@ -36,7 +36,7 @@ jobs:
name: package_updates
runs-on: ubuntu-latest
container:
image: ghcr.io/sunnypilot/sunnypilot-tici-base:latest
image: ghcr.io/sunnypilot/sunnypilot-base:latest
if: github.repository == 'sunnypilot/sunnypilot'
steps:
- uses: actions/checkout@v4
@@ -68,7 +68,7 @@ jobs:
commit-message: Update Python packages
title: '[bot] Update Python packages'
branch: auto-package-updates
base: master-tici
base: master
delete-branch: true
body: 'Automatic PR from repo-maintenance -> package_updates'
labels: bot
+10 -10
View File
@@ -3,7 +3,7 @@ name: selfdrive
on:
push:
branches:
- master-tici
- master
pull_request:
workflow_dispatch:
workflow_call:
@@ -14,12 +14,12 @@ on:
type: string
concurrency:
group: selfdrive-tests-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
group: selfdrive-tests-ci-run-${{ inputs.run_number }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.run_id || github.head_ref || github.ref }}-${{ github.workflow }}-${{ github.event_name }}
cancel-in-progress: true
env:
PYTHONWARNINGS: error
BASE_IMAGE: sunnypilot-tici-base
BASE_IMAGE: sunnypilot-base
AZURE_TOKEN: ${{ secrets.AZURE_COMMADATACI_OPENPILOTCI_TOKEN }}
DOCKER_LOGIN: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
@@ -68,10 +68,10 @@ jobs:
if: github.repository == 'sunnypilot/sunnypilot'
timeout-minutes: 3
run: |
if [ "${{ github.ref }}" != "refs/heads/master-tici" ]; then
git fetch origin master-tici:refs/remotes/origin/master-tici
if [ "${{ github.ref }}" != "refs/heads/master" ]; then
git fetch origin master:refs/remotes/origin/master
SUBMODULE_PATHS=$(git diff origin/master-tici HEAD --name-only | grep -E '^[^/]+$' | while read path; do
SUBMODULE_PATHS=$(git diff origin/master HEAD --name-only | grep -E '^[^/]+$' | while read path; do
if git ls-files --stage "$path" | grep -q "^160000"; then
echo "$path"
fi
@@ -97,7 +97,7 @@ jobs:
with:
submodules: true
- name: Setup docker push
if: github.ref == 'refs/heads/master-tici' && github.event_name != 'pull_request' && github.repository == 'sunnypilot/sunnypilot'
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'sunnypilot/sunnypilot'
run: |
echo "PUSH_IMAGE=true" >> "$GITHUB_ENV"
$DOCKER_LOGIN
@@ -130,7 +130,7 @@ jobs:
HOMEBREW_DISPLAY_INSTALL_TIMES: 1
- name: Save Homebrew cache
uses: actions/cache/save@v4
if: github.ref == 'refs/heads/master-tici'
if: github.ref == 'refs/heads/master'
with:
path: ~/Library/Caches/Homebrew
key: brew-macos-${{ env.CACHE_COMMIT_DATE }}-${{ github.sha }}
@@ -148,7 +148,7 @@ jobs:
run: . .venv/bin/activate && scons -j$(nproc)
- name: Save scons cache
uses: actions/cache/save@v4
if: github.ref == 'refs/heads/master-tici'
if: github.ref == 'refs/heads/master'
with:
path: /tmp/scons_cache
key: scons-${{ runner.arch }}-macos-${{ env.CACHE_COMMIT_DATE }}-${{ github.sha }}
@@ -307,5 +307,5 @@ jobs:
- name: Upload Test Report
uses: actions/upload-artifact@v4
with:
name: report-${{ inputs.run_number || '1' }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && 'master-tici' || github.event.number }}
name: report-${{ inputs.run_number || '1' }}-${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && 'master' || github.event.number }}
path: selfdrive/ui/tests/test_ui/report_1/screenshots
@@ -14,7 +14,7 @@ on:
upstream_branch:
description: 'Upstream branch to build from'
required: true
default: 'master-tici'
default: 'master'
type: string
custom_name:
description: 'Custom name for the model (no date, only name)'
@@ -35,7 +35,7 @@ on:
upstream_branch:
description: 'Upstream branch to build from'
required: true
default: 'master-tici'
default: 'master'
type: string
custom_name:
description: 'Custom name for the model (no date, only name)'
@@ -8,14 +8,14 @@ env:
PUBLIC_REPO_URL: "https://github.com/sunnypilot/sunnypilot"
# Branch configurations
STAGING_C3_SOURCE_BRANCH: 'master-tici' # vars.STAGING_C3_SOURCE_BRANCH could be used, set on repo settings.
STAGING_SOURCE_BRANCH: 'master'
# Runtime configuration
SOURCE_BRANCH: "${{ github.head_ref || github.ref_name }}"
on:
push:
branches: [ master-tici ]
branches: [ master, master-dev ]
tags: [ 'release/*' ]
pull_request_target:
types: [ labeled ]
@@ -138,7 +138,7 @@ jobs:
# for security. Only caches from the default branch are shared across all builds. This is by design and cannot be overridden.
restore-keys: |
scons-${{ runner.os }}-${{ runner.arch }}-${{ env.SOURCE_BRANCH }}
scons-${{ runner.os }}-${{ runner.arch }}-${{ env.STAGING_C3_SOURCE_BRANCH }}
scons-${{ runner.os }}-${{ runner.arch }}-${{ env.STAGING_SOURCE_BRANCH }}
scons-${{ runner.os }}-${{ runner.arch }}
- name: Set environment variables
@@ -1,31 +1,31 @@
name: Build dev-c3-new
name: Build dev
env:
DEFAULT_SOURCE_BRANCH: "master-tici"
DEFAULT_TARGET_BRANCH: "master-dev-c3-new"
PR_LABEL: "dev-c3"
DEFAULT_SOURCE_BRANCH: "master"
DEFAULT_TARGET_BRANCH: "master-dev"
PR_LABEL: "dev"
LFS_URL: 'https://gitlab.com/sunnypilot/public/sunnypilot-new-lfs.git/info/lfs'
LFS_PUSH_URL: 'ssh://git@gitlab.com/sunnypilot/public/sunnypilot-new-lfs.git'
on:
push:
branches:
- master-tici
- master
pull_request_target:
types: [ labeled ]
branches:
- 'master-tici'
- 'master'
workflow_dispatch:
inputs:
source_branch:
description: 'Source branch to reset from'
required: true
default: 'master-tici'
default: 'master'
type: string
target_branch:
description: 'Target branch to reset and squash into'
required: true
default: 'master-dev-c3-new'
default: 'master-dev'
type: string
cancel_in_progress:
description: 'Cancel any in-progress runs of this workflow'
@@ -40,7 +40,11 @@ concurrency:
jobs:
reset-and-squash:
runs-on: ubuntu-latest
if: False
if: (
(github.event_name == 'workflow_dispatch')
|| (github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
|| (contains(github.event_name, 'pull_request') && ((github.event.action == 'labeled' && (github.event.label.name == 'dev' || github.event.label.name == 'trust-fork-pr') && contains(github.event.pull_request.labels.*.name, 'dev'))))
)
steps:
- uses: actions/checkout@v4
with:
@@ -51,7 +55,7 @@ jobs:
uses: ./.github/workflows/wait-for-action # Path to where you place the action
if: (
(github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
|| (contains(github.event_name, 'pull_request') && ((github.event.action == 'labeled' && (github.event.label.name == 'dev-c3' || github.event.label.name == 'trust-fork-pr') && contains(github.event.pull_request.labels.*.name, 'dev-c3'))))
|| (contains(github.event_name, 'pull_request') && ((github.event.action == 'labeled' && (github.event.label.name == 'dev' || github.event.label.name == 'trust-fork-pr') && contains(github.event.pull_request.labels.*.name, 'dev'))))
)
with:
workflow: selfdrive_tests.yaml # The workflow file to monitor
+10 -10
View File
@@ -2,19 +2,19 @@ name: "ui preview"
on:
push:
branches:
- master-tici
- master
pull_request_target:
types: [assigned, opened, synchronize, reopened, edited]
branches:
- 'master-tici'
- 'master'
paths:
- 'selfdrive/ui/**'
workflow_dispatch:
env:
UI_JOB_NAME: "Create UI Report"
REPORT_NAME: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && 'master-tici' || github.event.number }}
SHA: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master-tici' && github.sha || github.event.pull_request.head.sha }}
REPORT_NAME: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && 'master' || github.event.number }}
SHA: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.sha || github.event.pull_request.head.sha }}
BRANCH_NAME: "openpilot/pr-${{ github.event.number }}"
jobs:
@@ -55,7 +55,7 @@ jobs:
name: report-1-${{ env.REPORT_NAME }}
path: ${{ github.workspace }}/pr_ui
- name: Getting master-tici ui
- name: Getting master ui
uses: actions/checkout@v4
with:
repository: sunnypilot/ci-artifacts
@@ -63,8 +63,8 @@ jobs:
path: ${{ github.workspace }}/master_ui
ref: openpilot_master_ui
- name: Saving new master-tici ui
if: github.ref == 'refs/heads/master-tici' && github.event_name == 'push'
- name: Saving new master ui
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
working-directory: ${{ github.workspace }}/master_ui
run: |
git checkout --orphan=new_master_ui
@@ -93,9 +93,9 @@ jobs:
for ((i=0; i<${#A[*]}; i=i+1));
do
# Check if the master-tici file exists
# Check if the master file exists
if [ ! -f "${{ github.workspace }}/master_ui/${A[$i]}.png" ]; then
# This is a new file in PR UI that doesn't exist in master-tici
# This is a new file in PR UI that doesn't exist in master
DIFF="${DIFF}<details open>"
DIFF="${DIFF}<summary>${A[$i]} : \$\${\\color{cyan}\\text{NEW}}\$\$</summary>"
DIFF="${DIFF}<table>"
@@ -118,7 +118,7 @@ jobs:
DIFF="${DIFF}<table>"
DIFF="${DIFF}<tr>"
DIFF="${DIFF} <td> master-tici <img src=\"https://raw.githubusercontent.com/sunnypilot/ci-artifacts/${{ env.BRANCH_NAME }}/${A[$i]}_master_ref.png\"> </td>"
DIFF="${DIFF} <td> master <img src=\"https://raw.githubusercontent.com/sunnypilot/ci-artifacts/${{ env.BRANCH_NAME }}/${A[$i]}_master_ref.png\"> </td>"
DIFF="${DIFF} <td> proposed <img src=\"https://raw.githubusercontent.com/sunnypilot/ci-artifacts/${{ env.BRANCH_NAME }}/${A[$i]}.png\"> </td>"
DIFF="${DIFF}</tr>"
+1 -1
View File
@@ -1,4 +1,4 @@
FROM ghcr.io/sunnypilot/sunnypilot-tici-base:latest
FROM ghcr.io/sunnypilot/sunnypilot-base:latest
ENV PYTHONUNBUFFERED=1
+10 -9
View File
@@ -22,7 +22,7 @@ https://docs.sunnypilot.ai/ is your one stop shop for everything from features t
Detailed instructions for [how to mount the device in a car](https://comma.ai/setup).
## Installation
Please refer to [Recommended Branches](#-recommended-branches) to find your preferred/supported branch. This guide will assume you want to install the latest `staging-tici` branch.
Please refer to [Recommended Branches](#-recommended-branches) to find your preferred/supported branch. This guide will assume you want to install the latest `staging-c3-new` branch.
### If you want to use our newest branches (our rewrite)
> [!TIP]
@@ -31,24 +31,25 @@ Please refer to [Recommended Branches](#-recommended-branches) to find your pref
* sunnypilot not installed or you installed a version before 0.8.17?
1. [Factory reset/uninstall](https://github.com/commaai/openpilot/wiki/FAQ#how-can-i-reset-the-device) the previous software if you have another software/fork installed.
2. After factory reset/uninstall and upon reboot, select `Custom Software` when given the option.
3. Input the installation URL per [Recommended Branches](#-recommended-branches). Example: ```https://staging-tici.sunnypilot.ai```.
3. Input the installation URL per [Recommended Branches](#-recommended-branches). Example: ```https://staging-c3-new.sunnypilot.ai```.
4. Complete the rest of the installation following the onscreen instructions.
* sunnypilot already installed and you installed a version after 0.8.17?
1. On the comma three, go to `Settings` ▶️ `Software`.
2. At the `Download` option, press `CHECK`. This will fetch the list of latest branches from sunnypilot.
3. At the `Target Branch` option, press `SELECT` to open the Target Branch selector.
4. Scroll to select the desired branch per Recommended Branches (see below). Example: `staging-tici`
4. Scroll to select the desired branch per Recommended Branches (see below). Example: `staging-c3-new`
| Branch | Installation URL |
|:---------------:|:---------------------------------------------:|
| `staging-tici` | `https://staging-tici.sunnypilot.ai` |
| `custom-branch` | `https://install.sunnypilot.ai/{branch_name}` |
| `release-tici` | **Not yet available**. |
| Branch | Installation URL |
|:----------------:|:---------------------------------------------:|
| `staging-c3-new` | `https://staging-c3-new.sunnypilot.ai` |
| `dev-c3-new` | `https://dev-c3-new.sunnypilot.ai` |
| `custom-branch` | `https://install.sunnypilot.ai/{branch_name}` |
| `release-c3-new` | **Not yet available**. |
> [!TIP]
> You can use sunnypilot/targetbranch as an install URL. Example: 'sunnypilot/staging-tici'.
> You can use sunnypilot/targetbranch as an install URL. Example: 'sunnypilot/staging-c3-new'.
> [!NOTE]
> Do you require further assistance with software installation? Join the [sunnypilot Discord server](https://discord.sunnypilot.com) and message us in the `#installation-help` channel.
-6
View File
@@ -94,7 +94,6 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"Offroad_NeosUpdate", {CLEAR_ON_MANAGER_START, JSON}},
{"Offroad_NoFirmware", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
{"Offroad_Recalibration", {CLEAR_ON_MANAGER_START | CLEAR_ON_ONROAD_TRANSITION, JSON}},
{"Offroad_StorageMissing", {CLEAR_ON_MANAGER_START, JSON}},
{"Offroad_TemperatureTooHigh", {CLEAR_ON_MANAGER_START, JSON}},
{"Offroad_UnregisteredHardware", {CLEAR_ON_MANAGER_START, JSON}},
{"Offroad_UpdateFailed", {CLEAR_ON_MANAGER_START, JSON}},
@@ -151,7 +150,6 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"EnableGithubRunner", {PERSISTENT | BACKUP, BOOL}},
{"GreenLightAlert", {PERSISTENT | BACKUP, BOOL, "0"}},
{"GithubRunnerSufficientVoltage", {CLEAR_ON_MANAGER_START , BOOL}},
{"HideVEgoUI", {PERSISTENT | BACKUP, BOOL, "0"}},
{"IntelligentCruiseButtonManagement", {PERSISTENT | BACKUP , BOOL}},
{"InteractivityTimeout", {PERSISTENT | BACKUP, INT, "0"}},
{"IsDevelopmentBranch", {CLEAR_ON_MANAGER_START, BOOL}},
@@ -164,14 +162,11 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"OnroadScreenOffBrightness", {PERSISTENT | BACKUP, INT, "100"}},
{"OnroadScreenOffControl", {PERSISTENT | BACKUP, BOOL}},
{"OnroadScreenOffTimer", {PERSISTENT | BACKUP, INT, "0"}},
{"OnroadUploads", {PERSISTENT | BACKUP, BOOL, "1"}},
{"QuickBootToggle", {PERSISTENT | BACKUP, BOOL, "0"}},
{"QuietMode", {PERSISTENT | BACKUP, BOOL, "0"}},
{"RainbowMode", {PERSISTENT | BACKUP, BOOL, "0"}},
{"ShowAdvancedControls", {PERSISTENT | BACKUP, BOOL, "0"}},
{"ShowTurnSignals", {PERSISTENT | BACKUP, BOOL, "0"}},
{"StandstillTimer", {PERSISTENT | BACKUP, BOOL, "0"}},
{"TrueVEgoUI", {PERSISTENT | BACKUP, BOOL, "0"}},
// MADS params
{"Mads", {PERSISTENT | BACKUP, BOOL, "1"}},
@@ -198,7 +193,6 @@ inline static std::unordered_map<std::string, ParamKeyAttributes> keys = {
{"SunnylinkDongleId", {PERSISTENT, STRING}},
{"SunnylinkdPid", {PERSISTENT, INT}},
{"SunnylinkEnabled", {PERSISTENT, BOOL, "1"}},
{"SunnylinkTempFault", {CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION, BOOL, "0"}},
// Backup Manager params
{"BackupManager_CreateBackup", {PERSISTENT, BOOL}},
+3 -6
View File
@@ -4,7 +4,7 @@
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.
# 337 Supported Cars
# 334 Supported Cars
|Make|Model|Supported Package|ACC|No ACC accel below|No ALC below|Steering Torque|Resume from stop|<a href="##"><img width=2000></a>Hardware Needed<br>&nbsp;|Video|Setup Video|
|---|---|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
@@ -83,7 +83,7 @@ A supported vehicle is one that just works when you install a comma device. All
|Honda|Civic Hatchback 2017-18|Honda Sensing|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback 2017-18">Buy Here</a></sub></details>|||
|Honda|Civic Hatchback 2019-21|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|12 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback 2019-21">Buy Here</a></sub></details>|||
|Honda|Civic Hatchback 2022-24|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback 2022-24">Buy Here</a></sub></details>|<a href="https://youtu.be/ytiOT5lcp6Q" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|Honda|Civic Hatchback Hybrid 2025-26|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback Hybrid 2025-26">Buy Here</a></sub></details>|||
|Honda|Civic Hatchback Hybrid 2025|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback Hybrid 2025">Buy Here</a></sub></details>|||
|Honda|Civic Hatchback Hybrid (Europe only) 2023|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hatchback Hybrid (Europe only) 2023">Buy Here</a></sub></details>|||
|Honda|Civic Hybrid 2025|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Civic Hybrid 2025">Buy Here</a></sub></details>|||
|Honda|Clarity 2018-21|Honda Sensing|openpilot|0 mph|12 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector + Honda Clarity Proxy Board<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://shop.retropilot.org/product/honda-clarity-proxy-board-kit">Buy Here</a></sub></details>|||
@@ -99,9 +99,7 @@ A supported vehicle is one that just works when you install a comma device. All
|Honda|HR-V 2023-25|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch B connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda HR-V 2023-25">Buy Here</a></sub></details>|||
|Honda|Insight 2019-22|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Insight 2019-22">Buy Here</a></sub></details>|||
|Honda|Inspire 2018|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|3 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Inspire 2018">Buy Here</a></sub></details>|||
|Honda|N-Box 2018|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|11 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda N-Box 2018">Buy Here</a></sub></details>|||
|Honda|Odyssey 2018-20|Honda Sensing|openpilot|26 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey 2018-20">Buy Here</a></sub></details>|||
|Honda|Odyssey 2021-25|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|43 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Odyssey 2021-25">Buy Here</a></sub></details>|||
|Honda|Passport 2019-25|All|openpilot|26 mph|12 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Passport 2019-25">Buy Here</a></sub></details>|||
|Honda|Pilot 2016-22|Honda Sensing|openpilot|26 mph|12 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Nidec connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Pilot 2016-22">Buy Here</a></sub></details>|||
|Honda|Pilot 2023-25|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Honda Bosch C connector<br>- 1 angled mount (8 degrees)<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Honda Pilot 2023-25">Buy Here</a></sub></details>|||
@@ -165,7 +163,6 @@ A supported vehicle is one that just works when you install a comma device. All
|Kia|EV6 (without HDA II) 2022-24[<sup>6</sup>](#footnotes)|Highway Driving Assist|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai L connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia EV6 (without HDA II) 2022-24">Buy Here</a></sub></details>|||
|Kia|Forte 2019-21|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|6 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai G connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Forte 2019-21">Buy Here</a></sub></details>|||
|Kia|Forte 2022-23|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai E connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Forte 2022-23">Buy Here</a></sub></details>|||
|Kia|Forte Non-SCC 2019|No Smart Cruise Control (Non-SCC)|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai G connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia Forte Non-SCC 2019">Buy Here</a></sub></details>|||
|Kia|K5 2021-24|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia K5 2021-24">Buy Here</a></sub></details>|||
|Kia|K5 Hybrid 2020-22|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia K5 Hybrid 2020-22">Buy Here</a></sub></details>|||
|Kia|K8 Hybrid (with HDA II) 2023[<sup>6</sup>](#footnotes)|Highway Driving Assist II|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai Q connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Kia K8 Hybrid (with HDA II) 2023">Buy Here</a></sub></details>|||
@@ -262,7 +259,7 @@ A supported vehicle is one that just works when you install a comma device. All
|Tesla[<sup>11</sup>](#footnotes)|Model 3 (with HW3) 2019-23[<sup>10</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Tesla A connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model 3 (with HW3) 2019-23">Buy Here</a></sub></details>|||
|Tesla[<sup>11</sup>](#footnotes)|Model 3 (with HW4) 2024-25[<sup>10</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Tesla B connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model 3 (with HW4) 2024-25">Buy Here</a></sub></details>|||
|Tesla[<sup>11</sup>](#footnotes)|Model Y (with HW3) 2020-23[<sup>10</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Tesla A connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model Y (with HW3) 2020-23">Buy Here</a></sub></details>|||
|Tesla[<sup>11</sup>](#footnotes)|Model Y (with HW4) 2024-25[<sup>10</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Tesla B connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model Y (with HW4) 2024-25">Buy Here</a></sub></details>|||
|Tesla[<sup>11</sup>](#footnotes)|Model Y (with HW4) 2024[<sup>10</sup>](#footnotes)|All|openpilot available[<sup>1</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Tesla B connector<br>- 1 USB-C coupler<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Tesla Model Y (with HW4) 2024">Buy Here</a></sub></details>|||
|Toyota|Alphard 2019-20|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Toyota A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota Alphard 2019-20">Buy Here</a></sub></details>|||
|Toyota|Alphard Hybrid 2021|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Toyota A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota Alphard Hybrid 2021">Buy Here</a></sub></details>|||
|Toyota|Avalon 2016|Toyota Safety Sense P|openpilot available[<sup>2</sup>](#footnotes)|19 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Toyota A connector<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 mount<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x?harness=Toyota Avalon 2016">Buy Here</a></sub></details>|||
+1 -1
View File
@@ -39,7 +39,7 @@ All of these are examples of good PRs:
### First contribution
[Projects / openpilot bounties](https://github.com/orgs/commaai/projects/26/views/1?pane=info) is the best place to get started and goes in-depth on what's expected when working on a bounty.
There's lot of bounties that don't require a comma 3/3X or a car.
There's lot of bounties that don't require a comma 3X or a car.
## Pull Requests
+4 -4
View File
@@ -1,11 +1,11 @@
# connect to a comma 3/3X
# connect to a comma 3X
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).
A comma 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.
Connect the comma 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/scripts/serial.sh` can be used to connect.
@@ -45,7 +45,7 @@ In order to use ADB on your device, you'll need to perform the following steps u
* Here's an example command for connecting to your device using its tethered connection: `adb connect 192.168.43.1:5555`
> [!NOTE]
> The default port for ADB is 5555 on the comma 3/3X.
> The default port for ADB is 5555 on the comma 3X.
For more info on ADB, see the [Android Debug Bridge (ADB) documentation](https://developer.android.com/tools/adb).
+1 -1
View File
@@ -8,7 +8,7 @@ Replaying is a critical tool for openpilot development and debugging.
Just run `tools/replay/replay --demo`.
## Replaying CAN data
*Hardware required: jungle and comma 3/3X*
*Hardware required: jungle and comma 3X*
1. Connect your PC to a jungle.
2.
+1 -1
View File
@@ -3,7 +3,7 @@
In 30 minutes, we'll get an openpilot development environment set up on your computer and make some changes to openpilot's UI.
And if you have a comma 3/3X, we'll deploy the change to your device for testing.
And if you have a comma 3X, we'll deploy the change to your device for testing.
## 1. Set up your development environment
+1 -1
View File
@@ -21,7 +21,7 @@ nav:
- What is openpilot?: getting-started/what-is-openpilot.md
- How-to:
- Turn the speed blue: how-to/turn-the-speed-blue.md
- Connect to a comma 3/3X: how-to/connect-to-comma.md
- Connect to a comma 3X: how-to/connect-to-comma.md
# - Make your first pull request: how-to/make-first-pr.md
#- Replay a drive: how-to/replay-a-drive.md
- Concepts:
+1 -1
Submodule panda updated: 2a7914fa5a...69ab12ee2a
+6 -18
View File
@@ -31,25 +31,13 @@ while read hash submodule ref; do
exit 1
fi
else
# Check against master-tici for specific submodules, master for others
if [ "$submodule" = "opendbc_repo" ] || [ "$submodule" = "panda" ]; then
git -C $submodule fetch --depth 100 origin master-tici
remote_hash=$(git -C $submodule rev-parse FETCH_HEAD)
if git -C $submodule merge-base --is-ancestor $hash $remote_hash; then
echo "$submodule ok"
else
echo "$submodule: $hash is not on master-tici"
exit 1
fi
git -C $submodule fetch --depth 100 origin master
git -C $submodule branch -r --contains $hash | grep "origin/master"
if [ "$?" -eq 0 ]; then
echo "$submodule ok"
else
git -C $submodule fetch --depth 100 origin master
git -C $submodule branch -r --contains $hash | grep "origin/master"
if [ "$?" -eq 0 ]; then
echo "$submodule ok"
else
echo "$submodule: $hash is not on master"
exit 1
fi
echo "$submodule: $hash is not on master"
exit 1
fi
fi
done <<< $(git submodule status --recursive)
+2 -2
View File
@@ -1,8 +1,8 @@
if [ "$1" = "base" ]; then
export DOCKER_IMAGE=sunnypilot-tici-base
export DOCKER_IMAGE=sunnypilot-base
export DOCKER_FILE=Dockerfile.sunnypilot_base
elif [ "$1" = "prebuilt" ]; then
export DOCKER_IMAGE=sunnypilot-tici-prebuilt
export DOCKER_IMAGE=sunnypilot-prebuilt
export DOCKER_FILE=Dockerfile.sunnypilot
else
echo "Invalid docker build image: '$1'"
+1 -1
View File
@@ -57,7 +57,7 @@ def convert_carControlSP(struct: capnp.lib.capnp._DynamicStructReader) -> struct
struct_dataclass = structs.CarControlSP(**remove_deprecated({k: v for k, v in struct_dict.items() if not isinstance(k, dict)}))
struct_dataclass.mads = structs.ModularAssistiveDrivingSystem(**remove_deprecated(struct_dict.get('mads', {})))
# struct_dataclass.params = [structs.CarControlSP.Param(**remove_deprecated(p)) for p in struct_dict.get('params', [])]
struct_dataclass.params = [structs.CarControlSP.Param(**remove_deprecated(p)) for p in struct_dict.get('params', [])]
struct_dataclass.leadOne = structs.LeadData(**remove_deprecated(struct_dict.get('leadOne', {})))
struct_dataclass.leadTwo = structs.LeadData(**remove_deprecated(struct_dict.get('leadTwo', {})))
struct_dataclass.intelligentCruiseButtonManagement = structs.IntelligentCruiseButtonManagement(
-5
View File
@@ -99,11 +99,6 @@ def main() -> None:
cloudlog.event("pandad.flash_and_connect", count=count)
params.remove("PandaSignatures")
# TODO: remove this in the next AGNOS
# wait until USB is up before counting
if time.monotonic() < 60.:
no_internal_panda_count = 0
# Handle missing internal panda
if no_internal_panda_count > 0:
if no_internal_panda_count == 3:
Binary file not shown.
+1 -5
View File
@@ -22,8 +22,6 @@ class TestPandad:
if len(Panda.list()) == 0:
self._run_test(60)
self.spi = HARDWARE.get_device_type() != 'tici'
def teardown_method(self):
managed_processes['pandad'].stop()
@@ -106,11 +104,9 @@ class TestPandad:
# - 0.2s pandad -> pandad
# - plus some buffer
print("startup times", ts, sum(ts) / len(ts))
assert 0.1 < (sum(ts)/len(ts)) < (0.7 if self.spi else 5.0)
assert 0.1 < (sum(ts)/len(ts)) < 0.7
def test_protocol_version_check(self):
if not self.spi:
pytest.skip("SPI test")
# flash old fw
fn = os.path.join(HERE, "bootstub.panda_h7_spiv0.bin")
self._flash_bootstub_and_test(fn, expect_mismatch=True)
@@ -6,7 +6,6 @@ import random
import cereal.messaging as messaging
from cereal.services import SERVICE_LIST
from openpilot.system.hardware import HARDWARE
from openpilot.selfdrive.test.helpers import with_processes
from openpilot.selfdrive.pandad.tests.test_pandad_loopback import setup_pandad, send_random_can_messages
@@ -16,8 +15,6 @@ JUNGLE_SPAM = "JUNGLE_SPAM" in os.environ
class TestBoarddSpi:
@classmethod
def setup_class(cls):
if HARDWARE.get_device_type() == 'tici':
pytest.skip("only for spi pandas")
os.environ['STARTED'] = '1'
os.environ['SPI_ERR_PROB'] = '0.001'
if not JUNGLE_SPAM:
-4
View File
@@ -29,10 +29,6 @@
"text": "Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.",
"severity": 1
},
"Offroad_StorageMissing": {
"text": "NVMe drive not mounted.",
"severity": 1
},
"Offroad_CarUnrecognized": {
"text": "sunnypilot was unable to identify your car. Your car is either unsupported or its ECUs are not recognized. Please submit a pull request to add the firmware versions to the proper vehicle. Need help? Join discord.comma.ai.",
"severity": 0
+1 -7
View File
@@ -21,7 +21,6 @@ from openpilot.selfdrive.selfdrived.helpers import ExcessiveActuationCheck
from openpilot.selfdrive.selfdrived.state import StateMachine
from openpilot.selfdrive.selfdrived.alertmanager import AlertManager, set_offroad_alert
from openpilot.system.hardware import HARDWARE
from openpilot.system.version import get_build_metadata
from openpilot.sunnypilot.mads.mads import ModularAssistiveDrivingSystem
@@ -136,12 +135,7 @@ class SelfdriveD(CruiseHelper):
self.state_machine = StateMachine()
self.rk = Ratekeeper(100, print_delay_threshold=None)
# some comma three with NVMe experience NVMe dropouts mid-drive that
# cause loggerd to crash on write, so ignore it only on that platform
self.ignored_processes = set()
nvme_expected = os.path.exists('/dev/nvme0n1') or (not os.path.isfile("/persist/comma/living-in-the-moment"))
if HARDWARE.get_device_type() == 'tici' and nvme_expected:
self.ignored_processes = {'loggerd', 'mapd'}
self.ignored_processes = {'mapd', }
# Determine startup event
is_remote = build_metadata.openpilot.comma_remote or build_metadata.openpilot.sunnypilot_remote
+1 -1
View File
@@ -51,8 +51,8 @@ void HudRenderer::draw(QPainter &p, const QRect &surface_rect) {
if (is_cruise_available) {
drawSetSpeed(p, surface_rect);
}
drawCurrentSpeed(p, surface_rect);
#endif
drawCurrentSpeed(p, surface_rect);
p.restore();
}
-2
View File
@@ -4,10 +4,8 @@
#ifdef SUNNYPILOT
#include "selfdrive/ui/sunnypilot/qt/onroad/annotated_camera.h"
#include "selfdrive/ui/sunnypilot/qt/onroad/alerts.h"
#define UIState UIStateSP
#define AnnotatedCameraWidget AnnotatedCameraWidgetSP
#define OnroadAlerts OnroadAlertsSP
#else
#include "selfdrive/ui/qt/onroad/annotated_camera.h"
#endif
-1
View File
@@ -38,7 +38,6 @@ qt_src = [
"sunnypilot/qt/offroad/settings/trips_panel.cc",
"sunnypilot/qt/offroad/settings/vehicle_panel.cc",
"sunnypilot/qt/offroad/settings/visuals_panel.cc",
"sunnypilot/qt/onroad/alerts.cc",
"sunnypilot/qt/onroad/annotated_camera.cc",
"sunnypilot/qt/onroad/buttons.cc",
"sunnypilot/qt/onroad/developer_ui/developer_ui.cc",
@@ -25,8 +25,8 @@ const QMap<QString, QString> Brightness::brightness_options = {
Brightness::Brightness() : OptionControlSP(
"Brightness",
tr("Global Brightness"),
tr("Overrides the brightness of the device. This applies to both onroad and offroad screens. "),
tr("Brightness"),
tr("Overrides the brightness of the device."),
"../assets/offroad/icon_blank.png",
{0, 11}, 1, true, &brightness_options) {
@@ -23,7 +23,6 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
{"regulatoryBtn", tr("Regulatory"), ""},
{"translateBtn", tr("Language"), ""},
{"resetParams", tr("Reset Settings"), ""},
{"onroadUploadsBtn", tr("Onroad Uploads"), "OnroadUploads"}
};
int row = 0, col = 0;
@@ -76,14 +75,12 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
connect(buttons["resetParams"], &PushButtonSP::clicked, this, &DevicePanelSP::resetSettings);
connect(buttons["onroadUploadsBtn"], &PushButtonSP::clicked, buttons["onroadUploadsBtn"], &PushButtonSP::updateButton);
// Max Time Offroad
maxTimeOffroad = new MaxTimeOffroad();
connect(maxTimeOffroad, &OptionControlSP::updateLabels, maxTimeOffroad, &MaxTimeOffroad::refresh);
addItem(maxTimeOffroad);
toggleDeviceBootMode = new ButtonParamControlSP("DeviceBootMode", tr("Wake-Up Behavior"), "", "", {"Default", "Offroad"}, 375, true);
toggleDeviceBootMode = new ButtonParamControlSP("DeviceBootMode", tr("Wake-Up Behavior"), "", "", {"Default", "Offroad"}, 375, true);
addItem(toggleDeviceBootMode);
connect(toggleDeviceBootMode, &ButtonParamControlSP::buttonClicked, this, [=](int index) {
@@ -91,6 +88,22 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
updateState();
});
interactivityTimeout = new OptionControlSP("InteractivityTimeout", tr("Interactivity Timeout"),
tr("Apply a custom timeout for settings UI."
"\nThis is the time after which settings UI closes automatically if user is not interacting with the screen."),
"", {0, 120}, 10, true, nullptr, false);
connect(interactivityTimeout, &OptionControlSP::updateLabels, [=]() {
updateState();
});
addItem(interactivityTimeout);
// Brightness
brightness = new Brightness();
connect(brightness, &OptionControlSP::updateLabels, brightness, &Brightness::refresh);
addItem(brightness);
addItem(device_grid_layout);
// offroad mode and power buttons
@@ -116,8 +129,9 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
offroadBtn->setFixedWidth(power_layout->sizeHint().width());
QObject::connect(offroadBtn, &PushButtonSP::clicked, this, &DevicePanelSP::setOffroadMode);
power_group_layout = new QVBoxLayout();
QVBoxLayout *power_group_layout = new QVBoxLayout();
power_group_layout->setSpacing(25);
power_group_layout->addWidget(offroadBtn, 0, Qt::AlignHCenter);
power_group_layout->addLayout(power_layout);
addItem(power_group_layout);
@@ -127,10 +141,9 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
poweroffBtn,
offroadBtn,
buttons["quietModeBtn"],
buttons["onroadUploadsBtn"],
};
QObject::connect(uiState(), &UIState::offroadTransition, [=](bool _offroad) {
QObject::connect(uiState(), &UIState::offroadTransition, [=](bool offroad) {
for (auto btn : findChildren<PushButtonSP*>()) {
bool always_enabled = std::find(always_enabled_btns.begin(), always_enabled_btns.end(), btn) != always_enabled_btns.end();
@@ -138,8 +151,6 @@ DevicePanelSP::DevicePanelSP(SettingsWindowSP *parent) : DevicePanel(parent) {
btn->setEnabled(offroad);
}
}
offroad = _offroad;
updateState();
});
}
@@ -190,7 +201,7 @@ void DevicePanelSP::updateState() {
}
bool offroad_mode_param = params.getBool("OffroadMode");
offroadBtn->setText(offroad_mode_param ? tr("Exit Always Offroad") : tr("Enable Always Offroad"));
offroadBtn->setText(offroad_mode_param ? tr("Exit Always Offroad") : tr("Always Offroad"));
offroadBtn->setStyleSheet(offroad_mode_param ? alwaysOffroadStyle : autoOffroadStyle);
DeviceSleepModeStatus currStatus = DeviceSleepModeStatus::DEFAULT;
@@ -199,9 +210,10 @@ void DevicePanelSP::updateState() {
}
toggleDeviceBootMode->setDescription(deviceSleepModeDescription(currStatus));
if (offroad and not offroad_mode_param) {
power_group_layout->insertWidget(0, offroadBtn, 0, Qt::AlignHCenter);
QString timeoutValue = QString::fromStdString(params.get("InteractivityTimeout"));
if (timeoutValue == "0" || timeoutValue.isEmpty()) {
interactivityTimeout->setLabel("Default");
} else {
AddWidgetAt(0, offroadBtn);
interactivityTimeout->setLabel(timeoutValue + "s");
}
}
@@ -8,6 +8,7 @@
#pragma once
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/max_time_offroad.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/brightness.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/controls.h"
@@ -31,8 +32,8 @@ private:
PushButtonSP *offroadBtn;
MaxTimeOffroad *maxTimeOffroad;
ButtonParamControlSP *toggleDeviceBootMode;
QVBoxLayout *power_group_layout;
bool offroad;
Brightness *brightness;
OptionControlSP *interactivityTimeout;
const QString alwaysOffroadStyle = R"(
PushButtonSP {
@@ -12,29 +12,30 @@ OnroadScreenBrightnessControl::OnroadScreenBrightnessControl(const QString &para
QWidget *parent)
: ExpandableToggleRow(param, title, description, icon, parent) {
auto *mainFrame = new QFrame(this);
auto *mainFrameLayout = new QVBoxLayout();
auto *mainFrameLayout = new QGridLayout();
mainFrame->setLayout(mainFrameLayout);
mainFrameLayout->setSpacing(30);
mainFrameLayout->setContentsMargins(0, 0, 0, 0);
mainFrameLayout->setSpacing(0);
onroadScreenOffTimer = new OptionControlSP(
"OnroadScreenOffTimer",
"Onroad Brightness Delay",
"",
"",
"",
{0, 11}, 1, true, &onroadScreenOffTimerOptions);
onroadScreenBrightness = new OptionControlSP(
"OnroadScreenOffBrightness",
"Onroad Brightness",
"",
"",
{0, 100}, 10, true);
"",
{0, 100}, 10, true, nullptr, false);
connect(onroadScreenOffTimer, &OptionControlSP::updateLabels, this, &OnroadScreenBrightnessControl::refresh);
connect(onroadScreenBrightness, &OptionControlSP::updateLabels, this, &OnroadScreenBrightnessControl::refresh);
mainFrameLayout->addWidget(onroadScreenBrightness);
mainFrameLayout->addWidget(onroadScreenOffTimer);
onroadScreenOffTimer->setFixedWidth(280);
onroadScreenBrightness->setFixedWidth(280);
mainFrameLayout->addWidget(onroadScreenOffTimer, 0, 0, Qt::AlignLeft);
mainFrameLayout->addWidget(onroadScreenBrightness, 0, 1, Qt::AlignRight);
addItem(mainFrame);
@@ -44,11 +45,19 @@ OnroadScreenBrightnessControl::OnroadScreenBrightnessControl(const QString &para
void OnroadScreenBrightnessControl::refresh() {
// Driving Screen Off Timer
int valTimer = std::atoi(params.get("OnroadScreenOffTimer").c_str());
std::string labelTimer = (valTimer < 60 ? std::to_string(valTimer) + "s" : std::to_string(valTimer / 60) + "m");
std::string labelTimer = "<span style='font-size: 45px; font-weight: 450; color: #FFFFFF;'>";
labelTimer += "Delay";
labelTimer += " <br><span style='font-size: 40px; font-weight: 450; color:rgb(174, 255, 195);'>";
labelTimer += (valTimer < 60 ? std::to_string(valTimer) + "s" : std::to_string(valTimer / 60) + "m");
labelTimer += "</span></span>";
onroadScreenOffTimer->setLabel(QString::fromStdString(labelTimer));
// Driving Screen Off Brightness
std::string valBrightness = params.get("OnroadScreenOffBrightness");
std::string labelBrightness = (valBrightness == "0" ? " Screen Off" : valBrightness + "%");
std::string labelBrightness = "<span style='font-size: 45px; font-weight: 450; color: #FFFFFF;'>";
labelBrightness += "Brightness";
labelBrightness += " <br><span style='font-size: 40px; font-weight: 450; color:rgb(174, 255, 195);'>";
labelBrightness += (valBrightness == "0" ? " Screen Off" : valBrightness + "%");
labelBrightness += "</span></span>";
onroadScreenBrightness->setLabel(QString::fromStdString(labelBrightness));
}
@@ -18,30 +18,12 @@ DisplayPanel::DisplayPanel(QWidget *parent) : QWidget(parent) {
// Onroad Screen Off/Brightness
onroadScreenBrightnessControl = new OnroadScreenBrightnessControl(
"OnroadScreenOffControl",
tr("Onroad Screen: Reduced Brightness"),
tr("Driving Screen Off: Non-Critical Events"),
tr("Turn off device screen or reduce brightness after driving starts. "
"It automatically brightens again when screen is touched or a visible alert is displayed."),
"It automatically brightens again when screen is touched or a critical event occurs."),
"",
this);
list->addItem(onroadScreenBrightnessControl);
list->addItem(horizontal_line());
// Global Brightness
brightness = new Brightness();
connect(brightness, &OptionControlSP::updateLabels, brightness, &Brightness::refresh);
list->addItem(brightness);
list->addItem(horizontal_line());
// Interactivity Timeout
interactivityTimeout = new OptionControlSP("InteractivityTimeout", tr("Interactivity Timeout"),
tr("Apply a custom timeout for settings UI."
"\nThis is the time after which settings UI closes automatically if user is not interacting with the screen."),
"", {0, 120}, 10, true, nullptr, false);
connect(interactivityTimeout, &OptionControlSP::updateLabels, [=]() {
refresh();
});
list->addItem(interactivityTimeout);
sunnypilotScroller = new ScrollViewSP(list, this);
vlayout->addWidget(sunnypilotScroller);
@@ -55,11 +37,4 @@ void DisplayPanel::showEvent(QShowEvent *event) {
void DisplayPanel::refresh() {
onroadScreenBrightnessControl->refresh();
QString timeoutValue = QString::fromStdString(params.get("InteractivityTimeout"));
if (timeoutValue == "0" || timeoutValue.isEmpty()) {
interactivityTimeout->setLabel("Default");
} else {
interactivityTimeout->setLabel(timeoutValue + "s");
}
}
@@ -7,7 +7,6 @@
#pragma once
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/brightness.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/display/onroad_screen_brightness.h"
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/settings.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h"
@@ -26,6 +25,4 @@ private:
ScrollViewSP *sunnypilotScroller = nullptr;
Params params;
OnroadScreenBrightnessControl *onroadScreenBrightnessControl = nullptr;
Brightness *brightness;
OptionControlSP *interactivityTimeout;
};
@@ -12,7 +12,6 @@
#include <string>
#include "common/swaglog.h"
#include "selfdrive/ui/sunnypilot/qt/util.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/scrollview.h"
OsmPanel::OsmPanel(QWidget *parent) : QFrame(parent) {
@@ -92,30 +91,24 @@ ButtonControlSP *OsmPanel::setupOsmDownloadButton(QWidget *parent) {
locationTitles.push_back(std::get<0>(loc));
}
InputDialog d(tr("Search Country"), this, tr("Enter search keywords, or leave blank to list all countries."), false);
d.setMinLength(0);
const int ret = d.exec();
if (ret) {
const QString selection = search(d.text(), locationTitles, tr("Select Country"));
if (!selection.isEmpty()) {
params.put("OsmLocal", "1");
params.put("OsmLocationTitle", selection.toStdString());
for (auto &loc: locations) {
if (std::get<0>(loc) == selection) {
params.put("OsmLocationName", std::get<1>(loc).toStdString());
break;
}
const QString selection = MultiOptionDialog::getSelection(tr("Country"), locationTitles, currentTitle, this);
if (!selection.isEmpty()) {
params.put("OsmLocal", "1");
params.put("OsmLocationTitle", selection.toStdString());
for (auto &loc: locations) {
if (std::get<0>(loc) == selection) {
params.put("OsmLocationName", std::get<1>(loc).toStdString());
break;
}
if (params.get("OsmLocationName") == "US") {
usStatesBtn->click();
return;
}
if (selection != "== None ==") {
if (showConfirmationDialog(parent)) {
osm_download_in_progress = true;
params.putBool("OsmDbUpdatesCheck", true);
updateLabels();
}
}
if (params.get("OsmLocationName") == "US") {
usStatesBtn->click();
return;
} else if (selection != "== None ==") {
if (showConfirmationDialog(parent)) {
osm_download_in_progress = true;
params.putBool("OsmDbUpdatesCheck", true);
updateLabels();
}
}
}
@@ -142,26 +135,21 @@ ButtonControlSP *OsmPanel::setupUsStatesButton(QWidget *parent) {
locationTitles.push_back(std::get<0>(loc));
}
InputDialog d(tr("Search State"), this, tr("Enter search keywords, or leave blank to list all states."), false);
d.setMinLength(0);
const int ret = d.exec();
if (ret) {
const QString selection = search(d.text(), locationTitles, tr("Select State"));
if (!selection.isEmpty()) {
params.put("OsmStateTitle", selection.toStdString());
for (auto &loc: locations) {
if (std::get<0>(loc) == selection) {
params.put("OsmStateName", std::get<1>(loc).toStdString());
break;
}
}
usStatesBtn->setValue(selection);
if (showConfirmationDialog(parent)) {
osm_download_in_progress = true;
params.putBool("OsmDbUpdatesCheck", true);
updateLabels();
const QString selection = MultiOptionDialog::getSelection(tr("State"), locationTitles, currentTitle, this);
if (!selection.isEmpty()) {
params.put("OsmStateTitle", selection.toStdString());
for (auto &loc: locations) {
if (std::get<0>(loc) == selection) {
params.put("OsmStateName", std::get<1>(loc).toStdString());
break;
}
}
usStatesBtn->setValue(selection);
if (showConfirmationDialog(parent)) {
osm_download_in_progress = true;
params.putBool("OsmDbUpdatesCheck", true);
updateLabels();
}
}
updateLabels();
});
@@ -293,15 +281,3 @@ void OsmPanel::updateMapSize() {
mapSizeFuture = QtConcurrent::run(getDirSize, MAP_PATH);
}
}
QString OsmPanel::search(const QString &query, const QStringList &list, const QString &prompt_text) {
QStringList lst_results = searchFromList(query, list);
QString selection;
if (lst_results.isEmpty()) {
ConfirmationDialog::alert(tr("No results found for keywords: %1").arg(query), this);
return selection;
}
selection = MultiOptionDialog::getSelection(prompt_text, lst_results, "", this);
return selection;
}
@@ -76,7 +76,6 @@ private:
void updateDownloadProgress();
static int extractIntFromJson(const QJsonObject &json, const QString &key);
QString processUpdateStatus(bool pending_update_check, int total_files, int downloaded_files, const QJsonObject &json, bool failed_state);
QString search(const QString &query, const QStringList &list, const QString &prompt_text);
ConfirmationDialog *confirmationDialog;
LabelControlSP *mapdVersion;
@@ -69,27 +69,6 @@ VisualsPanel::VisualsPanel(QWidget *parent) : QWidget(parent) {
"",
false,
},
{
"TrueVEgoUI",
tr("Speedometer: Always Display True Speed"),
tr("Always display the true vehicle current speed from wheel speed sensors."),
"",
false,
},
{
"HideVEgoUI",
tr("Speedometer: Hide from Onroad Screen"),
tr("When enabled, the speedometer on the onroad screen is not displayed."),
"",
false,
},
{
"ShowTurnSignals",
tr("Display Turn Signals"),
tr("When enabled, visual turn indicators are drawn on the HUD."),
"",
false,
},
};
// Add regular toggles first
-102
View File
@@ -1,102 +0,0 @@
/**
* Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
*
* This file is part of sunnypilot and is licensed under the MIT License.
* See the LICENSE.md file in the root directory for more details.
*/
#include "selfdrive/ui/sunnypilot/qt/onroad/alerts.h"
#include <QPainter>
#include <map>
#include <QRect>
#include <QFont>
OnroadAlerts::Alert OnroadAlertsSP::getAlert(const SubMaster &sm, uint64_t started_frame) {
OnroadAlerts::Alert alert = OnroadAlerts::getAlert(sm, started_frame);
alert.text1.replace("openpilot", "sunnypilot");
alert.text2.replace("openpilot", "sunnypilot");
return alert;
}
void OnroadAlertsSP::paintEvent(QPaintEvent *event) {
if (alert.size == cereal::SelfdriveState::AlertSize::NONE) {
return;
} else if (alert.size == cereal::SelfdriveState::AlertSize::FULL) {
OnroadAlerts::paintEvent(event);
return;
}
static std::map<cereal::SelfdriveState::AlertSize, const int> alert_heights = {
{cereal::SelfdriveState::AlertSize::SMALL, 271},
{cereal::SelfdriveState::AlertSize::MID, 420}
};
int h = alert_heights[alert.size];
QPainter p(this);
QFont topFont;
QFont bottomFont;
QRect topTextBoundingRect;
QRect bottomTextBoundingRect;
QRect rect;
int margin = 40;
int radius = 30;
const int dev_ui_info = uiStateSP()->scene.dev_ui_info;
const int v_adjustment = dev_ui_info > 1 && alert.size != cereal::SelfdriveState::AlertSize::FULL ? 40 : 0;
const int h_adjustment = dev_ui_info > 0 && alert.size != cereal::SelfdriveState::AlertSize::FULL ? 230 : 0;
if (alert.size == cereal::SelfdriveState::AlertSize::SMALL) {
topFont = InterFont(74, QFont::DemiBold);
QFontMetrics fmTop(topFont);
topTextBoundingRect = fmTop.boundingRect(
QRect(0 + margin, height() - h + margin - v_adjustment, width() - margin * 2 - h_adjustment, 0), Qt::TextWordWrap,
alert.text1);
h = topTextBoundingRect.height();
rect = QRect(0 + margin, height() - h - margin * 2 - v_adjustment, width() - margin * 2 - h_adjustment, h + margin);
} else if (alert.size == cereal::SelfdriveState::AlertSize::MID) {
topFont = InterFont(88, QFont::Bold);
bottomFont = InterFont(66);
QFontMetrics fmTop(topFont);
QFontMetrics fmBotton(bottomFont);
topTextBoundingRect = fmTop.boundingRect(
QRect(0 + margin, height() - h + margin - v_adjustment, width() - margin * 2 - h_adjustment, 0), Qt::TextWordWrap,
alert.text1);
bottomTextBoundingRect = fmBotton.boundingRect(
QRect(0 + margin, height() - h + margin - v_adjustment + topTextBoundingRect.height(),
width() - margin * 2 - h_adjustment, 0), Qt::TextWordWrap, alert.text2);
h = topTextBoundingRect.height() + bottomTextBoundingRect.height() + margin * 2;
rect = QRect(0 + margin, height() - h - margin * 2 - v_adjustment, width() - margin * 2 - h_adjustment, h + margin);
}
// draw background + gradient
// draw background + gradient
p.setPen(Qt::NoPen);
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
p.setBrush(QBrush(alert_colors[alert.status]));
p.drawRoundedRect(rect, radius, radius);
QLinearGradient g(0, rect.y(), 0, rect.bottom());
g.setColorAt(0, QColor::fromRgbF(0, 0, 0, 0.05));
g.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0.35));
p.setCompositionMode(QPainter::CompositionMode_DestinationOver);
p.setBrush(QBrush(g));
p.drawRoundedRect(rect, radius, radius);
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
// text
p.setPen(QColor(0xff, 0xff, 0xff));
p.setRenderHint(QPainter::TextAntialiasing);
p.setFont(topFont);
if (alert.size == cereal::SelfdriveState::AlertSize::SMALL) {
p.drawText(rect, Qt::AlignCenter | Qt::TextWordWrap, alert.text1);
} else if (alert.size == cereal::SelfdriveState::AlertSize::MID) {
QRect topText = QRect(rect.x(), rect.top() + margin, rect.width(), topTextBoundingRect.height());
p.drawText(topText, Qt::AlignHCenter | Qt::AlignTop | Qt::TextWordWrap | Qt::AlignCenter, alert.text1);
p.setFont(bottomFont);
p.drawText(QRect(rect.x(), topText.bottom() + margin, rect.width(), bottomTextBoundingRect.height()),
Qt::AlignHCenter | Qt::TextWordWrap | Qt::AlignCenter, alert.text2);
}
}
@@ -1,22 +0,0 @@
/**
* Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
*
* This file is part of sunnypilot and is licensed under the MIT License.
* See the LICENSE.md file in the root directory for more details.
*/
#pragma once
#include "selfdrive/ui/qt/onroad/alerts.h"
#include "selfdrive/ui/sunnypilot/ui.h"
class OnroadAlertsSP : public OnroadAlerts {
Q_OBJECT
public:
OnroadAlertsSP(QWidget *parent = 0) : OnroadAlerts(parent) {}
protected:
void paintEvent(QPaintEvent *) override;
Alert getAlert(const SubMaster &sm, uint64_t started_frame);
};
+49 -147
View File
@@ -115,17 +115,6 @@ void HudRendererSP::updateState(const UIState &s) {
greenLightAlert = lp_sp.getE2eAlerts().getGreenLightAlert();
leadDepartAlert = lp_sp.getE2eAlerts().getLeadDepartAlert();
// override stock current speed values
float v_ego = (v_ego_cluster_seen && !s.scene.trueVEgoUI) ? car_state.getVEgoCluster() : car_state.getVEgo();
speed = std::max<float>(0.0f, v_ego * (is_metric ? MS_TO_KPH : MS_TO_MPH));
hideVEgoUI = s.scene.hideVEgoUI;
leftBlinkerOn = car_state.getLeftBlinker();
rightBlinkerOn = car_state.getRightBlinker();
leftBlindspot = car_state.getLeftBlindspot();
rightBlindspot = car_state.getRightBlindspot();
showTurnSignals = s.scene.turn_signals;
}
void HudRendererSP::draw(QPainter &p, const QRect &surface_rect) {
@@ -139,10 +128,6 @@ void HudRendererSP::draw(QPainter &p, const QRect &surface_rect) {
drawSetSpeedSP(p, surface_rect);
}
if (!hideVEgoUI) {
drawCurrentSpeedSP(p, surface_rect);
}
if (!reversing) {
// Smart Cruise Control
int x_offset = -260;
@@ -185,6 +170,11 @@ void HudRendererSP::draw(QPainter &p, const QRect &surface_rect) {
drawRightDevUI(p, surface_rect.right() - 184 - UI_BORDER_SIZE * 2, UI_BORDER_SIZE * 2 + rect_right.height());
}
// Standstill Timer
if (standstillTimer) {
drawStandstillTimer(p, surface_rect.right() / 12 * 10, surface_rect.bottom() / 12 * 1.53);
}
// Speed Limit
bool showSpeedLimit;
bool speed_limit_assist_pre_active_pulse = pulseElement(speedLimitAssistFrame);
@@ -235,27 +225,9 @@ void HudRendererSP::draw(QPainter &p, const QRect &surface_rect) {
alert_img = devUiInfo > 0 ? lead_depart_alert_small_img : lead_depart_alert_large_img;
}
drawE2eAlert(p, surface_rect);
}
// Standstill Timer
else if (standstillTimer && isStandstill) {
alert_img = QPixmap();
standstillElapsedTime += 1.0 / UI_FREQ;
int minute = static_cast<int>(standstillElapsedTime / 60);
int second = static_cast<int>(standstillElapsedTime - (minute * 60));
alert_text = QString("%1:%2").arg(minute, 1, 10, QChar('0')).arg(second, 2, 10, QChar('0'));
drawE2eAlert(p, surface_rect, tr("STOPPED"));
e2eAlertFrame++;
}
// No Alerts displayed
else {
} else {
e2eAlertFrame = 0;
}
// Blinker
if (showTurnSignals) {
drawBlinker(p, surface_rect);
}
}
p.restore();
@@ -413,6 +385,40 @@ void HudRendererSP::drawBottomDevUI(QPainter &p, int x, int y) {
rw += drawBottomDevUIElement(p, rw, y, altitudeElement.value, altitudeElement.label, altitudeElement.units, altitudeElement.color);
}
void HudRendererSP::drawStandstillTimer(QPainter &p, int x, int y) {
if (isStandstill) {
standstillElapsedTime += 1.0 / UI_FREQ;
int minute = static_cast<int>(standstillElapsedTime / 60);
int second = static_cast<int>(standstillElapsedTime - (minute * 60));
// stop sign for standstill timer
const int size = 190; // size
const float angle = M_PI / 8.0;
QPolygon octagon;
for (int i = 0; i < 8; i++) {
float curr_angle = angle + i * M_PI / 4.0;
int point_x = x + size / 2 * cos(curr_angle);
int point_y = y + size / 2 * sin(curr_angle);
octagon << QPoint(point_x, point_y);
}
p.setPen(QPen(Qt::white, 6));
p.setBrush(QColor(255, 90, 81, 200)); // red pastel
p.drawPolygon(octagon);
QString time_str = QString("%1:%2").arg(minute, 1, 10, QChar('0')).arg(second, 2, 10, QChar('0'));
p.setFont(InterFont(55, QFont::Bold));
p.setPen(Qt::white);
QRect timerTextRect = p.fontMetrics().boundingRect(QString(time_str));
timerTextRect.moveCenter({x, y});
p.drawText(timerTextRect, Qt::AlignCenter, QString(time_str));
} else {
standstillElapsedTime = 0.0;
}
}
void HudRendererSP::drawSpeedLimitSigns(QPainter &p, QRect &sign_rect) {
bool speedLimitWarningEnabled = speedLimitMode >= SpeedLimitMode::WARNING; // TODO-SP: update to include SpeedLimitMode::ASSIST
bool hasSpeedLimit = speedLimitValid || speedLimitLastValid;
@@ -695,7 +701,7 @@ void HudRendererSP::drawSetSpeedSP(QPainter &p, const QRect &surface_rect) {
p.drawText(set_speed_rect.adjusted(0, 77, 0, 0), Qt::AlignTop | Qt::AlignHCenter, setSpeedStr);
}
void HudRendererSP::drawE2eAlert(QPainter &p, const QRect &surface_rect, const QString &alert_alt_text) {
void HudRendererSP::drawE2eAlert(QPainter &p, const QRect &surface_rect) {
int size = devUiInfo > 0 ? e2e_alert_small : e2e_alert_large;
int x = surface_rect.center().x() + surface_rect.width() / 4;
int y = surface_rect.center().y() + 40;
@@ -705,127 +711,23 @@ void HudRendererSP::drawE2eAlert(QPainter &p, const QRect &surface_rect, const Q
// Alert Circle
QPoint center = alertRect.center();
QColor frameColor;
if (not alert_alt_text.isEmpty()) frameColor = QColor(255, 255, 255, 75);
else frameColor = pulseElement(e2eAlertFrame) ? QColor(255, 255, 255, 75) : QColor(0, 255, 0, 75);
QColor frameColor = pulseElement(e2eAlertFrame) ? QColor(255, 255, 255, 75) : QColor(0, 255, 0, 75);
p.setPen(QPen(frameColor, 15));
p.setBrush(QColor(0, 0, 0, 190));
p.drawEllipse(center, size, size);
// Alert Text
QColor txtColor;
QFont font;
int alert_bottom_adjustment;
if (not alert_alt_text.isEmpty()) {
font = InterFont(100, QFont::Bold);
alert_bottom_adjustment = 5;
txtColor = QColor(255, 255, 255, 255);
} else {
font = InterFont(48, QFont::Bold);
alert_bottom_adjustment = 7;
txtColor = pulseElement(e2eAlertFrame) ? QColor(255, 255, 255, 255) : QColor(0, 255, 0, 190);
}
QColor txtColor = pulseElement(e2eAlertFrame) ? QColor(255, 255, 255, 255) : QColor(0, 255, 0, 255);
p.setFont(InterFont(48, QFont::Bold));
p.setPen(txtColor);
p.setFont(font);
QFontMetrics fm(p.font());
QRect textRect = fm.boundingRect(alertRect, Qt::TextWordWrap, alert_text);
textRect.moveCenter({alertRect.center().x(), alertRect.center().y()});
textRect.moveBottom(alertRect.bottom() - alertRect.height() / alert_bottom_adjustment);
textRect.moveBottom(alertRect.bottom() - alertRect.height() / 7);
p.drawText(textRect, Qt::AlignCenter, alert_text);
if (not alert_alt_text.isEmpty()) {
// Alert Alternate Text
p.setFont(InterFont(80, QFont::Bold));
p.setPen(QColor(255, 175, 3, 240));
QFontMetrics fmt(p.font());
QRect topTextRect = fmt.boundingRect(alertRect, Qt::TextWordWrap, alert_alt_text);
topTextRect.moveCenter({alertRect.center().x(), alertRect.center().y()});
topTextRect.moveTop(alertRect.top() + alertRect.height() / 3.5);
p.drawText(topTextRect, Qt::AlignCenter, alert_alt_text);
} else {
// Alert Image instead of Top Text
QPointF pixmapCenterOffset = QPointF(alert_img.width() / 2.0, alert_img.height() / 2.0);
QPointF drawPoint = center - pixmapCenterOffset;
p.drawPixmap(drawPoint, alert_img);
}
}
void HudRendererSP::drawCurrentSpeedSP(QPainter &p, const QRect &surface_rect) {
QString speedStr = QString::number(std::nearbyint(speed));
p.setFont(InterFont(176, QFont::Bold));
HudRenderer::drawText(p, surface_rect.center().x(), 210, speedStr);
p.setFont(InterFont(66));
HudRenderer::drawText(p, surface_rect.center().x(), 290, is_metric ? tr("km/h") : tr("mph"), 200);
}
void HudRendererSP::drawBlinker(QPainter &p, const QRect &surface_rect) {
if (!leftBlinkerOn && !rightBlinkerOn) {
blinkerFrameCounter = 0;
return;
}
++blinkerFrameCounter;
const int circleRadius = 44;
const int arrowLength = 44;
const int x_gap = 180;
const int y_offset = 272;
const int centerX = surface_rect.center().x();
const bool hazard = leftBlinkerOn && rightBlinkerOn;
const QPen bgBorder(Qt::white, 5);
const QPen arrowPen(Qt::NoPen);
p.save();
auto drawArrow = [&](int cx, int cy, int dir, const QBrush &arrowBrush) {
const int bodyLength = arrowLength / 2;
const int bodyWidth = arrowLength / 2;
const int headLength = arrowLength / 2;
const int headWidth = arrowLength;
QPolygon arrow;
arrow.reserve(7);
arrow << QPoint(cx - dir * bodyLength, cy - bodyWidth / 2)
<< QPoint(cx, cy - bodyWidth / 2)
<< QPoint(cx, cy - headWidth / 2)
<< QPoint(cx + dir * headLength, cy)
<< QPoint(cx, cy + headWidth / 2)
<< QPoint(cx, cy + bodyWidth / 2)
<< QPoint(cx - dir * bodyLength, cy + bodyWidth / 2);
p.setPen(arrowPen);
p.setBrush(arrowBrush);
p.drawPolygon(arrow);
};
auto drawCircle = [&](int cx, int cy, const QBrush &bgBrush) {
p.setPen(bgBorder);
p.setBrush(bgBrush);
p.drawEllipse(QPoint(cx, cy), circleRadius, circleRadius);
};
struct BlinkerSide { bool on; int dir; bool blocked; int cx; };
const std::array<BlinkerSide, 2> sides = {{
{leftBlinkerOn, -1, hazard ? true : (leftBlinkerOn && leftBlindspot), centerX - x_gap},
{rightBlinkerOn, 1, hazard ? true : (rightBlinkerOn && rightBlindspot), centerX + x_gap},
}};
for (const auto &s: sides) {
if (!s.on) continue;
QColor bgColor = s.blocked ? QColor(135, 23, 23) : QColor(23, 134, 68);
QColor arrowColor = s.blocked ? QColor(66, 12, 12) : QColor(12, 67, 34);
if (pulseElement(blinkerFrameCounter)) arrowColor = Qt::white;
const QBrush bgBrush(bgColor);
const QBrush arrowBrush(arrowColor);
drawCircle(s.cx, y_offset, bgBrush);
drawArrow(s.cx, y_offset, s.dir, arrowBrush);
}
p.restore();
// Alert Image
QPointF pixmapCenterOffset = QPointF(alert_img.width() / 2.0, alert_img.height() / 2.0);
QPointF drawPoint = center - pixmapCenterOffset;
p.drawPixmap(drawPoint, alert_img);
}
+1 -10
View File
@@ -36,9 +36,7 @@ private:
void drawRoadName(QPainter &p, const QRect &surface_rect);
void drawSpeedLimitPreActiveArrow(QPainter &p, QRect &sign_rect);
void drawSetSpeedSP(QPainter &p, const QRect &surface_rect);
void drawE2eAlert(QPainter &p, const QRect &surface_rect, const QString &alert_alt_text = "");
void drawCurrentSpeedSP(QPainter &p, const QRect &surface_rect);
void drawBlinker(QPainter &p, const QRect &surface_rect);
void drawE2eAlert(QPainter &p, const QRect &surface_rect);
bool lead_status;
float lead_d_rel;
@@ -108,11 +106,4 @@ private:
QPixmap lead_depart_alert_large_img;
QString alert_text;
QPixmap alert_img;
bool hideVEgoUI;
bool leftBlinkerOn;
bool rightBlinkerOn;
bool leftBlindspot;
bool rightBlindspot;
int blinkerFrameCounter;
bool showTurnSignals;
};
+2 -1
View File
@@ -95,12 +95,13 @@ QStringList searchFromList(const QString &query, const QStringList &list) {
return list;
}
QStringList search_terms = query.simplified().toLower().replace(QRegularExpression("[^a-zA-Z0-9\\s]"), " ").split(" ", QString::SkipEmptyParts);
QStringList search_terms = query.simplified().toLower().split(" ", QString::SkipEmptyParts);
QStringList search_results;
for (const QString &element : list) {
if (std::all_of(search_terms.begin(), search_terms.end(), [&](const QString &term) {
QString normalized_term = term.normalized(QString::NormalizationForm_KD).toLower();
normalized_term.remove(QRegularExpression("[^a-zA-Z0-9\\s]"));
QString normalized_element = element.normalized(QString::NormalizationForm_KD).toLower();
return normalized_element.contains(normalized_term, Qt::CaseInsensitive);
})) {
@@ -545,8 +545,10 @@ public:
main_layout->removeWidget(title_label);
hlayout->addWidget(title_label, 1);
}
main_layout->removeItem(spacingItem);
spacingItem = nullptr;
if (spacingItem != nullptr && main_layout->indexOf(spacingItem) != -1) {
main_layout->removeItem(spacingItem);
spacingItem = nullptr;
}
}
label.setStyleSheet(label_enabled_style);
@@ -14,10 +14,10 @@ ExpandableToggleRow::ExpandableToggleRow(const QString &param, const QString &ti
QObject::connect(this, &ExpandableToggleRow::toggleFlipped, this, &ExpandableToggleRow::toggleClicked);
collapsibleWidget = new QFrame(this);
collapsibleWidget->setContentsMargins(0, 0, 0, 0);
collapsibleWidget->setVisible(false);
QVBoxLayout *collapsible_layout = new QVBoxLayout();
collapsibleWidget->setLayout(collapsible_layout);
collapsible_layout->setContentsMargins(0, 0, 0, 0);
list = new ListWidgetSP(this, false);
-4
View File
@@ -64,16 +64,12 @@ void ui_update_params_sp(UIStateSP *s) {
s->scene.standstill_timer = params.getBool("StandstillTimer");
s->scene.speed_limit_mode = std::atoi(params.get("SpeedLimitMode").c_str());
s->scene.road_name = params.getBool("RoadNameToggle");
s->scene.trueVEgoUI = params.getBool("TrueVEgoUI");
s->scene.hideVEgoUI = params.getBool("HideVEgoUI");
// Onroad Screen Brightness
s->scene.onroadScreenOffBrightness = std::atoi(params.get("OnroadScreenOffBrightness").c_str());
s->scene.onroadScreenOffControl = params.getBool("OnroadScreenOffControl");
s->scene.onroadScreenOffTimerParam = std::atoi(params.get("OnroadScreenOffTimer").c_str());
s->reset_onroad_sleep_timer();
s->scene.turn_signals = params.getBool("ShowTurnSignals");
}
void UIStateSP::reset_onroad_sleep_timer() {
-3
View File
@@ -15,7 +15,4 @@ typedef struct UISceneSP : UIScene {
int onroadScreenOffBrightness, onroadScreenOffTimer = 0;
bool onroadScreenOffControl;
int onroadScreenOffTimerParam;
bool trueVEgoUI;
bool hideVEgoUI;
bool turn_signals = false;
} UISceneSP;
+1 -1
View File
@@ -29,7 +29,7 @@ UI_DELAY = 0.5 # may be slower on CI?
TEST_ROUTE = "a2a0ccea32023010|2023-07-27--13-01-19"
STREAMS: list[tuple[VisionStreamType, CameraConfig, bytes]] = []
OFFROAD_ALERTS = ['Offroad_StorageMissing', 'Offroad_IsTakingSnapshot']
OFFROAD_ALERTS = ['Offroad_IsTakingSnapshot', ]
DATA: dict[str, capnp.lib.capnp._DynamicStructBuilder] = dict.fromkeys(
["carParams", "deviceState", "pandaStates", "controlsState", "selfdriveState",
"liveCalibration", "modelV2", "radarState", "driverMonitoringState", "carState",
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -472,6 +464,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">إعادة التشغيل</translation>
@@ -516,6 +517,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -528,34 +533,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -617,61 +594,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>تشغيل وضع الراحة</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">التحقق</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -727,63 +649,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>MAX</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">كم/س</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">ميل/س</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">MAX</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -902,18 +767,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -937,34 +790,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1223,18 +1048,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1356,6 +1169,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation>يتم تنزيل تحديث لنظام تشغيل جهازك في الخلفية. سيطلَب منك التحديث عندما يصبح جاهزاً للتثبيت.</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>محرك NVMe غير مثبَّت.</translation>
</message>
<message>
<source>Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.</source>
<translation type="unfinished"></translation>
@@ -1394,10 +1211,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1784,59 +1597,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1931,10 +1691,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished">المطور</translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2171,84 +1927,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished">السابق</translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished">السابق</translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2631,60 +2309,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2695,10 +2319,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished">إلغاء</translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2742,91 +2362,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -472,6 +464,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Neustart</translation>
@@ -516,6 +517,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -528,34 +533,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -617,61 +594,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>ENTSPANNTER MODUS AN</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">ÜBERPRÜFEN</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -723,63 +645,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>MAX</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">MAX</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -894,18 +759,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -929,34 +782,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1215,18 +1040,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1344,6 +1157,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation>Ein Update für das Betriebssystem deines Geräts wird im Hintergrund heruntergeladen. Du wirst aufgefordert, das Update zu installieren, sobald es bereit ist.</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>NVMe-Laufwerk nicht gemounted.</translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation>Gerätetemperatur zu hoch. Das System kühlt ab, bevor es startet. Aktuelle interne Komponententemperatur: %1</translation>
@@ -1386,10 +1203,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1764,59 +1577,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1911,10 +1671,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished">Entwickler</translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2153,84 +1909,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished">Zurück</translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished">Zurück</translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2613,60 +2291,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2677,10 +2301,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished">Abbrechen</translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2724,91 +2344,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -476,6 +468,15 @@ La calibración del retraso de la dirección está completa.</translation>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Reiniciar</translation>
@@ -520,6 +521,10 @@ La calibración del retraso de la dirección está completa.</translation>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -532,34 +537,6 @@ La calibración del retraso de la dirección está completa.</translation>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -621,61 +598,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>MODO CHILL</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VERIFICAR</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -727,63 +649,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>MAX</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">MAX</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -898,18 +763,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -933,34 +786,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1219,18 +1044,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1352,6 +1165,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation>Se está descargando una actualización del sistema operativo de su dispositivo en segundo plano. Se le pedirá que actualice cuando esté listo para instalarse.</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>Unidad NVMe no montada.</translation>
</message>
<message>
<source>Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.</source>
<translation type="unfinished"></translation>
@@ -1390,10 +1207,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1768,59 +1581,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1915,10 +1675,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished">Desarrollador</translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2155,84 +1911,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2615,60 +2293,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2679,10 +2303,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2726,91 +2346,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -472,6 +464,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Redémarrer</translation>
@@ -516,6 +517,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -528,34 +533,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -617,61 +594,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>MODE DÉTENTE ACTIVÉ</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VÉRIFIER</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -723,63 +645,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>MAX</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mi/h</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">MAX</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -894,18 +759,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -929,34 +782,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1215,18 +1040,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1348,6 +1161,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation>Une mise à jour du système d&apos;exploitation de votre appareil est en cours de téléchargement en arrière-plan. Vous serez invité à effectuer la mise à jour lorsqu&apos;elle sera prête à être installée.</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>Le disque NVMe n&apos;est pas monté.</translation>
</message>
<message>
<source>Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.</source>
<translation type="unfinished"></translation>
@@ -1386,10 +1203,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1764,59 +1577,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1911,10 +1671,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished">Dév.</translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2151,84 +1907,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished">Retour</translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished">Retour</translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2611,60 +2289,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2675,10 +2299,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished">Annuler</translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2722,91 +2342,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -476,6 +468,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
@@ -520,6 +521,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -532,34 +537,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -621,61 +598,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>CHILLモード</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -726,63 +648,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation></translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -896,18 +761,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -931,34 +784,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1217,18 +1042,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1346,6 +1159,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation></translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>SSDドライブ(NVMe)</translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation>: %1</translation>
@@ -1388,10 +1205,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1763,59 +1576,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1910,10 +1670,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2150,84 +1906,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2610,60 +2288,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2674,10 +2298,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2721,91 +2341,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+26 -491
View File
@@ -134,6 +134,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation> .</translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation> ()</translation>
@@ -142,14 +150,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -254,14 +254,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation> .&lt;br&gt; &apos; &apos; .</translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -480,6 +472,16 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation> </translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation> </translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation> .
.</translation>
</message>
<message>
<source>Reboot</source>
<translation></translation>
@@ -524,6 +526,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation> </translation>
</message>
<message>
<source>Always Offroad</source>
<translation> </translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation> 기본값: 기기가 / , .</translation>
@@ -536,35 +542,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation>/ .</translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"> .
.</translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -626,61 +603,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation> </translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -733,63 +655,6 @@ Firehose 모드를 사용하면 훈련 데이터 업로드를 극대화하여 op
<translation></translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -903,18 +768,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation> MADS .</translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -938,34 +791,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation> .</translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1225,18 +1050,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1354,6 +1167,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation> . .</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>NVMe .</translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation> . . %1.</translation>
@@ -1398,10 +1215,6 @@ The default software delay value is 0.2</source>
%1</translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1777,59 +1590,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation>sunnypilot</translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1924,10 +1684,6 @@ Data</source>
<source>Developer</source>
<translation></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2164,84 +1920,6 @@ Data</source>
<translation> .</translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2624,60 +2302,6 @@ Data</source>
<translation> sunnypilot () .</translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2688,10 +2312,6 @@ Data</source>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2735,91 +2355,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation> . (openpilot )</translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -476,6 +468,15 @@ A calibração do atraso da direção foi concluída.</translation>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Reiniciar</translation>
@@ -520,6 +521,10 @@ A calibração do atraso da direção foi concluída.</translation>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -532,34 +537,6 @@ A calibração do atraso da direção foi concluída.</translation>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -621,61 +598,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>MODO CHILL ON</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VERIFICAR</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -727,63 +649,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>LIMITE</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">LIMITE</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -898,18 +763,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -933,34 +786,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1219,18 +1044,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1348,6 +1161,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation>Uma atualização para o sistema operacional do seu dispositivo está sendo baixada em segundo plano. Você será solicitado a atualizar quando estiver pronto para instalar.</translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>Unidade NVMe não montada.</translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation>Temperatura do dispositivo muito alta. O sistema está sendo resfriado antes de iniciar. A temperatura atual do componente interno é: %1</translation>
@@ -1390,10 +1207,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1768,59 +1581,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1915,10 +1675,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished">Desenvdor</translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2155,84 +1911,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished">Voltar</translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished">Voltar</translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2615,60 +2293,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2679,10 +2303,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2726,91 +2346,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -472,6 +464,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
@@ -516,6 +517,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -528,34 +533,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -617,61 +594,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -722,63 +644,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation></translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">./.</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">/.</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -892,18 +757,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -927,34 +780,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1213,18 +1038,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1346,6 +1159,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation> </translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation> NVMe</translation>
</message>
<message>
<source>Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.</source>
<translation type="unfinished"></translation>
@@ -1384,10 +1201,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1759,59 +1572,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1906,10 +1666,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2146,84 +1902,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2606,60 +2284,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2670,10 +2294,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2717,91 +2337,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -472,6 +464,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Yeniden başlat</translation>
@@ -516,6 +517,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -528,34 +533,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -617,61 +594,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">KONTROL ET</translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -722,63 +644,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation>MAX</translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished">MAX</translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -892,18 +757,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -927,34 +780,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1213,18 +1038,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1345,6 +1158,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Device failed to register with the comma.ai backend. It will not connect or upload to comma.ai servers, and receives no support from comma.ai. If this is a device purchased at comma.ai/shop, open a ticket at https://comma.ai/support.</source>
<translation type="unfinished"></translation>
@@ -1383,10 +1200,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1758,59 +1571,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1905,10 +1665,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2145,84 +1901,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2605,60 +2283,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2669,10 +2293,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2716,91 +2336,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -476,6 +468,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
@@ -520,6 +521,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -532,34 +537,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -621,61 +598,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -726,63 +648,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation></translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -896,18 +761,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -931,34 +784,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1217,18 +1042,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1346,6 +1159,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation></translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>NVMe固态硬盘未被挂载</translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation>%1</translation>
@@ -1388,10 +1205,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1763,59 +1576,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1910,10 +1670,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2150,84 +1906,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2610,60 +2288,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2674,10 +2298,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2721,91 +2341,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+25 -490
View File
@@ -133,6 +133,14 @@ Please use caution when using this feature. Only use the blinker when traffic an
</context>
<context>
<name>Brightness</name>
<message>
<source>Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Auto (Dark)</source>
<translation type="unfinished"></translation>
@@ -141,14 +149,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Overrides the brightness of the device. This applies to both onroad and offroad screens. </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
@@ -250,14 +250,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Copyparty service</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copyparty is a very capable file server, you can use it to download your routes, view your logs and even make some edits on some files from your browser. Requires you to connect to your comma locally via it&apos;s IP.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DevicePanel</name>
@@ -476,6 +468,15 @@ Steering lag calibration is complete.</source>
<source>Wake-Up Behavior</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
@@ -520,6 +521,10 @@ Steering lag calibration is complete.</source>
<source>Exit Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
@@ -532,34 +537,6 @@ Steering lag calibration is complete.</source>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Onroad Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Always Offroad</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DisplayPanel</name>
<message>
<source>Onroad Screen: Reduced Brightness</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Turn off device screen or reduce brightness after driving starts. It automatically brightens again when screen is touched or a visible alert is displayed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Interactivity Timeout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Apply a custom timeout for settings UI.
This is the time after which settings UI closes automatically if user is not interacting with the screen.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -621,61 +598,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation> ON</translation>
</message>
</context>
<context>
<name>ExternalStorageControl</name>
<message>
<source>External Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Extend your comma device&apos;s storage by inserting a USB drive into the aux port.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UNMOUNT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>FORMAT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Are you sure you want to format this drive? This will erase all data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>formatting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>insert drive</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>needs format</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mounting</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unmounting</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>FirehosePanel</name>
<message>
@@ -726,63 +648,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<translation></translation>
</message>
</context>
<context>
<name>HudRendererSP</name>
<message>
<source>km/h</source>
<translation type="unfinished">km/h</translation>
</message>
<message>
<source>mph</source>
<translation type="unfinished">mph</translation>
</message>
<message>
<source>GREEN
LIGHT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LEAD VEHICLE
DEPARTING</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SPEED</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LIMIT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Near</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>km</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>mi</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ft</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AHEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>MAX</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HyundaiSettings</name>
<message>
@@ -896,18 +761,6 @@ DEPARTING</source>
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforce Torque Lateral Control</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this to enforce sunnypilot to steer with Torque lateral control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Params</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
@@ -931,34 +784,6 @@ DEPARTING</source>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Intelligent Cruise Button Management (ICBM) (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, sunnypilot will attempt to manage the built-in cruise control buttons by emulating button presses for limited longitudinal control.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use vision path predictions to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Smart Cruise Control - Map</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use map data to estimate the appropriate speed to drive through turns ahead.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -1217,18 +1042,6 @@ The default software delay value is 0.2</source>
<source>Total Delay:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Lane Turn Desires</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Lane Turn Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Set the maximum speed for lane turn desires. Default is 19 %1.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1346,6 +1159,10 @@ The default software delay value is 0.2</source>
<source>An update to your device&apos;s operating system is downloading in the background. You will be prompted to update when it&apos;s ready to install.</source>
<translation></translation>
</message>
<message>
<source>NVMe drive not mounted.</source>
<translation>NVMe </translation>
</message>
<message>
<source>Device temperature too high. System cooling down before starting. Current internal component temperature: %1</source>
<translation>%1</translation>
@@ -1388,10 +1205,6 @@ The default software delay value is 0.2</source>
%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;b&gt;Unsupported branch detected&lt;/b&gt; - The current version of &lt;b&gt;&lt;u&gt;%1&lt;/u&gt;&lt;/b&gt; branch is no longer supported on the comma three. Please go to &lt;b&gt;[Device &gt; Software]&lt;/b&gt; and install a supported branch with &lt;b&gt;&lt;u&gt;-tici&lt;/u&gt;&lt;/b&gt; in the branch name for the comma three.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OffroadHome</name>
@@ -1763,59 +1576,6 @@ Warning: You are on a metered connection!</source>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fixed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Percent</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
Only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Car
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Map
First</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Combined
Data</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Warning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Assist</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsWindow</name>
@@ -1910,10 +1670,6 @@ Data</source>
<source>Developer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2150,84 +1906,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitPolicy</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car Only: Use Speed Limit data only from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map Only: Use Speed Limit data only from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Car First: Use Speed Limit data from Car if available, else use from OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Map First: Use Speed Limit data from OpenStreetMaps if available, else use from Car</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Combined: Use combined Speed Limit data from Car &amp; OpenStreetMaps</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SpeedLimitSettings</name>
<message>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Customize Source</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed Limit Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ None: No Offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Fixed: Adds a fixed offset [Speed Limit + Offset]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Percent: Adds a percent offset [Speed Limit + (Offset % Speed Limit)]</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Off: Disables the Speed Limit functions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Information: Displays the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Warning: Provides a warning when exceeding the current road&apos;s speed limit.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>⦿ Assist: Adjusts the vehicle&apos;s cruise speed based on the current road&apos;s speed limit when operating the +/- buttons.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
<message>
@@ -2610,60 +2288,6 @@ Data</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlCustomParams</name>
<message>
<source>Manual Real-Time Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enforces the torque lateral controller to use the fixed values instead of the learned values from Self-Tune. Enabling this toggle overrides Self-Tune values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lateral Acceleration Factor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Friction</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Real-time and Offline</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Only</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TorqueLateralControlSettings</name>
<message>
<source>Self-Tune</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables self-tune for Torque lateral control for platforms that do not use Torque lateral control by default.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less Restrict Settings for Self-Tune (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Less strict settings when using Self-Tune. This allows torqued to be more forgiving when learning values.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Custom Tuning</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enables custom tuning for Torque lateral control. Modifying Lateral Acceleration Factor and Friction below will override the offline values indicated in the YAML files within &quot;opendbc/car/torque_data&quot;. The values will also be used live when &quot;Manual Real-Time Tuning&quot; toggle is enabled.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
@@ -2674,10 +2298,6 @@ Data</source>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Favorites</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
@@ -2721,91 +2341,6 @@ Data</source>
<source>Display useful metrics below the chevron that tracks the lead car (only applicable to cars with openpilot longitudinal control).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Tesla Rainbow Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A beautiful rainbow effect on the path the model wants to take.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>It</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>does not</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>affect driving in any way.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Standstill Timer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Show a timer on the HUD when the car is at a standstill.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Road Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Displays the name of the road the car is traveling on. The OpenStreetMap database of the location must be downloaded from the OSM panel to fetch the road name.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Green Traffic Light Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when the traffic light you are waiting for turns green and you have no vehicle in front of you.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: This chime is only designed as a notification. It is the driver&apos;s responsibility to observe their environment and make decisions accordingly.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Lead Departure Alert (Beta)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>A chime and on-screen alert will play when you are stopped, and the vehicle in front of you start moving.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Always Display True Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Always display the true vehicle current speed from wheel speed sensors.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speedometer: Hide from Onroad Screen</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Right &amp;&amp;
Bottom</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Developer UI</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display real-time parameters and metrics from various sources.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WiFiPromptWidget</name>
+1 -2
View File
@@ -55,8 +55,7 @@ void update_state(UIState *s) {
}
if (sm.updated("wideRoadCameraState")) {
auto cam_state = sm["wideRoadCameraState"].getWideRoadCameraState();
float scale = (cam_state.getSensor() == cereal::FrameData::ImageSensor::AR0231) ? 6.0f : 1.0f;
scene.light_sensor = std::max(100.0f - scale * cam_state.getExposureValPercent(), 0.0f);
scene.light_sensor = std::max(100.0f - cam_state.getExposureValPercent(), 0.0f);
} else if (!sm.allAliveAndValid({"wideRoadCameraState"})) {
scene.light_sensor = -1;
}
+1 -4
View File
@@ -105,10 +105,7 @@ class UIState:
# Handle wide road camera state updates
if self.sm.updated["wideRoadCameraState"]:
cam_state = self.sm["wideRoadCameraState"]
# Scale factor based on sensor type
scale = 6.0 if cam_state.sensor == 'ar0231' else 1.0
self.light_sensor = max(100.0 - scale * cam_state.exposureValPercent, 0.0)
self.light_sensor = max(100.0 - cam_state.exposureValPercent, 0.0)
elif not self.sm.alive["wideRoadCameraState"] or not self.sm.valid["wideRoadCameraState"]:
self.light_sensor = -1
-11
View File
@@ -4,15 +4,4 @@ Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
import hashlib
PARAMS_UPDATE_PERIOD = 3 # seconds
def get_file_hash(path: str) -> str:
sha256_hash = hashlib.sha256()
with open(path, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256_hash.update(byte_block)
return sha256_hash.hexdigest()
-1
View File
@@ -131,7 +131,6 @@ class ModularAssistiveDrivingSystem:
self.transition_paused_state()
self.events.remove(EventName.preEnableStandstill)
self.events.remove(EventName.belowEngageSpeed)
self.events.remove(EventName.speedTooLow)
self.events.remove(EventName.cruiseDisabled)
self.events.remove(EventName.manualRestart)
+1 -1
View File
@@ -22,7 +22,7 @@ from openpilot.system.version import is_prebuilt
from openpilot.sunnypilot.mapd import MAPD_PATH, MAPD_BIN_DIR
import openpilot.system.sentry as sentry
VERSION = "v1.12.0"
VERSION = 'v1.11.0'
URL = f"https://github.com/pfeiferj/openpilot-mapd/releases/download/{VERSION}/mapd"
View File
-1
View File
@@ -1 +0,0 @@
fdb3b49ee19956e6ce09fdc3373cbba557f1263b2180e9f344c1d4053852284b
@@ -1,19 +0,0 @@
"""
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
from openpilot.sunnypilot import get_file_hash
from openpilot.sunnypilot.mapd import MAPD_PATH
from openpilot.sunnypilot.mapd.update_version import MAPD_HASH_PATH
class TestMapdVersion:
def test_compare_versions(self):
mapd_hash = get_file_hash(MAPD_PATH)
with open(MAPD_HASH_PATH) as f:
current_hash = f.read().strip()
assert current_hash == mapd_hash, "Run sunnypilot/mapd/update_version.py to update the current mapd version and hash"
-97
View File
@@ -1,97 +0,0 @@
#!/usr/bin/env python3
"""
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
import argparse
import os
import re
from openpilot.sunnypilot import get_file_hash
from openpilot.common.basedir import BASEDIR
from openpilot.sunnypilot.mapd import MAPD_PATH
MAPD_HASH_PATH = os.path.join(BASEDIR, "sunnypilot", "mapd", "tests", "mapd_hash")
MAPD_VERSION_PATH = os.path.join(BASEDIR, "sunnypilot", "mapd", "mapd_installer.py")
def update_mapd_hash():
mapd_hash = get_file_hash(MAPD_PATH)
with open(MAPD_HASH_PATH, "w") as f:
f.write(mapd_hash)
print(f"Generated and updated new mapd hash to {MAPD_HASH_PATH}")
def get_current_mapd_version(path: str) -> str:
print("[GET CURRENT MAPD VERSION]")
with open(path) as f:
for line in f:
if line.strip().startswith("VERSION"):
# Match VERSION = 'v1.11.0' or VERSION="v1.11.0" (with optional spaces)
match = re.search(r'VERSION\s*=\s*[\'"]([^\'"]+)[\'"]', line)
if match:
ver = match.group(1)
print(f'Current mapd version: "{ver}"')
return ver
else:
print("[ERROR] VERSION line found but no quoted value detected.")
return ""
print("[ERROR] VERSION not found in file!")
return ""
def update_mapd_version(ver: str, path: str):
print("[CHANGE CURRENT MAPD VERSION]")
with open(path) as f:
lines = f.readlines()
found = False
new_lines = []
for line in lines:
if not found and line.startswith("VERSION ="):
new_lines.append(f'VERSION = "{ver}"\n')
found = True
new_lines.extend(lines[lines.index(line) + 1:])
break
else:
new_lines.append(line)
if not found:
print("[ERROR] VERSION line not found! Aborting without writing.")
return
with open(path, "w") as f:
f.writelines(new_lines)
print(f'New mapd version: "{ver}"')
print("[DONE]")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Update mapd version and hash")
parser.add_argument("--new_ver", type=str, help="New mapd version")
args = parser.parse_args()
if not args.new_ver:
print("Warning: No new mapd version provided. Use --new_ver to specify")
print("Example:")
print(" python sunnypilot/mapd/update_version.py --new_ver \"v1.12.0\"")
print("Current mapd version and hash will not be updated! (aborted)")
exit(0)
current_ver = get_current_mapd_version(MAPD_VERSION_PATH)
new_ver = f"{args.new_ver}"
if current_ver == new_ver:
print(f'Proposed mapd version: "{new_ver}"')
confirm = input("Proposed mapd version is the same as the current mapd version. Confirm? (y/n): ").upper().strip()
if confirm != "Y":
print("Current mapd version and hash will not be updated! (aborted)")
exit(0)
update_mapd_version(new_ver, MAPD_VERSION_PATH)
update_mapd_hash()
View File
+8 -1
View File
@@ -3,7 +3,6 @@ import os
import hashlib
from openpilot.common.basedir import BASEDIR
from openpilot.sunnypilot import get_file_hash
DEFAULT_MODEL_NAME_PATH = os.path.join(BASEDIR, "common", "model.h")
MODEL_HASH_PATH = os.path.join(BASEDIR, "sunnypilot", "models", "tests", "model_hash")
@@ -11,6 +10,14 @@ VISION_ONNX_PATH = os.path.join(BASEDIR, "selfdrive", "modeld", "models", "drivi
POLICY_ONNX_PATH = os.path.join(BASEDIR, "selfdrive", "modeld", "models", "driving_policy.onnx")
def get_file_hash(path: str) -> str:
sha256_hash = hashlib.sha256()
with open(path, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256_hash.update(byte_block)
return sha256_hash.hexdigest()
def update_model_hash():
vision_hash = get_file_hash(VISION_ONNX_PATH)
policy_hash = get_file_hash(POLICY_ONNX_PATH)
@@ -1,12 +1,4 @@
"""
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
from openpilot.sunnypilot import get_file_hash
from openpilot.sunnypilot.models.default_model import MODEL_HASH_PATH, VISION_ONNX_PATH, POLICY_ONNX_PATH
from openpilot.sunnypilot.models.default_model import get_file_hash, MODEL_HASH_PATH, VISION_ONNX_PATH, POLICY_ONNX_PATH
import hashlib
+1 -1
View File
@@ -37,7 +37,7 @@ class CarSpecificEventsSP:
# TODO-SP: add 1 m/s hysteresis
if CS.vEgo >= self.CP.minEnableSpeed:
self.low_speed_alert = False
if CS.gearShifter != GearShifter.drive:
if self.CP.minEnableSpeed >= 14.5 and CS.gearShifter != GearShifter.drive:
self.low_speed_alert = True
if self.low_speed_alert:
events.add(EventName.belowSteerSpeed)
@@ -10,6 +10,7 @@ from cereal import log, custom
from opendbc.car import structs
from openpilot.common.params import Params
from openpilot.common.swaglog import cloudlog
from openpilot.sunnypilot.selfdrive.controls.lib.param_store import ParamStore
from openpilot.sunnypilot.selfdrive.controls.lib.blinker_pause_lateral import BlinkerPauseLateral
@@ -18,6 +19,7 @@ class ControlsExt:
self.CP = CP
self.params = params
self.blinker_pause_lateral = BlinkerPauseLateral()
self.param_store = ParamStore(self.CP)
self.get_params_sp()
cloudlog.info("controlsd_ext is waiting for CarParamsSP")
@@ -28,6 +30,7 @@ class ControlsExt:
self.pm_services_ext = ['carControlSP']
def get_params_sp(self) -> None:
self.param_store.update(self.params)
self.blinker_pause_lateral.get_params()
def get_lat_active(self, sm: messaging.SubMaster) -> bool:
@@ -70,6 +73,8 @@ class ControlsExt:
# MADS state
CC_SP.mads = sm['selfdriveStateSP'].mads
CC_SP.params = self.param_store.param_list
CC_SP.intelligentCruiseButtonManagement = sm['selfdriveStateSP'].intelligentCruiseButtonManagement
return CC_SP
@@ -58,8 +58,7 @@ class LatControlTorqueExtBase:
self.torque_from_lateral_accel_in_torque_space = CI.torque_from_lateral_accel_in_torque_space()
self._ff = 0.0
self._pid = PIDController(self.torque_params.kp, self.torque_params.ki,
k_f=self.torque_params.kf)
self._pid = PIDController(0.0, 0.0, k_f=0.0)
self._pid_log = None
self._setpoint = 0.0
self._measurement = 0.0
@@ -0,0 +1,44 @@
"""
Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors.
This file is part of sunnypilot and is licensed under the MIT License.
See the LICENSE.md file in the root directory for more details.
"""
from cereal import custom
from opendbc.car import structs
from openpilot.common.params import Params
from sunnypilot.sunnylink.utils import get_param_as_byte
class ParamStore:
keys: list[str]
_params: dict[str, custom.CarControlSP.Param]
def __init__(self, CP: structs.CarParams):
universal_params: list[str] = []
brand_params: list[str] = []
self.keys = universal_params + brand_params
self._params = {}
self.frame = -1
def update(self, params: Params) -> None:
self.frame += 1
if self.frame % 300 != 0:
return
for key in self.keys:
param_type = params.get_type(key).name.lower() # Using string instead of number because its "loose" dependency, and could change by OP at anytime.
# Over engineering opportunity: It's possible this conversion is slow, we may check the value as params returns it for cache purposes. Not today.
param_value = get_param_as_byte(key, params)
if (existing_param := self._params.get(key)) is not None and existing_param.value == param_value:
continue
self._params[key] = custom.CarControlSP.Param(key=key, value=param_value, type=param_type)
@property
def param_list(self) -> list[custom.CarControlSP.Param]:
return [v for k,v in self._params.items()]
@@ -13,7 +13,7 @@ from openpilot.common.params import Params
from openpilot.common.realtime import DT_MDL
from openpilot.sunnypilot import PARAMS_UPDATE_PERIOD
RELAXED_MIN_BUCKET_POINTS = np.array([1, 200, 300, 500, 500, 300, 200, 1])
RELAXED_MIN_BUCKET_POINTS = np.array([0, 200, 300, 500, 500, 300, 200, 0])
ALLOWED_CARS = ['toyota', 'hyundai', 'rivian', 'honda']
+1 -1
View File
@@ -147,7 +147,7 @@ class SunnylinkApi(BaseApi):
self.params.put("SunnylinkDongleId", sunnylink_dongle_id or UNREGISTERED_SUNNYLINK_DONGLE_ID)
# Set the last ping time to the current time since we were just talking to the API
last_ping = int((time.monotonic() if successful_registration else start_time) * 1e9)
last_ping = int(time.monotonic() * 1e9) if successful_registration else start_time
Params().put("LastSunnylinkPingTime", last_ping)
# Disable sunnylink if registration was not successful
+1 -18
View File
@@ -178,29 +178,12 @@ def getParamsAllKeys() -> list[str]:
return keys
@dispatcher.add_method
def getParamsAllKeysV1() -> dict[str, str]:
available_keys: list[str] = [k.decode('utf-8') for k in Params().all_keys()]
params_dict: dict[str, list[dict[str, str | bool | int | None]]] = {"params": []}
for key in available_keys:
value = get_param_as_byte(key, get_default=True)
params_dict["params"].append({
"key": key,
"type": int(params.get_type(key).value),
"default_value": base64.b64encode(value).decode('utf-8') if value else None,
})
return {"keys": json.dumps(params_dict.get("params", []))}
@dispatcher.add_method
def getParams(params_keys: list[str], compression: bool = False) -> str | dict[str, str]:
params = Params()
available_keys: list[str] = [k.decode('utf-8') for k in Params().all_keys()]
try:
param_keys_validated = [key for key in params_keys if key in available_keys]
param_keys_validated = [key for key in params_keys if key in getParamsAllKeys()]
params_dict: dict[str, list[dict[str, str | bool | int]]] = {"params": []}
for key in param_keys_validated:
value = get_param_as_byte(key)
+9 -15
View File
@@ -1,7 +1,6 @@
#!/usr/bin/env python3
import time
from openpilot.common.params import Params
from openpilot.common.realtime import Ratekeeper
from openpilot.common.swaglog import cloudlog
@@ -13,22 +12,17 @@ NetworkType = log.DeviceState.NetworkType
def main():
"""The main method is expected to be called by the manager when the device boots up."""
try:
rk = Ratekeeper(.5)
sm = messaging.SubMaster(['deviceState'], poll='deviceState')
while True:
sm.update(1000)
if sm['deviceState'].networkType != NetworkType.none:
break
rk = Ratekeeper(.5)
sm = messaging.SubMaster(['deviceState'], poll='deviceState')
while True:
sm.update(1000)
if sm['deviceState'].networkType != NetworkType.none:
break
cloudlog.info(f"Waiting to become online... {time.monotonic()}")
rk.keep_time()
cloudlog.info(f"Waiting to become online... {time.monotonic()}")
rk.keep_time()
register_sunnylink()
except Exception:
cloudlog.exception("Sunnylink registration failed")
Params().put_bool("SunnylinkTempFault", True)
raise
register_sunnylink()
if __name__ == "__main__":
+12 -23
View File
@@ -6,32 +6,31 @@ from openpilot.common.params import Params, ParamKeyType
from openpilot.system.version import is_prebuilt
def get_sunnylink_status(params=None) -> tuple[bool, bool, bool]:
def get_sunnylink_status(params=None) -> tuple[bool, bool]:
"""Get the status of Sunnylink on the device. Returns a tuple of (is_sunnylink_enabled, is_registered)."""
params = params or Params()
is_sunnylink_enabled = params.get_bool("SunnylinkEnabled")
is_registered = params.get("SunnylinkDongleId") not in (None, UNREGISTERED_SUNNYLINK_DONGLE_ID)
is_on_temporary_fault = params.get_bool("SunnylinkTempFault")
return is_sunnylink_enabled, is_registered, is_on_temporary_fault
return is_sunnylink_enabled, is_registered
def sunnylink_ready(params=None) -> bool:
"""Check if the device is ready to communicate with Sunnylink. That means it is enabled and registered."""
params = params or Params()
is_sunnylink_enabled, is_registered, is_on_temporary_fault = get_sunnylink_status(params)
return is_sunnylink_enabled and is_registered and not is_on_temporary_fault
is_sunnylink_enabled, is_registered = get_sunnylink_status(params)
return is_sunnylink_enabled and is_registered
def use_sunnylink_uploader(params) -> bool:
"""Check if the device is ready to use Sunnylink and the uploader is enabled."""
return not params.get_bool("NetworkMetered") and sunnylink_ready(params) and params.get_bool("EnableSunnylinkUploader")
return sunnylink_ready(params) and params.get_bool("EnableSunnylinkUploader")
def sunnylink_need_register(params=None) -> bool:
"""Check if the device needs to be registered with Sunnylink."""
params = params or Params()
is_sunnylink_enabled, is_registered, is_on_temporary_fault = get_sunnylink_status(params)
return is_sunnylink_enabled and not is_registered and not is_on_temporary_fault
is_sunnylink_enabled, is_registered = get_sunnylink_status(params)
return is_sunnylink_enabled and not is_registered
def register_sunnylink():
@@ -48,12 +47,8 @@ def register_sunnylink():
"timeout": 60
}
try:
sunnylink_id = SunnylinkApi(None).register_device(None, **extra_args)
print(f"SunnyLinkId: {sunnylink_id}")
except Exception:
Params().put_bool("SunnylinkTempFault", True)
raise
sunnylink_id = SunnylinkApi(None).register_device(None, **extra_args)
print(f"SunnyLinkId: {sunnylink_id}")
def get_api_token():
@@ -65,20 +60,14 @@ def get_api_token():
print(f"API Token: {token}")
def get_param_as_byte(param_name: str, params=None, get_default=False) -> bytes | None:
def get_param_as_byte(param_name: str, params=None) -> bytes | None:
"""Get a parameter as bytes. Returns None if the parameter does not exist."""
params = params or Params()
param = params.get(param_name) if not get_default else params.get_default_value(param_name)
params = params or Params() # Use existing Params instance if provided
param = params.get(param_name)
if param is None:
return None
param_type = params.get_type(param_name)
return _to_bytes(param, param_type)
def _to_bytes(param: bytes, param_type: ParamKeyType) -> bytes | None:
"""Convert a parameter value to bytes based on its type."""
if param_type == ParamKeyType.BYTES:
return bytes(param)
elif param_type == ParamKeyType.JSON:
+1 -1
View File
@@ -13,7 +13,7 @@ typedef enum {
ISP_BPS_PROCESSED, // fully processed image through the BPS
} SpectraOutputType;
// For the comma 3/3X three camera platform
// For the comma 3X three camera platform
struct CameraConfig {
int camera_num;
-7
View File
@@ -6,7 +6,6 @@ import struct
import threading
import time
from collections import OrderedDict, namedtuple
from pathlib import Path
import psutil
@@ -342,12 +341,6 @@ def hardware_thread(end_event, hw_queue) -> None:
show_alert = (not onroad_conditions["device_temp_good"] or not startup_conditions["device_temp_engageable"]) and onroad_conditions["ignition"]
set_offroad_alert_if_changed("Offroad_TemperatureTooHigh", show_alert, extra_text=extra_text)
# TODO: this should move to TICI.initialize_hardware, but we currently can't import params there
if TICI and HARDWARE.get_device_type() == "tici":
if not os.path.isfile("/persist/comma/living-in-the-moment"):
if not Path("/data/media").is_mount():
set_offroad_alert_if_changed("Offroad_StorageMissing", True)
# Handle offroad/onroad transition
should_start = all(onroad_conditions.values())
if started_ts is None:
-12
View File
@@ -61,18 +61,6 @@ BASE_CONFIG = [
]
CONFIGS = {
"tici": [
AmpConfig("Right speaker output from right DAC", 0b1, 0x2C, 0, 0b11111111),
AmpConfig("Right Speaker Mixer Gain", 0b00, 0x2D, 2, 0b00001100),
AmpConfig("Right speaker output volume", 0x1c, 0x3E, 0, 0b00011111),
AmpConfig("DAI2 EQ enable", 0b1, 0x49, 1, 0b00000010),
*configs_from_eq_params(0x84, EQParams(0x274F, 0xC0FF, 0x3BF9, 0x0B3C, 0x1656)),
*configs_from_eq_params(0x8E, EQParams(0x1009, 0xC6BF, 0x2952, 0x1C97, 0x30DF)),
*configs_from_eq_params(0x98, EQParams(0x0F75, 0xCBE5, 0x0ED2, 0x2528, 0x3E42)),
*configs_from_eq_params(0xA2, EQParams(0x091F, 0x3D4C, 0xCE11, 0x1266, 0x2807)),
*configs_from_eq_params(0xAC, EQParams(0x0A9E, 0x3F20, 0xE573, 0x0A8B, 0x3A3B)),
],
"tizi": [
AmpConfig("Left speaker output from left DAC", 0b1, 0x2B, 0, 0b11111111),
AmpConfig("Right speaker output from right DAC", 0b1, 0x2C, 0, 0b11111111),
+5 -10
View File
@@ -425,9 +425,6 @@ class Tici(HardwareBase):
# pandad core
affine_irq(3, "spi_geni") # SPI
if "tici" in self.get_device_type():
affine_irq(3, "xhci-hcd:usb3") # aux panda USB (or potentially anything else on USB)
affine_irq(3, "xhci-hcd:usb1") # internal panda USB (also modem)
try:
pid = subprocess.check_output(["pgrep", "-f", "spi0"], encoding='utf8').strip()
subprocess.call(["sudo", "chrt", "-f", "-p", "1", pid])
@@ -446,22 +443,20 @@ class Tici(HardwareBase):
cmds = []
if self.get_device_type() in ("tici", "tizi"):
if self.get_device_type() in ("tizi", ):
# clear out old blue prime initial APN
os.system('mmcli -m any --3gpp-set-initial-eps-bearer-settings="apn="')
cmds += [
# SIM hot swap
'AT+QSIMDET=1,0',
'AT+QSIMSTAT=1',
# configure modem as data-centric
'AT+QNVW=5280,0,"0102000000000000"',
'AT+QNVFW="/nv/item_files/ims/IMS_enable",00',
'AT+QNVFW="/nv/item_files/modem/mmode/ue_usage_setting",01',
]
if self.get_device_type() == "tizi":
# SIM hot swap, not routed on tici
cmds += [
'AT+QSIMDET=1,0',
'AT+QSIMSTAT=1',
]
elif manufacturer == 'Cavli Inc.':
cmds += [
'AT^SIMSWAP=1', # use SIM slot, instead of internal eSIM
-5
View File
@@ -1,5 +1,3 @@
# TODO: these are also defined in a header
# GPIO pin definitions
class GPIO:
# both GPIO_STM_RST_N and GPIO_LTE_RST_N are misnamed, they are high to reset
@@ -26,7 +24,4 @@ class GPIO:
CAM2_RSTN = 12
# Sensor interrupts
BMX055_ACCEL_INT = 21
BMX055_GYRO_INT = 23
BMX055_MAGN_INT = 87
LSM_INT = 84
+1 -7
View File
@@ -95,12 +95,6 @@ def is_stock_model(started, params, CP: car.CarParams) -> bool:
def mapd_ready(started: bool, params: Params, CP: car.CarParams) -> bool:
return bool(os.path.exists(Paths.mapd_root()))
def uploader_ready(started: bool, params: Params, CP: car.CarParams) -> bool:
if not params.get_bool("OnroadUploads"):
return only_offroad(started, params, CP)
return always_run(started, params, CP)
def or_(*fns):
return lambda *args: operator.or_(*(fn(*args) for fn in fns))
@@ -151,7 +145,7 @@ procs = [
PythonProcess("hardwared", "system.hardware.hardwared", always_run),
PythonProcess("tombstoned", "system.tombstoned", always_run, enabled=not PC),
PythonProcess("updated", "system.updated.updated", only_offroad, enabled=not PC),
PythonProcess("uploader", "system.loggerd.uploader", uploader_ready),
PythonProcess("uploader", "system.loggerd.uploader", always_run),
PythonProcess("statsd", "system.statsd", always_run),
PythonProcess("feedbackd", "selfdrive.ui.feedback.feedbackd", only_onroad),
-5
View File
@@ -13,7 +13,6 @@ from openpilot.system.ui.widgets import Widget
from openpilot.system.ui.widgets.button import Button, ButtonStyle
from openpilot.system.ui.widgets.label import gui_label, gui_text_box
NVME = "/dev/nvme0n1"
USERDATA = "/dev/disk/by-partlabel/userdata"
TIMEOUT = 3*60
@@ -49,10 +48,6 @@ class Reset(Widget):
if PC:
return
# Best effort to wipe NVME
os.system(f"sudo umount {NVME}")
os.system(f"yes | sudo mkfs.ext4 {NVME}")
# Removing data and formatting
rm = os.system("sudo rm -rf /data/*")
os.system(f"sudo umount {USERDATA}")
+2 -2
View File
@@ -10,8 +10,8 @@ from openpilot.common.basedir import BASEDIR
from openpilot.common.swaglog import cloudlog
from openpilot.common.git import get_commit, get_origin, get_branch, get_short_branch, get_commit_date
RELEASE_SP_BRANCHES = ['release-c3']
TESTED_SP_BRANCHES = ['staging-c3', 'staging-c3-new', 'staging-tici']
RELEASE_SP_BRANCHES = ['release-c3', 'release']
TESTED_SP_BRANCHES = ['staging-c3', 'staging-c3-new', 'staging']
MASTER_SP_BRANCHES = ['master']
RELEASE_BRANCHES = ['release3-staging', 'release3', 'release-tici', 'nightly'] + RELEASE_SP_BRANCHES
TESTED_BRANCHES = RELEASE_BRANCHES + ['devel', 'devel-staging', 'nightly-dev'] + TESTED_SP_BRANCHES
BIN
View File
Binary file not shown.