Compare commits

..

1 Commits

Author SHA1 Message Date
DevTekVE 4ce6834d94 Revert "Refine lateral control limits and simplify safety model handling"
This reverts commit e2ec8a7b13.
2025-07-27 12:30:54 +02:00
51 changed files with 1785 additions and 6719 deletions
+139 -198
View File
@@ -1,23 +1,21 @@
name: Build and push all tinygrad models
name: Build All Tinygrad Models and Push to GitLab
on:
workflow_dispatch:
inputs:
set_min_version:
description: 'Minimum selector version required for the models (see helpers.py or readme.md)'
required: true
branch:
description: 'Branch to run workflow from'
required: false
default: 'master-new'
type: string
jobs:
setup:
runs-on: ubuntu-latest
outputs:
json_version: ${{ steps.get-json.outputs.json_version }}
recompiled_dir: ${{ steps.create-recompiled-dir.outputs.recompiled_dir }}
json_file: ${{ steps.get-json.outputs.json_file }}
model_matrix: ${{ steps.set-matrix.outputs.model_matrix }}
steps:
- name: Checkout docs repo (sunnypilot-docs, gh-pages)
- name: Checkout docs repo
uses: actions/checkout@v4
with:
repository: sunnypilot/sunnypilot-docs
@@ -25,7 +23,7 @@ jobs:
path: docs
ssh-key: ${{ secrets.CI_SUNNYPILOT_DOCS_PRIVATE_KEY }}
- name: Get next JSON version to use (from GitHub docs repo)
- name: Get next JSON version to use
id: get-json
run: |
cd docs/docs
@@ -33,131 +31,19 @@ jobs:
next=$((latest+1))
json_file="driving_models_v${next}.json"
cp "driving_models_v${latest}.json" "$json_file"
echo "json_file=docs/docs/$json_file" >> $GITHUB_OUTPUT
echo "json_version=$((next+0))" >> $GITHUB_OUTPUT
echo "SRC_JSON_FILE=docs/docs/driving_models_v${latest}.json" >> $GITHUB_ENV
echo "json_file=$json_file" >> $GITHUB_OUTPUT
- name: Extract tinygrad models
id: set-matrix
working-directory: docs/docs
run: |
jq -c '[.bundles[] | select(.runner=="tinygrad") | {ref, display_name: (.display_name | gsub(" \\([^)]*\\)"; "")), is_20hz}]' "$(basename "${SRC_JSON_FILE}")" > matrix.json
echo "model_matrix=$(cat matrix.json)" >> $GITHUB_OUTPUT
- name: Set up SSH
uses: webfactory/ssh-agent@v0.9.0
- name: Upload context for next jobs
uses: actions/upload-artifact@v4
with:
ssh-private-key: ${{ secrets.GITLAB_SSH_PRIVATE_KEY }}
- run: |
mkdir -p ~/.ssh
ssh-keyscan -H gitlab.com >> ~/.ssh/known_hosts
name: context
path: docs
- name: Clone GitLab docs repo and create new recompiled dir
id: create-recompiled-dir
env:
GIT_SSH_COMMAND: 'ssh -o UserKnownHostsFile=~/.ssh/known_hosts'
run: |
git clone --depth 1 --filter=tree:0 --sparse git@gitlab.com:sunnypilot/public/docs.sunnypilot.ai2.git gitlab_docs
cd gitlab_docs
git checkout main
git sparse-checkout set --no-cone models/
cd models
latest_dir=$(ls -d recompiled* 2>/dev/null | sed -E 's/recompiled([0-9]+)/\1/' | sort -n | tail -1)
if [[ -z "$latest_dir" ]]; then
next_dir=1
else
next_dir=$((latest_dir+1))
fi
recompiled_dir="${next_dir}"
mkdir -p "recompiled${recompiled_dir}"
touch "recompiled${recompiled_dir}/.gitkeep"
cd ../..
echo "recompiled_dir=$recompiled_dir" >> $GITHUB_OUTPUT
- name: Push empty recompiled dir to GitLab
run: |
cd gitlab_docs
git add models/recompiled${{ steps.create-recompiled-dir.outputs.recompiled_dir }}
git config --global user.name "GitHub Action"
git config --global user.email "action@github.com"
git commit -m "Add recompiled${{ steps.create-recompiled-dir.outputs.recompiled_dir }} for build-all" || echo "No changes to commit"
git push origin main
- name: Push new JSON to GitHub docs repo
run: |
cd docs
git pull origin gh-pages
git add docs/"$(basename ${{ steps.get-json.outputs.json_file }})"
git config --global user.name "GitHub Action"
git config --global user.email "action@github.com"
git commit -m "Add new ${{ steps.get-json.outputs.json_file }} for build-all" || echo "No changes to commit"
git push origin gh-pages
get_and_build:
needs: [setup]
strategy:
matrix:
model: ${{ fromJson(needs.setup.outputs.model_matrix) }}
fail-fast: false
uses: ./.github/workflows/build-single-tinygrad-model.yaml
with:
upstream_branch: ${{ matrix.model.ref }}
custom_name: ${{ matrix.model.display_name }}
recompiled_dir: ${{ needs.setup.outputs.recompiled_dir }}
json_version: ${{ needs.setup.outputs.json_version }}
secrets: inherit
retry_failed_models:
needs: [setup, get_and_build]
build-all:
runs-on: ubuntu-latest
if: ${{ needs.setup.result != 'failure' && (failure() && !cancelled()) }}
outputs:
retry_matrix: ${{ steps.set-retry-matrix.outputs.retry_matrix }}
steps:
- uses: actions/download-artifact@v4
with:
pattern: model-*
path: output
- id: set-retry-matrix
run: |
echo '${{ needs.setup.outputs.model_matrix }}' > matrix.json
built=(); while IFS= read -r line; do built+=("$line"); done < <(
ls output | sed -E 's/^model-//' | sed -E 's/-[0-9]+$//' | sed -E 's/ \([^)]*\)//' | awk '{gsub(/^ +| +$/, ""); print}'
)
jq -c --argjson built "$(printf '%s\n' "${built[@]}" | jq -R . | jq -s .)" \
'map(select(.display_name as $n | ($built | index($n | gsub("^ +| +$"; "")) | not)))' matrix.json > retry_matrix.json
echo "retry_matrix=$(cat retry_matrix.json)" >> $GITHUB_OUTPUT
retry_get_and_build:
needs: [setup, get_and_build, retry_failed_models]
if: ${{ needs.get_and_build.result == 'failure' || (needs.retry_failed_models.outputs.retry_matrix != '[]' && needs.retry_failed_models.outputs.retry_matrix != '') }}
strategy:
matrix:
model: ${{ fromJson(needs.retry_failed_models.outputs.retry_matrix) }}
fail-fast: false
uses: ./.github/workflows/build-single-tinygrad-model.yaml
with:
upstream_branch: ${{ matrix.model.ref }}
custom_name: ${{ matrix.model.display_name }}
recompiled_dir: ${{ needs.setup.outputs.recompiled_dir }}
json_version: ${{ needs.setup.outputs.json_version }}
artifact_suffix: -retry
secrets: inherit
publish_models:
name: Publish models sequentially
needs: [setup, get_and_build, retry_failed_models, retry_get_and_build]
if: ${{ !cancelled() && (needs.get_and_build.result != 'failure' || needs.retry_get_and_build.result == 'success' || (needs.retry_failed_models.outputs.retry_matrix != '[]' && needs.retry_failed_models.outputs.retry_matrix != '')) }}
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
model: ${{ fromJson(needs.setup.outputs.model_matrix) }}
needs: setup
env:
RECOMPILED_DIR: recompiled${{ needs.setup.outputs.recompiled_dir }}
JSON_FILE: ${{ needs.setup.outputs.json_file }}
ARTIFACT_NAME_INPUT: ${{ matrix.model.display_name }}
JSON_FILE: docs/docs/${{ needs.setup.outputs.json_file }}
steps:
- name: Set up SSH
uses: webfactory/ssh-agent@v0.9.0
@@ -176,73 +62,138 @@ jobs:
echo "Cloning GitLab"
git clone --depth 1 --filter=tree:0 --sparse git@gitlab.com:sunnypilot/public/docs.sunnypilot.ai2.git gitlab_docs
cd gitlab_docs
echo "checkout models/${RECOMPILED_DIR}"
git sparse-checkout set --no-cone models/${RECOMPILED_DIR}
git checkout main
cd ..
- name: Checkout docs repo
uses: actions/checkout@v4
with:
repository: sunnypilot/sunnypilot-docs
ref: gh-pages
path: docs
ssh-key: ${{ secrets.CI_SUNNYPILOT_DOCS_PRIVATE_KEY }}
- name: Validate recompiled dir and JSON version
- name: Set next recompiled dir
id: set-recompiled
run: |
if [ ! -d "gitlab_docs/models/$RECOMPILED_DIR" ]; then
echo "Recompiled dir $RECOMPILED_DIR does not exist in GitLab repo"
exit 1
fi
if [ ! -f "$JSON_FILE" ]; then
echo "JSON file $JSON_FILE does not exist!"
exit 1
cd gitlab_docs/models
latest_dir=$(ls -d recompiled* 2>/dev/null | sed -E 's/recompiled([0-9]+)/\1/' | sort -n | tail -1)
if [[ -z "$latest_dir" ]]; then
next_dir=1
else
next_dir=$((latest_dir+1))
fi
recompiled_dir="recompiled${next_dir}"
mkdir -p "$recompiled_dir"
echo "RECOMPILED_DIR=$recompiled_dir" >> $GITHUB_ENV
- name: Download artifact name file
- name: Download context
uses: actions/download-artifact@v4
with:
name: artifact-name-${{ env.ARTIFACT_NAME_INPUT }}
path: artifact_name
name: context
path: .
- name: Read artifact name
id: read-artifact-name
- name: Install dependencies
run: |
ARTIFACT_NAME=$(cat artifact_name/artifact_name.txt)
echo "artifact_name=$ARTIFACT_NAME" >> $GITHUB_OUTPUT
sudo apt-get update
sudo apt-get install -y jq gh
- name: Download model artifact
uses: actions/download-artifact@v4
with:
name: ${{ steps.read-artifact-name.outputs.artifact_name }}
path: output
- name: Remove onnx files bc not needed for recompiled dir since they already exist from single build
run: |
find output -type f -name '*.onnx' -delete
find output -type f -name 'big_*.pkl' -delete
find output -type f -name 'dmonitoring_model_tinygrad.pkl' -delete
- name: Copy model artifacts to gitlab
- name: Build all tinygrad models
id: trigger-builds
env:
ARTIFACT_NAME: ${{ steps.read-artifact-name.outputs.artifact_name }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
ARTIFACT_DIR="gitlab_docs/models/${RECOMPILED_DIR}/${ARTIFACT_NAME}"
mkdir -p "$ARTIFACT_DIR"
for path in output/*; do
if [ "$(basename "$path")" = "artifact_name.txt" ]; then
continue
set -e
> triggered_run_ids.txt
BRANCH="${{ github.event.inputs.branch }}"
jq -c '.bundles[] | select(.runner=="tinygrad")' "$JSON_FILE" | while read -r bundle; do
ref=$(echo "$bundle" | jq -r '.ref')
display_name=$(echo "$bundle" | jq -r '.display_name' | sed 's/ ([^)]*)//g')
is_20hz=$(echo "$bundle" | jq -r '.is_20hz')
echo "Triggering build for: $display_name ($ref) [20Hz: $is_20hz]"
START_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
gh workflow run sunnypilot-build-model.yaml \
--repo sunnypilot/sunnypilot \
--ref "$BRANCH" \
-f upstream_branch="$ref" \
-f custom_name="$display_name" \
-f is_20hz="$is_20hz"
for i in {1..24}; do
RUN_ID=$(gh run list --repo sunnypilot/sunnypilot --workflow=sunnypilot-build-model.yaml --branch="$BRANCH" --created ">$START_TIME" --limit=1 --json databaseId --jq '.[0].databaseId')
if [ -n "$RUN_ID" ]; then
break
fi
sleep 5
done
if [ -z "$RUN_ID" ]; then
echo "ould not find the triggered workflow run for $display_name ($ref)"
exit 1
fi
name="$(basename "$path")"
if [ -d "$path" ]; then
mkdir -p "$ARTIFACT_DIR/$name"
cp -r "$path"/* "$ARTIFACT_DIR/$name/"
echo "Copied dir $name -> $ARTIFACT_DIR/$name"
echo "$RUN_ID" >> triggered_run_ids.txt
done
- name: Wait for all model builds to finish
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -e
SUCCESS_RUNS=()
FAILED_RUNS=()
declare -A RUN_ID_TO_NAME
while read -r RUN_ID; do
ARTIFACT_NAME=$(gh api repos/sunnypilot/sunnypilot/actions/runs/$RUN_ID/artifacts --jq '.artifacts[] | select(.name | startswith("model-")) | .name' || echo "unknown")
RUN_ID_TO_NAME["$RUN_ID"]="$ARTIFACT_NAME"
done < triggered_run_ids.txt
while read -r RUN_ID; do
echo "Watching run ID: $RUN_ID"
gh run watch "$RUN_ID" --repo sunnypilot/sunnypilot
CONCLUSION=$(gh run view "$RUN_ID" --repo sunnypilot/sunnypilot --json conclusion --jq '.conclusion')
ARTIFACT_NAME="${RUN_ID_TO_NAME[$RUN_ID]}"
echo "Run $RUN_ID ($ARTIFACT_NAME) concluded with: $CONCLUSION"
if [[ "$CONCLUSION" == "success" ]]; then
SUCCESS_RUNS+=("$RUN_ID")
else
cp "$path" "$ARTIFACT_DIR/"
echo "Copied file $name -> $ARTIFACT_DIR/"
FAILED_RUNS+=("$RUN_ID")
fi
done < triggered_run_ids.txt
if [[ ${#SUCCESS_RUNS[@]} -eq 0 ]]; then
echo "All model builds failed. Aborting."
exit 1
fi
if [[ ${#FAILED_RUNS[@]} -gt 0 ]]; then
echo "WARNING: The following model builds failed:"
for RUN_ID in "${FAILED_RUNS[@]}"; do
echo "- $RUN_ID (${RUN_ID_TO_NAME[$RUN_ID]})"
done
echo "You may want to rerun these models manually."
fi
- name: Download and extract all model artifacts
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
ARTIFACT_DIR="gitlab_docs/models/$RECOMPILED_DIR"
SUCCESS_RUNS=()
while read -r RUN_ID; do
CONCLUSION=$(gh run view "$RUN_ID" --repo sunnypilot/sunnypilot --json conclusion --jq '.conclusion')
if [[ "$CONCLUSION" == "success" ]]; then
SUCCESS_RUNS+=("$RUN_ID")
fi
done < triggered_run_ids.txt
for RUN_ID in "${SUCCESS_RUNS[@]}"; do
ARTIFACT_NAME=$(gh api repos/sunnypilot/sunnypilot/actions/runs/$RUN_ID/artifacts --jq '.artifacts[] | select(.name | startswith("model-")) | .name')
echo "Downloading artifact: $ARTIFACT_NAME from run: $RUN_ID"
mkdir -p "$ARTIFACT_DIR/$ARTIFACT_NAME"
echo "Created directory: $ARTIFACT_DIR/$ARTIFACT_NAME"
gh run download "$RUN_ID" --repo sunnypilot/sunnypilot -n "$ARTIFACT_NAME" --dir "$ARTIFACT_DIR/$ARTIFACT_NAME"
echo "Downloaded artifact zip(s) to: $ARTIFACT_DIR/$ARTIFACT_NAME"
ZIP_PATH=$(find "$ARTIFACT_DIR/$ARTIFACT_NAME" -type f -name '*.zip' | head -n1)
if [ -n "$ZIP_PATH" ]; then
echo "Unzipping $ZIP_PATH to $ARTIFACT_DIR/$ARTIFACT_NAME"
unzip -o "$ZIP_PATH" -d "$ARTIFACT_DIR/$ARTIFACT_NAME"
rm -f "$ZIP_PATH"
echo "Unzipped and removed $ZIP_PATH"
else
echo "No zip file found in $ARTIFACT_DIR/$ARTIFACT_NAME (This is NOT an error)."
fi
echo "Done processing $ARTIFACT_NAME"
done
- name: Push recompiled dir to GitLab
@@ -251,35 +202,25 @@ jobs:
run: |
cd gitlab_docs
git checkout main
git pull origin main
for d in models/"$RECOMPILED_DIR"/*/; do
git sparse-checkout add "$d"
done
git add models/"$RECOMPILED_DIR"
mkdir -p models/"$(basename $RECOMPILED_DIR)"
git add models/"$(basename $RECOMPILED_DIR)"
git config --global user.name "GitHub Action"
git config --global user.email "action@github.com"
git commit -m "Update $RECOMPILED_DIR with model from build-all-tinygrad-models" || echo "No changes to commit"
git commit -m "Add $(basename $RECOMPILED_DIR) from build-all-tinygrad-models"
git push origin main
- run: |
cd docs
git pull origin gh-pages
- name: update json
- name: Run json_parser.py to update JSON
run: |
ARGS=""
[ -n "${{ inputs.set_min_version }}" ] && ARGS="$ARGS --set-min-version \"${{ inputs.set_min_version }}\""
ARGS="$ARGS --sort-by-date"
eval python3 docs/json_parser.py \
python3 docs/json_parser.py \
--json-path "$JSON_FILE" \
--recompiled-dir "gitlab_docs/models/$RECOMPILED_DIR" \
$ARGS
--recompiled-dir "gitlab_docs/models/$RECOMPILED_DIR"
- name: Push updated json to GitHub
- name: Push updated JSON to GitHub docs repo
run: |
cd docs
git config --global user.name "GitHub Action"
git config --global user.email "action@github.com"
git checkout gh-pages
git add docs/"$(basename $JSON_FILE)"
git commit -m "Update $(basename $JSON_FILE) after recompiling model" || echo "No changes to commit"
git commit -m "Update $(basename $JSON_FILE) after recompiling models" || echo "No changes to commit"
git push origin gh-pages
@@ -1,36 +1,13 @@
name: Build Single Tinygrad Model and Push
on:
workflow_call:
inputs:
upstream_branch:
description: 'Upstream commit to build from'
required: true
type: string
custom_name:
description: 'Custom name for the model (no date, only name)'
required: false
type: string
recompiled_dir:
description: 'Existing recompiled directory number (e.g. 3 for recompiled3)'
required: true
type: string
json_version:
description: 'driving_models version number to update (e.g. 5 for driving_models_v5.json)'
required: true
type: string
artifact_suffix:
description: 'Suffix for artifact name'
required: false
type: string
default: ''
bypass_push:
description: 'Bypass pushing to GitLab for build-all'
required: false
default: true
type: boolean
workflow_dispatch:
inputs:
build_model_ref:
description: 'Branch to use for build-model workflow'
required: false
default: 'master-new'
type: string
upstream_branch:
description: 'Upstream commit to build from'
required: true
@@ -49,12 +26,10 @@ on:
type: number
model_folder:
description: 'Model folder'
required: true
type: choice
default: 'None'
options:
- None
- Simple Plan Models
- Space Lab Models
- TR Models
- DTR Models
- Custom Merge Models
@@ -72,27 +47,13 @@ on:
description: 'Minimum selector version'
required: false
type: number
env:
RECOMPILED_DIR: recompiled${{ inputs.recompiled_dir }}
JSON_FILE: docs/docs/driving_models_v${{ inputs.json_version }}.json
jobs:
build_model:
uses: ./.github/workflows/sunnypilot-build-model.yaml
with:
upstream_branch: ${{ inputs.upstream_branch }}
custom_name: ${{ inputs.custom_name || inputs.upstream_branch }}
is_20hz: true
artifact_suffix: ${{ inputs.artifact_suffix }}
secrets: inherit
publish_model:
if: ${{ !inputs.bypass_push && !cancelled() }}
concurrency:
group: gitlab-push-${{ inputs.recompiled_dir }}
cancel-in-progress: false
needs: build_model
build-single:
runs-on: ubuntu-latest
env:
RECOMPILED_DIR: recompiled${{ github.event.inputs.recompiled_dir }}
JSON_FILE: docs/docs/driving_models_v${{ github.event.inputs.json_version }}.json
steps:
- name: Set up SSH
uses: webfactory/ssh-agent@v0.9.0
@@ -135,49 +96,66 @@ jobs:
exit 1
fi
- name: Download artifact name file
uses: actions/download-artifact@v4
with:
name: artifact-name-${{ inputs.custom_name || inputs.upstream_branch }}
path: artifact_name
- name: Read artifact name
id: read-artifact-name
- name: Install dependencies
run: |
ARTIFACT_NAME=$(cat artifact_name/artifact_name.txt)
echo "artifact_name=$ARTIFACT_NAME" >> $GITHUB_OUTPUT
sudo apt-get update
sudo apt-get install -y jq gh
- name: Build model
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
START_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
gh workflow run sunnypilot-build-model.yaml \
--repo sunnypilot/sunnypilot \
--ref "${{ github.event.inputs.build_model_ref }}" \
-f upstream_branch="${{ github.event.inputs.upstream_branch }}" \
-f custom_name="${{ github.event.inputs.custom_name }}"
for i in {1..24}; do
RUN_ID=$(gh run list --repo sunnypilot/sunnypilot --workflow=sunnypilot-build-model.yaml --branch="${{ github.event.inputs.build_model_ref }}" --created ">$START_TIME" --limit=1 --json databaseId --jq '.[0].databaseId')
if [ -n "$RUN_ID" ]; then
break
fi
sleep 5
done
if [ -z "$RUN_ID" ]; then
echo "Could not find the triggered workflow run."
exit 1
fi
echo "Watching run ID: $RUN_ID"
gh run watch "$RUN_ID" --repo sunnypilot/sunnypilot
CONCLUSION=$(gh run view "$RUN_ID" --repo sunnypilot/sunnypilot --json conclusion --jq '.conclusion')
echo "Run concluded with: $CONCLUSION"
if [[ "$CONCLUSION" != "success" ]]; then
echo "Workflow run failed with conclusion: $CONCLUSION"
exit 1
fi
- name: Download and extract model artifact
uses: actions/download-artifact@v4
with:
name: ${{ steps.read-artifact-name.outputs.artifact_name }}
path: output
- name: Remove unwanted files
run: |
find output -type f -name 'dmonitoring_model_tinygrad.pkl' -delete
find output -type f -name 'dmonitoring_model.onnx' -delete
- name: Copy model artifact(s) to GitLab recompiled dir
env:
ARTIFACT_NAME: ${{ steps.read-artifact-name.outputs.artifact_name }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
ARTIFACT_DIR="gitlab_docs/models/${RECOMPILED_DIR}/${ARTIFACT_NAME}"
mkdir -p "$ARTIFACT_DIR"
for path in output/*; do
if [ "$(basename "$path")" = "artifact_name.txt" ]; then
continue
fi
name="$(basename "$path")"
if [ -d "$path" ]; then
mkdir -p "$ARTIFACT_DIR/$name"
cp -r "$path"/* "$ARTIFACT_DIR/$name/"
echo "Copied dir $name -> $ARTIFACT_DIR/$name"
else
cp "$path" "$ARTIFACT_DIR/"
echo "Copied file $name -> $ARTIFACT_DIR/"
fi
done
ARTIFACT_DIR="gitlab_docs/models/$RECOMPILED_DIR"
RUN_ID=$(gh run list --repo sunnypilot/sunnypilot --workflow=sunnypilot-build-model.yaml --branch="${{ github.event.inputs.build_model_ref }}" --limit=1 --json databaseId --jq '.[0].databaseId')
ARTIFACT_NAME=$(gh api repos/sunnypilot/sunnypilot/actions/runs/$RUN_ID/artifacts --jq '.artifacts[] | select(.name | startswith("model-")) | .name')
echo "Downloading artifact: $ARTIFACT_NAME from run: $RUN_ID"
mkdir -p "$ARTIFACT_DIR/$ARTIFACT_NAME"
echo "Created directory: $ARTIFACT_DIR/$ARTIFACT_NAME"
gh run download "$RUN_ID" --repo sunnypilot/sunnypilot -n "$ARTIFACT_NAME" --dir "$ARTIFACT_DIR/$ARTIFACT_NAME"
echo "Downloaded artifact zip(s) to: $ARTIFACT_DIR/$ARTIFACT_NAME"
ZIP_PATH=$(find "$ARTIFACT_DIR/$ARTIFACT_NAME" -type f -name '*.zip' | head -n1)
if [ -n "$ZIP_PATH" ]; then
echo "Unzipping $ZIP_PATH to $ARTIFACT_DIR/$ARTIFACT_NAME"
unzip -o "$ZIP_PATH" -d "$ARTIFACT_DIR/$ARTIFACT_NAME"
rm -f "$ZIP_PATH"
echo "Unzipped and removed $ZIP_PATH"
else
echo "No zip file found in $ARTIFACT_DIR/$ARTIFACT_NAME"
fi
echo "Done processing $ARTIFACT_NAME"
- name: Push recompiled dir to GitLab
env:
@@ -185,36 +163,28 @@ jobs:
run: |
cd gitlab_docs
git checkout main
git pull origin main
for d in models/"$RECOMPILED_DIR"/*/; do
git sparse-checkout add "$d"
done
git add models/"$RECOMPILED_DIR"
git config --global user.name "GitHub Action"
git config --global user.email "action@github.com"
git commit -m "Create/Update $RECOMPILED_DIR with new/updated model from build-single-tinygrad-model" || echo "No changes to commit"
git commit -m "Update $RECOMPILED_DIR with new/updated model from build-single-tinygrad-model" || echo "No changes to commit"
git push origin main
- run: |
cd docs
git pull origin gh-pages
- name: Run json_parser.py to update JSON
run: |
FOLDER="${{ inputs.model_folder }}"
FOLDER="${{ github.event.inputs.model_folder }}"
if [ "$FOLDER" = "Other" ]; then
FOLDER="${{ inputs.custom_model_folder }}"
FOLDER="${{ github.event.inputs.custom_model_folder }}"
fi
ARGS=""
if [ "$FOLDER" != "None" ] && [ -n "$FOLDER" ]; then
ARGS="$ARGS --model-folder \"$FOLDER\""
fi
[ -n "${{ inputs.generation }}" ] && ARGS="$ARGS --generation \"${{ inputs.generation }}\""
[ -n "${{ inputs.version }}" ] && ARGS="$ARGS --version \"${{ inputs.version }}\""
[ -n "$FOLDER" ] && ARGS="$ARGS --model-folder \"$FOLDER\""
[ -n "${{ github.event.inputs.generation }}" ] && ARGS="$ARGS --generation \"${{ github.event.inputs.generation }}\""
[ -n "${{ github.event.inputs.version }}" ] && ARGS="$ARGS --version \"${{ github.event.inputs.version }}\""
eval python3 docs/json_parser.py \
--json-path "$JSON_FILE" \
--recompiled-dir "gitlab_docs/models/$RECOMPILED_DIR" \
--sort-by-date \
$ARGS
- name: Push updated JSON to GitHub docs repo
+6 -6
View File
@@ -13,7 +13,7 @@ env:
jobs:
update_translations:
runs-on: ubuntu-latest
if: github.repository == 'sunnypilot/sunnypilot'
if: github.repository == 'commaai/openpilot'
steps:
- uses: actions/checkout@v4
- uses: ./.github/workflows/setup-with-retry
@@ -23,12 +23,12 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
with:
author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
author: Vehicle Researcher <user@comma.ai>
commit-message: "Update translations"
title: "[bot] Update translations"
body: "Automatic PR from repo-maintenance -> update_translations"
branch: "update-translations"
base: "master-new"
base: "master"
delete-branch: true
labels: bot
@@ -61,12 +61,12 @@ jobs:
- name: Create Pull Request
uses: peter-evans/create-pull-request@9153d834b60caba6d51c9b9510b087acf9f33f83
with:
author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
token: ${{ github.repository == 'commaai/openpilot' && secrets.ACTIONS_CREATE_PR_PAT || secrets.GITHUB_TOKEN }}
author: Vehicle Researcher <user@comma.ai>
token: ${{ secrets.ACTIONS_CREATE_PR_PAT }}
commit-message: Update Python packages
title: '[bot] Update Python packages'
branch: auto-package-updates
base: master-new
base: master
delete-branch: true
body: 'Automatic PR from repo-maintenance -> package_updates'
labels: bot
+12 -62
View File
@@ -9,27 +9,6 @@ env:
MODELS_DIR: ${{ github.workspace }}/selfdrive/modeld/models
on:
workflow_call:
inputs:
upstream_branch:
description: 'Upstream branch to build from'
required: true
default: 'master'
type: string
custom_name:
description: 'Custom name for the model (no date, only name)'
required: false
type: string
is_20hz:
description: 'Is this a 20Hz model'
required: false
type: boolean
default: true
artifact_suffix:
description: 'Suffix for artifact name'
required: false
type: string
default: ''
workflow_dispatch:
inputs:
upstream_branch:
@@ -53,53 +32,34 @@ run-name: Build model [${{ inputs.custom_name || inputs.upstream_branch }}] from
jobs:
get_model:
runs-on: ubuntu-latest
env:
REF: ${{ inputs.upstream_branch }}
outputs:
model_date: ${{ steps.commit-date.outputs.model_date }}
steps:
# Note: To allow dynamic models from both openpilot and sunnypilot (merges/mashups), we try commaai as default,
# and fallback to sunnypilot if the ref checkout fails.
- name: Checkout commaai/openpilot
id: checkout_upstream
continue-on-error: true
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: commaai/openpilot
ref: ${{ inputs.upstream_branch }}
repository: ${{ env.UPSTREAM_REPO }}
ref: ${{ github.event.inputs.upstream_branch }}
submodules: recursive
path: openpilot
- name: Fallback to sunnypilot/sunnypilot
if: steps.checkout_upstream.outcome == 'failure'
uses: actions/checkout@v4
with:
repository: sunnypilot/sunnypilot
ref: ${{ inputs.upstream_branch }}
submodules: recursive
path: openpilot
- name: Get commit date
id: commit-date
run: |
cd ${{ github.workspace }}/openpilot
# Get the commit date in YYYY-MM-DD format
commit_date=$(git log -1 --format=%cd --date=format:'%B %d, %Y')
echo "model_date=${commit_date}" >> $GITHUB_OUTPUT
cat $GITHUB_OUTPUT
- run: |
cd ${{ github.workspace }}/openpilot
git lfs pull
- run: git lfs pull
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: models-${{ env.REF }}${{ inputs.artifact_suffix }}
path: ${{ github.workspace }}/openpilot/selfdrive/modeld/models/*.onnx
name: models
path: ${{ github.workspace }}/selfdrive/modeld/models/*.onnx
build_model:
runs-on: [self-hosted, tici]
runs-on: self-hosted
needs: get_model
env:
MODEL_NAME: ${{ inputs.custom_name || inputs.upstream_branch }} (${{ needs.get_model.outputs.model_date }})
REF: ${{ inputs.upstream_branch }}
steps:
- uses: actions/checkout@v4
with:
@@ -111,7 +71,7 @@ jobs:
with:
path: ${{env.SCONS_CACHE_DIR}}
key: scons-${{ runner.os }}-${{ runner.arch }}-${{ github.head_ref || github.ref_name }}-model-${{ github.sha }}
# Note: GitHub Actions enforces cache isolation between different build sources (PR builds, workflow dispatches, etc.)
# Note: GitHub Actions enforces cache isolation between different build sources (PR builds, workflow dispatches, etc.)
# 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 }}-${{ github.head_ref || github.ref_name }}-model
@@ -154,7 +114,7 @@ jobs:
- name: Download model artifacts
uses: actions/download-artifact@v4
with:
name: models-${{ env.REF }}${{ inputs.artifact_suffix }}
name: models
path: ${{ github.workspace }}/selfdrive/modeld/models
- name: Build Model
@@ -197,22 +157,12 @@ jobs:
--upstream-branch "${{ inputs.upstream_branch }}" \
${{ inputs.is_20hz && '--is-20hz' || '' }}
- name: Write artifact name to file
run: echo "model-${{ env.MODEL_NAME }}${{ inputs.artifact_suffix }}-${{ github.run_number }}" > ${{ env.OUTPUT_DIR }}/artifact_name.txt
- name: Upload Build Artifacts
id: upload-artifact
uses: actions/upload-artifact@v4
with:
name: model-${{ env.MODEL_NAME }}${{ inputs.artifact_suffix }}-${{ github.run_number }}
name: model-${{ env.MODEL_NAME }}-${{ github.run_number }}
path: ${{ env.OUTPUT_DIR }}
- name: Upload artifact name file
uses: actions/upload-artifact@v4
with:
name: artifact-name-${{ inputs.custom_name || inputs.upstream_branch }}
path: ${{ env.OUTPUT_DIR }}/artifact_name.txt
- name: Re-enable powersave
if: always()
run: |
@@ -50,7 +50,7 @@ jobs:
concurrency:
group: build-${{ github.head_ref || github.ref_name }}
cancel-in-progress: false
runs-on: [self-hosted, tici]
runs-on: self-hosted
outputs:
new_branch: ${{ steps.set-env.outputs.new_branch }}
version: ${{ steps.set-env.outputs.version }}
@@ -153,7 +153,6 @@ jobs:
}
}' -F label="is:pr is:open label:${PR_LABEL} draft:false sort:created-asc")
PR_LIST=${PR_LIST//\'/}
echo "PR_LIST=${PR_LIST}" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-7
View File
@@ -21,12 +21,5 @@
</clean>
</configuration>
</target>
<target id="f2590b2b-9b93-49f9-8510-da3f3724a2ae" name="replay" defaultType="TOOL">
<configuration id="d475264f-6f4c-4092-9b4e-6773309f38b7" name="replay" toolchainName="Default">
<build type="TOOL">
<tool actionId="Tool_External Tools_uv build tools replay" />
</build>
</configuration>
</target>
</component>
</project>
-7
View File
@@ -20,11 +20,4 @@
<option name="WORKING_DIRECTORY" value="$ProjectFileDir$" />
</exec>
</tool>
<tool name="uv build tools replay" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="false" showConsoleOnStdErr="false" synchronizeAfterRun="true">
<exec>
<option name="COMMAND" value="bash" />
<option name="PARAMETERS" value="-c &quot;source .venv/bin/activate &amp;&amp; scons -u -j$(nproc) tools/replay/&quot;" />
<option name="WORKING_DIRECTORY" value="$ProjectFileDir$" />
</exec>
</tool>
</toolSet>
+1 -1
View File
@@ -1,5 +1,5 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Build Debug" type="CLionExternalRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" WORKING_DIR="file://$ProjectFileDir$/selfdrive/ui" PASS_PARENT_ENVS_2="true" PROJECT_NAME="openpilot-special" TARGET_NAME="uv Scons Build Debug" CONFIG_NAME="uv Scons Build Debug" RUN_PATH="ui">
<configuration default="false" name="Build Debug" type="CLionExternalRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" WORKING_DIR="file://$ProjectFileDir$/selfdrive/ui" PASS_PARENT_ENVS_2="true" PROJECT_NAME="sunnypilot" TARGET_NAME="uv Scons Build Debug" CONFIG_NAME="uv Scons Build Debug" RUN_PATH="ui">
<envs>
<env name="QT_DBL_CLICK_DIST" value="150" />
</envs>
-27
View File
@@ -1,27 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Debug Route Controls" type="PythonConfigurationType" factoryName="Python">
<module name="openpilot-special" />
<option name="ENV_FILES" value="" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
<env name="FINGERPRINT" value="KIA_EV9" />
<env name="SKIP_FW_QUERY" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/selfdrive/car" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/selfdrive/car/card.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="true" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
</component>
-7
View File
@@ -1,7 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Replay for controls + ui" type="Multirun" separateTabs="false" reuseTabsWithFailures="false" startOneByOne="true" markFailedProcess="true" hideSuccessProcess="false" delayTime="0.0">
<runConfiguration name="replay for controls" type="Native Application" />
<runConfiguration name="Build Debug" type="Custom Build Application" />
<method v="2" />
</configuration>
</component>
-7
View File
@@ -1,7 +0,0 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="replay for controls" type="CLionNativeAppRunConfigurationType" focusToolWindowBeforeRun="true" PROGRAM_PARAMS="&quot;$Prompt$&quot; --block &quot;sendcan,carState,carParams,carOutput,liveTracks,carParamsSP,carStateSP&quot;" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="true" WORKING_DIR="file://$ProjectFileDir$/tools/replay" PASS_PARENT_ENVS_2="true" PROJECT_NAME="openpilot-special" TARGET_NAME="replay" CONFIG_NAME="replay" version="1" RUN_PATH="replay">
<method v="2">
<option name="CLION.COMPOUND.BUILD" enabled="true" />
</method>
</configuration>
</component>
+2 -9
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.
# 319 Supported Cars
# 312 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|
|---|---|---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
@@ -116,7 +116,6 @@ A supported vehicle is one that just works when you install a comma device. All
|Hyundai|Ioniq Plug-in Hybrid 2019|Smart Cruise Control (SCC)|openpilot available[<sup>1</sup>](#footnotes)|0 mph|32 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Hyundai C 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.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2019">Buy Here</a></sub></details>|||
|Hyundai|Ioniq Plug-in Hybrid 2020-22|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 Hyundai H 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.html?make=Hyundai&model=Ioniq Plug-in Hybrid 2020-22">Buy Here</a></sub></details>|||
|Hyundai|Kona 2020|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 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.html?make=Hyundai&model=Kona 2020">Buy Here</a></sub></details>|||
|Hyundai|Kona 2022|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 O 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.html?make=Hyundai&model=Kona 2022">Buy Here</a></sub></details>|||
|Hyundai|Kona Electric 2018-21|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 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.html?make=Hyundai&model=Kona Electric 2018-21">Buy Here</a></sub></details>|||
|Hyundai|Kona Electric 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 O 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.html?make=Hyundai&model=Kona Electric 2022-23">Buy Here</a></sub></details>|||
|Hyundai|Kona Electric (with HDA II, Korea only) 2023[<sup>6</sup>](#footnotes)|Smart Cruise Control (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 R 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.html?make=Hyundai&model=Kona Electric (with HDA II, Korea only) 2023">Buy Here</a></sub></details>|<a href="https://www.youtube.com/watch?v=U2fOCmcQ8hw" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
@@ -212,9 +211,7 @@ A supported vehicle is one that just works when you install a comma device. All
|Nissan[<sup>7</sup>](#footnotes)|Leaf 2018-23|ProPILOT Assist|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Nissan 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.html?make=Nissan&model=Leaf 2018-23">Buy Here</a></sub></details>|<a href="https://youtu.be/vaMbtAh_0cY" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|Nissan[<sup>7</sup>](#footnotes)|Rogue 2018-20|ProPILOT Assist|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Nissan 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.html?make=Nissan&model=Rogue 2018-20">Buy Here</a></sub></details>|||
|Nissan[<sup>7</sup>](#footnotes)|X-Trail 2017|ProPILOT Assist|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Nissan 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.html?make=Nissan&model=X-Trail 2017">Buy Here</a></sub></details>|||
|Ram|1500 2019-24|Adaptive Cruise Control (ACC)|Stock|32 mph|1 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Ram 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.html?make=Ram&model=1500 2019-24">Buy Here</a></sub></details>|||
|Ram|2500 2020-24|Adaptive Cruise Control (ACC)|Stock|0 mph|36 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Ram 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.html?make=Ram&model=2500 2020-24">Buy Here</a></sub></details>|||
|Ram|3500 2019-22|Adaptive Cruise Control (ACC)|Stock|0 mph|36 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Ram 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.html?make=Ram&model=3500 2019-22">Buy Here</a></sub></details>|||
|Ram|1500 2019-24|Adaptive Cruise Control (ACC)|Stock|0 mph|32 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Ram 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.html?make=Ram&model=1500 2019-24">Buy Here</a></sub></details>|||
|Rivian|R1S 2022-24|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Rivian A connector<br>- 1 USB-C coupler<br>- 1 angled mount (8 degrees)<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Rivian&model=R1S 2022-24">Buy Here</a></sub></details>||https://youtu.be/uaISd1j7Z4U|
|Rivian|R1T 2022-24|All|openpilot|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 Rivian A connector<br>- 1 USB-C coupler<br>- 1 angled mount (8 degrees)<br>- 1 comma 3X<br>- 1 comma power v3<br>- 1 harness box<br>- 1 long OBD-C cable (9.5 ft)<br>- 1 right angle OBD-C cable (1.5 ft)<br><a href="https://comma.ai/shop/comma-3x.html?make=Rivian&model=R1T 2022-24">Buy Here</a></sub></details>||https://youtu.be/uaISd1j7Z4U|
|SEAT|Ateca 2016-23|Adaptive Cruise Control (ACC) & Lane Assist|openpilot available[<sup>1,16</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-full.svg)](##)|<details><summary>Parts</summary><sub>- 1 USB-C coupler<br>- 1 VW J533 connector<br>- 1 comma 3X<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.html?make=SEAT&model=Ateca 2016-23">Buy Here</a></sub></details>|||
@@ -222,14 +219,10 @@ A supported vehicle is one that just works when you install a comma device. All
|Subaru|Ascent 2019-21|All[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Ascent 2019-21">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Crosstrek 2018-19|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Crosstrek 2018-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|Subaru|Crosstrek 2020-23|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Crosstrek 2020-23">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Forester 2017-18|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Forester 2017-18">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Forester 2019-21|All[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Forester 2019-21">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Impreza 2017-19|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Impreza 2017-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Impreza 2020-22|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Impreza 2020-22">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Legacy 2015-18|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Legacy 2015-18">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Legacy 2020-22|All[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Legacy 2020-22">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Outback 2015-17|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Outback 2015-17">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Outback 2018-19|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Outback 2018-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|Outback 2020-22|All[<sup>8</sup>](#footnotes)|Stock|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=Outback 2020-22">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
|Subaru|XV 2018-19|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-empty.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=XV 2018-19">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|<a href="https://youtu.be/Agww7oE1k-s?t=26" target="_blank"><img height="18px" src="assets/icon-youtube.svg"></img></a>||
|Subaru|XV 2020-21|EyeSight Driver Assistance[<sup>8</sup>](#footnotes)|openpilot available[<sup>1,9</sup>](#footnotes)|0 mph|0 mph|[![star](assets/icon-star-full.svg)](##)|[![star](assets/icon-star-empty.svg)](##)|<details><summary>Parts</summary><sub>- 1 Subaru 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.html?make=Subaru&model=XV 2020-21">Buy Here</a></sub></details><details><summary>Tools</summary><sub>- 1 Pry Tool<br>- 1 Socket Wrench 8mm or 5/16" (deep)</sub></details>|||
+1 -1
Submodule panda updated: ff4733f958...c33cfa0803
+12 -27
View File
@@ -13,32 +13,17 @@ def create_short_name(full_name):
words = [re.sub(r'[^a-zA-Z0-9]', '', word) for word in clean_name.split() if re.sub(r'[^a-zA-Z0-9]', '', word)]
if len(words) == 1:
return words[0][:8].upper()
# If there's only one word, return it as is, lowercased, truncated to 8 characters
truncated = words[0][:8]
return truncated.lower() if truncated.isupper() else truncated
# Handle special case: Name + Version (e.g., "Word A1" -> "WordA1")
if len(words) == 2 and re.match(r'^[A-Za-z]\d+$', words[1]):
return (words[0] + words[1])[:8].upper()
first_word = words[0].lower() if words[0].isupper() else words[0]
return (first_word + words[1])[:8]
result = ""
for word in words:
# Version or number patterns
if (re.match(r'^\d+[a-zA-Z]+$', word) or
re.match(r'^\d+[vVbB]\d+$', word) or
re.match(r'^[vVbB]\d+$', word) or
re.match(r'^\d{4}$', word)):
result += word.upper()
# All uppercase abbreviations (2-3 letters)
elif re.match(r'^[A-Z]{2,3}$', word):
result += word
# Letters+digits (for example tr15 rev2)
elif re.match(r'^[a-zA-Z]+[0-9]+$', word):
result += word[0].upper() + ''.join(re.findall(r'\d+', word))
elif word.isalpha():
result += word[0].upper()
elif word.isdigit():
result += word
else:
result += word[0].upper()
# Normal case: first letter and trailing numbers from each word
result = ''.join(word if word.isdigit() else word[0] + (re.search(r'\d+$', word) or [''])[0] for word in words)
return result[:8]
@@ -73,14 +58,14 @@ def generate_metadata(model_path: Path, output_dir: Path, short_name: str):
"artifact": {
"file_name": tinygrad_file.name,
"download_uri": {
"url": "https://gitlab.com/sunnypilot/public/docs.sunnypilot.ai/-/raw/main/",
"url": "https://gitlab.com/sunnypilot/public/docs.sunnypilot.ai/-/raw/main/<FILLME>",
"sha256": tinygrad_hash
}
},
"metadata": {
"file_name": metadata_file.name,
"download_uri": {
"url": "https://gitlab.com/sunnypilot/public/docs.sunnypilot.ai/-/raw/main/",
"url": "https://gitlab.com/sunnypilot/public/docs.sunnypilot.ai/-/raw/main/<FILLME>",
"sha256": metadata_hash
}
}
@@ -98,12 +83,12 @@ def create_metadata_json(models: list, output_dir: Path, custom_name=None, short
"ref": upstream_branch,
"environment": "development",
"runner": "tinygrad",
"build_time": datetime.now(UTC).strftime("%Y-%m-%dT%H:%M:%SZ"),
"models": models,
"overrides": {},
"index": -1,
"minimum_selector_version": "-1",
"generation": "-1",
"build_time": datetime.now(UTC).strftime("%Y-%m-%dT%H:%M:%SZ"),
"overrides": {},
"models": models,
}
# Write metadata to output_dir
+1 -2
View File
@@ -135,8 +135,7 @@ class SelfdriveD(CruiseHelper):
self.ignored_processes.update({'mapd'})
# Determine startup event
is_remote = build_metadata.openpilot.comma_remote or build_metadata.openpilot.sunnypilot_remote
self.startup_event = EventName.startup if is_remote and build_metadata.tested_channel else EventName.startupMaster
self.startup_event = EventName.startup if build_metadata.openpilot.comma_remote and build_metadata.tested_channel else EventName.startupMaster
if not car_recognized:
self.startup_event = EventName.startupNoCar
elif car_recognized and self.CP.passive:
-1
View File
@@ -4,7 +4,6 @@ widgets_src = [
"sunnypilot/qt/widgets/controls.cc",
"sunnypilot/qt/widgets/drive_stats.cc",
"sunnypilot/qt/widgets/expandable_row.cc",
"sunnypilot/qt/widgets/external_storage.cc",
"sunnypilot/qt/widgets/prime.cc",
"sunnypilot/qt/widgets/scrollview.cc",
"sunnypilot/qt/network/networking.cc",
@@ -5,14 +5,9 @@
* See the LICENSE.md file in the root directory for more details.
*/
#include "selfdrive/ui/sunnypilot/qt/offroad/settings/developer_panel.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/external_storage.h"
DeveloperPanelSP::DeveloperPanelSP(SettingsWindow *parent) : DeveloperPanel(parent) {
#ifndef __APPLE__
addItem(new ExternalStorageControl());
#endif
// Advanced Controls Toggle
showAdvancedControls = new ParamControlSP("ShowAdvancedControls", tr("Show Advanced Controls"), tr("Toggle visibility of advanced sunnypilot controls.\nThis only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state."), "");
addItem(showAdvancedControls);
@@ -212,7 +212,7 @@ void DevicePanelSP::updateState() {
QString timeoutValue = QString::fromStdString(params.get("InteractivityTimeout"));
if (timeoutValue == "0") {
interactivityTimeout->setLabel("Default");
interactivityTimeout->setLabel("DEFAULT");
} else {
interactivityTimeout->setLabel(timeoutValue + "s");
}
@@ -366,11 +366,13 @@ void ModelsPanel::updateLabels() {
desc += "<br><br><b><span style=\"color:#e0e0e0\">" + tr("Current:") + "</span></b> <span style=\"color:#e0e0e0\">" + current + "</span>";
}
lagd_toggle_control->setDescription(desc);
lagd_toggle_control->showDescription();
delay_control->setVisible(!params.getBool("LagdToggle"));
if (delay_control->isVisible()) {
float value = QString::fromStdString(params.get("LagdToggledelay")).toFloat();
delay_control->setLabel(QString::number(value, 'f', 2) + "s");
delay_control->showDescription();
}
clearModelCacheBtn->setValue(QString::number(calculateCacheSize(), 'f', 2) + " MB");
@@ -423,10 +425,3 @@ double ModelsPanel::calculateCacheSize() {
});
return static_cast<double>(future_ModelCacheSize) / (1024.0 * 1024.0);
}
void ModelsPanel::showEvent(QShowEvent *event) {
lagd_toggle_control->showDescription();
if (delay_control->isVisible()) {
delay_control->showDescription();
}
}
@@ -21,7 +21,6 @@ private:
QString GetActiveModelName();
QString GetActiveModelInternalName();
void updateModelManagerState();
void showEvent(QShowEvent *event) override;
bool isDownloading() const {
if (!model_manager.hasSelectedBundle()) {
@@ -1,167 +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/widgets/external_storage.h"
#include <QProcess>
#include <QCoreApplication>
#include <QShowEvent>
#include <QTimer>
#include <QtConcurrent>
#include "common/params.h"
#include "selfdrive/ui/qt/api.h"
#include "selfdrive/ui/qt/widgets/input.h"
#include "selfdrive/ui/sunnypilot/ui.h"
ExternalStorageControl::ExternalStorageControl() :
ButtonControl(tr("External Storage"), "", tr("Extend your comma device's storage by inserting a USB drive into the aux port.")) {
QObject::connect(this, &ButtonControl::clicked, [=]() {
if (text() == tr("CHECK") || text() == tr("MOUNT")) {
mountStorage();
} else if (text() == tr("UNMOUNT")) {
unmountStorage();
} else if (text() == tr("FORMAT")) {
if (ConfirmationDialog::confirm(tr("Are you sure you want to format this drive? This will erase all data."), tr("Format"), this)) {
formatStorage();
}
}
});
QObject::connect(uiState(), &UIState::offroadTransition, this, &ExternalStorageControl::updateState);
updateState(!uiState()->scene.started);
refresh();
}
void ExternalStorageControl::updateState(bool offroad) {
setEnabled(offroad);
}
void ExternalStorageControl::debouncedRefresh() {
if (refreshPending) return;
refreshPending = true;
QTimer::singleShot(250, this, [=]() {
refreshPending = false;
refresh();
});
}
void ExternalStorageControl::refresh() {
QtConcurrent::run([=]() {
auto run = [](const QString &cmd) {
QProcess p;
p.start("sh", QStringList() << "-c" << cmd);
p.waitForFinished();
return p.exitCode() == 0;
};
bool isMounted = run("findmnt -n /mnt/external_realdata");
bool hasDrive = run("lsblk -f /dev/sdg1");
bool hasFs = run("lsblk -f /dev/sdg1 | grep -q ext4");
bool hasLabel = run("sudo blkid /dev/sdg1 | grep -q 'LABEL=\"openpilot\"'");
QString info;
if (isMounted && hasLabel) {
QProcess df;
df.start("sh", QStringList() << "-c" << "df -h /mnt/external_realdata | awk 'NR==2 {print $3 \"/\" $2}'");
df.waitForFinished();
info = df.readAllStandardOutput().trimmed();
}
QMetaObject::invokeMethod(this, [=]() {
if (formatting) {
setValue(tr("formatting"));
setText(tr("FORMAT"));
setEnabled(false);
} else {
if (!hasDrive) {
setValue(tr("insert drive"));
setText(tr("CHECK"));
} else if (!hasFs || !hasLabel) {
setValue(tr("needs format"));
setText(tr("FORMAT"));
} else if (isMounted) {
setValue(info);
setText(tr("UNMOUNT"));
} else {
setValue("drive detected");
setText(tr("MOUNT"));
}
updateState(!uiState()->scene.started);
}
}, Qt::QueuedConnection);
});
}
void ExternalStorageControl::mountStorage() {
setValue(tr("mounting"));
setEnabled(false);
QtConcurrent::run([=]() {
QProcess process;
process.start("sh", QStringList() << "-c" <<
"sudo mount -o remount,rw / && "
"sudo mkdir -p /mnt/external_realdata && "
"grep -q '/dev/sdg1 /mnt/external_realdata' /etc/fstab || "
"echo '/dev/sdg1 /mnt/external_realdata ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab && "
"sudo systemctl daemon-reexec && "
"sudo mount /mnt/external_realdata && "
"sudo chown -R comma:comma /mnt/external_realdata && "
"sudo chmod -R 775 /mnt/external_realdata && "
"sudo mount -o remount,ro /");
process.waitForFinished();
QMetaObject::invokeMethod(this, [=]() {
debouncedRefresh();
}, Qt::QueuedConnection);
});
}
void ExternalStorageControl::unmountStorage() {
setValue(tr("unmounting"));
setEnabled(false);
QtConcurrent::run([=]() {
QProcess process;
process.start("sh", QStringList() << "-c" << "sudo umount /mnt/external_realdata");
process.waitForFinished();
QMetaObject::invokeMethod(this, [=]() {
debouncedRefresh();
}, Qt::QueuedConnection);
});
}
void ExternalStorageControl::formatStorage() {
unmountStorage();
formatting = true;
setValue(tr("formatting"));
setEnabled(false);
QProcess *process = new QProcess(this);
connect(process, static_cast<void(QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished),
this, [=](int exitCode, QProcess::ExitStatus status) {
process->deleteLater();
formatting = false;
if (exitCode == 0 && status == QProcess::NormalExit) {
QProcess::execute("sh", QStringList() << "-c" << "sudo e2label /dev/sdg1 openpilot");
mountStorage();
} else {
setValue(tr("needs format"));
updateState(!uiState()->scene.started);
}
});
process->start("sh", QStringList() << "-c" << "sudo mkfs.ext4 -F /dev/sdg1");
}
void ExternalStorageControl::showEvent(QShowEvent *event) {
ButtonControl::showEvent(event);
QTimer::singleShot(100, this, &ExternalStorageControl::debouncedRefresh);
}
@@ -1,34 +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 "system/hardware/hw.h"
#include "selfdrive/ui/sunnypilot/qt/widgets/controls.h"
#define ButtonControl ButtonControlSP
class ExternalStorageControl : public ButtonControl {
Q_OBJECT
public:
ExternalStorageControl();
protected:
void showEvent(QShowEvent *event) override;
private:
Params params;
bool refreshPending = false;
bool formatting = false;
void updateState(bool offroad);
void refresh();
void debouncedRefresh();
void mountStorage();
void unmountStorage();
void formatStorage();
};
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>أداة ADB (Android Debug Bridge) تسمح بالاتصال بجهازك عبر USB أو عبر الشبكة. راجع هذا الرابط: https://docs.comma.ai/how-to/connect-to-comma لمزيد من المعلومات.</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation>إيقاف التشغيل</translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>يحتاج sunnypilot أن يتم ضبط الجهاز ضمن حدود 4 درجات يميناً أو يساراً و5 درجات نحو الأعلى أو 9 نحو الأسفل. يقوم sunnypilot بالمعايرة باستمرار، ونادراً ما يحتاج إلى عملية إعادة الضبط.</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> يشير جهازك إلى %1 درجة %2، و%3 درجة %4.</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>بدء تشغيل الكاميرا</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">تأكيد</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 وضع خرطوم الحريق 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation>وضع خرطوم الحريق: نشط</translation>
@@ -633,10 +534,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -763,37 +660,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -903,6 +769,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished">اختيار</translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -915,10 +809,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -963,71 +869,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished">إلغاء</translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1178,9 +1019,7 @@ The default software delay value is 0.2</source>
<translation>لقد اكتشف sunnypilot تغييراً في موقع تركيب الجهاز. تأكد من تثبيت الجهاز بشكل كامل في موقعه وتثبيته بإحكام على الزجاج الأمامي.</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1199,13 +1038,6 @@ The default software delay value is 0.2</source>
<translation> تنبيه</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1229,137 +1061,6 @@ The default software delay value is 0.2</source>
<translation>النظام لا يستجيب</translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">التحقق</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished">اختيار</translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">تحديث</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1700,10 +1401,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1799,16 +1496,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation>البرمجيات المخصصة</translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2020,30 +1707,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished">اختر فرعاً</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">إعادة التشغيل</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2394,25 +2057,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">اختيار</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">إلغاء</translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2449,49 +2093,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>فشل التحديث</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+47 -446
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -210,18 +191,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +199,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -246,14 +211,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>View the error log for sunnypilot crashes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>DevicePanel</name>
@@ -398,31 +355,11 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>Always Offroad</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>Kamera startet</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">Bestätigen</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 Firehose-Modus 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation>Firehose-Modus: AKTIV</translation>
@@ -629,10 +530,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>For maximum effectiveness, bring your device inside and connect to a good USB-C adapter and Wi-Fi weekly.&lt;br&gt;&lt;br&gt;Firehose Mode can also work while you&apos;re driving if connected to a hotspot or unlimited SIM card.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;Frequently Asked Questions&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Does it matter how or where I drive?&lt;/i&gt; Nope, just drive as you normally would.&lt;br&gt;&lt;br&gt;&lt;i&gt;Do all of my segments get pulled in Firehose Mode?&lt;/i&gt; No, we selectively pull a subset of your segments.&lt;br&gt;&lt;br&gt;&lt;i&gt;What&apos;s a good USB-C adapter?&lt;/i&gt; Any fast phone or laptop charger should be fine.&lt;br&gt;&lt;br&gt;&lt;i&gt;Does it matter which software I run?&lt;/i&gt; Yes, only upstream sunnypilot (and particular forks) are able to be used for training.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -755,37 +652,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -895,6 +761,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished">AUSWÄHLEN</translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -907,10 +801,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -955,71 +861,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished">Abbrechen</translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1170,9 +1011,7 @@ The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1191,13 +1030,6 @@ The default software delay value is 0.2</source>
<translation> HINWEIS</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1221,137 +1053,6 @@ The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">ÜBERPRÜFEN</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished">AUSWÄHLEN</translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">Aktualisieren</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1680,10 +1381,6 @@ Dies kann bis zu einer Minute dauern.</translation>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1779,16 +1476,6 @@ Dies kann bis zu einer Minute dauern.</translation>
<source>sunnypilot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2002,30 +1689,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished">Wähle einen Branch</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Neustart</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2376,25 +2039,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Enable the sunnypilot longitudinal control (alpha) toggle to allow Experimental mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">Auswählen</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Abbrechen</translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2431,49 +2075,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>Aktualisierung fehlgeschlagen</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -357,6 +314,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation>Apagar</translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot requiere que el dispositivo sea montado entre 4° grados a la izquierda o derecha y entre 5° grados hacia arriba o 9° grados hacia abajo. sunnypilot está constantemente en calibración, formatear rara vez es necesario.</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> Su dispositivo está apuntando %1° %2 y %3° %4.</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>iniciando cámara</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">Confirmar</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation type="unfinished"></translation>
@@ -629,10 +530,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -755,37 +652,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -895,6 +761,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished">SELECCIONAR</translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -907,10 +801,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -955,71 +861,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1170,9 +1011,7 @@ The default software delay value is 0.2</source>
<translation>sunnypilot detectó un cambio en la posición de montaje del dispositivo. Asegúrese de que el dispositivo esté completamente asentado en el soporte y que el soporte esté firmemente asegurado al parabrisas.</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1191,13 +1030,6 @@ The default software delay value is 0.2</source>
<translation> ALERTA</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1221,137 +1053,6 @@ The default software delay value is 0.2</source>
<translation>Systema no responde</translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VERIFICAR</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished">SELECCIONAR</translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">ACTUALIZAR</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1680,10 +1381,6 @@ Esto puede tardar un minuto.</translation>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1779,16 +1476,6 @@ Esto puede tardar un minuto.</translation>
<source>Select a language</source>
<translation>Seleccione un idioma</translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2000,30 +1687,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished">Selecione una rama</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Reiniciar</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2374,25 +2037,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">Seleccionar</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2429,49 +2073,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>Actualización fallida</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -345,6 +302,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation>Éteindre</translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot nécessite que l&apos;appareil soit monté à 4° à gauche ou à droite et à 5° vers le haut ou 9° vers le bas. sunnypilot se calibre en continu, la réinitialisation est rarement nécessaire.</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> Votre appareil est orienté %1° %2 et %3° %4.</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>démarrage de la caméra</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">Confirmer</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation type="unfinished"></translation>
@@ -629,10 +530,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -755,37 +652,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -895,6 +761,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished">SÉLECTIONNER</translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -907,10 +801,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -955,71 +861,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished">Annuler</translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1170,9 +1011,7 @@ The default software delay value is 0.2</source>
<translation>sunnypilot a détecté un changement dans la position de montage de l&apos;appareil. Assurez-vous que l&apos;appareil est totalement inséré dans le support et que le support est fermement fixé au pare-brise.</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1191,13 +1030,6 @@ The default software delay value is 0.2</source>
<translation> ALERTE</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1221,137 +1053,6 @@ The default software delay value is 0.2</source>
<translation>Système inopérant</translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VÉRIFIER</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished">SÉLECTIONNER</translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">MISE À JOUR</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1680,10 +1381,6 @@ Cela peut prendre jusqu&apos;à une minute.</translation>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1779,16 +1476,6 @@ Cela peut prendre jusqu&apos;à une minute.</translation>
<source>Custom Software</source>
<translation>Logiciel personnalisé</translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2000,30 +1687,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished">Sélectionner une branche</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Redémarrer</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2374,25 +2037,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">Sélectionner</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Annuler</translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2429,49 +2073,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>Échec de la mise à jour</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>ADBAndroid Debug BridgeUSBまたはネットワーク経由でデバイスに接続できますhttps://docs.comma.ai/how-to/connect-to-comma を参照してください。</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilotの本体は左右4°5°9°</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> %2 %1°%4 %3°</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 Firehoseモード 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation type="unfinished"></translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;&lt;/span&gt;: </translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1168,9 +1009,7 @@ The default software delay value is 0.2</source>
<translation>: %1</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1189,13 +1028,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1219,137 +1051,6 @@ The default software delay value is 0.2</source>
<translation></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1675,10 +1376,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1774,16 +1471,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1995,30 +1682,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2369,25 +2032,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2424,49 +2068,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>ADB ( 릿) USB . https://docs.comma.ai/how-to/connect-to-comma를 참조하세요.</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation> </translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot 4°, 5°, 9° . sunnypilot은 .</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> %2 %1° %4 %3° .</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation> </translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation> 모드: 활성화</translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1168,9 +1009,7 @@ The default software delay value is 0.2</source>
<translation> . . : %1</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1189,13 +1028,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1219,137 +1051,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1675,10 +1376,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1774,16 +1471,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation> </translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1995,30 +1682,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"> </translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2369,25 +2032,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2424,49 +2068,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation> </translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>ADB (Android Debug Bridge) permite conectar ao seu dispositivo por meio do USB ou através da rede. Veja https://docs.comma.ai/how-to/connect-to-comma para maiores informações.</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation>Desligar</translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>O sunnypilot requer que o dispositivo seja montado dentro de 4° esquerda ou direita e dentro de 5° para cima ou 9° para baixo. O sunnypilot está continuamente calibrando, resetar raramente é necessário.</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> Seu dispositivo está montado %1° %2 e %3° %4.</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>câmera iniciando</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">Confirmar</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 Modo Firehose 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation>Modo Firehose: ATIVO</translation>
@@ -629,10 +530,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INATIVO&lt;/span&gt;: conecte-se a uma rede sem limite &lt;br&gt; de dados</translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -755,37 +652,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -895,6 +761,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished">SELECIONE</translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -907,10 +801,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -955,71 +861,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1170,9 +1011,7 @@ The default software delay value is 0.2</source>
<translation>Temperatura do dispositivo muito alta. O sistema está sendo resfriado antes de iniciar. A temperatura atual do componente interno é: %1</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1191,13 +1030,6 @@ The default software delay value is 0.2</source>
<translation> ALERTA</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1221,137 +1053,6 @@ The default software delay value is 0.2</source>
<translation>Sistema sem Resposta</translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">VERIFICAR</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished">SELECIONE</translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">ATUALIZAÇÃO</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1680,10 +1381,6 @@ Isso pode levar até um minuto.</translation>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1779,16 +1476,6 @@ Isso pode levar até um minuto.</translation>
<source>Custom Software</source>
<translation>Software Customizado</translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -2000,30 +1687,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished">Selecione uma branch</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Reiniciar</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2374,25 +2037,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">Selecione</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2429,49 +2073,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>Falha na atualização</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot 4° 5° 9° sunnypilot </translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> %2 %1° %4 %3°</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation type="unfinished"></translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1168,9 +1009,7 @@ The default software delay value is 0.2</source>
<translation>sunnypilot </translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1189,13 +1028,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1219,137 +1051,6 @@ The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1675,10 +1376,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1774,16 +1471,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1995,30 +1682,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"> Branch</translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2369,25 +2032,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2424,49 +2068,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation>Sistemi kapat</translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot, cihazın 4° sola veya 5° yukarı yada 9° aşağı bakıcak şekilde monte edilmesi gerekmektedir. sunnypilot sürekli kendisini kalibre edilmektedir ve nadiren sıfırlama gerebilir.</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> Cihazınız %1° %2 ve %3° %4 yönünde ayarlı</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation>kamera başlatılıyor</translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished">Onayla</translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation type="unfinished"></translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1167,9 +1008,7 @@ The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1188,13 +1027,6 @@ The default software delay value is 0.2</source>
<translation> UYARI</translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1218,137 +1050,6 @@ The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished">KONTROL ET</translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished">GÜNCELLE</translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1673,10 +1374,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1772,16 +1469,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1993,30 +1680,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished">Yeniden başlat</translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2367,25 +2030,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished">Seç</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2422,49 +2066,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation>Güncelleme başarız oldu</translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>ADBAndroid调试桥接USB或网络连接到您的设备 [https://docs.comma.ai/how-to/connect-to-comma](https://docs.comma.ai/how-to/connect-to-comma)。</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot要求设备安装的偏航角在左4°4°5°9°sunnypilot会持续更新校准</translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> %1° %2%3° %4</translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation></translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;&lt;/span&gt;</translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1168,9 +1009,7 @@ The default software delay value is 0.2</source>
<translation>%1</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1189,13 +1028,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1219,137 +1051,6 @@ The default software delay value is 0.2</source>
<translation></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1675,10 +1376,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1774,16 +1471,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1995,30 +1682,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2369,25 +2032,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2424,49 +2068,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
+56 -455
View File
@@ -135,25 +135,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<translation type="unfinished"></translation>
</message>
</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>
</message>
<message>
<source>Auto</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ConfirmationDialog</name>
<message>
@@ -198,30 +179,6 @@ Please use caution when using this feature. Only use the blinker when traffic an
<source>ADB (Android Debug Bridge) allows connecting to your device over USB or over the network. See https://docs.comma.ai/how-to/connect-to-comma for more info.</source>
<translation>ADBAndroid 調 USB [https://docs.comma.ai/how-to/connect-to-comma](https://docs.comma.ai/how-to/connect-to-comma)。</translation>
</message>
<message>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DeveloperPanelSP</name>
<message>
<source>Show Advanced Controls</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Toggle visibility of advanced sunnypilot controls.
This only toggles the visibility of the controls; it does not toggle the actual control enabled/disabled state.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable GitHub runner service</source>
<translation type="unfinished"></translation>
@@ -230,10 +187,6 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Enables or disables the github runner service.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable Quickboot Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error Log</source>
<translation type="unfinished"></translation>
@@ -247,11 +200,15 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>When toggled on, this creates a prebuilt file to allow accelerated boot times. When toggled off, it immediately removes the prebuilt file so compilation of locally edited cpp files can be made. &lt;br&gt;&lt;br&gt;&lt;b&gt;To edit C++ files locally on device, you MUST first turn off this toggle so the changes can recompile.&lt;/b&gt;</source>
<source>openpilot Longitudinal Control (Alpha)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Quickboot mode requires updates to be disabled.&lt;br&gt;Enable &apos;Disable Updates&apos; in the Software panel first.</source>
<source>WARNING: openpilot longitudinal control is in alpha for this car and will disable Automatic Emergency Braking (AEB).</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On this car, sunnypilot defaults to the car&apos;s built-in ACC instead of openpilot&apos;s longitudinal control. Enable this to switch to openpilot longitudinal control. Enabling Experimental mode is recommended when enabling openpilot longitudinal control alpha.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -337,6 +294,10 @@ This only toggles the visibility of the controls; it does not toggle the actual
<source>Power Off</source>
<translation></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down. sunnypilot is continuously calibrating, resetting is rarely required.</source>
<translation>sunnypilot 4° 5° 9° </translation>
</message>
<message>
<source> Your device is pointed %1° %2 and %3° %4.</source>
<translation> %2 %1° %4 %3° </translation>
@@ -398,31 +359,7 @@ This only toggles the visibility of the controls; it does not toggle the actual
<translation type="unfinished"></translation>
</message>
<message>
<source>sunnypilot requires the device to be mounted within 4° left or right and within 5° up or 9° down.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Steering lag calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is %1% complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Steering torque response calibration is complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>openpilot is continuously calibrating, resetting is rarely required. Resetting calibration will restart openpilot if the car is powered on.</source>
<source> Resetting calibration will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -512,31 +449,6 @@ Steering lag calibration is complete.</source>
<source>The reset cannot be undone. You have been warned.</source>
<translation type="unfinished"></translation>
</message>
<message>
<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> Default: Device will boot/wake-up normally &amp; will be ready to engage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Offroad: Device will be in Always Offroad mode after boot/wake-up.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Controls state of the device after boot/sleep.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DriveStats</name>
@@ -572,21 +484,6 @@ This is the time after which settings UI closes automatically if user is not int
<translation></translation>
</message>
</context>
<context>
<name>ExitOffroadButton</name>
<message>
<source>Are you sure you want to exit Always Offroad mode?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>EXIT ALWAYS OFFROAD MODE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ExperimentalModeButton</name>
<message>
@@ -600,6 +497,10 @@ This is the time after which settings UI closes automatically if user is not int
</context>
<context>
<name>FirehosePanel</name>
<message>
<source>🔥 Firehose Mode 🔥</source>
<translation>🔥 🔥</translation>
</message>
<message>
<source>Firehose Mode: ACTIVE</source>
<translation></translation>
@@ -628,10 +529,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;INACTIVE&lt;/span&gt;: connect to an unmetered network</source>
<translation type="unfinished">&lt;span stylesheet=&apos;font-size: 60px; font-weight: bold; color: #e74c3c;&apos;&gt;&lt;/span&gt;</translation>
</message>
<message>
<source>Firehose Mode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HudRenderer</name>
@@ -753,37 +650,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>This platform supports limited MADS settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause Lateral Control with Blinker</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Pause lateral control with blinker when traveling below the desired speed selected.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LongitudinalPanel</name>
<message>
<source>Custom ACC Speed Increments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable custom Short &amp; Long press increments for cruise speed increase/decrease.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature can only be used with openpilot longitudinal control enabled.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This feature is not supported on this platform due to vehicle limitations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start the vehicle to check vehicle compatibility.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MadsSettings</name>
@@ -893,6 +759,34 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No custom model selected!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloading %1 model [%2]... (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] %3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloaded</source>
<translation type="unfinished"></translation>
@@ -905,10 +799,22 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>from cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 model [%2] pending...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching models...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a Model</source>
<translation type="unfinished"></translation>
@@ -953,71 +859,6 @@ Firehose Mode allows you to maximize your training data uploads to improve openp
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Model Cache</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CLEAR</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Driving Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Navigation Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Vision Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Policy Model</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Live Learning Steer Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust Software Delay</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Adjust the software delay when Live Learning Steer Delay is toggled off.
The default software delay value is 0.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> %1 - %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> download failed - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> pending - %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enable this for the car to learn and adapt its steering response time. Disable to use a fixed steering response time. Keeping this on provides the stock openpilot experience. The Current value is updated automatically when the vehicle is Onroad.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Current:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded models from the cache&lt;br/&gt;&lt;u&gt;except the currently active model&lt;/u&gt;.&lt;br/&gt;&lt;br/&gt;Are you sure you want to continue?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Clear Cache</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MultiOptionDialog</name>
@@ -1168,9 +1009,7 @@ The default software delay value is 0.2</source>
<translation>%1</translation>
</message>
<message>
<source>OpenStreetMap database is out of date. New maps must be downloaded if you wish to continue using OpenStreetMap data for Enhanced Speed Control and road name display.
%1</source>
<source>sunnypilot is now in Always Offroad mode. sunnypilot won&apos;t start until Always Offroad mode is disabled. Go to &quot;Settings&quot; -&gt; &quot;Device&quot; to exit Always Offroad mode.</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -1189,13 +1028,6 @@ The default software delay value is 0.2</source>
<translation> </translation>
</message>
</context>
<context>
<name>OffroadHomeSP</name>
<message>
<source>ALWAYS OFFROAD ACTIVE</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OnroadAlerts</name>
<message>
@@ -1219,137 +1051,6 @@ The default software delay value is 0.2</source>
<translation></translation>
</message>
</context>
<context>
<name>OsmPanel</name>
<message>
<source>Mapd Version</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Offline Maps ETA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time Elapsed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded Maps</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>DELETE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will delete ALL downloaded maps
Are you sure you want to delete all the maps?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes, delete all the maps.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Database Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>CHECK</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Country</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>SELECT</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching Country list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>State</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Fetching State list...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>REFRESH</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPDATE</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download starting...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Error: Invalid download. Retry.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download complete!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>
Warning: You are on a metered connection!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>This will start the download process and it might take a while to complete.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Continue on Metered</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Start Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>m </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>s</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Calculating ETA...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time remaining: </source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairingPopup</name>
<message>
@@ -1675,10 +1376,6 @@ This may take up to a minute.</source>
<source>Visuals</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>OSM</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Setup</name>
@@ -1774,16 +1471,6 @@ This may take up to a minute.</source>
<source>Custom Software</source>
<translation></translation>
</message>
<message>
<source>WARNING: Custom Software</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Use caution when installing third-party software. Third-party software has not been tested by comma, and may cause damage to your device and/or vehicle.
If you&apos;d like to proceed, use https://flash.comma.ai to restore your device to a factory state later.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SetupWidget</name>
@@ -1995,30 +1682,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>Select a branch</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disable Updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled. &lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 updates requires a reboot.&lt;br&gt;Reboot now?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>When enabled, software updates will be disabled.&lt;br&gt;&lt;b&gt;This requires a reboot to take effect.&lt;/b&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Please enable always offroad mode or turn off vehicle to adjust these toggles</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SshControl</name>
@@ -2369,25 +2032,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<source>openpilot longitudinal control may come in a future update.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and Upload Microphone Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Record and store microphone audio while driving. The audio will be included in the dashcam video in comma connect.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>TreeOptionDialog</name>
<message>
<source>Select</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Updater</name>
@@ -2424,49 +2068,6 @@ If you&apos;d like to proceed, use https://flash.comma.ai to restore your device
<translation></translation>
</message>
</context>
<context>
<name>VisualsPanel</name>
<message>
<source>Show Blind Spot Warnings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enabling this will display warnings when a vehicle is detected in your blind spot as long as your car has BSM supported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source> Changing this setting will restart openpilot if the car is powered on.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Distance</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Display Metrics Below Chevron</source>
<translation type="unfinished"></translation>
</message>
<message>
<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>
</context>
<context>
<name>WiFiPromptWidget</name>
<message>
-5
View File
@@ -1,5 +0,0 @@
import os
from openpilot.common.basedir import BASEDIR
MAPD_BIN_DIR = os.path.join(BASEDIR, 'third_party/mapd_pfeiferj')
MAPD_PATH = os.path.join(MAPD_BIN_DIR, 'mapd')
+15 -17
View File
@@ -16,39 +16,32 @@ from urllib.request import urlopen
from cereal import messaging
from openpilot.common.params import Params
from openpilot.sunnypilot.mapd.mapd_manager import MAPD_PATH, MAPD_BIN_DIR
from openpilot.system.hardware.hw import Paths
from openpilot.common.spinner import Spinner
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.10.0'
VERSION = 'v1.9.0'
URL = f"https://github.com/pfeiferj/openpilot-mapd/releases/download/{VERSION}/mapd"
def update_installed_version(version: str, params: Params = None) -> None:
if params is None:
params = Params()
params.put("MapdVersion", version)
class MapdInstallManager:
def __init__(self, spinner_ref: Spinner):
self._spinner = spinner_ref
self._params = Params()
def download(self) -> None:
self.ensure_directories_exist()
self._download_file()
update_installed_version(VERSION, self._params)
self.update_installed_version(VERSION)
def check_and_download(self) -> None:
if self.download_needed():
self.download()
def download_needed(self) -> bool:
return not os.path.exists(MAPD_PATH) or self.get_installed_version() != VERSION
@staticmethod
def download_needed() -> bool:
return not os.path.exists(MAPD_PATH) or MapdInstallManager.get_installed_version() != VERSION
@staticmethod
def ensure_directories_exist() -> None:
@@ -89,8 +82,13 @@ class MapdInstallManager:
temp_file.unlink()
logging.error("Failed to download file after all retries")
def get_installed_version(self) -> str:
return self._params.get("MapdVersion", encoding="utf-8") or ""
@staticmethod
def update_installed_version(version: str) -> None:
Params().put("MapdVersion", version)
@staticmethod
def get_installed_version() -> str:
return Params().get("MapdVersion", encoding="utf-8") or ""
def wait_for_internet_connection(self, return_on_failure: bool = False) -> bool:
max_retries = 10
@@ -124,7 +122,7 @@ class MapdInstallManager:
return
if self.wait_for_internet_connection(return_on_failure=True):
self._spinner.update(f"Downloading pfeiferj's mapd [{self.get_installed_version()}] => [{VERSION}].")
self._spinner.update(f"Downloading pfeiferj's mapd [{install_manager.get_installed_version()}] => [{VERSION}].")
time.sleep(0.1)
self.check_and_download()
self._spinner.close()
@@ -148,7 +146,7 @@ if __name__ == "__main__":
if is_prebuilt():
debug_msg = f"[DEBUG] This is prebuilt, no mapd install required. VERSION: [{VERSION}], Param [{install_manager.get_installed_version()}]"
spinner.update(debug_msg)
update_installed_version(VERSION)
install_manager.update_installed_version(VERSION)
else:
spinner.update(f"Checking if mapd is installed and valid. Prebuilt [{is_prebuilt()}]")
install_manager.non_prebuilt_install()
+4 -3
View File
@@ -12,20 +12,22 @@ import os
import glob
import shutil
from openpilot.common.basedir import BASEDIR
from openpilot.common.params import Params
from openpilot.common.realtime import Ratekeeper, config_realtime_process
from openpilot.common.swaglog import cloudlog
from openpilot.selfdrive.selfdrived.alertmanager import set_offroad_alert
from openpilot.sunnypilot.mapd.live_map_data.osm_map_data import OsmMapData
from openpilot.system.hardware.hw import Paths
from openpilot.sunnypilot.mapd import MAPD_PATH
from openpilot.sunnypilot.mapd.mapd_installer import VERSION, update_installed_version
# PFEIFER - MAPD {{
params = Params()
mem_params = Params("/dev/shm/params") if platform.system() != "Darwin" else params
# }} PFEIFER - MAPD
MAPD_BIN_DIR = os.path.join(BASEDIR, 'third_party/mapd_pfeiferj')
MAPD_PATH = os.path.join(MAPD_BIN_DIR, 'mapd')
def get_files_for_cleanup() -> list[str]:
paths = [
@@ -115,7 +117,6 @@ def update_osm_db() -> None:
def main_thread():
update_installed_version(VERSION, params)
config_realtime_process([0, 1, 2, 3], 5)
rk = Ratekeeper(1, print_delay_threshold=None)
-63
View File
@@ -1,63 +0,0 @@
# Model Selector Version Compatibility
This document explains the version compatibility mechanism used by the Model Selector system, and the rationale behind certain version constraints and JSON file management strategies.
## Overview
The Model Selector is responsible for selecting and validating model bundles based on their metadata and version constraints. Each model bundle is distributed via a JSON file and includes a `minimumSelectorVersion` field indicating the minimum selector version required to load it.
To ensure robust compatibility and prevent mismatches between model expectations and selector capabilities, the selector enforces two version boundaries:
* **`REQUIRED_MIN_SELECTOR_VERSION`**: the oldest selector version we support.
* **`CURRENT_SELECTOR_VERSION`**: the current version of the selector logic.
## Version Compatibility Check
A model bundle is considered compatible if:
```python
REQUIRED_MIN_SELECTOR_VERSION <= bundle["minimumSelectorVersion"] <= CURRENT_SELECTOR_VERSION
```
This ensures:
* **Old bundles are rejected** if they rely on deprecated selector behavior.
* **Future bundles are ignored** if they expect logic that the current selector doesn't yet implement.
## Handling Breaking Changes
When a deep change in selector behavior requires *all* models to be recompiled (e.g., due to a major architectural update), we:
1. **Create a new JSON file** (e.g., from `models_v4.json` to `models_v5.json`).
2. **Assign updated `minimumSelectorVersion` values** in the new bundles.
This allows older selector versions to continue using the previous JSON file, while newer versions point to the new one, preventing cross-contamination.
## Why `REQUIRED_MIN_SELECTOR_VERSION` Still Matters
Despite using new JSON files to isolate breaking changes, `REQUIRED_MIN_SELECTOR_VERSION` plays a critical role:
### 1. **Cached Bundle Validation**
Model bundles are cached locally (e.g., in-memory or on disk). A user might have previously loaded a now-invalid bundle from an older JSON file.
`REQUIRED_MIN_SELECTOR_VERSION` prevents the selector from reloading or trusting that stale cached bundle, even if the original JSON is gone.
### 2. **Explicit Deprecation Boundary**
By raising `REQUIRED_MIN_SELECTOR_VERSION`, we declare older bundles officially unsupported, even if they technically still exist in a legacy JSON file.
### 3. **Avoiding Race Conditions**
Some clients may have intermittent access to updated JSONs. The runtime check ensures version compatibility is enforced independently of external file state.
## Summary
| Component | Purpose |
| ------------------------------- | --------------------------------------------------------------------- |
| `minimumSelectorVersion` | Declares the minimum selector version required to load a model bundle |
| `REQUIRED_MIN_SELECTOR_VERSION` | Prevents loading bundles that are too old (e.g., from stale cache) |
| `CURRENT_SELECTOR_VERSION` | Prevents loading bundles that are too new or forward-incompatible |
| JSON file renaming | Isolates bundles by selector generation to handle full recompiles |
This layered strategy ensures safe evolution of the model selection system while maintaining backward compatibility and runtime protection against stale or incompatible bundles.
+1 -1
View File
@@ -115,7 +115,7 @@ class ModelCache:
class ModelFetcher:
"""Handles fetching and caching of model data from remote source"""
MODEL_URL = "https://docs.sunnypilot.ai/driving_models_v6.json"
MODEL_URL = "https://docs.sunnypilot.ai/driving_models_v4.json"
def __init__(self, params: Params):
self.params = params
+2 -3
View File
@@ -19,9 +19,8 @@ from openpilot.system.hardware import PC
from openpilot.system.hardware.hw import Paths
from pathlib import Path
# see the README.md for more details on the model selector versioning
CURRENT_SELECTOR_VERSION = 8
REQUIRED_MIN_SELECTOR_VERSION = 6
CURRENT_SELECTOR_VERSION = 7
REQUIRED_MIN_SELECTOR_VERSION = 5
USE_ONNX = os.getenv('USE_ONNX', PC)
+6 -16
View File
@@ -381,20 +381,20 @@ def setNavDestination(latitude: int = 0, longitude: int = 0, place_name: str = N
return {"success": 1}
def scan_dir(path: str, prefix: str, base: str) -> list[str]:
def scan_dir(path: str, prefix: str) -> list[str]:
files = []
# only walk directories that match the prefix
# (glob and friends traverse entire dir tree)
with os.scandir(path) as i:
for e in i:
rel_path = os.path.relpath(e.path, base)
rel_path = os.path.relpath(e.path, Paths.log_root())
if e.is_dir(follow_symlinks=False):
# add trailing slash
rel_path = os.path.join(rel_path, '')
# if prefix is a partial dir name, current dir will start with prefix
# if prefix is a partial file name, prefix with start with dir name
if rel_path.startswith(prefix) or prefix.startswith(rel_path):
files.extend(scan_dir(e.path, prefix, base))
files.extend(scan_dir(e.path, prefix))
else:
if rel_path.startswith(prefix):
files.append(rel_path)
@@ -402,12 +402,7 @@ def scan_dir(path: str, prefix: str, base: str) -> list[str]:
@dispatcher.add_method
def listDataDirectory(prefix='') -> list[str]:
internal_files = scan_dir(Paths.log_root(), prefix, Paths.log_root())
try:
external_files = scan_dir(Paths.log_root_external(), prefix, Paths.log_root_external())
except FileNotFoundError:
external_files = []
return sorted(set(internal_files + external_files))
return scan_dir(Paths.log_root(), prefix)
@dispatcher.add_method
@@ -432,13 +427,8 @@ def uploadFilesToUrls(files_data: list[UploadFileDict]) -> UploadFilesToUrlRespo
failed.append(file.fn)
continue
path_internal = os.path.join(Paths.log_root(), file.fn)
path_external = os.path.join(Paths.log_root_external(), file.fn)
if os.path.exists(path_internal) or os.path.exists(strip_zst_extension(path_internal)):
path = path_internal
elif os.path.exists(path_external) or os.path.exists(strip_zst_extension(path_external)):
path = path_external
else:
path = os.path.join(Paths.log_root(), file.fn)
if not os.path.exists(path) and not os.path.exists(strip_zst_extension(path)):
failed.append(file.fn)
continue
-4
View File
@@ -20,10 +20,6 @@ class Paths:
else:
return '/data/media/0/realdata/'
@staticmethod
def log_root_external() -> str:
return '/mnt/external_realdata/'
@staticmethod
def swaglog_root() -> str:
if PC:
+6 -11
View File
@@ -9,26 +9,21 @@ STATS_DIR_FILE_LIMIT = 10000
STATS_SOCKET = "ipc:///tmp/stats"
STATS_FLUSH_TIME_S = 60
PATH_DICT = {
"internal": Paths.log_root(),
"external": Paths.log_root_external()
}
def get_available_percent(default: float, path_type="internal") -> float:
def get_available_percent(default: float) -> float:
try:
statvfs = os.statvfs(PATH_DICT[path_type])
statvfs = os.statvfs(Paths.log_root())
available_percent = 100.0 * statvfs.f_bavail / statvfs.f_blocks
except (OSError, KeyError):
except OSError:
available_percent = default
return available_percent
def get_available_bytes(default: int, path_type="internal") -> int:
def get_available_bytes(default: int) -> int:
try:
statvfs = os.statvfs(PATH_DICT[path_type])
statvfs = os.statvfs(Paths.log_root())
available_bytes = statvfs.f_bavail * statvfs.f_frsize
except (OSError, KeyError):
except OSError:
available_bytes = default
return available_bytes
-28
View File
@@ -2,7 +2,6 @@
import os
import shutil
import threading
from pathlib import Path
from openpilot.system.hardware.hw import Paths
from openpilot.common.swaglog import cloudlog
from openpilot.system.loggerd.config import get_available_bytes, get_available_percent
@@ -62,33 +61,6 @@ def deleter_thread(exit_event: threading.Event):
if any(name.endswith(".lock") for name in os.listdir(delete_path)):
continue
if Path(Paths.log_root_external()).is_mount():
out_of_bytes_external = get_available_bytes(default=MIN_BYTES + 1, path_type="external") < MIN_BYTES
out_of_percent_external = get_available_percent(default=MIN_PERCENT + 1, path_type="external") < MIN_PERCENT
if out_of_percent_external or out_of_bytes_external:
dirs_external = listdir_by_creation(Paths.log_root_external())
# remove the earliest external directory we can
for delete_dir_external in sorted(dirs_external):
delete_path_external = os.path.join(Paths.log_root_external(), delete_dir_external)
try:
cloudlog.info(f"deleting {delete_path_external}")
shutil.rmtree(delete_path_external)
break
except OSError:
cloudlog.exception(f"issue deleting {delete_path_external}")
# move directory from internal to external
path_external = os.path.join(Paths.log_root_external(), delete_dir)
try:
cloudlog.info(f"moving {delete_path} to {path_external}")
shutil.move(delete_path, path_external)
break
except Exception as e:
cloudlog.exception(f"issue moving {delete_path} to {path_external}: {str(e)}")
continue
try:
cloudlog.info(f"deleting {delete_path}")
shutil.rmtree(delete_path)
+1 -4
View File
@@ -88,9 +88,6 @@ def is_stock_model(started, params, CP: car.CarParams) -> bool:
"""Check if the active model runner is stock."""
return bool(get_active_model_runner(params, not started) == custom.ModelManagerSP.Runner.stock)
def mapd_ready(started: bool, params: Params, CP: car.CarParams) -> bool:
return bool(os.path.exists(Paths.mapd_root()))
def or_(*fns):
return lambda *args: operator.or_(*(fn(*args) for fn in fns))
@@ -165,7 +162,7 @@ procs += [
PythonProcess("backup_manager", "sunnypilot.sunnylink.backups.manager", and_(only_offroad, sunnylink_ready_shim)),
# mapd
NativeProcess("mapd", Paths.mapd_root(), [MAPD_PATH], mapd_ready),
NativeProcess("mapd", Paths.mapd_root(), [MAPD_PATH], always_run),
PythonProcess("mapd_manager", "sunnypilot.mapd.mapd_manager", always_run),
]
-4
View File
@@ -83,10 +83,6 @@ class OpenpilotMetadata:
# touch this to get rid of the orange startup alert. there's better ways to do that
return self.git_normalized_origin == "github.com/commaai/openpilot"
@property
def sunnypilot_remote(self) -> bool:
return self.git_normalized_origin == "github.com/sunnypilot/sunnypilot"
@property
def git_normalized_origin(self) -> str:
return self.git_origin \
BIN
View File
Binary file not shown.
@@ -1,95 +1,98 @@
<?xml version='1.0' encoding='UTF-8'?>
<root>
<tabbed_widget name="Main Window" parent="main_window">
<Tab containers="1" tab_name="actuator data">
<tabbed_widget parent="main_window" name="Main Window">
<Tab tab_name="actuator data" containers="1">
<Container>
<DockSplitter orientation="-" sizes="0.25;0.25;0.25;0.25" count="4">
<DockSplitter sizes="0.25;0.25;0.25;0.25" count="4" orientation="-">
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-1.050000" top="1.050000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-1.050000" top="1.050000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carControl/actuators/torque" color="#17becf"/>
<curve color="#17becf" name="/carControl/actuators/torque"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-553.384988" top="395.185006" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-385.132391" top="536.899115" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carControl/actuators/steeringAngleDeg" color="#1f77b4"/>
<curve color="#1f77b4" name="/carControl/actuators/steeringAngleDeg"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-0.444933" top="18.242243" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-0.364800" top="14.956815" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carState/vEgoRaw" color="#ff7f0e"/>
<curve color="#ff7f0e" name="/carState/vEgoRaw"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-0.119883" top="0.177208" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-0.208517" top="0.149191" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carControl/actuators/curvature" color="#f14cc1"/>
<curve color="#f14cc1" name="/carControl/actuators/curvature"/>
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers="1" tab_name="steering messages (CAN)">
<Tab tab_name="steering messages (CAN)" containers="1">
<Container>
<DockSplitter orientation="-" sizes="0.200218;0.200218;0.199129;0.200218;0.200218" count="5">
<DockSplitter sizes="0.200218;0.200218;0.199129;0.200218;0.200218" count="5" orientation="-">
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-0.025000" top="1.025000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-189.000000" top="189.000000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/can/128/LKAS_ALT/ADAS_ACIAnglTqRedcGainVal" color="#1f77b4"/>
<curve color="#1ac938" name="/can/2/LKAS_ALT/LKAS_ANGLE_CMD"/>
<curve color="#9467bd" name="/can/128/LKAS_ALT/LKAS_ANGLE_CMD"/>
<curve color="#ff0e1c" name="/can/192/LKAS_ALT/LKAS_ANGLE_CMD"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-189.000000" top="189.000000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-6.200000" top="254.200000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/can/128/LKAS_ALT/ADAS_StrAnglReqVal" color="#d62728"/>
<curve color="#f14cc1" name="/can/128/LKAS_ALT/LKAS_ANGLE_MAX_TORQUE"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-0.025000" top="1.025000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-0.025000" top="1.025000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carState/steeringPressed" color="#d62728"/>
<curve color="#d62728" name="/carState/steeringPressed"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-4.150000" top="170.150000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="460.325000" top="1874.675000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/pandaStates/0/safetyTxBlocked" color="#1f77b4"/>
<curve color="#1f77b4" name="/pandaStates/0/safetyTxBlocked"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-0.025000" top="1.025000" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-0.025000" top="1.025000" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/can/1/CCNC_0x161/DAW_ICON" color="#f14cc1"/>
<curve color="#f14cc1" name="/can/1/CCNC_0x161/DAW_ICON"/>
</plot>
</DockArea>
</DockSplitter>
</Container>
</Tab>
<Tab containers="1" tab_name="Understanding Torque">
<Tab tab_name="Understanding Torque" containers="1">
<Container>
<DockSplitter orientation="-" sizes="0.5;0.5" count="2">
<DockSplitter sizes="0.5;0.5" count="2" orientation="-">
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="590.696728" bottom="-6.175000" top="253.175000" left="429.901019"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-6.175000" top="253.175000" right="590.696728" left="429.901019"/>
<limitY/>
<curve color="#1f77b4" name="/can/1/LFA_ALT/LKAS_ANGLE_MAX_TORQUE"/>
</plot>
</DockArea>
<DockArea name="...">
<plot style="Lines" flip_x="false" mode="TimeSeries" flip_y="false">
<range right="558.699945" bottom="-107.707498" top="64.807501" left="6.491930"/>
<plot flip_x="false" flip_y="false" style="Lines" mode="TimeSeries">
<range bottom="-41.182501" top="42.082498" right="590.696728" left="429.901019"/>
<limitY/>
<curve name="/carState/steeringTorqueEps" color="#1ac938"/>
<curve color="#1ac938" name="/carState/steeringTorqueEps"/>
</plot>
</DockArea>
</DockSplitter>
Generated
+850 -843
View File
File diff suppressed because it is too large Load Diff